/* ============================================
   MAMA RADA - Главные стили сайта
   ============================================ */

/* --- Подключение шрифтов --- */
@import url('https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&display=swap');

@font-face {
  font-family : 'Klyakson';
  src         : url('../fonts/KlyaksonRegular.woff2') format('woff2');
  font-weight : normal;
  font-style  : normal;
  font-display: swap;
}

/* --- Базовые переменные цветовой схемы --- */
:root {
  --font-family           : "Mulish", sans-serif;
  --second-family         : "Klyakson", sans-serif;
  --font-heading          : var(--second-family);
  /* Шрифт для заголовков */
  --font-body             : var(--font-family);
  /* Шрифт для текста */
  --color-primary         : #ff735a;
  /* Коралловый - основной акцент */
  --color-primary-hover   : #ff5334;
  /* Коралловый при наведении */
  --color-secondary       : #455b81;
  /* Тёмно-синий для заголовков */
  --color-text            : #455b81;
  /* Серо-синий для текста */
  --color-text-light      : #8fa3b1;
  /* Светлый текст */
  --color-background      : #F8F9FA;
  /* Белый фон */
  --color-background-light: #f0f7fb;
  /* Светло-голубой фон */
  --color-border          : #e8eef2;
  /* Цвет границ */
  --color-green           : #a8d5ba;
  /* Зелёный акцент */
  --border-radius         : 20px;
  /* Стандартное скругление */
  --shadow                : 0 4px 20px rgba(0, 0, 0, 0.08);
  /* Тень для карточек */
}

/* --- Сброс: только box-sizing, без обнуления отступов глобально --- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  font-family     : var(--font-body);
  color           : var(--color-text);
  line-height     : 1.6;
  background-color: var(--color-background);
}

.container {
  max-width: 1544px;
}

/* ============================================
   ШАПКА САЙТА (Header)
   ============================================ */

/* Контейнер шапки */
.site-header {
  padding      : 20px 0;
  background   : #fff;
  border-bottom: 1px solid rgba(69, 91, 129, 0.1);
}

/* Логотип */
.header-logo {
  display        : flex;
  align-items    : center;
  text-decoration: none;
}

.header-logo__image {
  height: 52px;
  width : auto;
}

/* Навигационное меню */
.header-nav {
  display    : flex;
  align-items: center;
  margin-left: 46px;
  margin-top : 1px;
}

.header-nav__list {
  display   : flex;
  list-style: none;
  margin    : 0;
  padding   : 0;
  gap       : 24px;
  flex-wrap : wrap;
}

.header-nav__link {
  font-family    : var(--font-family);
  font-weight    : 400;
  font-size      : 16px;
  color          : #455b81;
  text-decoration: none;
  opacity        : .5;
  transition     : color 0.3s ease;
}

.header-nav__link:hover {
  opacity: 1;
}

/* Блок авторизации */
.header-auth {
  display    : flex;
  align-items: center;
  gap        : 1px;
}

.header-auth__icon {
  width       : 16px;
  height      : 18px;
  margin-right: 9px;
}

.header-auth__icon img {
  display   : block;
  width     : 100%;
  height    : 100%;
  object-fit: contain;
}

.header-auth__link {
  font-weight    : 400;
  font-size      : 16px;
  line-height    : 1.4;
  text-align     : center;
  color          : #455b81;
  text-decoration: none;
  transition     : color 0.3s ease;
}

span.header-auth__link {
  border-bottom: none;
}

.header-auth__link:hover {
  color: var(--color-primary);
}

/* Меню авторизованного пользователя */
.header-user {
  position: relative;
}

.header-user .dropdown-toggle::after {
  display: none;
}

.header-user__toggle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 12px 6px 6px;
  border: 1px solid #e4eeff;
  border-radius: 999px;
  background: #fff;
  color: #455b81;
  font-family: inherit;
  font-size: 15px;
  line-height: 1.2;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.header-user__toggle:hover,
.header-user__toggle.show {
  border-color: rgba(255, 115, 90, 0.35);
  box-shadow: 0 4px 14px rgba(255, 115, 90, 0.12);
  outline: none;
}

.header-user__toggle:focus,
.header-user__toggle:focus-visible {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(255, 115, 90, 0.22);
  outline: none;
}

.header-user__ava {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 36px;
  background: #e4eeff;
}

.header-user__ava--ph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #455b81;
  font-size: 14px;
}

.header-user__name {
  max-width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
}

.header-user__chevron {
  font-size: 12px;
  opacity: 0.65;
  transition: transform 0.2s ease;
}

.header-user__toggle.show .header-user__chevron {
  transform: rotate(180deg);
}

.header-user__menu {
  min-width: 240px;
  padding: 8px;
  border: 1px solid #e4eeff;
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(69, 91, 129, 0.12);
  --bs-dropdown-link-hover-bg: rgba(255, 115, 90, 0.12);
  --bs-dropdown-link-hover-color: var(--color-primary);
  --bs-dropdown-link-active-bg: rgba(255, 115, 90, 0.22);
  --bs-dropdown-link-active-color: var(--color-primary-hover);
}

.header-user__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 15px;
  color: #455b81;
}

.header-user__item i {
  width: 18px;
  text-align: center;
  opacity: 0.85;
}

.header-user__menu .header-user__item:hover,
.header-user__menu .header-user__item:focus,
.header-user__menu .header-user__item:focus-visible,
.header-user__menu .header-user__item.active {
  background-color: rgba(255, 115, 90, 0.12);
  color: var(--color-primary);
}

.header-user__menu .header-user__item:active {
  background-color: rgba(255, 115, 90, 0.22);
  color: var(--color-primary-hover);
}

.header-user__badge {
  margin-left: auto;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #dd0000;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.header-mobile-user {
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid #e4eeff;
}

.header-mobile-user__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
  padding: 0 4px 8px;
}

.header-mobile-user__ava {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 40px;
  background: #e4eeff;
}

.header-mobile-user__ava--ph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #455b81;
}

.header-mobile-user__name {
  font-weight: 700;
  font-size: 16px;
  color: #455b81;
}

.header-mobile-user__menu {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.header-mobile-user__link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 4px;
  color: #455b81;
  text-decoration: none;
  font-size: 16px;
}

.header-mobile-user__link i {
  width: 20px;
  text-align: center;
  opacity: 0.85;
}

.header-mobile-user__link:hover,
.header-mobile-user__link:focus,
.header-mobile-user__link:focus-visible,
.header-mobile-user__link:active {
  background-color: rgba(255, 115, 90, 0.12);
  color: var(--color-primary);
  border-radius: 8px;
}

.header-mobile-user__link:active {
  background-color: rgba(255, 115, 90, 0.22);
  color: var(--color-primary-hover);
}

