/* MIVO landing v2 — стилистика референса leinos.in (смотрел скринами 2026-09-25):
   полноэкранный фото-hero с белым центрированным текстом, геометрический дисплей (Montserrat 800)
   + Golos Text в теле, pill-кнопки капсом, кремовый холст, фото-карточки с текстом поверх фото.
   Подключается ТОЛЬКО на лендинге (index.html), внутренние страницы не трогает. */

/* ---------- шапка: прозрачная поверх hero, как у референса ---------- */
.landing .hdr {
  position: fixed; left: 0; right: 0; top: 0;
  background: transparent; border-bottom: 0;
  transition: background .25s ease, box-shadow .25s ease;
}
.landing .hdr.is-solid { background: rgba(250, 248, 244, .97); box-shadow: 0 1px 0 var(--line); backdrop-filter: blur(8px); }
.landing .hdr.is-solid .nav a { color: var(--ink-soft); }
.landing .hdr.is-solid .nav a:hover { color: var(--em-deep); }
.landing .hdr.is-solid .nav a::after { background: var(--em); }
.landing .hdr.is-solid .hdr__cab, .landing .hdr.is-solid .lang__btn { color: var(--ink-soft); }
.landing .hdr.is-solid .lang__btn:hover { background: var(--sand); color: var(--ink); }
.landing .hdr.is-solid .logo__word { color: #0E4F43; text-shadow: none; }
.landing .hdr.is-solid .logo__tag { color: var(--em-deep); }
.landing .hdr.is-solid .logo img { filter: none; }
.landing .hdr.is-solid .burger span { background: var(--ink); }
.landing .hdr.is-solid .burger:hover { background: var(--sand); }
.landing .hdr__in { height: 84px; }
.landing section { scroll-margin-top: 92px; }
/* белые ссылки — только десктоп-бар поверх фото; мобильный drawer остаётся тёмным на белом */
@media (min-width: 1025px) {
  .landing .nav a { color: rgba(255, 255, 255, .92); font-weight: 600; }
  .landing .nav a:hover { color: #fff; }
  .landing .nav a::after { background: #fff; }
}
.landing .hdr__cab { color: rgba(255, 255, 255, .92); }
.landing .hdr__cab:hover { color: #fff; }
.landing .hdr__cab svg { fill: currentColor; }
.landing .lang__btn { color: rgba(255, 255, 255, .92); }
.landing .lang__btn:hover { background: rgba(255, 255, 255, .16); color: #fff; }
.landing .lang__btn svg { fill: currentColor; }
.landing .city { display: none; } /* город дублируется в drawer и в hero-eyebrow */
.landing .burger span { background: #fff; }
.landing .burger:hover { background: rgba(255, 255, 255, .16); }
/* логотип на фото: белый бокс-плашка, как лого-бокс референса */
.landing .logo img { filter: drop-shadow(0 2px 8px rgba(0, 0, 0, .35)); }
.landing .logo__word { color: #fff; text-shadow: 0 2px 10px rgba(0, 0, 0, .35); }
.landing .logo__tag { color: rgba(255, 255, 255, .85); }

/* ---------- hero: фото во весь экран, текст по центру поверх ---------- */
.landing .hero {
  min-height: max(100svh, 680px);
  padding: 7.5rem 0 4.5rem;
  background: var(--ink);
  align-content: center;
}
.landing .hero::before { display: none; }
.landing .hero__grid {
  grid-template-columns: minmax(0, 1fr);
  justify-items: center; text-align: center; gap: 0;
}
.landing .hero__left { position: relative; z-index: 1; width: 100%; display: grid; justify-items: center; }
.landing .hero__media {
  position: absolute; inset: 0; z-index: 0; overflow: hidden;
}
.landing .hero__media img {
  width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover;
  border-radius: 0; box-shadow: none;
}
/* scrim: читаемость белого текста на любом фото */
.landing .hero__media::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(16, 24, 21, .55) 0%, rgba(16, 24, 21, .25) 34%, rgba(16, 24, 21, .38) 68%, rgba(16, 24, 21, .62) 100%);
}
.landing .eyebrow {
  color: #fff; font-size: .82rem; font-weight: 800;
  letter-spacing: .22em; text-transform: uppercase;
  text-shadow: 0 1px 8px rgba(0, 0, 0, .45);
}
.landing .hero h1 {
  color: #fff; font-family: "Montserrat", var(--font-head); font-weight: 800;
  font-size: clamp(2.9rem, 1.6rem + 4.6vw, 5.2rem);
  line-height: 1.02; letter-spacing: -.02em;
  text-shadow: 0 2px 22px rgba(0, 0, 0, .38);
  max-width: 20ch;
}
.landing .hero__sub {
  color: rgba(255, 255, 255, .94); font-size: 1.12rem; line-height: 1.6;
  max-width: 54ch; margin: 1.1rem auto 1.6rem;
  text-shadow: 0 1px 12px rgba(0, 0, 0, .45);
}
/* калькулятор — белая карточка по центру hero: лид считает цену сразу */
.landing .calc {
  width: min(680px, 100%); margin-inline: auto; text-align: left;
  background: rgba(255, 255, 255, .97);
  border-radius: 22px; padding: 1.1rem 1.3rem 1rem;
  box-shadow: 0 24px 60px rgba(10, 16, 13, .35);
}
.landing .calc__head b { font-size: 1.1rem; }
.landing .calc__head { margin-bottom: .7rem; }
.landing .calc__row { gap: .7rem; }
.landing .calc__price strong { font-size: 2.1rem; white-space: nowrap; }

/* ---------- кнопки: pill + капсом, как у референса ---------- */
.landing .btn {
  border-radius: 999px; text-transform: uppercase;
  letter-spacing: .07em; font-size: .88rem; font-weight: 800;
  padding: .8rem 1.6rem; min-height: 50px;
}
.landing .btn--lg { padding: .95rem 2rem; font-size: .95rem; min-height: 56px; }
.landing .btn--outline { border-color: rgba(255, 255, 255, .75); color: #fff; background: transparent; }
.landing .btn--outline:hover { background: rgba(255, 255, 255, .14); }
.landing .calc .btn--outline { border-color: var(--em); color: var(--em-deep); }
.landing .calc .btn--outline:hover { background: var(--em-soft); }

/* ---------- заголовки секций: дисплей + центрированный подзаголовок ---------- */
.landing h2 { font-family: "Montserrat", var(--font-head); font-weight: 800; letter-spacing: -.015em; line-height: 1.08; }
 .landing .calc__out { flex-wrap: wrap; align-items: center; } /* GEORGIA-COPY: nowrap сжимал бригаду до столбца символов */
.landing .calc__btns { flex-direction: column; align-items: stretch; gap: .4rem; }
.landing .calc__btns .btn { font-size: .8rem; padding: .65rem 1.1rem; min-height: 44px; letter-spacing: .05em; }
.landing .calc__btns .btn--ghost { min-height: 38px; font-size: .78rem; padding: .45rem 1rem; }
.landing .calc__btns .btn--primary { flex: none; }
.landing .svc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.landing .svc {
  position: relative; overflow: hidden; isolation: isolate;
  display: grid; grid-template-columns: minmax(0, 1fr); align-content: end; gap: .15rem;
  min-height: 240px; padding: 1.2rem 1.2rem 1.1rem;
  border: 0; border-radius: 20px; background: var(--ink);
}
.landing .svc-grid .svc:first-child { grid-column: span 2; grid-row: span 2; min-height: 500px; }
.landing .svc img {
  position: absolute; inset: 0; z-index: -1;
  grid-row: auto; grid-column: auto;
  width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover;
  background: none; border-radius: 0;
  transition: transform .5s cubic-bezier(.22, .8, .3, 1);
}
.landing .svc::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(16, 24, 21, 0) 34%, rgba(16, 24, 21, .78) 100%);
}
.landing .svc:hover img { transform: scale(1.045); }
.landing .svc b { color: #fff; font-size: 1.3rem; font-weight: 800; line-height: 1.2; }
.landing .svc:first-child b { font-size: 1.7rem; }
.landing .svc small { color: var(--honey); font-size: .95rem; font-weight: 800; letter-spacing: .04em; }

/* ---------- цены: популярный тариф — залитая карточка, остальные белые ---------- */
.landing .prow { border-radius: 20px; border-color: transparent; box-shadow: var(--shadow); }
.landing .prow--hit {
  background: var(--em-deep); border-color: var(--em-deep);
  box-shadow: 0 18px 44px rgba(11, 75, 59, .28);
}
.landing .prow--hit .prow__name { color: #fff; }
.landing .prow--hit .prow__meta { color: rgba(255, 255, 255, .82); }
.landing .prow--hit .prow__price { color: var(--honey); }
.landing .prow--hit .prow__tag { background: var(--honey); color: var(--ink); }
.landing .prow--hit .btn--primary { background: #fff; color: var(--em-deep); }
.landing .prow--hit .btn--primary:hover { background: var(--sand); }
.landing .prow__name { font-family: "Montserrat", var(--font-head); font-weight: 800; font-size: 1.2rem; }
.landing .prow__price { font-family: "Montserrat", var(--font-head); font-weight: 800; }

/* ---------- допы: название читается по словам, цена отдельной строкой ---------- */
/* причина дефекта: цена с white-space:nowrap стояла в одном ряду с названием и своим
   auto-треком сжимала трек имени до посимвольного переноса; цена уезжает на свою строку */
.landing .ext {
  background: var(--paper); border-radius: 16px; min-height: 0;
  grid-template-columns: 64px minmax(0, 1fr) auto; padding: .8rem 1rem;
  align-items: center; row-gap: .2rem;
}
.landing .ext img { width: 64px; background: var(--cream, var(--sand)); border-radius: 12px; }
.landing .ext b { grid-column: 2; grid-row: 1; font-size: 1.05rem; overflow-wrap: break-word; }
.landing .ext span { grid-column: 2; grid-row: 2; font-size: 1.05rem; white-space: normal; overflow-wrap: break-word; }
.landing .ext .chev { grid-column: 3; grid-row: 1 / 3; }
/* узкий экран: иконка меньше, чтобы имени оставалось больше места */
@media (max-width: 480px) {
  .landing .ext { grid-template-columns: 56px minmax(0, 1fr) auto; }
  .landing .ext img { width: 56px; }
}

/* ---------- состав уборки: фото крупное, табы-подчёркивания ---------- */
.landing .inside__media img, .landing .inside__photo img { border-radius: 20px; }
.landing .inside__tab { border-radius: 999px; }

/* ---------- подписка и финальный CTA: плоский глубокий изумруд ---------- */
.landing .subscr, .landing .cta { background: var(--em-deep); }
.landing .subscr h2, .landing .cta h2 { color: #fff; }
/* периодичность и степперы — pill, как у референса */
.landing .freq__btn { border-radius: 999px; }
.landing .step { border-radius: 999px; }
/* «что входит» — тёплая плашка вместо синей */
.landing .ptable__inc { background: var(--sand); border-color: transparent; }
/* открытое мобильное меню: шапка плотная, тёмные иконки поверх drawer */
body.landing.nav-open .hdr { background: rgba(250, 248, 244, .97); }
body.landing.nav-open .nav a { color: var(--ink-soft); }
body.landing.nav-open .nav a.nav__msg { color: var(--em-deep); }
body.landing.nav-open .logo__word { color: #0E4F43; text-shadow: none; }
body.landing.nav-open .logo__tag { color: var(--em-deep); }
body.landing.nav-open .logo img { filter: none; }
body.landing.nav-open .burger span { background: var(--ink); }
body.landing.nav-open .lang__btn, body.landing.nav-open .hdr__cab { color: var(--ink-soft); }

/* ---------- телефон ---------- */
@media (max-width: 1024px) {
  .landing .hdr { background: transparent; }
  .landing .hero { padding: 6.5rem 0 3.5rem; }
  .landing .svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .landing .svc-grid .svc:first-child { grid-column: span 2; grid-row: span 1; min-height: 320px; }
  .landing .svc { min-height: 200px; }
}
@media (max-width: 620px) {
  .landing .hero h1 { font-size: clamp(2.2rem, 8vw, 3rem); }
  .landing .calc { padding: 1rem 1rem .9rem; }
  .landing .svc-grid { grid-template-columns: 1fr; }
  .landing .svc-grid .svc:first-child { grid-column: span 1; }
  .landing .prow { grid-template-columns: 1fr; }
  /* волна 25 paste-22: мобильная шапка лендинга в один ряд — перебиваем .landing .btn и
     height:84px локально, иначе CTA 50px и перенос второй строки за фон */
  .landing .hdr__in { height: auto; min-height: 56px; }
  .landing .hdr .wrap { flex-wrap: nowrap; row-gap: 0; }
  .landing .hdr__right .btn--primary { min-height: 40px; padding: .45rem .7rem; font-size: .78rem; letter-spacing: .05em; }
  .landing .logo img { width: 34px; height: 34px; }
  .landing .logo__word { font-size: .98rem; }
  .landing .logo__tag { font-size: .55rem; }
}
@media (prefers-reduced-motion: reduce) {
  .landing .svc:hover img { transform: none; }
}

/* GEORGIA-COPY: Montserrat без грузинских глифов — в ka строки рвутся метрикой; Noto первым */
html[lang="ka"] .landing .hero h1,
html[lang="ka"] .landing h2,
html[lang="ka"] .landing .prow__name,
html[lang="ka"] .landing .prow__price { font-family: "Noto Sans Georgian", system-ui, sans-serif; }
