/* ===========================
   RESET & BASE
=========================== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  font-family: 'EB Garamond', Georgia, serif;
  background: #fff;
  color: #333;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img {
  display: block;
  max-width: 100%;
}

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

/* ===========================
   VARIABLES  (mobile base)
=========================== */
:root {
  --blue: #5c8099;
  --blue-dim: rgba(92, 127, 153, 0.25);
  --text: #333;
  --yandex: #ff4433;
  --gis: #19aa1e;
  --gap-section: 100px;
  --padding-x: 22px;
}

/* ===========================
   CONTAINER
=========================== */
.container {
  width: 100%;
  padding-left: var(--padding-x);
  padding-right: var(--padding-x);
  margin: 0 auto;
}

/* ===========================
   HEADER
=========================== */
.header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
  border-bottom: 1px solid rgba(92, 128, 153, 0.12);
  height: 60px;
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  padding: 0 var(--padding-x);
  gap: 12px;
}

.header__logo {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.header__logo-icon {
  height: 19px;
  width: auto;
  flex-shrink: 0;
}

.header__logo-text {
  font-size: 18px;
  font-weight: 700;
  color: var(--blue);
  white-space: nowrap;
  line-height: 1;
  font-feature-settings: "lnum", "pnum";
}

/* Телефон-текст: скрыт на мобилке, виден на десктопе */
.header__phone {
  display: none;
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
  white-space: nowrap;
  line-height: 1;
  transition: filter 0.18s ease;
}

/* Иконка телефона: видна на мобилке, скрыта на десктопе */
.header__phone-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: filter 0.18s ease;
}

.header__phone-icon img {
  width: 38px;
  height: 38px;
}

/* ===========================
   HOVER / ACTIVE
=========================== */
.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'EB Garamond', Georgia, serif;
  font-weight: 500;
  line-height: 1.4;
  padding: 16px 24px;
  cursor: pointer;
  text-align: center;
  transition: filter 0.18s ease;
}

.btn:hover         { filter: brightness(1.15); }
.btn:active        { filter: brightness(0.9); }

.header__phone:hover,
.header__phone-icon:hover,
.cta__phone:hover,
.link-underline:hover {
  filter: brightness(1.3);
}

.header__phone,
.cta__phone,
.link-underline {
  transition: filter 0.18s ease;
}

/* ===========================
   BUTTONS  (mobile)
=========================== */
.btn--primary {
  background: var(--blue);
  color: #fff;
  font-size: 22px;
  width: 100%;
}

.btn--yandex {
  background: var(--yandex);
  color: #fff;
  font-size: 22px;
  width: 100%;
  text-decoration: underline;
}

.btn--2gis {
  background: var(--gis);
  color: #fff;
  font-size: 22px;
  width: 100%;
  text-decoration: underline;
}

.btn--max {
  background: var(--blue);
  color: #fff;
  font-size: 22px;
  width: 100%;
  min-height: 72px;
}

/* ===========================
   CAROUSEL  (mobile)
=========================== */
.carousel-wrapper {
  display: flex;
  flex-direction: column;
  gap: 8px; /* ← расстояние между фото и точками */
}

.carousel {
  width: 100%;
  overflow: hidden;
  position: relative;
  user-select: none;
  cursor: grab;
}

.carousel.is-dragging { cursor: grabbing; }

.carousel__track {
  display: flex;
  transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.carousel__slide {
  flex: 0 0 100%;
  min-width: 0;
}

.carousel__slide img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  pointer-events: none;
  display: block;
}

/* Dots */
.carousel__dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
}

.dot {
  width: 8px;
  height: 8px;
  background: var(--blue-dim);
  border: none;
  transform: rotate(45deg);
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  transition: background 0.2s;
}

.dot--active { background: var(--blue); }

/* ===========================
   HERO  (mobile)
=========================== */
.hero {
  padding-top: 16px;
  margin-bottom: var(--gap-section);
}

