html { overflow-x: hidden; min-height: 100%; }
body {
  margin: 0;
  overflow-x: hidden;
  max-width: 100%;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
body > main { flex: 1 0 auto; min-height: 0; }
.container { max-width: 1000px; margin: 0 auto; padding: 16px; }
.site-header { border-bottom: 1px solid #eee; }

/* === Общая секция: hero_light (260px, фон #F4EEE9, тайл BG, лого + текст) === */
.hero-light {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  height: 260px;
  min-height: 260px;
  flex-shrink: 0;
  background-color: #F4EEE9;
  background-image: url("/assets/images/BG_Hero_Light.png");
  background-repeat: repeat-x;
  background-position: 0 0;
}

.hero-light__inner {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}

.hero-light__inner > * {
  pointer-events: auto;
}

.hero-light__logo {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) scale(0.8);
  display: block;
  width: 373px;
  height: 277px;
  object-fit: contain;
}

.hero-light__text {
  position: absolute;
  left: calc(50% + 175px);
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
  font-family: "TildaSans", Arial, sans-serif;
  font-weight: 300;
  font-size: 30px;
  line-height: 1.35;
  color: #815583;
}

@media (max-width: 768px) {
  .hero-light { height: 220px; min-height: 220px; }
  .hero-light__logo { width: 280px; height: auto; max-height: 200px; transform: translate(-50%, -50%) scale(0.8); }
  .hero-light__text { left: calc(50% + 130px); font-size: 24px; }
}

/* Узкий экран, но ещё не колонка: лого и текст — единый двухколоночный блок с фиксированным зазором */
@media (max-width: 1000px) and (min-width: 521px) {
  .hero-light__inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 28px;
    padding: 0 24px;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
  }
  .hero-light__logo {
    position: static;
    left: auto;
    transform: scale(0.8);
    flex-shrink: 0;
  }
  .hero-light__text {
    position: static;
    left: auto;
    right: auto;
    transform: none;
    white-space: nowrap;
    flex-shrink: 0;
  }
}

/* Ещё уже: сдвигаем весь блок чуть влево, чтобы текст не переносился */
@media (max-width: 720px) and (min-width: 521px) {
  .hero-light__inner {
    justify-content: flex-start;
  }
}

@media (max-width: 520px) {
  .hero-light__inner {
    position: static;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 0 16px;
  }
  .hero-light__logo {
    position: static;
    transform: scale(0.8);
    width: 220px;
    max-height: 164px;
    height: auto;
  }
  .hero-light__text {
    position: static;
    transform: none;
    font-size: 20px;
    text-align: center;
  }
}

/* === Секция home: hero (650px, тайл BG, параллакс) === */
.home-hero {
  box-sizing: border-box;
  position: relative;
  z-index: 0;
  width: 100%;
  height: 650px;
  min-height: 650px;
  overflow: hidden;
  background-color: #fff;
  background-image: url("/assets/images/home/BG_Tile.png");
  background-repeat: repeat-x;
  background-position: 0 0;
  /* contain: layout paint; */ /* Removed for testing */
  flex-shrink: 0;
}
.home-hero img {
  display: block;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}
.home-hero__left-img,
.home-hero__right-img,
.home-hero__left-img-2,
.home-hero__right-img-2,
.home-hero__welcome,
.home-hero__center-img {
  position: absolute;
  pointer-events: none;
  will-change: transform;
}
/* BackBG/FrontBG: отступ от центра по X */
.home-hero__left-img { top: 18px; right: 50%; margin-right: 215px; z-index: 2; }
.home-hero__left-img img { width: 549px; height: 373px; }
.home-hero__right-img { top: 18px; left: 50%; margin-left: 215px; z-index: 2; }
.home-hero__right-img img { width: 619px; height: 389px; }
.home-hero__left-img-2 { top: -64px; right: 50%; margin-right: 310px; z-index: 3; }
.home-hero__left-img-2 img { width: 1016px; height: 746px; }
.home-hero__right-img-2 { top: -30px; left: 50%; margin-left: 310px; z-index: 3; }
.home-hero__right-img-2 img { width: 993px; height: 616px; }
.home-hero__welcome { left: 50%; transform: translateX(-50%); z-index: 4; }
.home-hero__welcome img { max-width: none; }
.home-hero__welcome-1 { top: 88px; }
.home-hero__welcome-1 img { width: 320px; height: 87px; }
.home-hero__welcome-2 { top: 467px; }
.home-hero__welcome-2 img { width: 392px; height: 55px; }
.home-hero__welcome-3 { top: 198px; }
.home-hero__welcome-3 img { width: 318px; height: 236px; }
/* FrontBG_Center: нижний край всегда совпадает с нижним краем блока */
.home-hero__center-img {
  top: auto;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1981px;
  height: 615px;
  z-index: 1;
}
.home-hero__center-img img { width: 1981px; height: 615px; object-fit: none; object-position: bottom center; }