.header-mobile-user__badge {
  margin-left: auto;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #dd0000;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

/* .header-auth__link--accent {
  color: var(--color-secondary);
  font-weight: 500;
} */

/* Мобильное меню */
.header-burger {
  display       : none;
  flex-direction: column;
  gap           : 5px;
  cursor        : pointer;
  padding       : 0;
}

.header-burger img {
  width     : 23px;
  height    : 23px;
  object-fit: contain;
}

/* ============================================
   HERO СЕКЦИЯ (Главный экран)
   ============================================ */


/* Контейнер героя */
.hero-section {
  padding-top   : 10px;
  padding-bottom: 100px;
}

.hero-section__wrap {
  position     : relative;
  border-radius: 30px;
  overflow     : visible;
  height       : 646px;
}

/* Фоновое изображение */
.hero-section__background {
  width     : 100%;
  height    : 100%;
  object-fit: cover;
  position  : absolute;
  top       : 0;
  left      : 0;
  z-index   : 0;
  border-radius: 30px;
}

/* Контент героя */
.hero-content {
  position  : relative;
  z-index   : 1;
  text-align: center;
  padding   : 111px 20px 120px;
}

/* Заголовок героя */
.hero-content__title {
  margin-bottom: 10px;
  font-family  : var(--second-family);
  font-weight  : 400;
  font-size    : 66px;
  text-align   : center;
  color        : #455b81;
}

/* Подзаголовок */
.hero-content__subtitle {
  margin-bottom: 57px;
  font-weight  : 400;
  font-size    : 20px;
  text-align   : center;
  color        : #455b81;
}

/* Форма поиска */
.hero-search {
  position : relative;
  max-width: 640px;
  margin   : 0 auto;
}

.hero-search__form {
  display         : flex;
  align-items     : center;
  gap             : 8px;
  min-height      : 56px;
  padding         : 4px 4px 4px 20px;
  background-color: #fff;
  border-radius   : 159px;
  box-shadow      : var(--shadow);
}

.hero-search__icon {
  display        : inline-flex;
  flex-shrink    : 0;
  align-items    : center;
  justify-content: center;
  opacity        : 0.5;
}

.hero-search__input {
  flex     : 1 1 auto;
  min-width: 0;
  border   : none;
  padding  : 0;
  font-size: 15px;
  font-weight: 500;
  outline  : none;
  color    : #455b81;
  background: transparent;
}

.hero-search__input::placeholder {
  color  : #455b81;
  opacity: .5;
}

.hero-search__mode-toggle {
  display        : inline-flex;
  flex-shrink    : 0;
  align-items    : center;
  justify-content: center;
  width          : 28px;
  height         : 28px;
  padding        : 0;
  border         : none;
  border-radius  : 50%;
  background     : transparent;
  cursor         : pointer;
  opacity        : 0.45;
  transition     : opacity 0.2s ease, background-color 0.2s ease;
}

.hero-search__mode-toggle:hover,
.hero-search__mode-toggle[aria-expanded="true"] {
  opacity: 1;
  background-color: rgba(69, 91, 129, 0.08);
}

.hero-search__divider {
  flex-shrink: 0;
  width: 1px;
  height: 38px;
  background: rgba(69, 91, 129, 0.19);
}

.hero-search__filter-btn {
  display        : inline-flex;
  flex-shrink    : 0;
  align-items    : center;
  justify-content: center;
  gap            : 8px;
  height         : 48px;
  padding        : 0 18px 0 22px;
  border         : none;
  border-radius  : 24px;
  background     : #ff735a;
  color          : #fff;
  font-size      : 16px;
  font-weight    : 600;
  line-height    : 1.25;
  cursor         : pointer;
  transition     : background-color 0.2s ease;
}

.hero-search__filter-btn:hover {
  background-color: var(--color-primary-hover);
}

.hero-search__filter-chevron {
  transition: transform 0.2s ease;
}

.hero-search__filter-btn[aria-expanded="true"] .hero-search__filter-chevron {
  transform: rotate(180deg);
}

.hero-search__modes {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 5;
  min-width: 220px;
  padding: 8px 0;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(69, 92, 130, 0.16);
}

.hero-search__modes[hidden] {
  display: none;
}

.hero-search__modes-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 18px;
  color: #455b81;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.hero-search__modes-item + .hero-search__modes-item {
  border-top: 1px solid rgba(69, 91, 129, 0.08);
}

.hero-search__modes-item:hover {
  background-color: rgba(234, 241, 251, 0.8);
  color: #455b81;
}

/* Раскрытая панель фильтров под баннером */
.hero-filters {
  margin-top: 20px;
  padding: 30px 20px;
  background: #eaf1fb;
  border-radius: 30px;
}

.hero-filters[hidden] {
  display: none;
}

.hero-filters__heading {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 30px;
}

.hero-filters__title {
  margin: 0;
  font-family: var(--second-family);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.15;
  color: #455b81;
}

.hero-filters__card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 28px 20px;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 4px 24px rgba(69, 92, 130, 0.09);
}

.hero-filters__row {
  display: flex;
  align-items: flex-end;
  gap: 20px;
  flex-wrap: wrap;
}

.hero-filters__row--top {
  gap: 30px;
}

.hero-filters__row--bottom {
  align-items: center;
}

.hero-filters__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.hero-filters__field--city {
  position: relative;
  flex: 1 1 220px;
}

.hero-filters__field--price {
  flex: 1 1 220px;
}

.hero-filters__field--category {
  flex: 1 1 280px;
  max-width: 394px;
}

.hero-filters__field--dates {
  flex: 1 1 280px;
}

.hero-filters__label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #455b81;
  opacity: 0.55;
}

.hero-filters__city-control,
.hero-filters__price-box,
.hero-filters__select,
.hero-filters__date,
.hero-filters__rating input {
  height: 44px;
  background: #f8f9fa;
  border: 1px solid rgba(69, 91, 129, 0.13);
  border-radius: 10px;
}

.hero-filters__city-control {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px 0 14px;
}

.hero-filters__city-pin {
  display: inline-flex;
  flex-shrink: 0;
}

.hero-filters__city-input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: none;
  background: transparent;
  outline: none;
  font-size: 15px;
  font-weight: 600;
  color: #455b81;
}

.hero-filters__city-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  opacity: 0.45;
}

.hero-filters__city-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 6;
  max-height: 280px;
  overflow: auto;
  padding: 10px 0;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(69, 92, 130, 0.16);
}

.hero-filters__city-dropdown[hidden] {
  display: none;
}

.hero-filters__city-locate {
  display: block;
  width: 100%;
  padding: 10px 16px;
  border: none;
  background: transparent;
  color: #3b82c4;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.hero-filters__city-locate:hover {
  background: rgba(234, 241, 251, 0.9);
}

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

.hero-filters__city-option {
  display: block;
  width: 100%;
  padding: 10px 16px;
  border: none;
  background: transparent;
  color: #455b81;
  font-size: 15px;
  text-align: left;
  cursor: pointer;
}

.hero-filters__city-option:hover,
.hero-filters__city-option--active {
  background: rgba(234, 241, 251, 0.9);
}

.hero-filters__city-option mark {
  background: transparent;
  color: inherit;
  font-weight: 700;
}

.hero-filters__price {
  display: flex;
  gap: 8px;
}

.hero-filters__price-box {
  display: flex;
  flex: 1;
  align-items: center;
  gap: 6px;
  padding: 0 12px;
}

.hero-filters__price-box span {
  flex-shrink: 0;
  font-size: 13px;
  font-weight: 500;
  color: #455b81;
  opacity: 0.5;
}

.hero-filters__price-box input {
  width: 100%;
  min-width: 0;
  border: none;
  background: transparent;
  outline: none;
  text-align: right;
  font-size: 14px;
  font-weight: 600;
  color: #455b81;
}

