/* =========================================================
   ИНЖГЕОТЕХ — основной стиль
   Концепция: «полевой журнал изыскателя» в редакционной подаче.
   Графит + тёплый светлый фон, крупные лёгкие заголовки в два тона,
   тонкие линии-разделители, единственный акцент — сигнальный янтарь
   (каска, тахеометр). Фирменные приёмы: горизонтали, координаты, пикеты.
   Сетка: контейнер 1280 px, 12 колонок, вертикальный ритм 8 px.
   ========================================================= */

:root {
  /* Цвет */
  --ink: #0e151c;          /* основной тёмный фон */
  --ink-2: #131c25;        /* тёмные карточки */
  --ink-3: #1a2530;        /* подложки, заглушки фото */
  --line-d: rgba(226, 232, 240, .12);
  --paper: #f3f1ec;        /* светлые секции, тёплая бумага */
  --white: #fbfaf7;
  --text: #141b22;
  --muted: #626970;
  --muted-d: #9ba7b6;
  --amber: #e8a33d;        /* акцент: каска, тахеометр */
  --amber-2: #f3b75a;
  --amber-ink: #1d1406;
  --line: #dcd7cc;
  --danger: #d9534f;
  --ok: #2f9e6b;

  /* Типографика */
  --f-display: "Geologica", "Golos Text", system-ui, sans-serif;
  --f-body: "Golos Text", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

  /* Размеры */
  --container: 90vw;        /* ширина контента — 90% экрана на всех устройствах */
  --gutter: 5vw;
  --r: 2px;
  --r-lg: 4px;
  --sec-y: clamp(64px, 8vw, 112px);
  --hdr-h: 76px;
}

/* ---------- База ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--hdr-h) + 12px); -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font: 400 16px/1.6 var(--f-body);
  color: var(--text);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
button { font: inherit; color: inherit; cursor: pointer; }
svg { width: 1em; height: 1em; flex: none; }
h1, h2, h3, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--amber); outline-offset: 3px; }
.mono { font-family: var(--f-mono); }
.muted { color: var(--muted); }
.muted a { color: var(--text); text-decoration-color: var(--amber); text-underline-offset: 3px; }

.wrap {
  width: 100%;
  max-width: calc(var(--container) + var(--gutter) * 2);
  margin-inline: auto;
  padding-left: max(var(--gutter), env(safe-area-inset-left, 0px));
  padding-right: max(var(--gutter), env(safe-area-inset-right, 0px));
}

.skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--amber); color: var(--amber-ink); padding: 8px 14px; border-radius: var(--r); }
.skip:focus { left: 16px; }

/* ---------- Типографика ---------- */
.eyebrow {
  display: flex; align-items: center; gap: 12px;
  font: 600 11px/1.2 var(--f-body);
  letter-spacing: .1em; text-transform: uppercase;
  color: rgba(255,255,255,.5);
  margin-bottom: 24px;
}
.eyebrow span { width: 42px; height: 2px; background: var(--amber); }
.eyebrow--dark { color: var(--muted); }

.h2 {
  font: 400 clamp(34px, 4.3vw, 62px)/1.0 var(--f-display);
  letter-spacing: -.042em;
  text-wrap: balance;
  color: var(--text);
}
.h2 span { display: block; color: rgba(20,27,34,.38); }
.h2--light { color: #f1f3f2; }
.h2--light span { color: rgba(255,255,255,.38); }
.h3 {
  font: 400 clamp(26px, 2.4vw, 34px)/1.08 var(--f-display);
  letter-spacing: -.035em;
  text-wrap: balance;
  margin-bottom: 14px;
}
.h3 span { color: rgba(20,27,34,.38); }
.lead { margin-top: 22px; max-width: 58ch; color: var(--muted); font-size: 16.5px; line-height: 1.58; }

/* ---------- Кнопки ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 8px 0 22px; gap: 18px;
  border: 1px solid transparent; border-radius: var(--r);
  font: 500 14.5px/1.2 var(--f-body); letter-spacing: -.005em;
  text-decoration: none; white-space: nowrap;
  transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.btn svg { width: 34px; height: 34px; padding: 9px; border-radius: var(--r); background: rgba(0,0,0,.14); transition: transform .25s; }
.btn:hover svg { transform: rotate(-45deg); }
.btn--sm { min-height: 46px; padding: 0 6px 0 18px; font-size: 14px; gap: 14px; }
.btn--sm svg { width: 32px; height: 32px; padding: 8px; }
.btn--ghost svg, .btn--line svg { background: rgba(255,255,255,.1); }
.btn--ghost:not(:has(svg)) { padding-right: 22px; }
.btn--block { width: 100%; }
.btn { max-width: 100%; }
@media (max-width: 720px) { .btn { white-space: normal; text-align: left; } .btn svg { flex: none; } }
.btn--amber { background: var(--amber); color: var(--amber-ink); }
.btn--amber:hover { background: var(--amber-2); }
.btn--ghost { border-color: rgba(255,255,255,.4); color: var(--white); background: rgba(13,20,29,.35); }
.btn--ghost:hover { border-color: var(--white); background: rgba(255,255,255,.08); }
.btn--line { border-color: var(--amber); color: var(--white); }
.btn--line:hover { background: var(--amber); color: var(--amber-ink); }

.link-more { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; text-decoration: none; white-space: nowrap; }
.link-more svg { color: var(--amber); font-size: 18px; transition: transform .2s; }
.link-more:hover svg { transform: translateX(4px); }

.arrow {
  display: inline-grid; place-items: center;
  width: 34px; height: 34px; border-radius: var(--r);
  background: var(--amber); color: var(--amber-ink);
  font-size: 17px; flex: none;
  transition: transform .2s;
}

/* ---------- Заглушки фотографий ---------- */
/* Пока фото не загружено, показываем тёмную подложку с горизонталями и подписью,
   что за кадр должен стоять. Как только файл появится — img перекроет подложку. */
.ph {
  position: relative; overflow: hidden;
  background-color: var(--ink-3);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='160' viewBox='0 0 240 160'%3E%3Cg fill='none' stroke='%23e8a33d' stroke-opacity='.18'%3E%3Cpath d='M-10 120c40-30 70 10 110-20s60-40 90-10 50 20 60 10'/%3E%3Cpath d='M-10 95c40-30 70 10 110-20s60-40 90-10 50 20 60 10'/%3E%3Cpath d='M-10 70c40-30 70 10 110-20s60-40 90-10 50 20 60 10'/%3E%3Cpath d='M-10 45c40-30 70 10 110-20s60-40 90-10 50 20 60 10'/%3E%3Cpath d='M-10 145c40-30 70 10 110-20s60-40 90-10 50 20 60 10'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 240px 160px;
}
.ph::before {
  content: attr(data-ph);
  position: absolute; inset: 10px;
  display: grid; place-items: center; text-align: center;
  padding: 12px;
  border: 1px dashed rgba(232,163,61,.45); border-radius: 4px;
  font: 500 11px/1.4 var(--f-mono); letter-spacing: .04em;
  color: rgba(232,163,61,.85);
}
.ph > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }

/* ---------- Шапка ---------- */
.hdr {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  padding-top: env(safe-area-inset-top, 0px);
  color: var(--white);
  transition: background .25s, box-shadow .25s;
}
.hdr.is-solid, .hdr.is-open { background: rgba(13,20,29,.96); box-shadow: 0 1px 0 var(--line-d); backdrop-filter: blur(8px); }
.hdr__in { display: flex; align-items: center; gap: 28px; height: var(--hdr-h); }

.logo { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; flex: none; }
.logo__mark { width: 38px; height: 42px; }
.logo__txt { display: flex; flex-direction: column; line-height: 1.1; }
.logo__txt b { font: 600 17px/1.1 var(--f-display); letter-spacing: .01em; }
.logo__txt small { font-size: 11px; color: var(--muted-d); letter-spacing: .04em; margin-top: 3px; }