/* Мобильный hero: без горизонтального скролла, пропорциональная композиция как на ПК */
@media (max-width: 768px) {
  .home-hero {
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
  }
  /* BackBG/FrontBG: от центра по X */
  .home-hero__left-img { right: 50%; margin-right: 8vw; }
  .home-hero__right-img { left: 50%; margin-left: 8vw; }
  .home-hero__left-img-2 { right: 50%; margin-right: 12vw; }
  .home-hero__right-img-2 { left: 50%; margin-left: 12vw; }
  /* Welcome: ещё −10% размер, 1 — на 5% ниже, 2 — на 5% выше (5% от 650px ≈ 33px) */
  .home-hero__welcome-1 { top: 121px; }
  .home-hero__welcome-1 img { width: 288px; height: 78px; }
  .home-hero__welcome-2 { top: 434px; }
  .home-hero__welcome-2 img { width: 353px; height: 50px; }
  .home-hero__welcome-3 img { width: 286px; height: 212px; }
}
/* Только планшет: BackBG/FrontBG на 10% ближе к центру (8→7.2vw, 12→10.8vw) */
@media (min-width: 481px) and (max-width: 768px) {
  .home-hero__left-img { margin-right: 7.2vw; }
  .home-hero__right-img { margin-left: 7.2vw; }
  .home-hero__left-img-2 { margin-right: 10.8vw; }
  .home-hero__right-img-2 { margin-left: 10.8vw; }
}
/* Мобильные: высота 600px, FrontBG_Center по высоте блока, низ совпадает с низом hero */
@media (max-width: 480px) {
  .home-hero { height: 600px; min-height: 600px; }
  .home-hero__welcome-1 { top: 91px; }
  .home-hero__welcome-2 { top: 464px; }
  .home-hero__left-img { margin-right: 27.3vw; }
  .home-hero__right-img { margin-left: 23.65vw; }
  .home-hero__left-img-2 { margin-right: 31vw; }
  .home-hero__right-img-2 { margin-left: 31vw; }
  .home-hero__center-img { height: 100%; min-height: 600px; }
  .home-hero__center-img img {
    width: 1981px;
    height: 100%;
    min-height: 600px;
    object-fit: cover;
    object-position: bottom center;
  }
}

/* === Секция home: intro (min-height 230px, авто-рост, max-width 1100px) === */
.home-intro {
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  min-height: 230px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  background-color: #fff;
  flex-shrink: 0;
  overflow: hidden;
}

.home-intro__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
  font-family: "TildaSans", "Tilda Sans", sans-serif;
}

.home-intro__title,
.home-intro__text,
.home-intro__quote {
  position: relative;
  z-index: 1;
  line-height: 1.3;
  color: #815583;
}
.home-intro__title {
  margin: 0 0 18px;
  font-size: 28px;
  font-weight: 400;
}
.home-intro__text,
.home-intro__quote {
  margin: 0 0 13px;
  font-size: 25px;
  font-weight: 300;
}
.home-intro__quote { margin-bottom: 0; }

/* Декор (звёзды): привязаны к низу блока, z-index ниже текста */
.home-intro__deco {
  position: absolute;
  top: auto;
  bottom: 24px;
  left: 0;
  right: 0;
  z-index: 0;
  pointer-events: none;
}
.home-intro__deco-left,
.home-intro__deco-right {
  position: absolute;
}
.home-intro__deco-left {
  left: -20px;
  top: -44px;
  width: 45px;
  height: 49px;
}
.home-intro__deco-right {
  right: -30px;
  top: -120px;
  width: 92px;
  height: 115px;
}