.hero-filters__show {
  flex: 0 0 auto;
  min-width: 210px;
  height: 48px;
  padding: 0 32px;
  border: none;
  border-radius: 30px;
  background: #ff735a;
  box-shadow: 0 4px 14px rgba(255, 115, 89, 0.3);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.hero-filters__show:hover {
  background-color: var(--color-primary-hover);
}

.hero-filters__divider {
  height: 1px;
  background: rgba(69, 91, 129, 0.08);
}

.hero-filters__select {
  width: 100%;
  padding: 0 36px 0 14px;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.5 5.25L7 8.75L10.5 5.25' stroke='%23455B81' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  font-size: 15px;
  font-weight: 600;
  color: #455b81;
  outline: none;
  cursor: pointer;
}

.hero-filters__dates {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.hero-filters__date {
  position: relative;
  display: flex;
  flex: 1 1 140px;
  align-items: center;
  min-width: 140px;
  padding: 0 12px;
}

.hero-filters__date input {
  width: 100%;
  border: none;
  background: transparent;
  outline: none;
  font-size: 14px;
  font-weight: 600;
  color: #455b81;
}

.hero-filters__date img {
  position: absolute;
  right: 12px;
  pointer-events: none;
  opacity: 0.7;
}

.hero-filters__check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  color: #455b81;
  cursor: pointer;
}

.hero-filters__check input {
  width: 18px;
  height: 18px;
  accent-color: #ff735a;
}

.hero-filters__rating {
  display: inline-flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #455b81;
  opacity: 0.8;
}

.hero-filters__rating input {
  width: 88px;
  padding: 0 12px;
  font-size: 14px;
  font-weight: 600;
  color: #455b81;
  outline: none;
}

.hero-filters__all {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  color: #455b81;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.hero-filters__all:hover {
  color: var(--color-primary);
}

.hero-filters__reset {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 8px;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  color: #455b81;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}

.hero-filters__reset:hover {
  color: var(--color-primary);
}

/* Ссылки поиска под строкой */
.hero-search-links {
  display        : flex;
  justify-content: space-between;
  align-items    : center;
  gap            : 12px 20px;
  flex-wrap      : wrap;
  max-width      : 534px;
  margin         : 14px auto 0;
  padding        : 0 4px;
}

.hero-search-links__item {
  font-weight    : 400;
  font-size      : 14px;
  line-height    : 1.14286;
  letter-spacing : 0.03em;
  color          : #455b81;
  text-decoration: none;
  transition     : color 0.3s ease;
}

.hero-search-links__item:hover {
  color: var(--color-primary);
}

/* ============================================
   СЕКЦИЯ "О НАС" (About)
   ============================================ */

.about-section {
  padding: 0 0 81px;
}

/* Заголовок секции */
.about-section__title {
  margin-bottom: 60px;
  font-family  : var(--second-family);
  font-weight  : 400;
  font-size    : 36px;
  text-align   : center;
  color        : #455b81;
}

.about-section__title span {
  color: #ff735a;
}

/* Контент о нас */
.about-content {
  padding-left: 7px;
}

.about-content__brand {
  display    : inline-block;
  font-family: var(--second-family);
  font-weight: 400;
  font-size  : 36px;
  line-height: 1;
  color      : #ff735a;
  display    : inline;
}

.about-content__text {
  margin     : 0;
  font-weight: 500;
  font-size  : 20px;
  line-height: 1.25;
  color      : #455b81;
}

/* ============================================
   СЕКЦИЯ "ПОПУЛЯРНЫЕ УСЛУГИ" (Services)
   ============================================ */

.services-section {
  padding: 18px 0 38px;
}

.services-section__title {
  margin-bottom: 0;
  font-family  : var(--font-heading);
  font-weight  : 400;
  font-size    : 36px;
  text-align   : center;
  color        : #455b81;
}

.services-section__header,
.how-it-works-section__header {
  position       : relative;
  display        : flex;
  align-items    : center;
  justify-content: center;
  gap            : 16px;
}

.services-section__header {
  margin-bottom: 60px;
}

.how-it-works-section__header {
  margin-bottom: 58px;
}

.services-section__header .services-section__title,
.how-it-works-section__header .how-it-works-section__title {
  margin-bottom: 0;
}

.section-slider-nav {
  display       : none;
  flex-direction: column;
  align-items   : flex-start;
  gap           : 4px;
  width         : 21px;
  flex-shrink   : 0;
}

.section-slider-nav__btn {
  display        : flex;
  align-items    : center;
  justify-content: center;
  width          : 21px;
  height         : 5px;
  padding        : 0;
  border         : none;
  background     : none;
  cursor         : pointer;
  line-height    : 0;
  flex           : none;
}

.section-slider-nav__btn--prev img {
  transform: rotate(180deg);
}

.section-slider-nav__btn--inactive,
.section-slider-nav__btn:disabled {
  opacity: 0.5;
  cursor : default;
}

.section-slider-nav__btn img {
  display   : block;
  width     : 21px;
  height    : 5px;
  object-fit: contain;
}

/* Сетка услуг */
.services-grid {
  display              : grid;
  grid-template-columns: repeat(4, 1fr);
  gap                  : 20px;
}

/* Карточка услуги */
.service-card {
  display      : flex;
  gap          : 14px;
  padding      : 15px;
  border-radius: 15px;
  box-shadow   : 0 4px 10px 0 rgba(74, 111, 165, 0.1);
  background   : #fff;
  transition   : box-shadow 0.3s ease, transform 0.3s ease;
  cursor       : pointer;
  border       : 1px solid #e4eeff;
}

.service-card:hover {
  box-shadow: var(--shadow);
  transform : translateY(-3px);
}

/* Иконка услуги */
.service-card__icon {
  width : 72px;
  height: 72px;
  flex  : none;
}

.service-card__icon img {
  width     : 100%;
  height    : 100%;
  object-fit: contain;
}

/* Информация об услуге */
.service-card__info {
  flex-grow      : 1;
  display        : flex;
  flex-direction : column;
  justify-content: space-between;
}

.service-card__title {
  font-weight  : 700;
  font-size    : 16px;
  color        : #455b81;
  margin-bottom: 4px;
}

.service-card__description {
  margin        : 0;
  font-weight   : 500;
  font-size     : 14px;
  line-height   : 1.14286;
  letter-spacing: 0.03em;
  color         : #455b81;
}

/* ============================================
   СЕКЦИЯ "КАК ЭТО РАБОТАЕТ" (How It Works)
   ============================================ */

.how-it-works-section {
  padding         : 40px 0 81px;
  background-color: var(--color-background);
}

/* Внутренний контейнер с фоном */
.how-it-works-wrapper {
  background-color: var(--color-background-light);
  border-radius   : 30px;
  padding         : 60px 40px;
}

.how-it-works-section__title {
  font-family  : var(--font-heading);
  font-size    : 36px;
  font-weight  : 400;
  color        : var(--color-secondary);
  text-align   : center;
  margin-bottom: 0;
}

/* Сетка шагов */
.steps-grid {
  display              : grid;
  grid-template-columns: repeat(3, 1fr);
  gap                  : 20px;
  max-width            : 1320px;
  margin-inline        : auto;
  padding-inline       : 28px;
}

/* Карточка шага */
.step-card {
  background-color: white;
  border-radius   : 30px;
  padding         : 30px 20px 31px;
}

/* Альтернативный стиль карточки (розовый) */
.step-card--accent {
  /* background-color: #fef0ef; */
}

/* Заголовок шага */
.step-card__header {
  position     : relative;
  display      : flex;
  align-items  : center;
  gap          : 10px;
  margin-bottom: 6px;
}

.step-card__header::before {
  content      : '';
  position     : absolute;
  z-index      : 1;
  top          : 0;
  right        : 0;
  bottom       : 0;
  left         : 18px;
  border-radius: 30px;
  background   : #ffe3de;
}

.step-card__number {
  position   : relative;
  z-index    : 10;
  font-weight: 800;
  font-size  : 78px;
  color      : #455b81;
  line-height: 1.21;
}

.step-card__title {
  position   : relative;
  z-index    : 10;
  margin     : 0;
  font-weight: 700;
  font-size  : 20px;
  color      : #455b81;
}

/* .step-card__title span {
  display: inline-block;
  color: var(--color-primary);
  font-weight: 400;
} */

/* Описание шага */
.step-card__description {
  margin        : 0;
  font-weight   : 500;
  font-size     : 14px;
  line-height   : 1.14286;
  letter-spacing: 0.03em;
  color         : #455b81;
}

/* ============================================
   СЕКЦИЯ "КАТАЛОГ" (Catalog)
   ============================================ */

.catalog-section {
  padding: 60px 0;
}

.catalog-section__row {
  display              : grid;
  gap                  : 20px;
  grid-template-columns: 365px 1fr;
  align-items          : start;
  margin-bottom        : 58px;
}

.catalog-section__footer {
  display        : flex;
  align-items    : center;
  justify-content: center;
}

.catalog-section__more {
  display        : flex;
  align-items    : center;
  justify-content: center;
  width          : 265px;
  height         : 53px;
  border-radius  : 30px;
  font-weight    : 500;
  font-size      : 20px;
  color          : #fff;
  text-decoration: none;
  background     : #ff735a;
  transition     : all .3s;
}

.catalog-section__more:hover {
  background: #ff5334;
}

/* Сайдбар фильтров */
.catalog-filters {
  display       : flex;
  align-items   : center;
  flex-direction: column;
  background    : #e4eeff;
  border-radius : 30px;
  padding       : 30px 20px 26px;
  position      : sticky;
  top           : 20px;
  min-width     : 0;
  box-sizing    : border-box;
}

.mobile-filter {
  display: none;
}

/* Кнопка "Все фильтры" */
.catalog-filters__button {
  display        : flex;
  align-items    : center;
  justify-content: center;
  width          : 325px;
  height         : 54px;
  margin-bottom  : 27px;
  background     : #ff735a;
  border         : none;
  border-radius  : 30px;
  font-weight    : 500;
  font-size      : 20px;
  color          : #fff;
  text-decoration: none;
  cursor         : pointer;
  transition     : background-color 0.3s ease;
}

.catalog-filters__button:hover {
  background-color: var(--color-primary-hover);
}

/* Группа фильтра */
.filter-group {
  margin-bottom: 20px;
}

.filter-group__label {
  font-weight  : 700;
  font-size    : 20px;
  color        : #455b81;
  margin-bottom: 6px;
  display      : block;
}

/* Диапазон цены */
.filter-price-range {
  display              : grid;
  grid-template-columns: 1fr 13px 1fr;
  align-items          : center;
  gap                  : 16px;
  width                : 100%;
}

.filter-price-range__input {
  width           : 100%;
  height          : 54px;
  padding         : 4px;
  border          : 1px solid #455b81;
  border-radius   : 30px;
  text-align      : center;
  font-weight     : 500;
  font-size       : 20px;
  color           : #455b81;
  background-color: transparent;
  outline         : none;
  transition      : border-color 0.3s ease;
  box-sizing      : border-box;
  -moz-appearance : textfield;
  appearance      : textfield;
}

.filter-price-range__input::-webkit-inner-spin-button,
.filter-price-range__input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin            : 0;
}

.filter-price-range__input:focus {
  border-color: var(--color-primary);
}

.filter-price-range__separator {
  width        : 13px;
  height       : 2px;
  border-radius: 2px;
  background   : #455b81;
}

/* Поле даты/времени */

.filter-date {
  position        : relative;
  width           : 100%;
  height          : 54px;
  padding         : 4px 20px 4px 54px;
  border          : 1px solid #455b81;
  border-radius   : 30px;
  background-color: transparent;
  font-weight     : 500;
  font-size       : 20px;
  color           : #455b81;
  outline         : none;
}

.filter-date::-webkit-calendar-picker-indicator {
  position  : absolute;
  top       : 0;
  left      : 0;
  right     : 0;
  bottom    : 0;
  width     : auto;
  height    : auto;
  color     : transparent;
  background: transparent;
}

.filter-group:has(.filter-date) {
  position: relative;
}

.filter-group:has(.filter-date) img {
  position  : absolute;
  top       : 50%;
  left      : 20px;
  transform : translateY(-50%);
  width     : 24px;
  height    : 24px;
  object-fit: contain;
}

/* Выпадающий список */
.filter-select {
  width              : 100%;
  height             : 54px;
  padding            : 4px 20px;
  border             : 1px solid #455b81;
  border-radius      : 30px;
  font-weight        : 500;
  font-size          : 20px;
  color              : #455b81;
  outline            : none;
  cursor             : pointer;
  appearance         : none;
  background-color   : transparent;
  background-image   : url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%23455B81' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' /%3E%3C/svg%3E");
  background-repeat  : no-repeat;
  background-position: right 20px center;
  background-size    : 24px;
  transition         : border-color 0.3s ease;
}

.filter-select:focus {
  border-color: var(--color-primary);
}

/* Кнопка сброса */
.filter-reset {
  display        : flex;
  align-items    : center;
  justify-content: center;
  gap            : 10px;
  background     : none;
  border         : none;
  font-weight    : 500;
  font-size      : 20px;
  color          : #455b81;
  text-decoration: none;
  cursor         : pointer;
  padding        : 7px 0 0;
  transition     : color 0.3s ease;
  width          : 100%;
}

.filter-reset img {
  width     : 24px;
  height    : 24px;
  object-fit: contain;
}

.filter-reset:hover {
  color: var(--color-primary);
}

/* Список карточек заданий */
.catalog-listings {
  display       : flex;
  flex-direction: column;
  gap           : 20px;
}

.catalog-listings--loading {
  opacity       : 0.55;
  pointer-events: none;
  transition    : opacity 0.2s ease;
}

/* Карточка задания */
.task-card {
  display      : flex;
  background   : #fff;
  border       : 1px solid #e4eeff;
  border-radius: 30px;
  padding      : 30px 20px;
  gap          : 32px;
  transition   : box-shadow 0.3s ease;
}

.task-card:hover {
  box-shadow: 0 4px 18px rgba(69, 91, 129, 0.14);
}

/* Изображение задания */
.task-card__image {
  position: relative;
  width   : 150px;
  height  : 150px;
  flex    : none;
  overflow: hidden;
}

.task-card__image img {
  width        : 100%;
  height       : 100%;
  object-fit   : contain;
  border       : 1px solid #455b81;
  border-radius: 30px 30px 4px 30px;
}

.task-card__image--active::after {
  content      : '';
  position     : absolute;
  right        : 0;
  bottom       : 0;
  display      : block;
  width        : 22px;
  height       : 22px;
  border-radius: 4px;
  background   : #ff735a;
}

/* Контент задания */
.task-card__content {
  flex-grow: 1;
}

/* Заголовок и цена */
.task-card__header {
  display        : flex;
  justify-content: space-between;
  align-items    : flex-start;
  margin-bottom  : 10px;
}

.task-card__title {
  font-weight: 700;
  font-size  : 20px;
  color      : #455b81;
}

.task-card__title a {
  color: currentColor;
}

.task-card__price {
  font-weight: 700;
  font-size  : 20px;
  line-height: 1.1;
  color      : #ff735a;
}

/* Описание */
.task-card__description {
  font-weight  : 500;
  font-size    : 16px;
  color        : #455b81;
  line-height  : 1.2;
  margin-bottom: 12px;
}

/* Реквизиты */
.task-card__details-label {
  margin     : 0 0 10px;
  font-weight: 500;
  font-size  : 16px;
  color      : #455b81;
  opacity    : .7;
}

.task-card__details-list {
  display       : flex;
  flex-direction: column;
  gap           : 6px;
  margin-bottom : 31px;
}

.task-detail {
  display    : flex;
  align-items: center;
  gap        : 8px;
  font-weight: 500;
  font-size  : 16px;
  color      : #455b81;
}

.task-detail span {
  opacity: .7;
}

.task-detail__icon {
  width     : 24px;
  height    : 24px;
  object-fit: contain;
}

/* Кнопка отклика */
.task-card__button {
  display        : flex;
  align-items    : center;
  justify-content: center;
  width          : 260px;
  height         : 49px;
  margin-left    : auto;
  background     : #ff735a;
  color          : white;
  border         : none;
  border-radius  : 50px;
  padding        : 10px;
  font-weight    : 500;
  font-size      : 20px;
  text-decoration: none;
  color          : #fff;
  cursor         : pointer;
  transition     : background-color 0.3s ease;
}

.task-card__button:hover {
  background-color: var(--color-primary-hover);
}

/* ============================================
   СЕКЦИЯ "ИНТЕРАКТИВНАЯ КАРТА" (Map)
   ============================================ */

.map-section {
  padding: 18px 0 80px;
}

.map-section__title {
  font-family  : var(--font-heading);
  font-weight  : 400;
  font-size    : 36px;
  text-align   : center;
  color        : #455b81;
  margin-bottom: 32px;
}

.map-section__filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 12px;
  margin-bottom: 20px;
}