/* Меню-«капсула»: тонкая рамка, стекло, скользящая подложка за пунктами */
.nav {
  position: relative; display: flex; align-items: center; gap: 2px; margin-inline: auto;
  padding: 5px; border: 1px solid rgba(255,255,255,.1); border-radius: 999px;
  background: rgba(255,255,255,.035); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.nav__pill {
  position: absolute; z-index: 0; left: 0; top: 5px; bottom: 5px; width: 0; border-radius: 999px;
  background: rgba(255,255,255,.1); box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  opacity: 0; pointer-events: none;
  transition: transform .4s cubic-bezier(.3,.8,.2,1), width .4s cubic-bezier(.3,.8,.2,1), opacity .25s;
}
.nav__pill.is-on { opacity: 1; }
.nav__link {
  position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 16px; border: 0; background: none; border-radius: 999px;
  font-size: 14.5px; font-weight: 500; color: rgba(223,229,236,.78); text-decoration: none; white-space: nowrap;
  transition: color .25s;
}
@media (max-width: 1360px) and (min-width: 1081px) { .nav__link { padding-inline: 11px; font-size: 14px; } .hdr__in { gap: 18px; } }
.nav__link:hover, .nav__link[aria-expanded="true"], .nav__link.is-cur { color: #fff; }
.nav__link svg { font-size: 14px; transition: transform .25s; }
.nav__link[aria-expanded="true"] svg { transform: rotate(180deg); }
.nav__item { position: relative; }

.mega {
  position: absolute; top: calc(100% + 20px); left: -30px;
  display: grid; grid-template-columns: 1.1fr 1.1fr .9fr; gap: 8px;
  width: min(880px, 80vw); padding: 12px;
  background: var(--white); color: var(--text);
  border-radius: var(--r-lg); box-shadow: 0 24px 60px rgba(5,10,16,.35);
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .2s, transform .2s, visibility .2s;
}
.nav__item--mega.is-open .mega { opacity: 1; visibility: visible; transform: none; }
.mega__col { display: flex; flex-direction: column; padding: 16px; gap: 2px; }
.mega__col a { padding: 6px 0; font-size: 14.5px; text-decoration: none; color: var(--muted); }
.mega__col a:hover { color: var(--text); }
.mega__col .mega__head { font-weight: 800; color: var(--text); font-size: 15px; margin-bottom: 6px; }
.mega__col--accent { background: var(--paper); border-radius: var(--r); }
.mega__col--accent p { font-size: 14px; color: var(--muted); margin-bottom: 16px; }
.mega__col .mega__cta { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; color: #b67516; font-weight: 700; }

.hdr__contact { display: flex; align-items: center; gap: 20px; flex: none; }
.hdr__phone { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.hdr__phone svg { font-size: 20px; color: var(--amber); }
.hdr__phone span { display: flex; flex-direction: column; line-height: 1.15; }
.hdr__phone b { font-size: 16px; font-weight: 800; white-space: nowrap; }
.hdr__phone small { font-size: 11.5px; color: var(--muted-d); }

.burger { display: none; margin-left: auto; width: 48px; height: 48px; border: 1px solid var(--line-d); border-radius: var(--r); background: transparent; color: var(--white); place-items: center; font-size: 24px; }

/* Мобильное меню */
.mnav {
  position: fixed; inset: 0; z-index: 60;
  display: flex; flex-direction: column;
  background: var(--ink); color: var(--white);
  padding: env(safe-area-inset-top, 0px) max(20px, env(safe-area-inset-right, 0px)) env(safe-area-inset-bottom, 0px) max(20px, env(safe-area-inset-left, 0px));
  overflow-y: auto;
}
.mnav__top { display: flex; align-items: center; justify-content: space-between; height: 72px; border-bottom: 1px solid var(--line-d); }
.mnav__close { width: 48px; height: 48px; border: 1px solid var(--line-d); border-radius: var(--r); background: none; color: var(--white); display: grid; place-items: center; font-size: 22px; }
.mnav__nav { display: flex; flex-direction: column; padding: 12px 0; }
.mnav__nav > a, .mnav__nav summary { display: flex; align-items: center; justify-content: space-between; padding: 16px 0; border-bottom: 1px solid var(--line-d); font: 400 20px/1.3 var(--f-display); letter-spacing: -.02em; text-decoration: none; list-style: none; cursor: pointer; }
.mnav__nav summary::-webkit-details-marker { display: none; }
.mnav__nav summary svg { color: var(--amber); transition: transform .2s; }
.mnav__nav details[open] summary svg { transform: rotate(180deg); }
.mnav__nav details a { display: block; padding: 10px 0 10px 16px; color: var(--muted-d); text-decoration: none; font-size: 15.5px; border-left: 2px solid var(--ink-3); }
.mnav__nav details[open] { padding-bottom: 12px; border-bottom: 1px solid var(--line-d); }
.mnav__nav details[open] summary { border-bottom: 0; }
.mnav__foot { margin-top: auto; padding: 24px 0 32px; display: flex; flex-direction: column; gap: 10px; color: var(--muted-d); font-size: 14px; }
.mnav__phone { color: var(--white); font: 400 26px/1.2 var(--f-display); letter-spacing: -.03em; text-decoration: none; }
.mnav__foot .btn { margin-top: 10px; }

/* ---------- HERO ---------- */
.hero { position: relative; background: var(--ink); color: var(--white); overflow: hidden; isolation: isolate; }
.hero__photo { position: absolute; inset: 0 0 0 38%; z-index: -2; }
.hero__photo::after { /* градиент для читаемости текста */
  content: ""; position: absolute; inset: 0; z-index: 2;
  background: linear-gradient(90deg, var(--ink) 0%, rgba(13,20,29,.7) 22%, rgba(13,20,29,.1) 60%, rgba(13,20,29,.35) 100%),
              linear-gradient(0deg, rgba(13,20,29,.7) 0%, rgba(13,20,29,0) 30%),
              linear-gradient(180deg, rgba(13,20,29,.8) 0%, rgba(13,20,29,0) 24%);
}
.hero__photo::before { inset: auto 24px 140px auto; width: 300px; height: auto; padding: 14px; }
.hero__contours { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; opacity: .5; pointer-events: none; }
.hero__in {
  position: relative;
  display: flex; justify-content: space-between; align-items: flex-start; gap: 32px;
  padding-top: calc(var(--hdr-h) + clamp(48px, 7vw, 104px));
  padding-bottom: clamp(56px, 7vw, 96px);
}
.hero__copy { max-width: 820px; }
.hero__title {
  font: 400 clamp(40px, 5.4vw, 82px)/.96 var(--f-display);
  letter-spacing: -.048em;
  text-wrap: balance;
}
.hero__title em { display: block; font-style: normal; color: rgba(255,255,255,.42); }
.hero__list { margin-top: 28px; font-size: 16.5px; color: rgba(255,255,255,.72); max-width: 50ch; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.hero__trust { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 28px; font-size: 14px; color: var(--muted-d); }
.hero__trust li { display: flex; align-items: center; gap: 8px; }
.hero__trust svg { color: var(--amber); font-size: 17px; }
.hero__tag {
  flex: none; text-align: right; margin-top: 8px;
  font-size: 12px; line-height: 1.7; letter-spacing: .08em; text-transform: uppercase; color: #dfe5ec;
  border-right: 2px solid var(--amber); padding-right: 14px;
}
.hero__tag span { display: block; margin-top: 10px; color: var(--amber); text-transform: none; letter-spacing: .02em; }

/* Цифры */
.stats { position: relative; background: rgba(13,20,29,.92); border-top: 1px solid var(--line-d); backdrop-filter: blur(6px); }
.stats__in { display: grid; grid-template-columns: repeat(4, 1fr); }
.stat { display: flex; align-items: center; gap: 18px; padding: 26px 24px; }
.stat + .stat { border-left: 1px solid var(--line-d); }
.stat:first-child { padding-left: 0; }
.stat > svg { font-size: 30px; color: var(--amber); }
.stat b { display: block; font: 400 clamp(26px, 2.6vw, 36px)/1 var(--f-display); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.stat span { display: block; margin-top: 6px; font-size: 13.5px; color: var(--muted-d); line-height: 1.3; }

/* ---------- Секции ---------- */
.sec { padding-block: var(--sec-y); }
.sec--tight { padding-block: clamp(56px, 6vw, 88px); }
.sec--light { background: var(--paper); }
.sec--white { background: var(--white); }
.sec__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px 40px; margin-bottom: clamp(32px, 4vw, 48px); }
.sec__head > div { min-width: 0; max-width: 760px; }

/* ---------- Услуги ---------- */
.svc { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.svc__card {
  display: flex; flex-direction: column;
  background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden;
  text-decoration: none; color: var(--text);
  transition: transform .25s, box-shadow .25s;
}
.svc__card .ph { aspect-ratio: 4 / 3.2; }
.svc__card .ph::before { font-size: 10px; inset: 8px; }
.svc__body { position: relative; flex: 1; display: flex; flex-direction: column; padding: 16px 16px 60px; }
.svc__code { font-size: 11px; color: #a86a12; letter-spacing: .06em; }
.svc__body h3 { margin-top: 10px; font: 400 17px/1.2 var(--f-display); letter-spacing: -.02em; hyphens: auto; }
.svc__body .arrow { position: absolute; right: 14px; bottom: 14px; }
.svc__card:hover { transform: translateY(-4px); border-color: #c9c2b4; box-shadow: 0 18px 40px rgba(13,20,29,.08); }
.svc__card:hover .arrow { transform: rotate(-45deg); }
.svc__card img { transition: transform .5s; }
.svc__card:hover img { transform: scale(1.04); }

/* ---------- Почему мы ---------- */
.why { position: relative; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); background: var(--paper); color: var(--text); }
.why__photo { min-height: 520px; }
.why__body {
  padding-block: clamp(56px, 6vw, 88px);
  padding-left: clamp(24px, 5vw, 72px);
  padding-right: max(var(--gutter), env(safe-area-inset-right, 0px));
  max-width: 820px;
}
.why__lead { margin-top: 22px; color: var(--muted); max-width: 58ch; }
.why__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 40px; background: var(--line); border-block: 1px solid var(--line); }
.why__grid li { display: flex; flex-direction: column; gap: 16px; padding: 24px 22px 24px 0; background: var(--paper); font-size: 15px; font-weight: 500; line-height: 1.4; }
.why__grid li:not(:nth-child(3n+1)) { padding-left: 22px; }
.why__grid svg { font-size: 26px; color: #b9771a; }
.why__note { margin-top: 28px; font-size: 14.5px; color: var(--muted); padding-left: 16px; border-left: 2px solid var(--amber); }

/* ---------- Объекты ---------- */
.objects { background: var(--ink); color: var(--white); padding-block: var(--sec-y); }
.car-nav { display: flex; gap: 10px; }
.car-btn { width: 52px; height: 52px; border-radius: var(--r); border: 1px solid var(--line-d); background: transparent; color: var(--white); display: grid; place-items: center; font-size: 20px; transition: background .2s, color .2s, border-color .2s; }
.car-btn:hover { background: var(--amber); border-color: var(--amber); color: var(--amber-ink); }
.car {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, 380px); gap: 20px;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  padding-left: max(var(--gutter), calc((100vw - var(--container)) / 2));
  padding-right: max(var(--gutter), calc((100vw - var(--container)) / 2));
  scroll-padding-inline: max(var(--gutter), calc((100vw - var(--container)) / 2));
}
.car::-webkit-scrollbar { display: none; }
.obj { scroll-snap-align: start; display: flex; flex-direction: column; background: var(--ink-2); border: 1px solid var(--line-d); border-radius: var(--r-lg); overflow: hidden; transition: border-color .25s; }
.obj:hover { border-color: rgba(232,163,61,.4); }
.obj .ph { aspect-ratio: 16 / 10; }
.obj .ph img { transition: transform .6s ease; }
.obj:hover .ph img { transform: scale(1.04); }
/* все карточки одной высоты: тег — 1 строка, заголовок — 2, описание — 3 */
.obj__body { display: flex; flex-direction: column; padding: 20px 22px 24px; }
.obj__tag { font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.5); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.obj h3 { margin-top: 12px; font: 400 21px/1.2 var(--f-display); letter-spacing: -.025em; min-height: 2.4em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.obj p { margin-top: 10px; font-size: 14px; color: var(--muted-d); line-height: 1.5; min-height: 4.5em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.obj__badge { /* число испытаний — плашкой на фото */
  position: absolute; z-index: 2; left: 14px; bottom: 14px;
  display: inline-block; padding: 9px 12px 9px 11px; border-radius: var(--r);
  background: rgba(13,20,29,.82); backdrop-filter: blur(6px); border-left: 2px solid var(--amber);
  font-size: 11.5px; line-height: 1.25; color: #dfe5ec;
}
.obj__badge b { font: 500 22px/1 var(--f-display); letter-spacing: -.03em; color: var(--amber); }

/* листание мышью: курсор-«рука», перетаскивание */
@media (pointer: fine) {
  .car { cursor: grab; }
  .car.is-drag { cursor: grabbing; scroll-snap-type: none; }
  .car.is-drag .obj { pointer-events: none; }
  .car img { -webkit-user-drag: none; user-select: none; }
  .car { user-select: none; }
}

/* ---------- Оборудование ---------- */
.equip { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 48px; align-items: center; }
.equip__list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.equip__list .ph { aspect-ratio: 1 / 1.05; border-radius: var(--r-lg); }
.equip__list .ph::before { font-size: 10px; }
.ph--art::before { display: none; }
.ph--art > img.art { object-fit: contain; transition: transform .5s ease; }
.equip__list li:hover .ph--art > img.art { transform: scale(1.04); }
.equip__list h3 { margin-top: 16px; font: 400 17px/1.2 var(--f-display); letter-spacing: -.02em; }
.equip__list p { margin-top: 4px; font-size: 13.5px; color: var(--muted); line-height: 1.45; }

/* ---------- Лаборатория ---------- */
.lab { background: var(--ink-2); color: var(--white); overflow: hidden; }
.lab__in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: stretch; }
.lab__copy { padding-block: clamp(56px, 6vw, 88px); }
.lab__lead { margin-top: 18px; color: #c9d1db; max-width: 54ch; }
.lab__list { margin: 26px 0 32px; display: grid; gap: 12px; }
.lab__list li { display: flex; align-items: center; gap: 12px; font-weight: 500; padding-bottom: 12px; border-bottom: 1px solid var(--line-d); }
.lab__list svg { font-size: 20px; color: var(--amber); }
.lab__photo { margin-right: calc(-1 * max(var(--gutter), (100vw - var(--container)) / 2)); min-height: 420px; }

/* ---------- Документы и география ---------- */
.docs__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 22px); }
.docs__lead { max-width: 46ch; font-size: 15.5px; }
.doc { width: 100%; display: flex; flex-direction: column; gap: 10px; padding: 0; border: 0; background: none; text-align: left; font-size: 13px; font-weight: 500; line-height: 1.3; }
.doc__sheet { position: relative; display: block; width: 100%; aspect-ratio: 210 / 297; background: var(--white); border: 1px solid var(--line); border-radius: 4px; overflow: hidden; box-shadow: 3px 3px 0 var(--line); transition: transform .2s, box-shadow .2s; }
.doc__sheet::before { /* имитация листа, пока скан не загружен */
  content: ""; position: absolute; inset: 14% 16%;
  background: repeating-linear-gradient(180deg, #e3e6ea 0 3px, transparent 3px 11px);
  -webkit-mask: linear-gradient(#000 0 0) top/100% 70% no-repeat; mask: linear-gradient(#000 0 0) top/100% 70% no-repeat;
}
.doc__sheet::after { content: ""; position: absolute; right: 16%; bottom: 10%; width: 26%; aspect-ratio: 1; border: 2px solid rgba(232,163,61,.6); border-radius: 50%; }
.doc__sheet img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.doc:hover .doc__sheet { transform: translateY(-3px); box-shadow: 5px 6px 0 var(--amber); }


/* ---------- FAQ ---------- */
.faq { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.faq__head .muted { margin-top: 16px; max-width: 40ch; }
.faq__list { border-top: 1px solid var(--line); }
.qa { border-bottom: 1px solid var(--line); }
.qa summary {
  display: flex; justify-content: space-between; align-items: center; gap: 24px;
  padding: 24px 0; cursor: pointer; list-style: none;
  font: 400 19px/1.3 var(--f-display); letter-spacing: -.02em;
}
.qa summary::-webkit-details-marker { display: none; }
.qa summary svg { font-size: 20px; color: #b9771a; transition: transform .25s; }
.qa[open] summary svg { transform: rotate(45deg); }
.qa summary:hover { color: #8c5a12; }
.qa p { padding: 0 48px 24px 0; color: var(--muted); max-width: 70ch; }
.qa p a { color: var(--text); }

/* ---------- Заявка ---------- */
.cta { position: relative; background: var(--ink); color: var(--white); isolation: isolate; overflow: hidden; }
.cta__bg { position: absolute; inset: 0; z-index: -1; }
.cta__bg::after { content: ""; position: absolute; inset: 0; z-index: 2; background: linear-gradient(90deg, rgba(13,20,29,.96) 0%, rgba(13,20,29,.85) 45%, rgba(13,20,29,.6) 100%); }
.cta__bg::before { inset: auto auto 24px 24px; width: 260px; height: auto; padding: 12px; }
.cta__in { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 6vw, 96px); align-items: center; padding-block: var(--sec-y); }
.cta__lead { margin-top: 18px; color: #c9d1db; max-width: 52ch; font-size: 17px; }
.cta__pts { margin-top: 28px; display: grid; gap: 14px; }
.cta__pts li { display: flex; align-items: center; gap: 12px; font-weight: 600; }
.cta__pts svg { font-size: 22px; color: var(--amber); }

/* Блок связи (без форм): телефон + мессенджеры */
.cta__prep { margin-top: 34px; padding-top: 26px; border-top: 1px solid var(--line-d); max-width: 52ch; }
.cta__prep > p { font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted-d); }
.cta__prep ol { margin-top: 16px; display: grid; gap: 12px; }
.cta__prep li { display: flex; gap: 14px; align-items: baseline; color: #dfe5ec; }
.cta__prep .mono { font-size: 12px; color: var(--amber); }

.reach { display: flex; flex-direction: column; gap: 14px; }
.reach__ico { width: 52px; height: 52px; flex: none; display: grid; place-items: center; border-radius: 50%; font-size: 24px; transition: background .25s, color .25s, transform .25s; }
.reach__ico svg { width: 24px; height: 24px; }
.reach__call {
  position: relative; display: flex; flex-direction: column; text-decoration: none;
  padding: clamp(24px, 2.6vw, 36px); border-radius: var(--r-lg);
  background: var(--amber); color: var(--amber-ink); overflow: hidden; isolation: isolate;
  box-shadow: 0 30px 80px rgba(0,0,0,.35); transition: transform .25s, box-shadow .25s;
}
.reach__call::before { /* контурные кольца — перекличка с картой высот в первом экране */
  content: ""; position: absolute; z-index: -1; right: -90px; top: -90px; width: 300px; height: 300px; border-radius: 50%;
  background: repeating-radial-gradient(circle, transparent 0 22px, rgba(29,20,6,.09) 22px 23px);
}
.reach__call:hover { transform: translateY(-3px); box-shadow: 0 36px 90px rgba(0,0,0,.45); }
.reach__call .reach__ico { background: var(--amber-ink); color: var(--amber); }
.reach__call:hover .reach__ico { transform: rotate(-12deg); }
.reach__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: clamp(22px, 3vw, 40px); }
.reach__status { display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; border-radius: 99px; background: rgba(29,20,6,.1); font-size: 12.5px; font-weight: 600; }
.reach__status i, .clist small i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; opacity: .45; flex: none; }
[data-open-status].is-open i { background: #1f8a57; opacity: 1; box-shadow: 0 0 0 0 rgba(31,138,87,.5); animation: live 2s infinite; }
@keyframes live { 70% { box-shadow: 0 0 0 7px rgba(31,138,87,0); } 100% { box-shadow: 0 0 0 0 rgba(31,138,87,0); } }
.reach__lbl { font-size: 14px; font-weight: 600; opacity: .7; }
.reach__num { margin-top: 6px; font: 500 clamp(30px, 3.2vw, 48px)/1 var(--f-display); letter-spacing: -.035em; white-space: nowrap; }
.reach__hours { margin-top: 12px; font-size: 13px; opacity: .72; }
.reach__go { margin-top: 26px; display: inline-flex; align-items: center; gap: 12px; font-weight: 600; font-size: 15px; }
.reach__go svg { width: 34px; height: 34px; padding: 9px; border-radius: var(--r); background: rgba(0,0,0,.14); transition: transform .25s; }
.reach__call:hover .reach__go svg { transform: rotate(-45deg); }

.reach__or { display: flex; align-items: center; gap: 14px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted-d); margin-top: 6px; }
.reach__or::before, .reach__or::after { content: ""; flex: 1; height: 1px; background: var(--line-d); }
.reach__msgs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.reach__msg {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; text-decoration: none;
  padding: 18px; border: 1px solid var(--line-d); border-radius: var(--r-lg);
  background: rgba(255,255,255,.035); color: var(--white); backdrop-filter: blur(6px);
  transition: border-color .25s, background .25s, transform .25s;
}
.reach__msg .reach__ico { width: 46px; height: 46px; background: rgba(255,255,255,.08); color: var(--white); }
.reach__msg .reach__ico svg { width: 22px; height: 22px; }
.reach__msg b { font-weight: 600; font-size: 15px; }
.reach__arr { position: absolute; top: 18px; right: 16px; width: 18px; height: 18px; color: var(--muted-d); transition: transform .25s, color .25s; }
.reach__msg:hover { border-color: var(--amber); background: rgba(232,163,61,.07); transform: translateY(-3px); }
.reach__msg:hover .reach__ico { background: var(--amber); color: var(--amber-ink); }
.reach__msg:hover .reach__arr { color: var(--amber); transform: rotate(-45deg); }
.reach__note { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--muted-d); }
.reach__note svg { color: var(--amber); font-size: 18px; }

/* Окно «Как вам удобнее связаться?» */
.clist { margin-top: 22px; display: grid; gap: 8px; }
.clist__i { display: flex; align-items: center; gap: 14px; padding: 12px 14px 12px 12px; border: 1px solid var(--line); border-radius: var(--r-lg); text-decoration: none; color: var(--text); transition: border-color .2s, background .2s; }
.clist__i > span:not(.clist__ico):not(.fx__sheen) { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.clist__i b { font-weight: 600; font-size: 16px; }
.clist__i small { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--muted); }
.clist__ico { width: 44px; height: 44px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--paper); transition: background .2s, color .2s; }
.clist__ico svg { width: 21px; height: 21px; }
.clist__arr { margin-left: auto; width: 18px; height: 18px; color: var(--muted); transition: transform .2s, color .2s; }
.clist__i:hover { border-color: var(--amber); background: #fdf6ea; }
.clist__i:hover .clist__ico { background: var(--amber); color: var(--amber-ink); }
.clist__i:hover .clist__arr { color: var(--amber); transform: rotate(-45deg); }
.clist__i--main { background: var(--amber); border-color: var(--amber); color: var(--amber-ink); }
.clist__i--main b { font: 500 21px/1.1 var(--f-display); letter-spacing: -.03em; }
.clist__i--main small { color: rgba(29,20,6,.7); }
.clist__i--main .clist__ico { background: var(--amber-ink); color: var(--amber); }
.clist__i--main .clist__arr { color: var(--amber-ink); }
.clist__i--main:hover { background: var(--amber-2); }
.clist__i--main:hover .clist__ico { background: var(--amber-ink); color: var(--amber); }
.clist__i--main:hover .clist__arr { color: var(--amber-ink); }

/* ---------- Подвал ---------- */
.ftr { background: #0a1016; color: #c9d1db; padding-top: 72px; font-size: 14.5px; }
.ftr__in { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 48px; }
.ftr .logo { color: var(--white); }
.ftr__req { margin-top: 24px; display: grid; gap: 6px; font-size: 13px; color: var(--muted-d); }
.ftr__col { display: flex; flex-direction: column; gap: 10px; }
.ftr__col h3 { font: 700 13px/1.2 var(--f-body); letter-spacing: .12em; text-transform: uppercase; color: var(--white); margin-bottom: 6px; }
.ftr__col a { text-decoration: none; }
.ftr__col a:hover { color: var(--amber); }
.ftr__phone { font: 400 24px/1.2 var(--f-display); letter-spacing: -.03em; color: var(--white); }
.ftr__hours { color: var(--muted-d); font-size: 13px; }
.ftr__soc { display: flex; gap: 10px; margin-top: 6px; }
.ftr__soc a { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line-d); border-radius: var(--r); font-size: 20px; color: var(--white); }
.ftr__soc a:hover { border-color: var(--amber); color: var(--amber); }
.ftr__bottom { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-block: 22px; border-top: 1px solid var(--line-d); font-size: 13px; color: var(--muted-d); }
.ftr__bottom a { text-decoration: none; }

/* ---------- Мобильная панель ---------- */
.mbar { display: none; }

/* ---------- Модалка, лайтбокс, cookie ---------- */
.modal, .lightbox {
  position: fixed; inset: 0; z-index: 80;
  display: grid; place-items: center;
  padding: max(16px, env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) max(16px, env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
  background: rgba(5,9,14,.78); backdrop-filter: blur(4px);
  animation: fade .2s ease;
}
.modal__box { position: relative; width: min(460px, 100%); max-height: 100%; overflow-y: auto; background: var(--white); border-radius: var(--r-lg); padding: clamp(24px, 4vw, 40px); }
.modal__x { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; border: 0; border-radius: var(--r); background: var(--paper); display: grid; place-items: center; font-size: 20px; z-index: 2; }
.lightbox .modal__x { position: fixed; top: max(16px, env(safe-area-inset-top, 0px)); right: max(16px, env(safe-area-inset-right, 0px)); }
.lightbox figure { max-width: min(760px, 100%); max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.lightbox img { max-height: 82vh; width: auto; border-radius: 4px; background: var(--white); min-width: 200px; min-height: 280px; }
.lightbox figcaption { color: var(--white); font-weight: 600; }
@keyframes fade { from { opacity: 0; } }

.cookie {
  position: fixed; z-index: 70;
  left: max(16px, env(safe-area-inset-left, 0px)); bottom: max(16px, env(safe-area-inset-bottom, 0px));
  max-width: 440px; display: flex; align-items: center; gap: 16px;
  padding: 16px 18px; background: var(--white); color: var(--text);
  border-radius: var(--r-lg); box-shadow: 0 18px 50px rgba(5,10,16,.25);
  font-size: 13px; line-height: 1.45;
}
.cookie a { color: inherit; }


/* ---------- Верхняя линия секции (редакционный приём) ---------- */
.topline {
  position: absolute; z-index: 3; top: 0; left: 50%;
  width: min(calc(100% - 2 * var(--gutter)), var(--container));
  height: 1px; transform: translateX(-50%);
  background: var(--line-d);
}
.topline::before { content: ""; position: absolute; top: -1px; left: 0; width: 78px; height: 3px; background: var(--amber); }
.topline--light { background: var(--line); }
.objects, .lab, .cta { position: relative; }

/* ---------- ЭТАПЫ: маршрут по скроллу ----------
   Плоская схема без наклона: сцена «залипает», линия хода с пикетами ПК0–ПК5
   идёт слева направо, карточки по очереди выезжают снизу. JS ставит --p
   (прогресс линии 0…1) и у каждого этапа --in (0…1) и класс is-cur.
   Без JS и при reduced motion всё видно сразу. */
.route {
  position: relative; isolation: isolate; color: #f1f3f2;
  background:
    radial-gradient(circle at 18% 78%, rgba(232,163,61,.07), transparent 38%),
    linear-gradient(138deg, #0b1218 0%, var(--ink) 45%, var(--ink-2) 100%);
  --p: 1;
}
.route__stage { padding-block: clamp(80px, 9vw, 120px) clamp(72px, 8vw, 104px); }
.route__head { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(32px, 8vw, 132px); align-items: end; }
.route__lead { margin: 0; max-width: 470px; color: rgba(255,255,255,.72); font-size: clamp(15px, 1.2vw, 17.5px); line-height: 1.58; }
.route__lead strong { color: #fff; font-weight: 500; }
.route__body { margin-top: clamp(40px, 5.5vw, 84px); }
.route__meta { display: flex; justify-content: space-between; gap: 24px; margin-bottom: 48px; font-size: 10.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.45); }
.route__count { letter-spacing: .06em; color: rgba(255,255,255,.4); }
.route__count b { color: var(--amber); font-weight: 500; }

/* линия хода: от пикета ПК0 (левый край первой карточки) до ПК5 */
.route__rail { position: relative; height: 2px; margin: 0 calc((100% - 5 * var(--rg)) / 6 - 7px) 0 7px; background: rgba(255,255,255,.13); --rg: clamp(12px, 1.3vw, 20px); }
.route__fill { position: absolute; inset: 0; background: var(--amber); transform-origin: left; transform: scaleX(var(--p)); box-shadow: 0 0 16px rgba(232,163,61,.35); }
.route__runner { position: absolute; top: 50%; left: calc(var(--p) * 100%); width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: var(--amber-2); box-shadow: 0 0 0 5px rgba(232,163,61,.18), 0 0 22px rgba(232,163,61,.6); }

.route__list { --rg: clamp(12px, 1.3vw, 20px); display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--rg); margin-top: -8px; }
.route__step { --in: 1; display: flex; flex-direction: column; }
.route__pk { position: relative; display: flex; align-items: center; height: 14px; font-size: 10.5px; letter-spacing: .08em; color: rgba(255,255,255,.4); transition: color .3s; }
.route__pk b { position: absolute; left: 0; bottom: calc(100% + 10px); font-weight: 500; white-space: nowrap; }
.route__pk i { width: 14px; height: 14px; flex: none; border-radius: 50%; border: 2px solid rgba(255,255,255,.28); background: var(--ink); transition: border-color .3s, background .3s; }
.route__step.is-on .route__pk { color: rgba(255,255,255,.75); }
.route__step.is-on .route__pk i { border-color: var(--amber); background: var(--amber); }
.route__step.is-cur .route__pk { color: var(--amber); }
.route__card {
  position: relative; flex: 1; margin-top: 18px;
  padding: clamp(18px, 1.7vw, 26px) clamp(16px, 1.5vw, 24px) clamp(20px, 1.8vw, 28px);
  border: 1px solid rgba(255,255,255,.1); border-radius: var(--r-lg);
  background: linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.02));
  opacity: var(--in); transform: translateY(calc((1 - var(--in)) * 90px)) scale(calc(.94 + var(--in) * .06));
  transform-origin: 50% 100%;
  transition: border-color .35s, background .35s, box-shadow .35s;
}
.route__card::before { /* янтарная полоса сверху у текущего этапа */
  content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 3px; border-radius: var(--r-lg) var(--r-lg) 0 0;
  background: var(--amber); transform: scaleX(0); transform-origin: left; transition: transform .45s ease;
}
.route__step.is-cur .route__card { border-color: rgba(232,163,61,.45); background: linear-gradient(180deg, rgba(232,163,61,.12), rgba(232,163,61,.03)); box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.route__step.is-cur .route__card::before { transform: scaleX(1); }
.route__idx { display: block; font: 300 clamp(38px, 3.4vw, 56px)/1 var(--f-display); letter-spacing: -.04em; color: rgba(255,255,255,.22); transition: color .35s; }
.route__step.is-cur .route__idx { color: var(--amber); }
.route__card h3 { margin-top: clamp(18px, 2.2vw, 34px); font: 500 clamp(17px, 1.35vw, 21px)/1.18 var(--f-display); letter-spacing: -.02em; color: #fff; }
.route__card p { margin-top: 10px; font-size: clamp(13.5px, 1vw, 15px); line-height: 1.5; color: rgba(255,255,255,.66); }

.route__foot { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: clamp(24px, 3vw, 40px); }
.route__note { display: flex; align-items: center; gap: 14px; font-size: 11px; color: rgba(255,255,255,.45); }
.route__note::before { content: ""; width: 34px; height: 1px; background: rgba(255,255,255,.2); }

/* анимированный режим (класс ставит JS): сцена залипает на время прохода */
@media (min-width: 1081px) {
  .route.is-anim .route__track { height: 300vh; }
  .route.is-anim .route__stage {
    position: sticky; top: var(--hdr-h); height: calc(100svh - var(--hdr-h));
    display: flex; flex-direction: column; justify-content: center; padding-block: 24px; overflow: hidden;
  }
  .route.is-anim .route__note { opacity: calc(1 - var(--p)); }
}
@media (min-width: 1081px) and (max-height: 820px) {
  .route.is-anim .route__body { margin-top: 32px; }
  .route.is-anim .route__head .h2 { font-size: clamp(30px, 3.6vw, 48px); }
  .route.is-anim .route__card h3 { margin-top: 14px; }
}

/* планшет и телефон: вертикальный список, карточки выезжают по мере прокрутки */
@media (max-width: 1080px) {
  .route__head { grid-template-columns: 1fr; gap: 22px; }
  .route__count { display: none; }
  .route__body { position: relative; }
  .route__rail { position: absolute; left: 6px; top: 52px; bottom: 120px; width: 2px; height: auto; margin: 0; }
  .route__fill { transform-origin: top; transform: scaleY(var(--p)); }
  .route__runner { left: 50%; top: calc(var(--p) * 100%); }
  .route__list { grid-template-columns: minmax(0, 1fr); gap: 14px; margin-top: 0; }
  .route__step { position: relative; padding-left: 34px; }
  .route__pk { position: absolute; left: 0; top: 24px; }
  .route__pk i { margin-left: 0; }
  .route__pk b { display: none; }
  .route__meta { margin-bottom: 26px; }
  .route__card { margin-top: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 18px; align-items: start; transform-origin: 0 50%; transform: translateY(calc((1 - var(--in)) * 50px)); }
  .route__idx { grid-row: span 2; font-size: 40px; width: 1.25em; }
  .route__card h3 { margin-top: 2px; }
  .route__card p { margin-top: 6px; }
  .route__foot { flex-direction: column; align-items: stretch; margin-top: 28px; }
  .route__foot .btn { width: 100%; justify-content: space-between; }
  .route__note { display: none; }
}

/* ---------- ГЕОГРАФИЯ: карта России по скроллу ----------
   Сцена «залипает» (sticky): заголовок наверху, объёмная карта (вид под углом,
   как макет-«плита») поднимается снизу, приближается к Сибири, регионы
   загораются по очереди, затем общий план. JS задаёт --rise, --zoom, --fade
   и классы .is-on. Без JS / при reduced motion — сразу итоговая картина. */
.geo {
  position: relative; isolation: isolate; color: var(--text);
  background: radial-gradient(ellipse at 45% 70%, #fbfaf7 0%, var(--paper) 60%);
  --rise: 0%; --zoom: 1; --fade: 1;
}
.geo.is-anim .geo__track { height: 360vh; }
.geo__stage {
  position: sticky; top: calc(var(--hdr-h) + env(safe-area-inset-top, 0px));
  height: calc(100svh - var(--hdr-h) - env(safe-area-inset-top, 0px));
  min-height: 560px; display: flex; flex-direction: column; overflow: hidden;
  padding-block: clamp(32px, 5vh, 64px) clamp(20px, 3vh, 36px);
}
.geo__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex: none; position: relative; z-index: 2; }
.geo__head .eyebrow { margin-bottom: 18px; }
.geo__now { text-align: right; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.geo__count { font-size: 13px; color: var(--muted); }
.geo__count b { font-weight: 500; color: #b9771a; font-size: 26px; }
.geo__cur { font: 400 clamp(17px, 1.5vw, 22px)/1.2 var(--f-display); letter-spacing: -.02em; }

.geo__map {
  position: relative; flex: 1; min-height: 0; container-type: size; margin-block: 4px; overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 6%, #000 92%, transparent 100%);
          mask-image: linear-gradient(180deg, transparent 0, #000 6%, #000 92%, transparent 100%);
}
.geo__plane {
  position: absolute; left: 50%; top: 50%;
  width: min(100cqw, 100cqh * 2.49); aspect-ratio: 1000 / 401;
  transform-origin: 40.3% 54.4%;            /* Новосибирск */
  transform: translate(-50%, -50%) translateY(var(--rise)) scale(var(--zoom));
  opacity: var(--fade);
}
.gm { display: block; width: 100%; height: 100%; overflow: visible; }
.gm-shadow { fill: #3b3326; opacity: .22; }
.gm-wall--0 { fill: #dedad2; } .gm-wall--1 { fill: #d0ccc3; } .gm-wall--2 { fill: #c2beb5; } .gm-wall--3 { fill: #b3afa6; } .gm-wall--4 { fill: #a29e96; }
.gm-wall { stroke: currentColor; stroke-width: 0; }
.gm-top { fill: #fff; stroke: #c9c4ba; stroke-width: .6; stroke-linejoin: round; }
.gm-reg { fill: #fff; stroke: #c3bdb1; stroke-width: .6; stroke-linejoin: round; transition: fill .6s, stroke .6s; }
.gm-reg.is-on { fill: var(--amber); stroke: #c98a26; }
.gm-reg.is-cur { fill: var(--amber-2); }
.geo.is-all .gm-top { fill: #fdf3e2; }
.gm-pin { opacity: 0; transition: opacity .5s; }
.gm-pin.is-on { opacity: 1; }
.gm-dot { fill: var(--ink); stroke: #fff; stroke-width: .9; }
.gm-halo { fill: rgba(14,21,28,.12); stroke: rgba(14,21,28,.45); stroke-width: .5; transform-box: fill-box; transform-origin: center; animation: gm-pulse 2.4s ease-out infinite; }
.gm-pin text { fill: var(--ink); font: 600 6.5px var(--f-body); paint-order: stroke; stroke: rgba(255,255,255,.9); stroke-width: 2px; stroke-linejoin: round; transition: opacity .4s; }
.geo.is-all .gm-pin text { opacity: 0; }
@keyframes gm-pulse { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(2.4); opacity: 0; } }

.geo__foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex: none; position: relative; z-index: 2; }
.geo__list { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); flex: 1; border-top: 1px solid var(--line); }
.geo__list li { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 14px 14px 0 0; color: #a39f97; transition: color .4s; }
.geo__list li::before { content: ""; position: absolute; top: -1px; left: 0; height: 2px; width: 0; background: var(--amber); transition: width .5s; }
.geo__list li.is-on { color: var(--text); }
.geo__list li.is-on::before { width: calc(100% - 14px); }
.geo__n { font-size: 11px; color: #b9771a; }
.geo__name { font-size: 13.5px; font-weight: 500; line-height: 1.3; }
.geo__name small { display: block; margin-top: 3px; font-size: 11.5px; font-weight: 400; color: var(--muted); }

/* без анимации — сразу итоговая картина */
.geo:not(.is-anim) .gm-reg { fill: var(--amber); stroke: #c98a26; }
.geo:not(.is-anim) .gm-pin { opacity: 1; }
.geo:not(.is-anim) .geo__list li { color: var(--text); }
.geo:not(.is-anim) .geo__now { visibility: hidden; }

@media (max-width: 1080px) {
  .geo__list { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 10px; }
  .geo__foot { flex-direction: column; align-items: stretch; }
  .geo__foot .btn { align-self: flex-start; }
}
@media (max-width: 720px) {
  .geo.is-anim .geo__track { height: 300vh; }
  .geo__stage { height: calc(100svh - var(--hdr-h) - 68px - env(safe-area-inset-bottom, 0px)); min-height: 480px; padding-block: 28px 16px; }
  .geo__head { flex-direction: column; align-items: flex-start; gap: 14px; }
  .geo__now { text-align: left; flex-direction: row; align-items: baseline; gap: 12px; }
  .geo__count b { font-size: 20px; }
  .geo__list { display: none; }
  .geo__foot .btn { width: 100%; justify-content: space-between; }
  /* сцена центрируется: при общем плане окно карты сжимается, контент стягивается к ней */
  .geo.is-anim .geo__stage { justify-content: center; }
  .geo.is-anim .geo__map { flex: none; height: var(--mh, 46svh); margin-block: 12px; }
}
@media (prefers-reduced-motion: reduce) { .gm-halo { animation: none; } }

/* =========================================================
   АДАПТИВ
   ========================================================= */
@media (max-width: 1240px) {
  .nav__link { padding: 10px 8px; font-size: 14px; }
  .hdr__phone small { display: none; }
  .svc { grid-template-columns: repeat(3, 1fr); }
  .svc__card .ph { aspect-ratio: 16 / 9; }
  .equip { grid-template-columns: 1fr; gap: 32px; }
}

@media (max-width: 1080px) {
  :root { --hdr-h: 68px; }
  .nav, .hdr__contact { display: none; }
  .burger { display: grid; }
  .hdr { background: rgba(13,20,29,.96); }
  .hero__photo { inset: 0; }
  .hero__photo::after { background: linear-gradient(180deg, rgba(13,20,29,.55) 0%, rgba(13,20,29,.85) 55%, var(--ink) 100%); }
  .hero__tag { display: none; }
  .stats__in { grid-template-columns: repeat(2, 1fr); }
  .stat:nth-child(3) { border-left: 0; padding-left: 0; }
  .stat:nth-child(n+3) { border-top: 1px solid var(--line-d); }
  .why { grid-template-columns: 1fr; }
  .why__photo { min-height: 0; aspect-ratio: 16 / 9; }
  .why__body { max-width: none; padding-left: max(var(--gutter), env(safe-area-inset-left, 0px)); }
  .lab__in { grid-template-columns: 1fr; gap: 0; }
  .lab__photo { order: -1; min-height: 0; aspect-ratio: 16 / 9; margin-inline: calc(-1 * max(var(--gutter), env(safe-area-inset-left, 0px))); }
  .docs__grid { grid-template-columns: repeat(4, 1fr); }
  .faq { grid-template-columns: minmax(0, 1fr); }
  .cta__in { grid-template-columns: minmax(0, 1fr); }
  .ftr__in { grid-template-columns: 1fr 1fr; }
  .equip__list { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
  body { font-size: 15.5px; padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)); }
  .sec__head { flex-direction: column; align-items: flex-start; }
  .hero__in { padding-top: calc(var(--hdr-h) + 40px); padding-bottom: 40px; }
  .hero__list { font-size: 15px; }
  .hero__cta { flex-direction: column; }
  .hero__cta .btn { width: 100%; }
  .hero__trust { flex-direction: column; gap: 10px; }
  /* цифры: аккуратная сетка 2×2, без иконок, число крупно, янтарная метка */
  .stats__in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat { flex-direction: column; align-items: flex-start; text-align: left; gap: 0; padding: 20px 0 20px 18px; }
  .stat:nth-child(odd) { padding-left: 0; padding-right: 14px; }
  .stat + .stat { border-left: 0; }
  .stat:nth-child(even) { border-left: 1px solid var(--line-d); }
  .stat:nth-child(n+3) { border-top: 1px solid var(--line-d); }
  .stat > svg { display: none; }
  .stat b { position: relative; font-size: 32px; font-weight: 300; padding-top: 14px; }
  .stat b::before { content: ""; position: absolute; left: 0; top: 0; width: 16px; height: 2px; background: var(--amber); }
  .stat span { font-size: 12.5px; margin-top: 8px; color: rgba(255,255,255,.55); }

  /* Услуги: горизонтальные карточки, как в мобильном макете */
  .svc { grid-template-columns: 1fr; gap: 10px; }
  .svc__card { flex-direction: row; align-items: stretch; }
  .svc__card .ph { width: 112px; flex: none; aspect-ratio: auto; min-height: 96px; }
  .svc__card .ph::before { font-size: 8px; inset: 6px; padding: 4px; }
  .svc__body { padding: 14px 60px 14px 16px; justify-content: center; }
  .svc__body .arrow { top: 50%; bottom: auto; transform: translateY(-50%); }
  .svc__card:hover .arrow { transform: translateY(-50%) rotate(-45deg); }

  .why__grid { grid-template-columns: 1fr; }
  .why__grid li, .why__grid li:not(:nth-child(3n+1)) { flex-direction: row; align-items: center; padding: 16px 0; }
  .why__grid svg { font-size: 24px; }


  .car { grid-auto-columns: 84%; gap: 12px; }
  .car-nav { display: none; }
  .equip__list { gap: 12px; }
  .docs__grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 36%; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: thin; }
  .docs__grid li { scroll-snap-align: start; }
  .doc { font-size: 11px; }
  .reach__msgs { grid-template-columns: minmax(0, 1fr); }
  .reach__msg { flex-direction: row; align-items: center; gap: 14px; padding: 12px 14px; }
  .reach__arr { position: static; margin-left: auto; }
  .qa summary { font-size: 15.5px; padding: 18px 0; }
  .qa p { padding-right: 0; }
  .ftr { padding-top: 48px; }
  .ftr__in { grid-template-columns: 1fr; gap: 28px; }

  .mbar {
    position: fixed; z-index: 45; left: 0; right: 0; bottom: 0;
    display: grid; grid-template-columns: minmax(0, 1fr) 48px 48px 48px; gap: 8px;
    padding: 10px max(12px, env(safe-area-inset-right, 0px)) calc(10px + env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px));
    background: rgba(13,20,29,.97); border-top: 1px solid var(--line-d);
  }
  .mbar a, .mbar button { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 48px; border: 1px solid var(--line-d); border-radius: var(--r); background: none; color: var(--white); font-size: 13.5px; font-weight: 500; text-decoration: none; }
  .mbar svg { font-size: 20px; color: var(--white); width: 20px; height: 20px; padding: 0; background: none; }
  .mbar .mbar__main { font-size: 15px; font-weight: 600; gap: 10px; }
  .mbar .mbar__main { background: var(--amber); border-color: var(--amber); color: var(--amber-ink); }
  .mbar .mbar__main svg { color: inherit; }
  .cookie { bottom: calc(80px + env(safe-area-inset-bottom, 0px)); right: max(16px, env(safe-area-inset-right, 0px)); max-width: none; flex-direction: column; align-items: stretch; }
}

@media (max-width: 400px) {
  .hero__title { font-size: 30px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* кадрирование фотографий */
.hero__photo > img { object-position: 72% 50%; }
.hero__photo:has(img) ~ .hero__in .hero__tag, .hero:has(.hero__photo img) .hero__tag { display: none; } /* подпись прячем, когда есть фото — не перекрывает человека в кадре */
.why__photo > img { object-position: 42% 35%; }
.lab__photo > img { object-position: 55% 38%; }
@media (max-width: 1080px) { .hero__photo > img { object-position: 84% 40%; } }
@media (max-width: 380px) { .obj p { -webkit-line-clamp: 4; min-height: 6em; } }

/* номера телефонов никогда не переносятся; на узких экранах шрифт подстраивается */
.reach__num, .clist__i--main b, .mnav__phone, .ftr__phone, .hdr__phone b, .hdr__phone strong { white-space: nowrap; }
.clist__i small { white-space: nowrap; }
@media (max-width: 480px) {
  .modal__box { padding: 28px 18px 20px; }
  .clist__i { gap: 12px; padding: 10px 12px 10px 10px; }
  .clist__ico { width: 40px; height: 40px; }
  .clist__i--main b { font-size: clamp(16px, 5.4vw, 21px); }
  .clist__arr { width: 16px; height: 16px; flex: none; }
  .reach__num { font-size: clamp(24px, 8.4vw, 34px); }
  .reach__status { font-size: 11.5px; padding: 6px 10px; }
}
.modal__box > .eyebrow { padding-right: 52px; }

/* =========================================================
   «Живые» янтарные кнопки: перелив, блик, круги-сигнал от курсора
   JS добавляет класс .fx и спаны .fx__sheen / .fx__ring
   ========================================================= */
.fx { position: relative; overflow: hidden; isolation: isolate; }
.fx:not(.reach__call) {
  background-color: var(--amber);
  background-image: linear-gradient(110deg, #e39a2f 0%, #f3b75a 38%, #e8a33d 62%, #dc922a 100%);
  background-size: 240% 100%;
  animation: fx-flow 7s ease-in-out infinite alternate;
}
.reach__call.fx { background-image: linear-gradient(110deg, #e39a2f 0%, #f3b75a 40%, #e8a33d 65%, #dc922a 100%); background-size: 240% 100%; animation: fx-flow 9s ease-in-out infinite alternate; }
@keyframes fx-flow { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }

.fx__sheen { /* блик, пробегающий раз в несколько секунд */
  position: absolute; z-index: -1; top: -20%; bottom: -20%; left: 0; width: 38%;
  background: linear-gradient(100deg, transparent 0%, rgba(255,250,235,.55) 50%, transparent 100%);
  transform: translateX(-160%) skewX(-18deg); pointer-events: none;
  animation: fx-sheen 5.5s cubic-bezier(.4,0,.2,1) infinite; animation-delay: var(--fx-d, 0s);
}
@keyframes fx-sheen { 0%, 62% { transform: translateX(-160%) skewX(-18deg); } 100% { transform: translateX(420%) skewX(-18deg); } }

.fx__ring { /* круг-сигнал от курсора: растёт размер, а не масштаб — линия остаётся тонкой */
  position: absolute; z-index: -1; left: 0; top: 0; width: 6px; height: 6px;
  border-radius: 50%; border: 1.5px solid rgba(29,20,6,.42); pointer-events: none;
  transform: translate(-50%, -50%);
  animation: fx-ring 1.7s cubic-bezier(.15,.55,.35,1) forwards;
}
@keyframes fx-ring { from { width: 6px; height: 6px; opacity: 1; } to { width: var(--fx-s, 300px); height: var(--fx-s, 300px); opacity: 0; } }
.fx__ring--fill { border: 0; background: rgba(255,246,225,.5); animation-duration: .75s; }

.fx:hover { box-shadow: 0 10px 30px -8px rgba(232,163,61,.55); }
.fx:hover .fx__sheen { animation-duration: 1.6s; animation-delay: 0s; }

@media (prefers-reduced-motion: reduce) {
  .fx, .fx:not(.reach__call), .reach__call.fx { animation: none; }
  .fx__sheen, .fx__ring { display: none; }
}
@media (max-width: 1240px) and (min-width: 1081px) {
  .hdr__phone span { display: none; }
  .hdr__phone { width: 44px; height: 44px; justify-content: center; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; }
  .nav__link { padding-inline: 10px; font-size: 13.5px; }
  .hdr__contact { gap: 12px; }
}

/* капсула меню — скругление как у кнопок */
.nav { border-radius: var(--r-lg); }
.nav__pill, .nav__link { border-radius: var(--r); }

/* подпись разработчика (как в YUZKO EVENT) */
.ftr__bottom { align-items: center; }
.ftr__bottom > span:first-child { margin-right: auto; }
.dev { display: inline-flex; align-items: center; gap: 14px; color: #5f6672; font-size: 10.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; transition: color .4s; }
.dev-sep { width: 26px; height: 1px; background: currentColor; opacity: .6; transition: width .5s cubic-bezier(.2,.7,.2,1), background .4s, opacity .4s; }
.dev-mark { position: relative; display: block; line-height: 0; isolation: isolate; }
.dev-mark img { height: 18px; width: auto; filter: grayscale(1) brightness(1.6); opacity: .55; transition: filter .5s, opacity .5s; }
.dev-mark::after {
  content: ""; position: absolute; inset: 0;
  -webkit-mask: url("../img/leo-logo.png") left center / auto 100% no-repeat; mask: url("../img/leo-logo.png") left center / auto 100% no-repeat;
  background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.95) 48%, rgba(255,236,200,.9) 52%, transparent 70%) -150% 0 / 250% 100% no-repeat;
  pointer-events: none;
}
.dev:hover { color: #fff; }
.dev:hover .dev-sep { width: 46px; opacity: 1; background: linear-gradient(90deg, rgba(232,163,61,0), var(--amber)); }
.dev:hover .dev-mark img { filter: none; opacity: 1; }
.dev:hover .dev-mark::after { animation: devShine 1.1s cubic-bezier(.3,.6,.3,1) .15s; }
@keyframes devShine { from { background-position: -150% 0; } to { background-position: 250% 0; } }
.dev:focus-visible { outline: 2px solid var(--amber); outline-offset: 6px; }
@media (max-width: 720px) { .ftr__bottom { flex-direction: column; align-items: flex-start; } .dev { margin-top: 8px; } }
@media (min-width: 721px) { .dev { margin-left: 20px; } }

/* стрелка в кнопках: поворачивается только сама стрелка, квадрат остаётся на месте */
.btn:hover svg, .reach__call:hover .reach__go svg { transform: none; }
.btn svg use, .reach__go svg use, .clist__arr use, .reach__arr use { transform-box: fill-box; transform-origin: 50% 50%; transition: transform .3s cubic-bezier(.3,.7,.2,1); }
.btn:hover svg use, .reach__call:hover .reach__go svg use { transform: rotate(-45deg); }
.btn:hover svg { background: rgba(0,0,0,.2); }

/* =========================================================
   ВНУТРЕННИЕ СТРАНИЦЫ
   ========================================================= */
/* --- первый экран страницы --- */
.phero { position: relative; background: var(--ink); color: var(--white); overflow: hidden; isolation: isolate; }
.phero__bg { position: absolute; inset: 0 0 0 40%; z-index: -2; margin: 0; }
.phero__bg img { width: 100%; height: 100%; object-fit: cover; }
.phero__bg::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, var(--ink) 0%, rgba(13,20,29,.82) 18%, rgba(13,20,29,.25) 55%, rgba(13,20,29,.4) 100%),
              linear-gradient(0deg, rgba(13,20,29,.75) 0%, rgba(13,20,29,0) 35%),
              linear-gradient(180deg, rgba(13,20,29,.85) 0%, rgba(13,20,29,0) 26%); }
.phero__in { position: relative; padding-top: calc(var(--hdr-h) + clamp(28px, 4vw, 56px)); padding-bottom: clamp(52px, 6vw, 92px); }
.phero__in > * { max-width: 900px; }
.phero .eyebrow { margin-top: clamp(28px, 3.4vw, 48px); }
.phero__title { margin-top: 16px; font: 400 clamp(36px, 4.6vw, 68px)/1.04 var(--f-display); letter-spacing: -.045em; text-wrap: balance; }
.phero--obj .phero__title { font-size: clamp(28px, 3.4vw, 50px); line-height: 1.1; max-width: 22ch; }
.phero__lead { margin-top: 22px; max-width: 60ch; color: #c9d1db; font-size: clamp(16px, 1.2vw, 18px); line-height: 1.62; }
.phero__cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.phero--short .phero__in { padding-bottom: clamp(44px, 5vw, 72px); }
.phero__facts { position: relative; border-top: 1px solid var(--line-d); background: rgba(13,20,29,.82); backdrop-filter: blur(6px); }
.phero__facts-in { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pfact { padding: 24px 24px 24px 0; display: flex; flex-direction: column; gap: 6px; }
.pfact + .pfact { padding-left: 24px; border-left: 1px solid var(--line-d); }
.pfact b { font: 400 clamp(24px, 2.4vw, 34px)/1 var(--f-display); letter-spacing: -.03em; color: var(--amber); }
.pfact span { font-size: 13.5px; color: var(--muted-d); line-height: 1.35; max-width: 32ch; }

.crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 13px; color: rgba(255,255,255,.5); }
.crumbs li { display: inline-flex; align-items: center; gap: 10px; }
.crumbs li + li::before { content: ""; width: 14px; height: 1px; background: rgba(255,255,255,.3); }
.crumbs a { color: inherit; text-decoration: none; transition: color .2s; }
.crumbs a:hover { color: var(--amber); }
.crumbs [aria-current] span { color: rgba(255,255,255,.82); display: inline-block; max-width: 46ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }

/* --- вступление раздела --- */
.intro { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.intro__h { position: sticky; top: calc(var(--hdr-h) + 32px); }

/* --- типографика текста --- */
.prose { font-size: clamp(16px, 1.1vw, 17.5px); line-height: 1.72; color: #2a333c; max-width: 72ch; }
.prose > * + * { margin-top: 1.05em; }
.prose .lede { font: 400 clamp(19px, 1.5vw, 23px)/1.5 var(--f-display); letter-spacing: -.015em; color: var(--text); }
.prose--intro .lede { font-size: clamp(20px, 1.7vw, 26px); }
.prose h2 { margin-top: 1.8em; font: 400 clamp(24px, 2.2vw, 32px)/1.15 var(--f-display); letter-spacing: -.03em; color: var(--text); }
.prose h3 { font: 500 clamp(18px, 1.4vw, 21px)/1.25 var(--f-display); letter-spacing: -.02em; color: var(--text); }
.prose ul { display: grid; gap: 10px; padding: 22px 24px; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); }
.prose ul li { position: relative; padding-left: 26px; }
.prose ul li::before { content: ""; position: absolute; left: 0; top: .78em; width: 12px; height: 2px; background: var(--amber); }
.prose a { color: var(--text); text-decoration-color: var(--amber); text-underline-offset: 3px; }
.prose a:hover { color: #b67516; }
.steps { counter-reset: s; display: grid; gap: 0; margin-top: 1.6em !important; border-top: 1px solid var(--line); }
.step { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 8px 20px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.step__n { font-size: 15px; color: #b67516; padding-top: 3px; }
.step__b > * + * { margin-top: .8em; }

.step__b ul { background: var(--paper); }

/* --- страница услуги: текст + боковая колонка --- */
.page { background: var(--paper); padding-block: var(--sec-y); }
.page__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(280px, 4fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.page__aside { position: sticky; top: calc(var(--hdr-h) + 24px); display: grid; gap: 16px; }
.subnav { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 22px; }
.subnav__t { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: 12px; }
.subnav__t a { color: inherit; text-decoration: none; } .subnav__t a:hover { color: #b67516; }
.subnav ol { display: grid; }
.subnav li a { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; padding: 11px 0; border-top: 1px solid var(--line); font-size: 14.5px; line-height: 1.35; color: var(--text); text-decoration: none; transition: color .2s; }
.subnav li a .mono { font-size: 11.5px; color: var(--muted); padding-top: 2px; }
.subnav li a:hover { color: #b67516; }
.subnav li a.is-cur { font-weight: 600; color: var(--text); box-shadow: inset 2px 0 0 var(--amber); padding-left: 12px; margin-left: -12px; }
.subnav li a.is-cur .mono { color: #b67516; }
.side-card { background: var(--ink); color: var(--white); border-radius: var(--r-lg); padding: 24px; display: grid; gap: 12px; position: relative; overflow: hidden; isolation: isolate; }
.side-card::before { content: ""; position: absolute; z-index: -1; right: -70px; top: -70px; width: 220px; height: 220px; border-radius: 50%; background: repeating-radial-gradient(circle, transparent 0 18px, rgba(232,163,61,.12) 18px 19px); }
.side-card__t { font-size: 13px; color: var(--muted-d); }
.side-card__num { font: 400 26px/1 var(--f-display); letter-spacing: -.03em; color: #fff; text-decoration: none; white-space: nowrap; }
.side-card__num:hover { color: var(--amber); }
.side-card__h { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--muted-d); }
.side-card__h i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; opacity: .5; }
.side-card__msg { display: flex; gap: 8px; margin: 4px 0 6px; }
.side-card__msg a { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line-d); border-radius: var(--r); color: #fff; transition: border-color .2s, color .2s, background .2s; }
.side-card__msg a:hover { border-color: var(--amber); color: var(--amber-ink); background: var(--amber); }
.side-card__msg svg { width: 20px; height: 20px; }

/* --- карточки услуг --- */
.scards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.scards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.scards--hub { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.scard { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; text-decoration: none; color: var(--text); transition: border-color .25s, transform .25s, box-shadow .25s; }
.sec--white .scard { background: var(--paper); }
.scard:hover { border-color: rgba(232,163,61,.55); transform: translateY(-4px); box-shadow: 0 22px 50px -24px rgba(13,20,29,.35); }
.scard__ph { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; background: var(--ink-3); }
.scard__ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.scard:hover .scard__ph img { transform: scale(1.05); }
.scard__body { flex: 1; display: flex; flex-direction: column; padding: 20px 22px 22px; }
.scard__code { font-size: 11px; color: #b67516; letter-spacing: .06em; }
.scard h3 { margin-top: 10px; font: 400 clamp(19px, 1.5vw, 22px)/1.2 var(--f-display); letter-spacing: -.025em; }
.scard p { margin-top: 10px; font-size: 14px; line-height: 1.55; color: var(--muted); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.scard__go { margin-top: auto; padding-top: 18px; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.scard__go svg { color: #b67516; transition: transform .25s; }
.scard:hover .scard__go svg { transform: translateX(4px); }

/* --- лаборатория --- */
.tests { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.tests li { display: flex; gap: 12px; align-items: flex-start; padding: 18px 20px; background: var(--white); font-size: 15px; line-height: 1.45; }
.tests svg { width: 20px; height: 20px; flex: none; color: #b67516; margin-top: 1px; }
.lab-extra { display: grid; grid-template-columns: 1fr 1fr 1.4fr; gap: 16px; margin-top: 16px; }
.lab-extra__card { background: var(--ink); color: #fff; border-radius: var(--r-lg); padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.lab-extra__card .mono { color: var(--amber); font-size: 12px; }
.lab-extra__card h3 { font: 400 22px/1.2 var(--f-display); letter-spacing: -.02em; margin-top: auto; }
.lab-extra__card p { font-size: 14px; color: var(--muted-d); line-height: 1.5; }
.lab-extra__ph { margin: 0; border-radius: var(--r-lg); overflow: hidden; min-height: 220px; }
.lab-extra__ph img { width: 100%; height: 100%; object-fit: cover; }
.note { margin-top: 24px; max-width: 72ch; color: var(--muted); font-size: 15px; padding-left: 16px; border-left: 2px solid var(--amber); }

/* --- о компании --- */
.stats--page { background: var(--ink); }

/* --- контакты --- */
.contacts__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.contacts__reach { background: var(--ink); border-radius: var(--r-lg); padding: clamp(18px, 2vw, 28px); }
.contacts__info { display: grid; gap: 12px; }
.cinfo { display: flex; gap: 18px; padding: 24px; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); }
.cinfo__ic { width: 46px; height: 46px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--paper); color: #b67516; }
.cinfo__ic svg { width: 22px; height: 22px; }
.cinfo h3 { font: 500 18px/1.2 var(--f-display); letter-spacing: -.02em; }
.cinfo p { margin-top: 8px; color: var(--muted); line-height: 1.55; }
.cinfo .link-more { margin-top: 12px; font-size: 14px; }
.hours { display: grid; grid-template-columns: auto 1fr; gap: 6px 24px; margin-top: 10px; font-size: 15px; }
.hours dt { color: var(--muted); } .hours dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.map { margin-top: clamp(24px, 3vw, 40px); border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line); background: var(--ink-3); height: clamp(320px, 42vw, 480px); }
.map iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.35) contrast(1.02); }

/* --- страница объекта --- */
.obj-page { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.obj-page__txt { position: sticky; top: calc(var(--hdr-h) + 32px); display: grid; gap: 22px; justify-items: start; }
.obj-page__txt .prose .lede { font-size: clamp(18px, 1.4vw, 21px); }
.obj-page__meta { width: 100%; display: grid; border-top: 1px solid var(--line); }
.obj-page__meta div { display: grid; grid-template-columns: 120px 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 14.5px; }
.obj-page__meta dt { color: var(--muted); } .obj-page__meta dd { margin: 0; font-weight: 500; }
.obj-page__meta a { color: var(--text); text-decoration-color: var(--amber); text-underline-offset: 3px; }
.gal { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: clamp(140px, 13vw, 210px); gap: 10px; }
.gal__i { position: relative; padding: 0; border: 0; border-radius: var(--r-lg); overflow: hidden; background: var(--ink-3); cursor: zoom-in; }
.gal__i:first-child { grid-column: span 2; grid-row: span 2; }
.gal--3 .gal__i:first-child { grid-column: span 3; grid-row: span 2; }
.gal--4 .gal__i:first-child { grid-column: span 3; grid-row: span 2; }
.gal__i img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease, filter .3s; }
.gal__i:hover img { transform: scale(1.05); filter: brightness(.85); }
.gal__z { position: absolute; right: 12px; bottom: 12px; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: rgba(13,20,29,.7); color: #fff; backdrop-filter: blur(4px); opacity: 0; transform: scale(.8); transition: opacity .25s, transform .25s; }
.gal__i:hover .gal__z, .gal__i:focus-visible .gal__z { opacity: 1; transform: none; }
.onav { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 12px; align-items: stretch; }
.onav__i { display: flex; align-items: center; gap: 16px; padding: 12px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--paper); text-decoration: none; color: var(--text); transition: border-color .25s, transform .25s; min-width: 0; }
.onav__i--next { flex-direction: row-reverse; text-align: right; }
.onav__i:hover { border-color: rgba(232,163,61,.55); transform: translateY(-2px); }
.onav__i img { width: 96px; height: 72px; object-fit: cover; border-radius: var(--r); flex: none; }
.onav__i span { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.onav__i small { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.onav__i b { font: 400 19px/1.2 var(--f-display); letter-spacing: -.02em; }
.onav__i em { font-style: normal; font-size: 13px; color: var(--muted); }
.onav__all { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 12px 22px; border: 1px solid var(--line); border-radius: var(--r-lg); color: var(--text); text-decoration: none; font-size: 13px; font-weight: 600; }
.onav__all:hover { background: var(--amber); border-color: var(--amber); }
.onav__all svg { width: 20px; height: 20px; }

/* --- карточки объектов на главной — ссылка на страницу объекта --- */
.obj { position: relative; }
.obj__link { color: inherit; text-decoration: none; }
.obj__link::after { content: ""; position: absolute; inset: 0; z-index: 3; }
.obj__link:hover { color: var(--amber); }
.obj__link:focus-visible { outline: none; } .obj:has(.obj__link:focus-visible) { outline: 2px solid var(--amber); outline-offset: 3px; }

/* --- лайтбокс-галерея --- */
.lightbox.is-photo figure { max-width: min(1200px, 100%); }
.lightbox.is-photo img { min-width: 0; min-height: 0; max-height: 80vh; background: none; }
.lightbox__nav { display: none; position: fixed; top: 50%; width: 52px; height: 52px; margin-top: -26px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: rgba(13,20,29,.6); color: #fff; place-items: center; z-index: 2; transition: background .2s, border-color .2s; }
.lightbox__nav:hover { background: var(--amber); border-color: var(--amber); color: var(--amber-ink); }
.lightbox__nav svg { width: 20px; height: 20px; }
.lightbox.is-multi .lightbox__nav { display: grid; }
.lightbox__prev { left: max(16px, env(safe-area-inset-left, 0px)); }
.lightbox__next { right: max(16px, env(safe-area-inset-right, 0px)); }

@media (max-width: 1080px) {
  .phero__bg { inset: 0; }
  .phero__bg::after { background: linear-gradient(180deg, rgba(13,20,29,.75) 0%, rgba(13,20,29,.8) 50%, var(--ink) 100%); }
  .intro, .page__grid, .obj-page, .contacts__grid { grid-template-columns: minmax(0, 1fr); }
  .intro__h, .page__aside, .obj-page__txt { position: static; }
  .scards--hub, .scards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tests { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lab-extra { grid-template-columns: 1fr 1fr; } .lab-extra__ph { grid-column: 1 / -1; }
  .page__aside { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .phero__in { padding-top: calc(var(--hdr-h) + 20px); }
  .phero__cta .btn { width: 100%; justify-content: space-between; }
  .phero__facts-in { grid-template-columns: minmax(0, 1fr); }
  .pfact, .pfact + .pfact { padding: 16px 0; border-left: 0; }
  .pfact + .pfact { border-top: 1px solid var(--line-d); }
  .pfact { flex-direction: row; align-items: baseline; gap: 14px; }
  .pfact b { min-width: 92px; font-size: 24px; }
  .crumbs [aria-current] span { max-width: 22ch; }
  .scards--hub, .scards--3, .scards { grid-template-columns: minmax(0, 1fr); }
  .tests, .lab-extra { grid-template-columns: minmax(0, 1fr); }
  .page__aside { grid-template-columns: minmax(0, 1fr); }
  .prose ul { padding: 18px; }
  .step { grid-template-columns: 40px minmax(0, 1fr); }
  .gal { grid-template-columns: 1fr 1fr; grid-auto-rows: 34vw; }
  .gal__i:first-child, .gal--3 .gal__i:first-child, .gal--4 .gal__i:first-child { grid-column: span 2; grid-row: span 2; }
  .gal__z { opacity: 1; transform: none; width: 34px; height: 34px; }
  .onav { grid-template-columns: 1fr 1fr; }
  .onav__all { grid-column: 1 / -1; grid-row: 2; flex-direction: row; }
  .onav__i, .onav__i--next { flex-direction: column; align-items: flex-start; text-align: left; }
  .onav__i img { width: 100%; height: 90px; }
  .cinfo { padding: 18px; gap: 14px; }
  .lightbox__nav { top: auto; bottom: max(20px, env(safe-area-inset-bottom, 0px)); margin-top: 0; }
}
@media (min-width: 1081px) {
  .scards--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .scards--n5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .scards--n5 .scard h3 { font-size: 18px; }
}
@media (max-width: 1080px) and (min-width: 721px) { .scards--n4, .scards--n5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.stats--page { color: var(--white); }
@media (min-width: 721px) { .gal__i--w2 { grid-column: span 2; } .gal__i--w3 { grid-column: span 3; } }
@media (max-width: 720px) { .gal__i--m2 { grid-column: span 2; } }

/* меню без рамки: остаётся только скользящая подложка */
.nav { border-color: transparent; background: none; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.nav__pill { background: rgba(255,255,255,.09); }

/* --- юридические документы --- */
.prose--legal { font-size: 16px; line-height: 1.7; max-width: 76ch; }
.prose--legal h2 { display: flex; gap: 14px; align-items: baseline; margin-top: 2.2em; padding-top: 1.2em; border-top: 1px solid var(--line); font-size: clamp(21px, 1.8vw, 26px); scroll-margin-top: calc(var(--hdr-h) + 24px); }
.prose--legal h2:first-of-type { margin-top: 1.2em; }
.prose--legal h2 .mono { font-size: 13px; color: #b67516; letter-spacing: .04em; }
.pnum { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 4px 12px; }
.pnum .mono { font-size: 12.5px; color: var(--muted); padding-top: 4px; }
.legal-meta { font-size: 13px !important; letter-spacing: .04em; color: var(--muted) !important; font-family: var(--f-body) !important; }
.ptable { display: grid; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; background: var(--white); }
.ptable div { display: grid; grid-template-columns: minmax(160px, 1fr) 2fr; gap: 16px; padding: 14px 18px; border-top: 1px solid var(--line); }
.ptable div:first-child { border-top: 0; }
.ptable dt { color: var(--muted); font-size: 14px; } .ptable dd { margin: 0; }
.chips { display: flex !important; flex-wrap: wrap; gap: 8px !important; padding: 0 !important; background: none !important; border: 0 !important; }
.chips li { padding: 6px 14px !important; border: 1px solid var(--line); border-radius: 99px; background: var(--white); font-size: 14.5px; }
.chips li::before { display: none; }
.note-item { position: relative; padding: 14px 18px 14px 46px; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); }
.note-item::before { content: ""; position: absolute; left: 18px; top: 50%; width: 14px; height: 2px; background: var(--amber); }
.note-item + .note-item { margin-top: 8px; }
.prose--legal ul li b { font-weight: 600; }
.page--legal .page__aside { max-height: calc(100vh - var(--hdr-h) - 48px); overflow: auto; scrollbar-width: thin; }
.subnav--toc li a { font-size: 13.5px; padding: 8px 0; }
@media (max-width: 1080px) { .page--legal .page__aside { max-height: none; order: -1; } .subnav--toc { display: none; } }
@media (max-width: 720px) { .pnum { grid-template-columns: 1fr; } .ptable div { grid-template-columns: 1fr; gap: 4px; } }

/* --- ключевые цифры: компактная карточка в правом нижнем углу баннера --- */
.phero__facts { position: absolute; z-index: 2; right: max(var(--gutter), calc((100vw - var(--container)) / 2)); bottom: clamp(28px, 3.4vw, 52px);
  border: 1px solid rgba(255,255,255,.12); border-radius: var(--r-lg); background: rgba(13,20,29,.62); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 24px 60px -20px rgba(0,0,0,.6); overflow: hidden; }
.phero__facts::before { content: ""; position: absolute; left: 0; top: 0; width: 56px; height: 2px; background: var(--amber); }
.phero__facts-in.wrap { display: flex; width: auto; max-width: none; margin: 0; padding: 0; }
.pfact, .pfact + .pfact { padding: 20px 26px; border-left: 0; min-width: 0; }
.pfact + .pfact { border-left: 1px solid rgba(255,255,255,.1); }
.pfact b { font-size: clamp(24px, 2vw, 30px); }
.pfact span { font-size: 12.5px; max-width: 17ch; }
.phero:has(.phero__facts) .phero__in { padding-bottom: clamp(150px, 13vw, 190px); }
@media (min-width: 1281px) {
  .phero:has(.phero__facts) .phero__in { padding-bottom: clamp(64px, 6vw, 96px); }
  .phero:has(.phero__facts) .phero__in > * { max-width: min(760px, calc(100% - 560px)); }
  .phero:has(.phero__facts) .phero__in > .crumbs, .phero:has(.phero__facts) .phero__in > .eyebrow { max-width: 900px; }
}
@media (max-width: 1280px) and (min-width: 721px) {
  .phero__facts { left: max(var(--gutter), calc((100vw - var(--container)) / 2)); right: auto; }
}
@media (max-width: 720px) {
  .phero__facts { position: relative; left: auto; right: auto; bottom: auto; margin: 0 var(--gutter) 28px; }
  .phero:has(.phero__facts) .phero__in { padding-bottom: 28px; }
  .phero__facts-in.wrap { flex-direction: column; }
  .pfact, .pfact + .pfact { padding: 14px 18px; flex-direction: row; align-items: baseline; gap: 14px; }
  .pfact + .pfact { border-left: 0; border-top: 1px solid rgba(255,255,255,.1); }
  .pfact span { max-width: none; }
}
@media (max-width: 1280px) {
  .phero__facts { position: relative; left: auto; right: auto; bottom: auto; margin: 0 max(var(--gutter), calc((100vw - var(--container)) / 2)) clamp(28px, 4vw, 48px); width: fit-content; max-width: calc(100% - 2 * var(--gutter)); }
  .phero:has(.phero__facts) .phero__in { padding-bottom: 32px; }
}
@media (max-width: 720px) {
  .phero__facts { width: auto; margin-inline: var(--gutter); }
  .pfact, .pfact + .pfact { flex-direction: column; align-items: flex-start; gap: 4px; }
  .pfact b { min-width: 0; }
}

/* --- выпадающий список «Наши объекты» --- */
.drop {
  position: absolute; top: calc(100% + 20px); left: 50%; width: 340px; padding: 10px;
  background: var(--white); color: var(--text); border-radius: var(--r-lg); box-shadow: 0 24px 60px rgba(5,10,16,.35);
  opacity: 0; visibility: hidden; transform: translate(-50%, 6px); transition: opacity .2s, transform .2s, visibility .2s;
}
.drop::before { content: ""; position: absolute; left: 0; right: 0; top: -20px; height: 20px; }
.nav__item--drop.is-open .drop { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.drop__list { display: grid; }
.drop__list a { position: relative; padding: 9px 12px 9px 28px; border-radius: var(--r); font-size: 14.5px; line-height: 1.3; color: var(--text); text-decoration: none; transition: background .15s, color .15s; }
.drop__list a::before { content: ""; position: absolute; left: 12px; top: 50%; width: 6px; height: 6px; margin-top: -3px; border-radius: 50%; background: var(--line); transition: background .15s; }
.drop__list a:hover { background: var(--paper); color: #b67516; }
.drop__list a:hover::before { background: var(--amber); }
.drop__all { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; padding: 12px; border-top: 1px solid var(--line); font-size: 14px; font-weight: 600; color: var(--text); text-decoration: none; }
.drop__all svg { color: #b67516; transition: transform .2s; }
.drop__all:hover svg { transform: translateX(4px); }
.drop__list a.is-cur { background: var(--paper); font-weight: 600; } .drop__list a.is-cur::before { background: var(--amber); }

/* мобильная версия: всё в границах экрана, текст кнопок в одну строку */
.contacts__info, .contacts__reach, .cinfo > div { min-width: 0; }
.cinfo p { overflow-wrap: anywhere; }
@media (max-width: 720px) {
  .btn { white-space: nowrap; }
}
@media (max-width: 380px) {
  .btn { font-size: 13px; gap: 10px; padding-left: 16px; }
  .btn--sm { font-size: 13px; padding-left: 14px; }
  .btn svg, .btn--sm svg { width: 30px; height: 30px; padding: 8px; }
  .cinfo { padding: 16px; gap: 12px; } .cinfo__ic { width: 40px; height: 40px; }
}

/* карта: фото-плита России + свечение регионов */
.geo__plane { width: min(100cqw, 100cqh * 2.025); aspect-ratio: 1600 / 790; transform-origin: 41.25% 66.2%; }
.gm image { mix-blend-mode: multiply; }
.gm-glow { fill: url(#gm-g); opacity: 0; transform-box: fill-box; transform-origin: center; transform: scale(.4); transition: opacity .7s, transform .9s cubic-bezier(.2,.7,.2,1); mix-blend-mode: multiply; }
.gm-glow.is-on { opacity: .75; transform: scale(1); }
.gm-glow.is-cur { opacity: 1; transform: scale(1.25); }
.gm .gm-dot { stroke-width: 1.6; }
.gm .gm-halo { stroke-width: .9; }
.gm-pin text { font-size: 13px; stroke-width: 3.5px; }
.geo.is-all .gm-glow.is-on { opacity: .85; transform: scale(1.1); }
.geo:not(.is-anim) .gm-glow { opacity: .8; transform: scale(1); }
.gm image { mix-blend-mode: normal; }
.gm-pin text { stroke: none; paint-order: normal; font-family: "Golos Text", Arial, sans-serif; font-weight: 600; font-size: 14px; fill: var(--ink); }
.gm-pin { opacity: .01; } .gm-pin.is-on { opacity: 1; }
.gm-lbl { position: absolute; z-index: 2; transform: translateY(-80%); white-space: nowrap; font: 600 clamp(5px, .82cqw, 12px)/1 var(--f-body); color: var(--ink); opacity: 0; transition: opacity .5s; pointer-events: none; text-shadow: 0 0 4px rgba(255,255,255,.9), 0 0 2px #fff; }
.gm-lbl--end { transform: translate(-100%, -80%); }
.gm-lbl.is-on { opacity: 1; }
.geo.is-all .gm-lbl { opacity: 0; }
.geo:not(.is-anim) .gm-lbl { opacity: 0; }
.gm-lbl { font-size: clamp(5px, .7cqw, 11px); }