/* intro на планшетах: те же отступы текста */
@media (max-width: 768px) {
  .home-intro { padding: 20px 16px 24px; }
  .home-intro__inner { padding: 0 20px; }
  .home-intro__title { font-size: 28px; margin-bottom: 18px; }
  .home-intro__text,
  .home-intro__quote { font-size: 25px; margin-bottom: 13px; }
  .home-intro__deco-left { left: -24px; top: -44px; }
  .home-intro__deco-right { right: -36px; top: -120px; }
}

/* intro на мобильных: равные отступы текста */
@media (max-width: 480px) {
  .home-intro { padding: 16px 12px 20px; }
  .home-intro__inner { padding: 0 16px; }
  .home-intro__title { font-size: 28px; margin-bottom: 18px; }
  .home-intro__text,
  .home-intro__quote { font-size: 25px; margin-bottom: 13px; }
  .home-intro__deco { bottom: 20px; }
  .home-intro__deco-left { left: -28px; top: -44px; }
  .home-intro__deco-right { right: -42px; top: -144px; }
}

.home-intro + main { margin-top: 0; padding-top: 24px; }

/* === Секция home: map_intro (о живой карте), фон #f4eee9, min-height 440px === */
.home-map-intro {
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  min-height: 440px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  background-color: #f4eee9;
  flex-shrink: 0;
  overflow: hidden;
}

.home-map-intro__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
  font-family: "TildaSans", "Tilda Sans", sans-serif;
}

/* Фоновые цветы: под текстом по z, могут обрезаться краями браузера */
.home-map-intro__flowers {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  pointer-events: none;
}
.home-map-intro__flowers-left,
.home-map-intro__flowers-right {
  position: absolute;
  max-height: 85%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.home-map-intro__flowers-left {
  left: -120px;
  top: 20%;
  transform: translateY(-50%);
}
.home-map-intro__flowers-right {
  right: -120px;
  top: 80%;
  transform: translateY(-50%) rotate(50deg);
}

.home-map-intro__title,
.home-map-intro__text,
.home-map-intro__quote,
.home-map-intro__cta,
.home-map-intro__deco {
  position: relative;
  z-index: 1;
}
.home-map-intro__title,
.home-map-intro__text,
.home-map-intro__quote {
  color: #815583;
}
.home-map-intro__title {
  margin: 0 0 18px;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.3;
}
.home-map-intro__text,
.home-map-intro__quote {
  margin: 0 0 13px;
  font-size: 25px;
  font-weight: 300;
  line-height: 1.3;
}
.home-map-intro__quote { margin-bottom: 0; }

.home-map-intro__cta {
  margin: 36px 0 0;
}
.home-map-intro__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 500px;
  width: 300px;
  padding: 15px;
  color: white;
  text-decoration: none;
  background-color: #815583;
  border: none;
  border-radius: 20px;
  cursor: pointer;
  transition: background-color 0.2s ease;
  box-sizing: border-box;
}
.home-map-intro__btn:hover {
  background-color: #7a527b;
}
.home-map-intro__btn:focus-visible {
  outline: 2px solid #815583;
  outline-offset: 2px;
}

.home-map-intro__deco {
  margin-top: 24px;
  text-align: center;
}
.home-map-intro__img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

/* map_intro на планшетах: вертикальные отступы как на PC */
@media (max-width: 768px) {
  .home-map-intro { padding: 24px 20px; }
  .home-map-intro__inner { padding: 0 20px; }
  .home-map-intro__title { font-size: 28px; margin-bottom: 18px; }
  .home-map-intro__text,
  .home-map-intro__quote { font-size: 25px; margin-bottom: 13px; }
  .home-map-intro__cta { margin-top: 36px; }
  .home-map-intro__btn { width: 300px; padding: 15px; }
  .home-map-intro__deco { margin-top: 24px; }
  /* Цветы: на 20% ближе к центру на планшетах; правый по высоте как на мобильном */
  .home-map-intro__flowers-left { left: -82px; }
  .home-map-intro__flowers-right { right: -82px; top: 60%; }
  .home-map-intro__flowers-left,
  .home-map-intro__flowers-right { max-height: 85%; }
}
/* map_intro на мобильных: больше padding-top, чтобы пространство над заголовком как в market_intro */
@media (max-width: 480px) {
  .home-map-intro { padding: 48px 12px 24px; min-height: 400px; }
  .home-map-intro__inner { padding: 0 16px; }
  .home-map-intro__title { font-size: 28px; margin-bottom: 18px; }
  .home-map-intro__text,
  .home-map-intro__quote { font-size: 25px; margin-bottom: 13px; }
  .home-map-intro__cta { margin-top: 36px; }
  .home-map-intro__btn { width: min(300px, calc(100vw - 24px)); padding: 15px; }
  .home-map-intro__deco { margin-top: 24px; }
  .home-map-intro__flowers-left { left: -102px; }
  .home-map-intro__flowers-right { right: -66px; top: 60%; transform: translateY(-50%) rotate(-50deg) scaleX(-1); }
  .home-map-intro__flowers-left,
  .home-map-intro__flowers-right { max-height: 80%; }
}