.map-section__filter-btn {
  min-width: 160px;
  padding: 12px 28px;
  border: 1.5px solid #ff735a;
  border-radius: 73px;
  background: transparent;
  color: #ff735a;
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  line-height: 20px;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.map-section__filter-btn:hover,
.map-section__filter-btn.is-active {
  background: #ff735a;
  color: #ffffff;
  border-color: #ff735a;
}

/* Контейнер карты */
.map-container {
  position     : relative;
  border-radius: 20px;
  overflow     : hidden;
  box-shadow   : var(--shadow);
}

.map-container__image {
  width  : 100%;
  height : auto;
  display: block;
}

/* Маркеры на карте */
.map-markers {
  position      : absolute;
  top           : 0;
  left          : 0;
  width         : 100%;
  height        : 100%;
  pointer-events: none;
}

/* Базовый стиль маркера */
.map-marker {
  position      : absolute;
  pointer-events: auto;
}

.map-marker--left {
  top : 35%;
  left: 20%;
}

.map-marker--center {
  top : 55%;
  left: 45%;
}

.map-marker--right {
  top  : 25%;
  right: 15%;
}

/* Карточка маркера */
.map-marker__card {
  position        : relative;
  display         : inline-flex;
  align-items     : center;
  gap             : 12px;
  width           : max-content;
  max-width       : 280px;
  box-sizing      : border-box;
  background-color: white;
  padding         : 12px 18px;
  border-radius   : 15px;
  box-shadow      : 0 4px 15px rgba(0, 0, 0, 0.15);
  cursor          : pointer;
  transition      : transform 0.3s ease, box-shadow 0.3s ease;
}

.map-marker__card::after {
  content     : '';
  position    : absolute;
  bottom      : -8px;
  left        : 28px;
  width       : 0;
  height      : 0;
  border-left : 8px solid transparent;
  border-right: 8px solid transparent;
  border-top  : 8px solid #fff;
  filter      : drop-shadow(0 2px 2px rgba(0, 0, 0, 0.08));
}

.map-marker__card:hover {
  transform : translateY(-3px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}

/* Иконка маркера */
.map-marker__icon {
  width        : 40px;
  height       : 40px;
  flex-shrink  : 0;
  border       : 1.5px solid #f97068;
  border-radius: 10px;
  overflow     : hidden;
  display      : flex;
  align-items  : center;
  justify-content: center;
  background   : #fff;
}

.map-marker__icon img {
  width     : 100%;
  height    : 100%;
  object-fit: contain;
  display   : block;
}

.map-marker__icon--avatar img {
  object-fit: cover;
}

/* Информация маркера */
.map-marker__info {
  display       : flex;
  flex-direction: column;
  flex          : 1 1 auto;
  min-width     : 0;
}

.map-marker__title {
  font-size    : 14px;
  font-weight  : 600;
  color        : var(--color-secondary);
  max-width    : 100%;
  white-space  : nowrap;
  overflow     : hidden;
  text-overflow: ellipsis;
  transition   : color 0.3s ease;
  cursor       : pointer;
  pointer-events: auto;
  position     : relative;
  z-index      : 2;
}

.map-marker__card:hover .map-marker__title,
.map-marker__card.is-hovered .map-marker__title,
.map-marker__title:hover,
.map-marker__title.is-title-hovered {
  color: var(--color-primary) !important;
}
.map-marker__kind,
.map-marker__status {
  font-size    : 12px;
  color        : var(--color-text-light);
  white-space  : nowrap;
  overflow     : hidden;
  text-overflow: ellipsis;
}

.map-marker__kind {
  margin-top: 2px;
}

/* ============================================
   СЕКЦИЯ "ОТЗЫВЫ" (Reviews)
   ============================================ */

.reviews-section {
  padding: 20px 0 98px;
}

.reviews-section__title {
  font-family  : var(--font-heading);
  font-weight  : 400;
  font-size    : 36px;
  text-align   : center;
  color        : #455b81;
  margin-bottom: 57px;
}

/* Сетка отзывов */
.reviews-grid {
  display              : grid;
  grid-template-columns: repeat(2, 1fr);
  gap                  : 19px;
}

/* Карточка отзыва */
.review-card {
  display              : grid;
  gap                  : 0 16px;
  grid-template-columns: 73px 1fr 86px;
  padding              : 16px;
  border               : 1px solid #e4eeff;
  border-radius        : 15px;
  box-shadow           : 0 4px 10px 0 rgba(69, 91, 129, 0.1);
  background           : #fff;
}

/* Аватар */
.review-card__avatar {
  grid-row: span 3;
  width   : 73px;
  height  : 73px;
}

.review-card__avatar img {
  display      : block;
  width        : 100%;
  height       : 100%;
  border-radius: 50%;
  object-fit   : cover;
}

.review-card__author-link {
  color          : inherit;
  text-decoration: none;
}

.review-card__avatar .review-card__author-link {
  display      : block;
  width        : 100%;
  height       : 100%;
  border-radius: 50%;
}

.review-card__author-link:hover {
  color          : #ff5334;
  text-decoration: underline;
}

.review-card__name {
  font-weight  : 700;
  font-size    : 20px;
  color        : #455b81;
  margin-bottom: 4px;
}

.review-card__service {
  grid-column  : span 2;
  margin-bottom: 9px;
  font-weight  : 500;
  font-size    : 16px;
  color        : #455b81;
}

/* Рейтинг */
.review-card__rating {
  display: flex;
  gap    : 4px;
}

.review-card__rating img {
  width     : 14px;
  height    : 14px;
  object-fit: contain;
}

/* Текст отзыва */
.review-card__text {
  grid-column   : span 2;
  margin        : 0;
  font-weight   : 500;
  font-size     : 14px;
  line-height   : 1.14286;
  letter-spacing: 0.027em;
  color         : #455b81;
}

.review-card__text p {
  margin: 0 0 16px;
}

/* Дата отзыва */
.review-card__date {
  display       : block;
  font-weight   : 500;
  font-size     : 14px;
  line-height   : 1.14286;
  letter-spacing: 0.03em;
  text-align    : right;
  color         : #455b81;
  opacity       : .5;
}

/* ============================================
   СЕКЦИЯ "ФОРМА ОБРАТНОЙ СВЯЗИ" (Contact)
   ============================================ */

.contact-section {
  padding: 0 0 81px;
}

/* Обёртка формы с голубым фоном */
.contact-wrapper {
  background   : #e4eeff;
  border-radius: 30px;
  padding      : 87px 100px;
  overflow     : hidden;
}

.contact-wrapper .row {
  display              : grid;
  grid-template-columns: 1fr 569px;
  align-items          : stretch !important;
  margin               : 0;
  gap                  : 48px;
}

.contact-wrapper .col-lg-6 {
  display        : flex !important;
  flex-direction : column;
  justify-content: center;
  width          : auto !important;
  padding        : 0;
}

.contact-form__heading {
  /* display    : none; */
  font-size  : 1.5rem;
  font-weight: 700;
  color      : var(--color-secondary);
  margin     : 0 0 14px;
  line-height: 1.3;
}

/* Вступительный текст */
.contact-form__intro {
  font-weight  : 500;
  font-size    : 16px;
  line-height  : 1.25;
  color        : #455b81;
  margin-bottom: 40px;
}

/* Форма */
.contact-form {
  display       : flex;
  flex-direction: column;
  gap           : 16px;
}

/* Группа полей формы */
.contact-form__group {
  width: 100%;
}

/* Поля ввода */
.contact-form__input,
.contact-form__textarea {
  width        : 100%;
  height       : 60px;
  border       : none;
  background   : #fff;
  border-radius: 30px;
  padding      : 5px 32px;
  font-weight  : 500;
  font-size    : 16px;
  color        : #455b81;
  outline      : none;
  font-family  : var(--font-body);
  transition   : box-shadow 0.3s ease;
}

.contact-form__input::placeholder,
.contact-form__textarea::placeholder {
  opacity: .35;
}

.contact-form__input:focus,
.contact-form__textarea:focus {
  box-shadow: 0 0 0 2px var(--color-primary);
}

.contact-form__group:has(.contact-form__input[type="email"]) {
  display: none;
}

/* Textarea */
.contact-form__textarea {
  resize       : none;
  min-height   : 180px;
  padding-block: 16px;
}

.contact-form__group:has(input[type="checkbox"]) label {
  display    : inline;
  font-weight: 500;
  font-size  : 14px;
  color      : #455b81;
  cursor     : pointer;
}

/* Кнопка отправки */
.contact-form__button {
  display        : flex;
  align-items    : center;
  justify-content: center;
  align-self     : flex-start;
  width          : 260px;
  height         : 49px;
  background     : #ff735a;
  border         : none;
  border-radius  : 50px;
  padding        : 0;
  font-weight    : 500;
  font-size      : 20px;
  color          : #fff;
  cursor         : pointer;
  transition     : background-color 0.3s ease;
}

.contact-form__button:hover {
  background-color: var(--color-primary-hover);
}

/* Иллюстрация */
.contact-illustration {
  display        : flex;
  align-items    : center;
  justify-content: center;
  height         : 100%;
}

.contact-illustration__image {
  display      : block;
  max-width    : 100%;
  height       : auto;
  border-radius: 30px;
}

/* ============================================
   ФУТЕР (Footer)
   ============================================ */

.site-footer {
  background: #455b81;
  padding   : 32px 0;
}

/* Логотип футера */
.footer-logo {
  display    : inline-block;
  margin-left: 31px;
}

.footer-logo__image {
  width     : 146px;
  height    : 52px;
  object-fit: contain;
}

/* Навигация футера */
.footer-nav {
  display        : flex;
  justify-content: center;
}

.footer-nav__list {
  display        : flex;
  list-style     : none;
  margin         : 0;
  padding        : 0 0 0 40px;
  gap            : 22px;
  flex-wrap      : wrap;
  justify-content: center;
}

.footer-nav__link {
  color          : white;
  text-decoration: none;
  font-size      : 15px;
  transition     : color 0.3s ease;
}

.footer-nav__link:hover {
  color: var(--color-primary);
}

/* Социальные сети */
.footer-social {
  display        : flex;
  gap            : 12px;
  justify-content: flex-end;
}

.footer-social__link {
  display         : flex;
  align-items     : center;
  justify-content : center;
  width           : 41px;
  height          : 41px;
  border-radius   : 50%;
  background-color: transparent;
  color           : var(--color-primary);
  font-size       : 22px;
  transition      : background-color 0.3s ease, color 0.3s ease;
}

.footer-social__link svg {
  fill      : #ff735a;
  transition: fill 0.3s ease, color 0.3s ease;
}

.footer-social__link--tg svg {
  width       : 22px;
  height      : 18px;
  margin-right: 2px;
}

.footer-social__link--wa svg {
  width : 27px;
  height: 27px;
}

.footer-social__link--vk svg {
  width : 25px;
  height: 25px;
}

.footer-social__link:hover {
  background-color: var(--color-primary);
  color           : white;
}

.footer-social__link:hover svg {
  fill: white;
}

a.task-card__button:hover {
  color: #fff;
}

/* Карта на главной (Яндекс) */
.home-tasks-map-canvas {
  width      : 100%;
  height     : 700px;
  touch-action: manipulation;
}

.home-tasks-map-canvas img {
  display   : block;
  width     : 100%;
  height    : 100%;
  object-fit: cover;
}

.map-container--yandex {
  background: #eef2f6;
}

.map-placemark {
  position: relative;
  width   : 0;
  height  : 0;
  overflow: visible;
  pointer-events: auto;
}

/* Якорь layout в (0,0) — хвостик тултипа указывает в точку координат */
.map-placemark .map-marker__card {
  position: absolute;
  left    : -28px;
  bottom  : 8px;
  pointer-events: auto;
  cursor: pointer;
}

/* Яндекс.Карты не должны обрезать кастомный layout маркера */
.home-tasks-map-canvas [class*="placemark-overlay"] {
  overflow: visible !important;
}

.service-card--link {
  text-decoration: none;
  color          : inherit;
}

.service-card--link:hover .service-card__title {
  color: var(--color-primary);
}



/* ============================================
   АДАПТИВНЫЕ СТИЛИ
   ============================================ */

@media (max-width: 1200px) {

  .services-grid {
    grid-template-columns: repeat(3, 1fr);
    gap                  : 40px;
  }

  .contact-wrapper .row {
    grid-template-columns: repeat(2, 1fr);
    gap                  : 30px;
  }
}

/* Планшеты (до 992px) */
@media (max-width: 992px) {

  /* Навигация скрыта */
  .header-nav {
    display: none;
  }

  .header-burger {
    display: flex;
  }

  /* Герой секция */
  .hero-content__title {
    font-size: 52px;
  }

  .hero-content__subtitle {
    font-size: 18px;
  }

  /* Сетка услуг 2 колонки */
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Шаги 2 колонки */
  .steps-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Каталог - фильтры сверху */
  .catalog-filters {
    position     : static;
    margin-bottom: 30px;
  }

  /* Карта */
  .map-marker--left {
    top : 30%;
    left: 10%;
  }

  .map-marker--right {
    top  : 20%;
    right: 5%;
  }

  /* Отзывы */
  .reviews-grid {
    grid-template-columns: 1fr;
  }

  /* Форма контактов */
  .contact-wrapper {
    padding: 30px;
  }

  /* Футер */
  .footer-nav__list {
    gap: 20px;
  }

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

  .home-tasks-map-canvas {
    height: 512px;
  }
}

/* Мобильные устройства (до 768px) */
@media (max-width: 768px) {

  /* Шапка */
  .header-auth {
    display: none;
  }

  /* Герой */
  .hero-content {
    padding: 50px 15px 80px;
  }

  .hero-content__title {
    font-size: 38px;
  }

  .hero-content__subtitle {
    font-size    : 16px;
    margin-bottom: 30px;
  }

  .hero-search__form {
    min-height: 48px;
    padding: 3px 3px 3px 16px;
    gap: 6px;
  }

  .hero-search__input {
    width: auto;
    padding: 0;
    border-radius: 0;
    font-size: 14px;
  }

  .hero-search__filter-btn {
    height: 42px;
    padding: 0 14px 0 16px;
    font-size: 14px;
  }

  .hero-search__divider {
    height: 32px;
  }

  .hero-search-links {
    gap: 12px;
  }

  .hero-filters {
    padding: 20px 14px;
    border-radius: 20px;
  }

  .hero-filters__title {
    font-size: 22px;
  }

  .hero-filters__card {
    padding: 18px 14px;
  }

  .hero-filters__row--top,
  .hero-filters__row--bottom {
    gap: 14px;
  }

  .hero-filters__show {
    width: 100%;
    min-width: 0;
  }

  .hero-filters__all {
    margin-left: 0;
  }

  .hero-filters__field--category {
    max-width: none;
  }

  .hero-search-links {
    gap           : 15px;
    flex-direction: column;
  }

  /* О нас */
  .about-section__title {
    font-size: 28px;
  }

  .about-content__brand {
    font-size: 24px;
  }

  /* Услуги */
  .services-section__title {
    font-size: 28px;
  }

  .services-grid {
    display       : flex;
    flex-direction: column;
    gap           : 10px;
  }

  /* Шаги */
  .steps-grid {
    display       : flex;
    flex-direction: column;
    padding-inline: 10px;
  }

  .how-it-works-wrapper {
    padding: 40px 20px;
  }

  .how-it-works-section__title {
    font-size: 28px;
  }

  .step-card__number {
    font-size: 48px;
  }

  /* Каталог */
  .task-card {
    display              : grid;
    grid-template-columns: 60px 1fr;
    column-gap           : 10px;
  }

  .task-card__image {
    grid-row: span 2;
    width   : 60px;
    height  : 60px;
  }

  .task-card__image img {
    border-radius: 12px 12px 2px 12px;
  }

  .task-card__image--active::after {
    width        : 10px;
    height       : 10px;
    border-radius: 2px;
  }

  .task-card__button {
    float: none;
    width: 100%;
  }

  /* Карта */
  .map-section__title {
    font-size: 28px;
  }

  .map-marker__card {
    padding: 8px 12px;
  }

  .map-marker__icon {
    width : 30px;
    height: 30px;
  }

  .map-marker__title {
    font-size: 12px;
  }

   .map-marker__kind,
  .map-marker__status {
    font-size: 10px;
  }

  .map-section__filter-btn {
    min-width: 140px;
    padding: 10px 20px;
    font-size: 14px;
  }

  /* Отзывы */
  .reviews-section__title {
    font-size: 28px;
  }

  .review-card {
    padding: 20px;
  }

  .review-card__header {
    flex-wrap: wrap;
  }

  .review-card__rating {
    width     : 100%;
    margin-top: 10px;
  }

  /* Форма контактов */
  .contact-wrapper {
    padding: 20px;
  }

  /* Футер */
  .footer-nav__list {
    flex-direction: column;
    align-items   : center;
    gap           : 15px;
    padding-left  : 0;
  }

  .footer-social {
    margin-top: 20px;
  }

  .contact-wrapper .row {
    display       : flex;
    flex-direction: column-reverse;
  }

  .catalog-section__row {
    grid-template-columns: repeat(2, 1fr);
  }

  .step-card__title {
    font-size: 16px;
  }
}

/* Маленькие мобильные (до 480px) */
@media (max-width: 480px) {

  .map-section__title {
    text-align   : left;
    margin-bottom: 28px;
    font-size    : 24px;
  }

  .footer-logo {
    display        : flex;
    justify-content: center;
    margin         : 0;
  }

  .footer-logo__image {
    width : 121px;
    height: 46px;
  }

  .site-footer .row>div:has(.footer-nav) {
    display: none;
  }

  .catalog-section {
    padding-bottom: 50px;
    padding-top   : 0;
  }

  .catalog-section__row {
    display       : flex;
    flex-direction: column;
    align-items   : stretch;
    gap           : 16px;
  }

  .catalog-filters {
    display: none;
  }

  .hero-content__title {
    font-size: 36px;
  }

  .service-card {
    border-radius: 15px;
    padding      : 10px;
  }

  .service-card__icon {
    width : 54px;
    height: 54px;
  }

  .step-card {
    border-radius: 19px;
    padding      : 18px 12px;
  }

  .task-card {
    display  : flex;
    flex-wrap: wrap;
    row-gap  : 12px;
    padding  : 20px;
  }

  .task-card__header {
    flex-direction : column;
    gap            : 4px;
    justify-content: flex-start;
    width          : calc(100% - 70px);
    margin-bottom  : 20px;
  }

  /* Карта - скрыть маркеры на очень маленьких экранах */
  .map-markers {
    display: none;
  }
  .map-section__filter-btn {
    min-width: 120px;
    padding: 10px 10px;
  }
  /* Отзывы */

  .review-card {
    border-radius        : 15px;
    padding              : 20px 16px;
    grid-template-columns: 40px 1fr;
  }

  .reviews-section__title {
    text-align   : left;
    margin-bottom: 18px;
    font-size    : 24px;
  }

  .review-card__rating {
    grid-area: 1 / 2 / 2 / 3;
    width    : auto;
    margin   : 0 0 4px;
  }

  .review-card__rating img {
    width : 12px;
    height: 12px;
  }

  .review-card__avatar {
    grid-row     : span 2;
    width        : 40px;
    height       : 40px;
    margin-bottom: 12px;
  }

  .review-card__service {
    grid-area     : 2 / 2 / 3 / 3;
    font-size     : 12px;
    line-height   : 1.16667;
    letter-spacing: 0.01em;
  }

  .review-card__name {
    grid-column  : span 2;
    margin-bottom: 12px;
    font-size    : 16px;
  }

  .review-card__text {
    font-size     : 12px;
    line-height   : 1.2;
    letter-spacing: 0.01em;
  }

  .review-card__text p {
    margin-bottom: 6px;
  }

  .review-card__date {
    font-size: 12px;
  }

  /* Форма контактов */
  .contact-form__button {
    width     : 100%;
    margin-top: 14px;
    height    : 36px;
    font-size : 16px;
  }

  .contact-section {
    padding-bottom: 30px;
  }

  .contact-wrapper {
    border-radius: 15px;
    padding      : 16px;
  }

  .container {
    padding-inline: 16px;
  }

  .header-logo__image {
    height: 22px;
  }

  .how-it-works-wrapper {
    padding      : 12px 10px 16px;
    border-radius: 16px;
  }

  .how-it-works-section {
    padding-bottom: 50px;
    padding-top   : 0;
  }

  .how-it-works-section__title {
    margin-bottom: 0;
    font-size    : 24px;
    text-align   : left;
  }

  .how-it-works-section__header .how-it-works-section__title {
    text-align: left;
  }

  .steps-grid {
    gap    : 16px;
    padding: 0;
  }

  .step-card__header {
    gap          : 6px;
    margin-bottom: 4px;
  }

  .step-card__header::before {
    border-radius: 19px;
  }

  .step-card__title {
    font-size: 12px;
  }

  .step-card__description {
    font-size     : 10px;
    line-height   : 1.2;
    letter-spacing: 0.01em;
  }

  .services-section {
    padding-bottom: 50px;
    padding-top   : 0;
  }

  .mobile-filter {
    display: block;
  }

  .mobile-filter__header {
    display        : flex;
    align-items    : center;
    justify-content: space-between;
    width          : 100%;
  }

  .mobile-filter__title {
    margin     : 0;
    font-weight: 700;
    font-size  : 20px;
    color      : #455b81;
  }

  .mobile-filter__btn {
    width        : 22px;
    height       : 21px;
    padding      : 0;
    border       : none;
    border-radius: 0;
    background   : none;
    cursor       : pointer;
  }

  .mobile-filter__btn img {
    width     : 100%;
    height    : 100%;
    object-fit: contain;
  }

  .mobile-filter__dropdown {
    display: none;
  }

  .catalog-section__row--filter-open .catalog-filters {
    display : flex;
    width   : 100%;
    order   : 2;
    position: static;
    top     : auto;
  }

  .mobile-filter {
    order: 1;
  }

  .catalog-listings {
    order: 3;
  }

  .catalog-filters {
    order: 2;
  }

  .section-slider-nav {
    display: flex;
    position: absolute;
    right   : 0;
    top     : 50%;
    transform: translateY(-50%);
  }

  .services-section__header,
  .how-it-works-section__header {
    justify-content: flex-start;
    margin-bottom  : 30px;
  }

  .how-it-works-section__header .how-it-works-section__title {
    margin-bottom: 0;
  }

  .card-slider.card-slider--active {
    display              : flex;
    flex-direction       : row;
    overflow-x           : auto;
    scroll-snap-type     : x mandatory;
    -webkit-overflow-scrolling: touch;
    gap                  : 0;
    scrollbar-width      : none;
    overscroll-behavior-x: contain;
  }

  .card-slider.card-slider--active::-webkit-scrollbar {
    display: none;
  }

  .card-slider__slide {
    flex              : 0 0 100%;
    scroll-snap-align : start;
    display           : flex;
    flex-direction    : column;
    gap               : 10px;
    min-width         : 0;
  }

  .how-it-works-section .card-slider__slide {
    gap: 16px;
  }

  .task-card__content {
    display: contents;
  }

  .task-card__description {
    margin-bottom : 4px;
    font-size     : 12px;
    line-height   : 1.16667;
    letter-spacing: 0.01em;
  }

  .task-card__title {
    margin-bottom: 0;
    font-size    : 16px;
  }

  .task-card__price {
    font-size: 16px;
  }

  .task-card__details-label {
    margin-bottom : 0;
    font-size     : 12px;
    line-height   : 1.16667;
    letter-spacing: 0.01em;
  }

  .task-card__details-list {
    row-gap      : 8px;
    margin-bottom: 20px;
  }

  .task-detail__icon {
    width : 18px;
    height: 18px;
  }

  .task-detail {
    row-gap       : 4px;
    font-size     : 12px;
    line-height   : 1.16667;
    letter-spacing: 0.01em;
  }

  .task-detail:last-child {
    display              : grid;
    grid-template-columns: 18px 1fr;
    align-content        : center;
  }

  .task-detail:last-child .task-detail__icon {
    grid-row: span 2;
  }

  .task-card__button {
    height   : 44px;
    font-size: 16px;
  }

  .catalog-section__footer {
    display: none;
  }

  .catalog-section__row {
    margin-bottom: 0;
  }

  .services-section__title {
    max-width : 184px;
    font-size : 24px;
    text-align: left;
  }

  .service-card__title {
    font-size: 12px;
  }

  .service-card__description {
    margin-top    : auto;
    font-size     : 10px;
    line-height   : 1.2;
    letter-spacing: 0.01em;
  }

  .about-section {
    padding-bottom: 50px;
  }

  .about-section__title {
    margin-bottom: 30px;
    font-size    : 24px;
    text-align   : center;
  }

  .about-content__text {
    font-size: 16px;
  }

  .hero-section {
    padding-bottom: 50px;
  }

  .hero-section__wrap {
    height       : 529px;
    border-radius: 15px;
  }

  .hero-section__background {
    border-radius: 15px;
  }

  .hero-content {
    padding-top: 113px;
  }

  .hero-content__title {
    margin-bottom: 0;
  }

  .hero-content__subtitle {
    margin-bottom : 14px;
    font-size     : 12px;
    line-height   : 1.16667;
    letter-spacing: 0.01em;
  }

  .hero-search__form {
    min-height: 42px;
    height: auto;
    padding: 3px 3px 3px 12px;
  }

  .hero-search__input {
    font-size: 12px;
  }

  .hero-search__filter-btn {
    height: 36px;
    width: 36px;
    padding: 0;
    gap: 0;
    font-size: 12px;
  }

  .hero-search__filter-btn span,
  .hero-search__filter-chevron {
    display: none;
  }

  .hero-search__divider {
    height: 26px;
  }

  .hero-filters {
    margin-top: 12px;
    padding: 16px 12px;
    border-radius: 16px;
  }

  .hero-filters__title {
    font-size: 18px;
  }

  .hero-search-links {
    display: flex;
    justify-content: center;
    gap: 8px 16px;
    margin-top: 12px;
  }

  .hero-search-links__item {
    font-size: 12px;
    line-height: 1.25;
  }

  .contact-form {
    gap: 6px;
  }

  .contact-form__input {
    height        : 30px;
    padding-inline: 16px;
    font-size     : 12px;
  }

  .contact-form__textarea {
    min-height   : 71px;
    padding      : 8px 16px;
    border-radius: 15px;
    font-size    : 12px;
  }

  .contact-form__intro {
    margin-bottom: 20px;
    font-size    : 12px;
  }

  .contact-form__heading {
    display      : block;
    margin-bottom: 6px;
    font-size    : 20px;
  }

  .contact-form__group:has(input[type="checkbox"]) label {
    font-size: 12px;
  }
}

/* ============================================
   Страница «Контакты»
   ============================================ */

.contacts-page {
  padding: 40px 0 72px;
  background: linear-gradient(180deg, #f5f8ff 0%, #f8f9fa 45%, #f8f9fa 100%);
}

.contacts-page__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-bottom: 24px;
}

.contacts-card,
.contacts-legal {
  background: #fff;
  border-radius: 28px;
  padding: 36px 40px;
  box-shadow: 0 8px 28px rgba(69, 91, 129, 0.06);
}

.contacts-card__title,
.contacts-legal__title {
  margin: 0 0 28px;
  font-family: var(--font-heading);
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--color-secondary);
}

.contacts-legal {
  background: #e8f0ff;
  box-shadow: none;
}

.contacts-legal__title {
  text-align: center;
  margin-bottom: 32px;
}

.contacts-legal__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px 48px;
}