.hero .container {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.hero__content {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 32px;
  text-align: center;
}

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

.hero__title {
  font-size: 32px;
  font-weight: 700;
  color: var(--blue);
  line-height: 1.25;
  font-feature-settings: "lnum", "pnum";
}

.hero__subtitle {
  font-size: 22px;
  font-weight: 500;
  color: var(--text);
  line-height: 1.45;
}

/* ===========================
   FEATURES  (mobile)
=========================== */
.features {
  display: flex;
  flex-direction: column;
  gap: 56px;
  margin-bottom: var(--gap-section);
}

.features__item {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.features__value {
  font-size: 32px;
  font-weight: 700;
  color: var(--blue);
  line-height: 1.25;
  font-feature-settings: "lnum", "pnum";
}

.features__desc {
  font-size: 22px;
  font-weight: 500;
  color: var(--text);
  line-height: 1.45;
}

/* ===========================
   NAVIGATOR  (mobile)
=========================== */
.navigator {
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin-bottom: var(--gap-section);
}

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

.navigator__title {
  font-size: 32px;
  font-weight: 700;
  color: var(--blue);
  line-height: 1.25;
  font-feature-settings: "lnum", "pnum";
}

.navigator__desc {
  font-size: 22px;
  font-weight: 500;
  color: var(--text);
  line-height: 1.45;
}

.link-underline { text-decoration: underline; }

.navigator__map {
  width: 100%;
  height: 318px;
  overflow: hidden;
}

.navigator__map img,
.navigator__map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* Кнопки навигатора — стопкой на мобилке */
.navigator__buttons {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* ===========================
   CTA  (mobile)
=========================== */
.cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  text-align: center;
  margin-bottom: var(--gap-section);
}

.cta__texts {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}

.cta__label {
  font-size: 22px;
  font-weight: 500;
  color: var(--text);
  line-height: 1.45;
}

.cta__phone {
  font-size: 40px;
  font-weight: 700;
  color: var(--blue);
  line-height: 1.1;
  font-feature-settings: "lnum", "pnum";
}

/* ===========================
   FOOTER
=========================== */
.footer {
  background: #fff;
  border-top: 1px solid rgba(92, 128, 153, 0.12);
}

.footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 60px;
  padding: 0 var(--padding-x);
  gap: 12px;
}

.footer__copy {
  font-size: 18px;
  font-weight: 500;
  color: var(--text);
}

/* ===========================
   DESKTOP  (≥ 1024px)
=========================== */
@media (min-width: 1024px) {
  :root {
    --gap-section: 150px;
    --padding-x: 140px;
  }

  /* Header */
  .header { height: 88px; }

  .header__inner { padding: 0 var(--padding-x); }

  .header__logo-icon { height: 30px; }

  .header__logo-text { font-size: 32px; }

  .header__logo { gap: 16px; }

  /* Показываем текст телефона, прячем иконку */
  .header__phone      { display: block; font-size: 32px; }
  .header__phone-icon { display: none; }

  /* Carousel */
  .carousel__slide img { height: 560px; }

  .dot { width: 16px; height: 16px; }
  .carousel__dots { padding: 16px 0; gap: 10px; }

  /* Hero */
  .hero { padding-top: 0; }

  .hero .container { gap: 0; }

  .hero__content {
    gap: 48px;
    padding-top: 16px;
    align-items: center;
  }

  .hero__titles { gap: 16px; }

  .hero__title { font-size: 64px; line-height: 1.1; }

  .hero__subtitle { font-size: 28px; }

  .btn--primary {
    font-size: 28px;
    width: 360px;
    padding: 16px 24px;
  }

  /* Features */
  .features {
    flex-direction: row;
    gap: 100px;
  }

  .features__item { flex: 1; gap: 16px; }

  .features__value { font-size: 64px; }

  .features__desc { font-size: 28px; }

  /* Navigator */
  .navigator { gap: 34px; }

  .navigator__title { font-size: 64px; }

  .navigator__desc  { font-size: 28px; }

  .navigator__map {
    height: auto;
    aspect-ratio: 16 / 7;
  }

  /* Кнопки навигатора — в ряд на десктопе */
  .navigator__buttons {
    flex-direction: row;
    gap: 34px;
  }

  .btn--yandex,
  .btn--2gis {
    font-size: 28px;
    flex: 1;
    width: auto;
  }

  /* CTA */
  .cta { gap: 56px; }

  .cta__label { font-size: 28px; }

  .cta__phone { font-size: 128px; white-space: nowrap; }

  .btn--max { font-size: 28px; padding: 16px 24px; }

  /* Footer */
  .footer__inner { height: 88px; padding: 0 var(--padding-x); }

  .footer__copy { font-size: 28px; }
}

/* ===========================
   WIDE DESKTOP  (≥ 1440px)
=========================== */
@media (min-width: 1440px) {
  :root { --padding-x: 140px; }

  .container,
  .header__inner,
  .footer__inner {
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
  }
}