/* === Секция home: market_intro (Рыночная площадь), фон #F4EEE9, высота 720px, Sets_01 + кнопка + Flowers_03 === */
/* padding-top больше, чем у map_intro: контент выше, при flex center сверху остаётся меньше места — компенсируем */
.market-intro {
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: 720px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 16px 24px;
  background-color: #F4EEE9;
  overflow: hidden;
  flex-shrink: 0;
}

.market-intro__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 856px;
  margin: 0 auto;
  padding: 0 24px;
  font-family: "TildaSans", "Tilda Sans", sans-serif;
}

/* Текст поверх фоновых картинок (декор цветка) */
.market-intro__title,
.market-intro__text {
  position: relative;
  z-index: 1;
  color: #815583;
  text-align: center;
}

.market-intro__title {
  margin: 0 0 18px;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.3;
}

.market-intro__text {
  margin: 0 0 13px;
  font-size: 25px;
  font-weight: 300;
  line-height: 1.3;
}

.market-intro__text:last-of-type {
  margin-bottom: 0;
}

/* Блок с картинкой Sets_01, кнопкой и цветком: отступ сверху как у cta в map_intro (36px) */
.market-intro__visual {
  position: relative;
  width: 100%;
  min-height: 320px;
  margin-top: 36px;
}

/* Картинка Sets_01: по центру со смещением 15% влево по X, может уезжать за край на узких экранах */
.market-intro__sets {
  display: block;
  width: 615px;
  height: 410px;
  max-width: none;
  object-fit: contain;
  position: relative;
  left: 35%;
  transform: translateX(-50%);
}

/* Цветок Flowers_03: за кнопкой (z-index ниже), нижняя часть за кнопкой, ближе к правому краю кнопки */
.market-intro__flower {
  position: absolute;
  right: 22%;
  bottom: 24px;
  width: 114px;
  height: 143px;
  object-fit: contain;
  z-index: 0;
  transform: rotate(15deg);
}

/* Кнопка: поверх картинки, ближе к низу, смещена по X на 50% */
.market-intro__cta {
  position: absolute;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  margin: 0;
  z-index: 1;
}

.market-intro__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 500px;
  width: 300px;
  padding: 15px;
  color: white;
  text-decoration: none;
  background-color: #815583;
  border: none;
  border-radius: 20px;
  cursor: pointer;
  transition: background-color 0.2s ease;
  box-sizing: border-box;
}

.market-intro__btn:hover {
  background-color: #7a527b;
}

.market-intro__btn:focus-visible {
  outline: 2px solid #815583;
  outline-offset: 2px;
}

/* Фоновый декор (цветок в левом верхнем углу, по аналогии со звёздами в intro) */
.market-intro__deco-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  pointer-events: none;
}

.market-intro__deco-left {
  position: absolute;
  left: calc(-20px - 10%);
  top: -30px;
  width: 122px;
  height: 191px;
  transform: rotate(40deg);
  object-fit: contain;
}

/* Нитка Thread_03 ниже кнопки по центру — как в map_intro */
.market-intro__deco {
  margin-top: 24px;
  text-align: center;
}