.contacts-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.contacts-list__item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.contacts-list__icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(255, 115, 90, 0.12);
  color: var(--color-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.contacts-list__label {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text-light);
  margin-bottom: 2px;
}

.contacts-list__value {
  font-size: 16px;
  font-weight: 600;
  color: var(--color-secondary);
  line-height: 1.4;
  text-decoration: none;
}

.contacts-list__value--accent,
a.contacts-list__value--accent {
  color: var(--color-primary);
}

a.contacts-list__value:hover {
  color: var(--color-primary-hover);
}

.contacts-page__alert {
  margin-bottom: 16px;
}

.contacts-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.contacts-form__label {
  display: block;
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-secondary);
}

.contacts-form__input,
.contacts-form__textarea {
  width: 100%;
  border: 1px solid #d9e2ef;
  background: #fff;
  border-radius: 14px;
  padding: 14px 18px;
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 500;
  color: var(--color-secondary);
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.contacts-form__input {
  height: 52px;
}

.contacts-form__textarea {
  min-height: 140px;
  resize: vertical;
}

.contacts-form__input::placeholder,
.contacts-form__textarea::placeholder {
  color: #8fa3b1;
  opacity: 0.55;
}

.contacts-form__input:focus,
.contacts-form__textarea:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(255, 115, 90, 0.15);
}