.market-intro__thread {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

@media (max-width: 768px) {
  .market-intro { min-height: 640px; padding: 48px 20px 24px; }
  .market-intro__inner { padding: 0 20px; }
  .market-intro__title { font-size: 28px; margin-bottom: 18px; }
  .market-intro__text { font-size: 25px; margin-bottom: 13px; }
  .market-intro__text:last-of-type { margin-bottom: 0; }
  .market-intro__sets { width: 100%; max-width: 615px; height: auto; left: 35%; }
  .market-intro__cta { bottom: 24px; left: 50%; }
  .market-intro__btn { width: 300px; padding: 15px; }
  .market-intro__flower { right: 18%; bottom: 24px; width: 90px; height: auto; }
  .market-intro__deco { margin-top: 24px; }
}

@media (max-width: 480px) {
  .market-intro { min-height: 560px; padding: 48px 12px 24px; }
  .market-intro__inner { padding: 0 16px; }
  .market-intro__title { font-size: 28px; margin-bottom: 18px; }
  .market-intro__text { font-size: 25px; margin-bottom: 13px; line-height: 1.3; }
  .market-intro__text:last-of-type { margin-bottom: 0; }
  .market-intro__visual { min-height: 260px; }
  .market-intro__sets { left: 30%; width: 120%; max-width: none; }
  .market-intro__cta { left: 50%; bottom: 24px; transform: translateX(-50%); }
  .market-intro__btn { width: min(300px, calc(100vw - 24px)); padding: 15px; }
  .market-intro__flower { right: 12%; bottom: 24px; width: 70px; }
  .market-intro__deco-left { left: calc(-20px - 25%); }
  .market-intro__deco { margin-top: 24px; }
}

/* === Секция home: craft_promo (Крафт у Вереска), белый фон, min-height 800px, декор Craft_promo справа === */
.home-craft {
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: 800px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 55px 16px 64px;
  background-color: #fff;
  overflow: hidden;
  flex-shrink: 0;
}

/* Только декор (картинка): фиксированная ширина 856px, при сужении окна обрезается краем */
.home-craft__inner {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 856px;
  min-height: 100%;
  z-index: 0;
  pointer-events: none;
}

/* Текст: по ширине экрана (max-width 856px), не обрезается */
.home-craft__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 856px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
  font-family: "TildaSans", "Tilda Sans", sans-serif;
}

/* Фоновый декор: картинка справа, ниже текста по z-index */
.home-craft__deco {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  pointer-events: none;
}

/* Картинка: scale(0.81), right -25%, bottom 13%; при сужении экрана обрезается краем */
.home-craft__promo-img {
  position: absolute;
  right: -25%;
  bottom: 13%;
  width: auto;
  height: auto;
  display: block;
  transform: scale(0.81);
  transform-origin: right bottom;
}

/* Текст поверх декора (content уже z-index: 1; явно задаём для ясности) */
.home-craft__title,
.home-craft__text,
.home-craft__list,
.home-craft__quote {
  position: relative;
  z-index: 1;
}

.home-craft__title {
  margin: 0 0 54px;
  font-size: 45px;
  font-weight: 300;
  line-height: 1.2;
  color: #815583;
  text-align: center;
}

.home-craft__text {
  margin: 0 0 46px;
  font-size: 25px;
  font-weight: 300;
  line-height: 1.35;
  color: #815583;
  text-align: center;
}

.home-craft__list {
  list-style: none;
  padding: 0;
  margin: 0 0 64px;
  text-align: left;
}

.home-craft__item {
  margin-bottom: 24px;
  font-size: 25px;
  font-weight: 300;
  line-height: 1.45;
  color: #815583;
}

.home-craft__item:last-child {
  margin-bottom: 0;
}

.home-craft__item-title {
  display: block;
  margin-bottom: 5px;
  font-weight: 400;
}

.home-craft__item-desc {
  display: block;
}

.home-craft__quote {
  margin: 55px 0 0;
  font-size: 25px;
  font-weight: 300;
  line-height: 1.4;
  color: #815583;
  text-align: center;
}

/* craft_promo: те же вертикальные отступы на всех экранах (+15% от исходных) */
@media (max-width: 768px) {
  .home-craft { min-height: 720px; padding: 55px 20px 64px; }
  .home-craft__content { padding: 0 20px; }
  .home-craft__title { font-size: 45px; margin-bottom: 54px; }
  .home-craft__text { font-size: 25px; margin-bottom: 46px; }
  .home-craft__item { font-size: 25px; margin-bottom: 24px; }
  .home-craft__list { margin-bottom: 64px; }
  .home-craft__quote { font-size: 25px; margin-top: 55px; }
}

@media (max-width: 480px) {
  .home-craft { min-height: 680px; padding: 55px 12px 64px; }
  .home-craft__content { padding: 0 16px; }
  .home-craft__title { font-size: 45px; margin-bottom: 54px; }
  .home-craft__text { font-size: 25px; margin-bottom: 46px; }
  .home-craft__item { font-size: 25px; margin-bottom: 24px; }
  .home-craft__list { margin-bottom: 64px; }
  .home-craft__quote { font-size: 25px; margin-top: 55px; }
}