.contacts-form__input.is-invalid,
.contacts-form__textarea.is-invalid {
  border-color: #dc3545;
}

.contacts-form__agree {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.contacts-form__agree input {
  margin-top: 3px;
  flex-shrink: 0;
}

.contacts-form__agree label {
  font-size: 14px;
  font-weight: 500;
  color: var(--color-text);
  line-height: 1.4;
  cursor: pointer;
}

.contacts-form__agree a {
  color: var(--color-primary);
  text-decoration: underline;
}

.contacts-form__agree a:hover {
  color: var(--color-primary-hover);
}

.contacts-form__button {
  align-self: flex-start;
  min-width: 240px;
  height: 52px;
  border: none;
  border-radius: 50px;
  background: var(--color-primary);
  color: #fff;
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.contacts-form__button:hover {
  background: var(--color-primary-hover);
}

@media (max-width: 991px) {
  .contacts-page__grid,
  .contacts-legal__grid {
    grid-template-columns: 1fr;
  }

  .contacts-card,
  .contacts-legal {
    padding: 28px 24px;
  }

  .contacts-card__title,
  .contacts-legal__title {
    font-size: 1.6rem;
  }

  .contacts-form__button {
    width: 100%;
  }
}

/* ============================================
   Юридические страницы
   ============================================ */

.legal-page__body {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 28px 32px;
}

.legal-page__section h2 {
  color: var(--color-secondary);
  margin-bottom: 12px;
}

.legal-page__section p,
.legal-page__body > p {
  color: var(--color-text);
  line-height: 1.65;
}

.legal-page__draft {
  background: var(--color-background-light);
  border-radius: 12px;
}

/* ============================================
   Cookie-баннер
   ============================================ */

.cookie-consent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1080;
  padding: 16px;
  pointer-events: none;
}

.cookie-consent__inner {
  pointer-events: auto;
  max-width: 960px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 16px 24px;
  padding: 16px 20px;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(69, 91, 129, 0.14);
  animation: cookie-consent-in 0.25s ease;
}

.cookie-consent--hiding .cookie-consent__inner {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.cookie-consent__text {
  margin: 0;
  flex: 1;
  font-size: 14px;
  line-height: 1.45;
  color: var(--color-text);
}

.cookie-consent__link {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cookie-consent__link:hover {
  color: var(--color-primary-hover);
}

.cookie-consent__btn {
  flex-shrink: 0;
  min-width: 112px;
  padding: 10px 18px;
  border: none;
  border-radius: 999px;
  background: var(--color-primary);
  color: #fff;
  font-family: var(--font-family);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.cookie-consent__btn:hover {
  background: var(--color-primary-hover);
}

@keyframes cookie-consent-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 576px) {
  .cookie-consent {
    padding: 12px;
  }

  .cookie-consent__inner {
    flex-direction: column;
    align-items: stretch;
    padding: 14px 16px;
    border-radius: 14px;
  }

  .cookie-consent__btn {
    width: 100%;
  }
}

/* --- Модалка «Поделиться» --- */
body.share-modal-open {
  overflow: hidden;
}

.share-modal {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.share-modal[hidden] {
  display: none !important;
}

.share-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(69, 91, 129, 0.4);
}

.share-modal__dialog {
  position: relative;
  width: 100%;
  max-width: 420px;
  padding: 22px 22px 20px;
  border-radius: var(--border-radius);
  background: #fff;
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow);
  font-family: var(--font-family);
  color: var(--color-text);
  animation: share-modal-in 0.2s ease;
}

.share-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 22px;
}

.share-modal__title {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--color-secondary);
}