/* === Секция home: points («Почему в деревню возвращаются?»), белый фон, декор: цветы, звёзды, нитка === */
.home-points {
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: 1145px;
  padding: 80px 16px 40px;
  background-color: #fff;
  overflow: hidden;
  flex-shrink: 0;
}

/* Обёртка: сдвигаем заголовок, список и декор (нитка) вместе на одно и то же количество пикселей */
.home-points__content-wrap {
  position: relative;
  transform: translateY(32px);
}

.home-points__deco {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  pointer-events: none;
}

/* Декор points: одни и те же смещения на всех экранах (в пикселях от ширины inner 856px) */
.home-points__flower-tl {
  position: absolute;
  top: 24px;
  left: -205px;
  width: 114px;
  height: 143px;
  object-fit: contain;
  transform: rotate(65deg);
}

.home-points__flower-tr {
  position: absolute;
  top: calc(24px + 5%);
  right: -163px;
  width: 102px;
  height: 173px;
  object-fit: contain;
  transform: rotate(-30deg);
}

.home-points__stars-bl {
  position: absolute;
  bottom: calc(24px + 5%);
  left: -240px;
  width: 108px;
  height: 136px;
  object-fit: contain;
}

.home-points__stars-br {
  position: absolute;
  bottom: calc(24px + 20%);
  right: -154px;
  width: 62px;
  height: 77px;
  object-fit: contain;
}

.home-points__thread {
  position: absolute;
  left: 51%;
  top: 53%;
  transform: translate(-50%, -50%);
  width: 1003px;
  height: 894px;
  min-width: 1003px;
  min-height: 894px;
  object-fit: none;
  object-position: center;
  opacity: 0.85;
}

@media (max-width: 600px) {
  .home-points__thread { display: none; }
}

.home-points__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 856px;
  margin: 0 auto;
  padding: 0 24px;
  font-family: "TildaSans", "Tilda Sans", sans-serif;
}

/* Текст поверх декора (звёзды, цветы) по z-index; расположение не меняем */
.home-points__title,
.home-points__list {
  position: relative;
  z-index: 1;
}

.home-points__title {
  margin: 0 0 56px;
  font-size: 45px;
  font-weight: 200;
  line-height: 1.2;
  color: #815583;
  text-align: center;
}

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

.home-points__item {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  margin-bottom: 32px;
}

.home-points__item:last-child {
  margin-bottom: 0;
}

.home-points__icon {
  flex-shrink: 0;
  width: 145px;
  height: 137px;
  object-fit: contain;
  display: block;
}

.home-points__text {
  flex: 1;
  min-width: 0;
  text-align: left;
}

.home-points__item-title {
  margin: 0 0 8px;
  font-size: 28px;
  font-weight: 300;
  line-height: 1.3;
  color: #815583;
  text-align: left;
}

.home-points__item-desc {
  margin: 0;
  font-size: 20px;
  font-weight: 300;
  line-height: 1.45;
  color: #815583;
  text-align: left;
}

/* points: при ширине < 900px двигаем иконки к краю (40% за экран), текст сдвигаем на столько же — расстояние между ними сохраняется */
@media (max-width: 900px) {
  .home-points__icon { transform: translateX(-40%); }
  .home-points__text { transform: translateX(-58px); } /* 40% от ширины иконки 145px */
}

/* points на планшетах: иконка/текст наследуют сдвиг 40% / 58px из (max-width: 900px) */
@media (max-width: 768px) {
  .home-points { padding: 64px 16px 36px; }
  .home-points__inner { padding: 0 20px; }
  .home-points__content-wrap { transform: translateY(28px); }
  .home-points__title { font-size: 45px; margin-bottom: 44px; }
  .home-points__item { gap: 20px; margin-bottom: 28px; }
  .home-points__item-title { font-size: 28px; }
  .home-points__item-desc { font-size: 20px; }
}

/* points на мобильных: иконки над текстом по центру, текст по центру; угловые картинки на 40% ближе к центру по X */
@media (max-width: 480px) {
  .home-points { padding: 50px 12px 32px; }
  .home-points__inner { padding: 0 16px; max-width: 100%; box-sizing: border-box; }
  .home-points__content-wrap { transform: translateY(22px); }
  .home-points__title { font-size: 45px; margin-bottom: 32px; }
  .home-points__item { flex-direction: column; align-items: center; gap: 12px; margin-bottom: 24px; width: 100%; }
  .home-points__list { padding-bottom: 60px; }
  .home-points__item-title { font-size: 28px; text-align: center; }
  .home-points__item-desc { font-size: 20px; text-align: center; }
  .home-points__icon { transform: translateX(-15px); align-self: center; }
  .home-points__text { transform: none; text-align: center; width: 100%; box-sizing: border-box; }
  .home-points__flower-tl { left: -98px; }
  /* Нижние звёзды: ближе к центру, чтобы не обрезались (inner уже узкий на мобильных) */
  .home-points__stars-bl { left: calc(-30px - 10%); }
  .home-points__stars-br { right: -30px; }
}

.home-map-intro + main { margin-top: 0; padding-top: 24px; }
.home-intro + main { margin-top: 0; padding-top: 24px; }
@media (max-width: 768px) {
  .home-intro + main { padding-top: 28px; }
}
@media (max-width: 480px) {
  .home-intro + main { padding-top: 24px; }
}

.logo { font-weight: 700; text-decoration: none; }
.nav a { margin-right: 12px; text-decoration: none; }
.btn { padding: 8px 12px; border: 1px solid #ddd; border-radius: 8px; }

/* === UV Footer (из uv-footer.css, фон локально) === */
:root {
  --uv-footer-height: 115px;
  --uv-footer-bg-color: #8a758a;
  --uv-footer-gap: 50px;
  --uv-footer-maxw: 1000px;
  --uv-footer-font-size: 16px;
  --uv-footer-font-weight: 300;
  --uv-footer-line-height: 1.25;
  --uv-footer-bg-url: url("/assets/images/Footer_BG.png");
  --uv-footer-bg-width: 1251px;
  --uv-footer-bg-height: 115px;
}
.uv-sr-only {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
#uv-forum-footer {
  position: relative; width: 100%; height: var(--uv-footer-height);
  background-color: var(--uv-footer-bg-color);
  background-image: var(--uv-footer-bg-url);
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: var(--uv-footer-bg-width) var(--uv-footer-bg-height);
  display: flex; align-items: center; justify-content: center;
  box-sizing: border-box; padding: 12px 20px; z-index: 10;
}
#uv-forum-footer .uv-footer-inner {
  width: 100%; max-width: var(--uv-footer-maxw);
  display: grid; grid-template-columns: 1fr 1fr;
  align-items: start; justify-items: start; gap: var(--uv-footer-gap);
}
#uv-forum-footer .uv-footer-col {
  font-family: "TildaSans", "Tilda Sans", "TildaSans-Light", Inter, Arial, sans-serif;
  font-weight: var(--uv-footer-font-weight);
  font-size: var(--uv-footer-font-size);
  line-height: var(--uv-footer-line-height);
  color: #fff;
}
#uv-forum-footer .uv-footer-links { list-style: none; padding: 0; margin: 0; }
#uv-forum-footer .uv-footer-links li { margin: 2px 0; }
#uv-forum-footer a { color: #fff !important; text-decoration: none; }
#uv-forum-footer a:hover,
#uv-forum-footer a:focus { text-decoration: underline; outline: none; }
@media (max-width: 700px) {
  :root { --uv-footer-gap: 24px; }
  #uv-forum-footer { padding: 10px 14px; }
}
@media (max-width: 420px) {
  #uv-forum-footer .uv-footer-inner { justify-items: center; text-align: center; }
}

/* === Единый блок текстовых свойств для всех CTA-кнопок (канон: registration-form) === */
#registration-form button,
#registration-form button.form-element,
#login-form button,
#login-form button.form-element,
#contact-form button,
#contact-form button.form-element,
#password-reset-form button,
#password-reset-form button.form-element,
#new-password-form button[type="submit"],
#new-password-form button[type="submit"].form-element,
#success-message button,
#error-message button,
#confirmation-container button,
.video-btn,
.market-intro__btn,
.home-map-intro__btn,
.registration-actions__btn,
.community-rules__btn,
.page-404__btn {
  font-family: "TildaSans", "Tilda Sans", sans-serif;
  font-size: 16px;
  font-weight: 500;
  text-transform: uppercase;
}