.share-modal__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: -6px -6px 0 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--color-text-light);
  font-size: 18px;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.share-modal__close:hover {
  background: var(--color-background-light);
  color: var(--color-primary);
}

.share-modal__networks {
  display: flex;
  justify-content: center;
  gap: 18px;
  margin-bottom: 22px;
}

.share-modal__network {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 84px;
  text-decoration: none;
  color: var(--color-text);
  transition: transform 0.15s ease;
}

.share-modal__network:hover {
  transform: translateY(-2px);
  color: var(--color-text);
  text-decoration: none;
}

.share-modal__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  color: #fff;
  font-size: 26px;
  box-shadow: 0 4px 14px rgba(69, 91, 129, 0.12);
}

.share-modal__icon--vk {
  background: #0077ff;
}

.share-modal__icon--telegram {
  background: #2aabee;
}

.share-modal__icon--whatsapp {
  background: #25d366;
}

.share-modal__icon--max {
  background: #4a67ff;
  color: #fff;
}

.share-modal__icon--max svg {
  display: block;
}

.share-modal__label {
  font-size: 12px;
  line-height: 1.2;
  text-align: center;
  color: var(--color-text);
}

.share-modal__copy {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 8px 8px 14px;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: var(--color-background-light);
}

.share-modal__url {
  flex: 1;
  min-width: 0;
  border: none;
  background: transparent;
  color: var(--color-text);
  font-family: var(--font-family);
  font-size: 13px;
  line-height: 1.3;
  outline: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.share-modal__copy-btn {
  flex-shrink: 0;
  padding: 8px 16px;
  border: 1.5px solid var(--color-primary);
  border-radius: 999px;
  background: #fff;
  color: var(--color-primary);
  font-family: var(--font-family);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.share-modal__copy-btn:hover {
  background: var(--color-primary);
  color: #fff;
}

.share-modal__copy-btn.is-copied {
  border-color: #3ba46b;
  background: #3ba46b;
  color: #fff;
}

@keyframes share-modal-in {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (max-width: 480px) {
  .share-modal__dialog {
    padding: 18px 16px 16px;
  }

  .share-modal__networks {
    gap: 10px;
  }

  .share-modal__network {
    width: 76px;
  }

  .share-modal__icon {
    width: 50px;
    height: 50px;
    font-size: 22px;
  }

  .share-modal__copy {
    flex-direction: column;
    align-items: stretch;
    border-radius: 16px;
    padding: 12px;
    gap: 10px;
  }

  .share-modal__copy-btn {
    width: 100%;
  }
}