/* ============================================================
   ГОРЯЧИЙ МОМЕНТ — лендинг для арендодателей
   Палитра выведена из логотипа: жёлтый #FCCC3C, оранжевый #FC9C3C,
   стальной синий #3C546C. База — тёплая бумага.
   ============================================================ */

:root{
  --paper:      #F7F2E9;
  --paper-2:    #F0E8DA;
  --paper-3:    #E7DCC9;
  --ink:        #221A14;
  --ink-2:      #4A3C31;
  --ink-soft:   #7A6A5C;
  --rule:       #DCCFBB;
  --yellow:     #FFC62E;
  --yellow-dk:  #E8A800;
  --amber:      #FF9A22;
  --slate:      #2E4256;
  --slate-2:    #3C546C;
  --slate-soft: #93A6B8;
  --night:      #1A130E;

  --w: 1220px;
  --gut: clamp(20px, 5vw, 64px);
  --sec: clamp(72px, 10vw, 148px);

  --f-disp: "Literata", "Georgia", "Times New Roman", serif;
  --f-text: "Golos Text", "Segoe UI", system-ui, sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--f-text);
  font-size:17px;
  line-height:1.62;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

/* зерно — тёплая бумажная фактура поверх всей страницы */
body::after{
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  z-index:9999;
  opacity:.32;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}

h1,h2,h3,h4{ font-family:var(--f-disp); font-weight:600; line-height:1.08; letter-spacing:-.018em; margin:0; }
p{ margin:0; }
a{ color:inherit; }
img{ max-width:100%; display:block; }

.wrap{ width:100%; max-width:var(--w); margin-inline:auto; padding-inline:var(--gut); }

/* ── шапка ───────────────────────────────────────────────── */
.hdr{
  position:sticky; top:0; z-index:100;
  background:color-mix(in srgb, var(--paper) 86%, transparent);
  backdrop-filter:blur(14px) saturate(1.2);
  border-bottom:1px solid transparent;
  transition:border-color .35s var(--ease), background .35s var(--ease);
}
.hdr.stuck{ border-bottom-color:var(--rule); background:color-mix(in srgb, var(--paper) 95%, transparent); }
/* Шапке тесно в колонке контента (1220px): логотип, меню, телефон и кнопка
   требуют ~1190px, а с отступами остаётся 1092 — меню обрезалось.
   Даём шапке собственную, более широкую сетку: по бокам всё равно
   простаивало место. Текст страницы остаётся в узкой колонке. */
.hdr__in{ display:flex; align-items:center; height:74px;
  max-width:1440px; padding-inline:clamp(20px,3vw,44px); gap:clamp(14px,2vw,28px); }
.brand{ display:flex; align-items:center; gap:11px; text-decoration:none; flex-shrink:0; }
.brand img{ width:40px; height:40px; }
.brand b{
  font-family:var(--f-disp); font-size:17px; font-weight:700;
  letter-spacing:-.02em; line-height:1.15; white-space:nowrap;
}
/* Подпись наследовала межстрочный 1.05 от названия и прилипала к нему.
   Даём ей собственный интерлиньяж и воздух сверху. */
.brand span{ display:block; font-family:var(--f-text); font-size:10.5px; font-weight:500;
  letter-spacing:.13em; line-height:1.2; margin-top:5px;
  text-transform:uppercase; color:var(--ink-soft); }

/* Меню редактируется в админке, пунктов может стать больше.
   min-width:0 и overflow:hidden гарантируют, что выросшее меню
   ужмётся, а не развалит шапку и не даст горизонтальную прокрутку. */
.nav{ display:flex; gap:clamp(10px,1.3vw,22px); margin-left:auto;
      min-width:0; overflow:hidden; }
.nav a{
  text-decoration:none; font-size:14px; font-weight:500; color:var(--ink-2);
  padding:6px 0; position:relative; white-space:nowrap;
}
.nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:2px; height:2px;
  background:var(--yellow); transition:right .32s var(--ease);
}
.nav a:hover::after{ right:0; }

.hdr__tel{ font-weight:600; font-size:15px; text-decoration:none; white-space:nowrap; }
.hdr__tel small{ display:block; font-size:10.5px; font-weight:500; color:var(--ink-soft);
  letter-spacing:.1em; text-transform:uppercase; }

.burger{ display:none; margin-left:auto; width:44px; height:44px; border:1px solid var(--rule);
  background:none; border-radius:50%; cursor:pointer; position:relative; }
.burger i{ position:absolute; left:13px; right:13px; height:1.5px; background:var(--ink);
  transition:.3s var(--ease); }
.burger i:nth-child(1){ top:17px; } .burger i:nth-child(2){ top:22px; } .burger i:nth-child(3){ top:27px; }
.burger.on i:nth-child(1){ top:22px; transform:rotate(45deg); }
.burger.on i:nth-child(2){ opacity:0; }
.burger.on i:nth-child(3){ top:22px; transform:rotate(-45deg); }

/* ── кнопки ──────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--f-text); font-size:15px; font-weight:600; letter-spacing:-.005em;
  padding:15px 28px; border-radius:100px; border:1px solid transparent;
  text-decoration:none; cursor:pointer; transition:.3s var(--ease); white-space:nowrap;
}
.btn--y{ background:var(--yellow); color:var(--ink); box-shadow:0 1px 0 var(--yellow-dk); }
.btn--y:hover{ background:var(--amber); transform:translateY(-2px);
  box-shadow:0 10px 26px -10px rgba(255,154,34,.75); }
.btn--o{ border-color:var(--ink); color:var(--ink); }
.btn--o:hover{ background:var(--ink); color:var(--paper); }
.btn--l{ border-color:rgba(255,255,255,.32); color:#fff; }
.btn--l:hover{ background:#fff; color:var(--slate); }

/* ── герой ───────────────────────────────────────────────── */
.hero{ position:relative; padding-top:clamp(48px,8vw,92px); padding-bottom:var(--sec); overflow:hidden; }
.hero::before{
  content:""; position:absolute; z-index:0;
  width:min(88vw,900px); aspect-ratio:1; right:-24%; top:-30%;
  background:radial-gradient(circle at 50% 50%, rgba(255,198,46,.42), rgba(255,154,34,.14) 42%, transparent 68%);
  filter:blur(10px);
}
.hero__ring{
  position:absolute; z-index:0; right:-16%; top:2%;
  width:min(80vw,720px); aspect-ratio:1; border-radius:50%;
  background:conic-gradient(from 200deg, var(--yellow) 0turn .30turn, transparent .30turn .52turn, var(--slate-2) .52turn .74turn, transparent .74turn 1turn);
  -webkit-mask:radial-gradient(circle, transparent 60.5%, #000 61%);
          mask:radial-gradient(circle, transparent 60.5%, #000 61%);
  opacity:.5;
  animation:spin 90s linear infinite;
}
@keyframes spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .hero__ring{ animation:none; } }

.hero__in{ position:relative; z-index:1; max-width:830px; }
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:11.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-2); background:var(--paper-2); border:1px solid var(--rule);
  padding:8px 17px; border-radius:100px; margin-bottom:26px;
}
.eyebrow b{ color:var(--yellow-dk); font-weight:700; }

h1{ font-size:clamp(2.5rem,6.4vw,5rem); }
h1 em{ font-style:normal; position:relative; white-space:nowrap; }
h1 em::after{
  content:""; position:absolute; left:-.04em; right:-.04em; bottom:.06em; height:.30em;
  background:var(--yellow); z-index:-1; border-radius:2px;
  transform:scaleX(0); transform-origin:left; animation:swipe .9s .55s var(--ease) forwards;
}
@keyframes swipe{ to{ transform:scaleX(1); } }
.hero__lead{
  font-size:clamp(1.02rem,1.9vw,1.24rem); color:var(--ink-2);
  max-width:610px; margin-top:28px;
}
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:38px; align-items:center; }
.hero__note{ font-size:13.5px; color:var(--ink-soft); }

/* пар над заголовком */
.steam{ position:absolute; top:-14px; left:2px; width:56px; height:64px; opacity:.85; }
.steam path{ stroke:var(--amber); stroke-width:3.4; fill:none; stroke-linecap:round;
  stroke-dasharray:70; stroke-dashoffset:70; animation:steam 3.4s var(--ease) infinite; }
.steam path:nth-child(2){ animation-delay:.5s; } .steam path:nth-child(3){ animation-delay:1s; }
@keyframes steam{ 0%{ stroke-dashoffset:70; opacity:0; } 30%{ opacity:.9; }
  70%{ stroke-dashoffset:0; opacity:.55; } 100%{ stroke-dashoffset:0; opacity:0; } }
@media (prefers-reduced-motion:reduce){ .steam path{ animation:none; stroke-dashoffset:0; } }

/* ── цифры ───────────────────────────────────────────────── */
.stats{ border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
  background:var(--paper-2); }
.stats__g{ display:grid; grid-template-columns:repeat(4,1fr); }
.stats__i{ padding:clamp(26px,3.6vw,42px) 0; text-align:center;
  border-left:1px solid var(--rule); }
.stats__i:first-child{ border-left:0; }
.stats__n{ font-family:var(--f-disp); font-size:clamp(2rem,4.4vw,3.3rem); font-weight:700;
  line-height:1; letter-spacing:-.03em; }
.stats__n span{ color:var(--yellow-dk); }
/* --ink-soft на бежевой полосе давал 4.27:1 — ниже нормы для мелкого текста */
.stats__l{ font-size:13px; color:var(--ink-2); margin-top:9px; padding-inline:10px; }

/* ── секции ──────────────────────────────────────────────── */
section{ padding-block:var(--sec); position:relative; }
.head{ margin-bottom:clamp(38px,5vw,64px); max-width:760px; }
.num{
  font-family:var(--f-disp); font-size:12.5px; font-weight:700; letter-spacing:.2em;
  color:var(--yellow-dk); display:flex; align-items:center; gap:14px; margin-bottom:18px;
}
.num::after{ content:""; height:1px; flex:1; background:var(--rule); max-width:120px; }
h2{ font-size:clamp(1.85rem,4vw,3.05rem); }
.head p{ margin-top:18px; color:var(--ink-2); font-size:clamp(1rem,1.6vw,1.11rem); }

/* ── как это работает ────────────────────────────────────── */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--rule);
  border:1px solid var(--rule); border-radius:20px; overflow:hidden; }
.step{ background:var(--paper); padding:clamp(26px,3vw,38px); transition:background .4s var(--ease); }
.step:hover{ background:var(--paper-2); }
.step b{ font-family:var(--f-disp); font-size:2.7rem; font-weight:700; color:var(--paper-3);
  line-height:1; display:block; margin-bottom:16px; transition:color .4s var(--ease); }
.step:hover b{ color:var(--yellow); }
.step h3{ font-size:1.17rem; margin-bottom:9px; }
.step p{ font-size:14.6px; color:var(--ink-soft); }

/* ── что получает арендодатель ───────────────────────────── */
.gets{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(32px,5vw,72px); align-items:start; }
.gets__list{ display:grid; gap:2px; }
.gets__i{ display:flex; gap:18px; padding:22px 0; border-bottom:1px solid var(--rule); }
.gets__i:first-child{ border-top:1px solid var(--rule); }
.gets__i svg{ flex-shrink:0; width:26px; height:26px; margin-top:2px; }
.gets__i h3{ font-size:1.1rem; margin-bottom:5px; }
.gets__i p{ font-size:14.8px; color:var(--ink-soft); }

.terms{
  background:var(--night); color:var(--paper); border-radius:22px;
  padding:clamp(30px,4vw,46px); position:sticky; top:104px;
}
.terms h3{ font-size:1.5rem; color:#fff; }
.terms p{ font-size:15px; color:#C9BCAE; margin-top:14px; }
.terms__opts{ display:grid; gap:10px; margin:26px 0 28px; }
.terms__o{ display:flex; align-items:center; gap:13px; font-size:14.6px; font-weight:500;
  background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.1);
  padding:14px 18px; border-radius:12px; }
.terms__o i{ width:7px; height:7px; border-radius:50%; background:var(--yellow); flex-shrink:0; }
.terms .btn{ width:100%; }

/* ── преимущества ────────────────────────────────────────── */
.adv{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(20px,2.4vw,34px); }
.adv__i{ padding-top:22px; border-top:2px solid var(--ink); }
.adv__i:nth-child(2n){ border-top-color:var(--yellow); }
.adv__n{ font-size:11.5px; font-weight:700; letter-spacing:.16em; color:var(--ink-soft);
  margin-bottom:12px; }
.adv__i h3{ font-size:1.2rem; margin-bottom:9px; }
.adv__i p{ font-size:14.6px; color:var(--ink-soft); }

/* ── медицина (единственный холодный блок) ───────────────── */
.med{ background:var(--slate); color:#EAF0F5; border-radius:clamp(20px,3vw,34px); overflow:hidden;
  position:relative; }
.med::before{ content:""; position:absolute; right:-10%; bottom:-40%;
  width:min(70vw,560px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle, rgba(255,198,46,.16), transparent 66%); }
.med__in{ position:relative; padding:clamp(38px,6vw,84px); display:grid;
  grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,70px); align-items:center; }
.med .num{ color:var(--yellow); }
.med .num::after{ background:rgba(255,255,255,.22); }
.med h2{ font-size:clamp(1.7rem,3.4vw,2.6rem); color:#fff; }
.med p{ color:var(--slate-soft); margin-top:18px; font-size:16px; }
.med__big{ font-family:var(--f-disp); font-size:clamp(3.4rem,9vw,6.4rem); font-weight:700;
  line-height:.92; color:var(--yellow); letter-spacing:-.04em; }
.med__big small{ display:block; font-family:var(--f-text); font-size:15px; font-weight:500;
  color:#EAF0F5; letter-spacing:0; margin-top:14px; max-width:280px; line-height:1.5; }
.med__list{ display:flex; flex-wrap:wrap; gap:9px; margin-top:28px; }
.med__list span{ font-size:14px; font-weight:500; padding:9px 16px; border-radius:100px;
  background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.14); }

/* ── клиенты: бегущая строка ─────────────────────────────── */
.marq{ overflow:hidden; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
  padding-block:26px; background:var(--paper-2); -webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marq__t{ display:flex; gap:0; width:max-content; animation:marq 46s linear infinite; }
.marq:hover .marq__t{ animation-play-state:paused; }
@keyframes marq{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .marq__t{ animation:none; } }
.marq__i{ font-family:var(--f-disp); font-size:clamp(1.1rem,2.1vw,1.65rem); font-weight:500;
  padding-inline:clamp(20px,2.6vw,38px); white-space:nowrap; display:flex; align-items:center; gap:clamp(20px,2.6vw,38px); }
.marq__i::after{ content:""; width:7px; height:7px; border-radius:50%; background:var(--yellow); }

/* ── галерея ─────────────────────────────────────────────── */
.gal{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.6vw,20px); }
.gal__i{ aspect-ratio:3/4; border-radius:16px; overflow:hidden; position:relative;
  border:1px solid var(--rule); display:flex; align-items:flex-end; padding:22px;
  background:linear-gradient(160deg, var(--paper-2), var(--paper-3)); }
.gal__i:nth-child(2){ background:linear-gradient(160deg,#2B2118,#4A392A); }
.gal__i:nth-child(3){ background:linear-gradient(160deg,var(--paper-3),#D6C4A8); }
.gal__i:nth-child(4){ background:linear-gradient(160deg,var(--slate),#22323F); }
.gal__i::before{ content:""; position:absolute; inset:0;
  background:url("../img/logo-256.fa3e09872b14.png") center/58% no-repeat; opacity:.10; }
.gal__i span{ position:relative; font-size:14px; font-weight:600; }
.gal__i:nth-child(2) span,.gal__i:nth-child(4) span{ color:#F3E9DB; }
.gal__cap{ margin-top:18px; font-size:13.5px; color:var(--ink-soft); }

/* ── оборудование ────────────────────────────────────────── */
.eq{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.4vw,28px); }
.eq__c{ border:1px solid var(--rule); border-radius:18px; overflow:hidden; background:var(--paper);
  display:flex; flex-direction:column; transition:.35s var(--ease); }
.eq__c:hover{ transform:translateY(-4px); box-shadow:0 18px 40px -24px rgba(34,26,20,.4); }
.eq__ph{ aspect-ratio:4/3; background:linear-gradient(150deg,var(--paper-2),var(--paper-3));
  position:relative; border-bottom:1px solid var(--rule); }
.eq__ph::before{ content:""; position:absolute; inset:0;
  background:url("../img/logo-256.fa3e09872b14.png") center/44% no-repeat; opacity:.13; }
.eq__b{ position:absolute; top:14px; left:14px; font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; padding:6px 12px; border-radius:100px;
  background:var(--yellow); color:var(--ink); }
.eq__b--out{ background:var(--paper-3); color:var(--ink-soft); }
.eq__t{ padding:24px; display:flex; flex-direction:column; gap:8px; flex:1; }
.eq__t h3{ font-size:1.16rem; }
.eq__t p{ font-size:14.4px; color:var(--ink-soft); flex:1; }
.eq__p{ font-family:var(--f-disp); font-size:1.32rem; font-weight:700; margin-top:6px; }
.eq__p small{ font-family:var(--f-text); font-size:13px; font-weight:500; color:var(--ink-soft); }

/* ── FAQ ─────────────────────────────────────────────────── */
.faq{ max-width:900px; }
.faq details{ border-top:1px solid var(--rule); }
.faq details:last-of-type{ border-bottom:1px solid var(--rule); }
.faq summary{ list-style:none; cursor:pointer; padding:26px 52px 26px 0; position:relative;
  font-family:var(--f-disp); font-size:clamp(1.05rem,1.9vw,1.3rem); font-weight:600;
  transition:color .3s var(--ease); }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--yellow-dk); }
.faq summary::after{ content:""; position:absolute; right:8px; top:50%; width:14px; height:2px;
  background:var(--ink); transition:.3s var(--ease); }
.faq summary::before{ content:""; position:absolute; right:14px; top:50%; width:2px; height:14px;
  margin-top:-6px; background:var(--ink); transition:.3s var(--ease); }
.faq details[open] summary::before{ transform:rotate(90deg); opacity:0; }
.faq details[open] summary{ color:var(--yellow-dk); }
.faq__a{ padding:0 60px 28px 0; color:var(--ink-soft); font-size:15.4px; }

/* ── карта ───────────────────────────────────────────────── */
.map{ border:1px solid var(--rule); border-radius:22px; overflow:hidden; background:var(--paper-2); }
.map__grid{ display:grid; grid-template-columns:340px 1fr; min-height:clamp(400px,52vw,560px); }
.map__list{ border-right:1px solid var(--rule); overflow-y:auto; max-height:clamp(400px,52vw,560px);
  background:var(--paper); scrollbar-width:thin; }
.pt{ display:block; width:100%; text-align:left; background:none; border:0; cursor:pointer;
  font-family:var(--f-text); padding:14px 22px; border-bottom:1px solid var(--rule);
  transition:background .2s var(--ease); position:relative; }
.pt::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--yellow); transform:scaleY(0); transition:transform .25s var(--ease); }
.pt:hover,.pt.on{ background:var(--paper-2); }
.pt:hover::before,.pt.on::before{ transform:scaleY(1); }
.pt b{ display:block; font-size:14.8px; font-weight:600; color:var(--ink); }
.pt span{ display:block; font-size:13.4px; color:var(--ink-soft); margin-top:2px; }
/* Leaflet раздаёт своим слоям z-index до 800. Без собственного контекста
   наложения они соперничают со всей страницей и перекрывают шапку,
   плашку cookie и плавающие кнопки. isolation запирает их внутри карты. */
.map__canvas{ position:relative; isolation:isolate; z-index:0;
              background:var(--paper-3); }
#ymap{ position:absolute; inset:0; }
.map__bar{ display:flex; flex-wrap:wrap; gap:10px 26px; padding:18px clamp(20px,3vw,30px);
  border-top:1px solid var(--rule); font-size:14.2px; color:var(--ink-soft); align-items:center; }
.map__bar b{ color:var(--ink); font-family:var(--f-disp); font-size:1.05rem; }
.map__bar a{ color:var(--ink); font-weight:600; text-underline-offset:3px; }
.map__bar a:hover{ color:var(--yellow-dk); }
.gm-pin{ filter:drop-shadow(0 3px 5px rgba(34,26,20,.34)); transition:transform .2s var(--ease); }
.gm-pin.big{ transform:scale(1.28); z-index:900 !important; }
.leaflet-container{ font-family:var(--f-text); background:var(--paper-3); }
.leaflet-popup-content-wrapper{ border-radius:12px; box-shadow:0 12px 30px -14px rgba(34,26,20,.5); }
.leaflet-popup-content{ margin:12px 15px; font-size:14px; line-height:1.45; }
.leaflet-popup-content b{ font-family:var(--f-disp); font-size:15px; }

/* ── плавающая кнопка связи ──────────────────────────────── */
.fab{ position:fixed; right:clamp(14px,2.5vw,26px); bottom:clamp(14px,2.5vw,26px); z-index:98;
  display:flex; align-items:center; gap:10px; padding:14px 22px; border-radius:100px;
  background:var(--ink); color:var(--paper); text-decoration:none; font-size:14.5px; font-weight:600;
  box-shadow:0 12px 30px -12px rgba(34,26,20,.7); transition:.3s var(--ease);
  opacity:0; transform:translateY(20px); pointer-events:none; }
.fab.show{ opacity:1; transform:none; pointer-events:auto; }
.fab:hover{ background:var(--yellow); color:var(--ink); }
.fab svg{ width:19px; height:19px; }

/* ── форма ───────────────────────────────────────────────── */
.form-sec{ background:var(--paper-2); border-top:1px solid var(--rule); }
.form-g{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(34px,5vw,76px); align-items:start; }
.form-side h2{ font-size:clamp(1.8rem,3.6vw,2.7rem); }
.form-side p{ margin-top:18px; color:var(--ink-2); }
.form-side dl{ margin:32px 0 0; display:grid; gap:18px; }
.form-side dt{ font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-soft); }
.form-side dd{ margin:4px 0 0; font-family:var(--f-disp); font-size:1.24rem; font-weight:600; }
.form-side dd a{ text-decoration:none; }
.form-side dd a:hover{ color:var(--yellow-dk); }

form{ background:var(--paper); border:1px solid var(--rule); border-radius:22px;
  padding:clamp(26px,3.6vw,44px); }
.f-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.f{ margin-bottom:16px; }
label{ display:block; font-size:13px; font-weight:600; margin-bottom:7px; color:var(--ink-2); }
input,select,textarea{
  width:100%; font-family:var(--f-text); font-size:15.5px; color:var(--ink);
  background:var(--paper-2); border:1px solid var(--rule); border-radius:11px;
  padding:14px 16px; transition:.25s var(--ease);
}
textarea{ resize:vertical; min-height:96px; }
input:focus,select:focus,textarea:focus{ outline:none; border-color:var(--yellow);
  background:var(--paper); box-shadow:0 0 0 3px rgba(255,198,46,.22); }
.f-legend{ font-size:13px; font-weight:600; color:var(--ink-2); margin-bottom:9px; }
.f-radios{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:20px; }
.f-radios label{ margin:0; font-size:14px; font-weight:500; cursor:pointer;
  border:1px solid var(--rule); border-radius:100px; padding:10px 18px;
  background:var(--paper-2); transition:.25s var(--ease); }
.f-radios input{ position:absolute; opacity:0; width:0; height:0; }
.f-radios label:has(input:checked){ background:var(--yellow); border-color:var(--yellow);
  color:var(--ink); font-weight:600; }
.f-radios label:has(input:focus-visible){ box-shadow:0 0 0 3px rgba(255,198,46,.3); }

.consent{ display:flex; gap:12px; align-items:flex-start; margin:6px 0 20px;
  font-size:13.2px; line-height:1.5; color:var(--ink-soft); }
.consent input{ width:19px; height:19px; flex-shrink:0; margin-top:1px; accent-color:var(--yellow-dk); }
.consent a{ color:var(--ink); text-underline-offset:3px; }
form .btn{ width:100%; }
form .btn[disabled]{ opacity:.45; cursor:not-allowed; transform:none; box-shadow:none; }
.f-ok{ display:none; text-align:center; padding:20px; }
.f-ok b{ font-family:var(--f-disp); font-size:1.3rem; display:block; margin-bottom:8px; }
.f-ok p{ color:var(--ink-soft); font-size:15px; }

/* ── подвал ──────────────────────────────────────────────── */
footer{ background:var(--night); color:#B7A897; padding-block:clamp(48px,6vw,76px) 34px; font-size:14.2px; }
.f-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:clamp(28px,4vw,60px);
  padding-bottom:38px; border-bottom:1px solid rgba(255,255,255,.1); }
.f-top .brand b{ color:#fff; } .f-top .brand span{ color:#8B7C6C; }
.f-about{ margin-top:20px; max-width:330px; }
footer .f-h{ font-family:var(--f-text); font-size:11.5px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:#8B7C6C; margin-bottom:16px; }
footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
footer a{ text-decoration:none; transition:color .25s var(--ease); }
footer a:hover{ color:var(--yellow); }
.f-req{ padding-top:26px; display:flex; flex-wrap:wrap; gap:8px 26px; font-size:12.8px; color:#8B7C6C; }
.f-req a{ color:#B7A897; }

/* ── появление при скролле ───────────────────────────────── */
/* Прячем блоки только если JS точно работает: класс .js ставится
   первым же скриптом в <head>. Иначе при отключённом или упавшем
   JS вся страница осталась бы пустой. */
.js .rv{ opacity:0; transform:translateY(24px);
         transition:opacity .75s var(--ease), transform .75s var(--ease); }
.js .rv.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .js .rv{ opacity:1; transform:none; transition:none; }
}

/* ── отступ под липкой шапкой при переходе по якорю ──────── */
/* Без этого заголовок раздела уезжает под шапку. */
section[id], div[id]{ scroll-margin-top:92px; }

/* ── адаптив ─────────────────────────────────────────────── */
@media (max-width:1080px){
  /* minmax(0,1fr) — иначе длинное слово раздувает свою колонку
     и две «равные» колонки получаются разной ширины */
  .adv{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 26px; }
  .steps{ grid-template-columns:repeat(2,1fr); }
  .gets,.form-g,.med__in{ grid-template-columns:1fr; }
  .terms{ position:static; }
  .eq{ grid-template-columns:repeat(2,1fr); }
  .gal{ grid-template-columns:repeat(2,1fr); }
  .map__grid{ grid-template-columns:1fr; }
  .map__list{ grid-row:2; border-right:0; border-top:1px solid var(--rule); max-height:300px; }
  .map__canvas{ height:clamp(320px,58vw,420px); }
}
/* Ниже этой ширины телефон перестаёт помещаться рядом с меню и кнопкой.
   Он остаётся в подвале, а на мобильном есть круглая кнопка звонка. */
@media (max-width:1280px){ .hdr__tel{ display:none; } }
@media (max-width:1180px){
  .nav{ position:fixed; inset:74px 0 auto; flex-direction:column; gap:0;
    overflow:visible;
    background:var(--paper); border-bottom:1px solid var(--rule); padding:8px var(--gut) 22px;
    transform:translateY(-130%); transition:transform .4s var(--ease); z-index:99; }
  .nav.open{ transform:none; }
  .nav a{ padding:14px 0; border-bottom:1px solid var(--rule); font-size:16px; }
  .burger{ display:block; }
  .hdr__tel,.hdr .btn{ display:none; }
  .stats__g{ grid-template-columns:repeat(2,1fr); }
  .stats__i:nth-child(3){ border-left:0; }
  .stats__i:nth-child(n+3){ border-top:1px solid var(--rule); }
  .f-top{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  body{ font-size:16px; }
  .steps,.eq,.f-row{ grid-template-columns:1fr; }
  .hero__cta .btn{ width:100%; }
  .faq__a{ padding-right:0; }
  /* на узких экранах длинные подписи кнопок переносим, иначе распирает страницу */
  .btn{ white-space:normal; text-align:center; padding-inline:20px; }
  .fab{ padding:13px 18px; font-size:14px; }
}

/* ── реальные фото вместо заглушек ───────────────────────── */
.gal__img,.eq__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gal__i:has(.gal__img)::before,.eq__ph:has(.eq__img)::before{ display:none; }
.gal__i:has(.gal__img)::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(transparent 42%, rgba(20,14,10,.78)); }
.gal__i:has(.gal__img) span{ color:#F5EDE1; position:relative; z-index:1; }
.eq__ph{ overflow:hidden; }
.eq__b{ z-index:2; }
a.eq__c{ color:inherit; }

/* ── текстовые страницы: политика, согласие, блог ────────── */
.doc{ max-width:820px; font-size:16.5px; color:var(--ink-2); }
.doc h2,.doc h3,.doc h4{ font-family:var(--f-disp); color:var(--ink); margin:34px 0 12px; }
.doc h2{ font-size:1.5rem; } .doc h3{ font-size:1.24rem; } .doc h4{ font-size:1.08rem; }
.doc p{ margin-bottom:15px; }
.doc ul,.doc ol{ margin:0 0 18px; padding-left:22px; }
.doc li{ margin-bottom:8px; }
.doc a{ color:var(--ink); text-underline-offset:3px; }
.doc a:hover{ color:var(--yellow-dk); }
.doc hr{ border:0; border-top:1px solid var(--rule); margin:30px 0; }

/* ── звонок с мобильного ─────────────────────────────────── */
/* На телефоне шапка сворачивается в бургер, и номер пропадал —
   у B2B-лендинга это прямая потеря обращений. */
.hdr__call{ display:none; width:44px; height:44px; border-radius:50%;
  background:var(--yellow); color:var(--ink); margin-left:auto;
  align-items:center; justify-content:center; flex-shrink:0; }
.hdr__call svg{ width:20px; height:20px; }
@media (max-width:1120px){
  .hdr__call{ display:flex; }
  .burger{ margin-left:10px; }
}
/* На узком экране логотип, звонок и бургер не помещались в строку —
   убираем подпись под названием и поджимаем отступы. */
@media (max-width:600px){
  .hdr__in{ gap:12px; }
  .brand{ min-width:0; }
  .brand span{ display:none; }
  .brand b{ font-size:16px; overflow:hidden; text-overflow:ellipsis; }
  .burger{ margin-left:0; }
}

/* ── уведомление о cookie ────────────────────────────────── */
.cookie{ position:fixed; left:clamp(12px,3vw,24px); right:clamp(12px,3vw,24px);
  bottom:clamp(12px,3vw,24px); z-index:97; max-width:560px;
  background:var(--night); color:#D9CCBD; border-radius:16px;
  padding:18px 22px; display:none; gap:16px; align-items:center; flex-wrap:wrap;
  box-shadow:0 18px 44px -18px rgba(0,0,0,.6); font-size:14px; line-height:1.45; }
.cookie.show{ display:flex; }
.cookie p{ flex:1; min-width:220px; margin:0; }
.cookie a{ color:var(--yellow); text-underline-offset:3px; }
.cookie button{ font-family:var(--f-text); font-size:14px; font-weight:600;
  background:var(--yellow); color:var(--ink); border:0; border-radius:100px;
  padding:11px 22px; cursor:pointer; transition:background .25s var(--ease); }
.cookie button:hover{ background:var(--amber); }
@media (max-width:560px){
  .cookie{ bottom:84px; }        /* не перекрываем плавающую кнопку заявки */
  .cookie button{ width:100%; }
}

/* ── мелкие правки под палец ─────────────────────────────── */
/* Кнопки масштаба Leaflet по умолчанию 30px — для пальца мало. */
.leaflet-touch .leaflet-control-zoom-in,
.leaflet-touch .leaflet-control-zoom-out{ width:40px; height:40px; line-height:38px; font-size:20px; }

@media (max-width:600px){
  /* На узком экране преимущества в две колонки нечитаемы */
  .adv{ grid-template-columns:1fr; gap:26px; }
  .gal{ grid-template-columns:1fr 1fr; }
  /* Ссылки в подвале и под картой были высотой 17–29px — мало для пальца */
  footer ul a, .map__bar a{ display:inline-block; padding-block:9px; }
  footer ul{ gap:2px; }
  .map__bar{ gap:4px 20px; }
  .map__bar span{ width:100%; }
  .map__bar span[style]{ margin-left:0 !important; }
}

/* ══════════════════════════════════════════════════════════
   ФОНЫ СЕКЦИЙ — выбираются в админке у каждого раздела
   ══════════════════════════════════════════════════════════ */
.sec--paper{ background:var(--paper); }
.sec--beige{ background:var(--paper-2); }

/* Два соседних раздела с одинаковым фоном сливаются —
   убираем двойной отступ на стыке. */
.sec--paper + .sec--paper,
.sec--beige + .sec--beige{ padding-top:0; }

/* ── тёмная секция ───────────────────────────────────────── */
.sec--dark{ background:var(--night); color:#C9BCAE; }
.sec--dark h2,.sec--dark h3{ color:#fff; }
.sec--dark .head p{ color:#B7A897; }
.sec--dark .num{ color:var(--yellow); }
.sec--dark .num::after{ background:rgba(255,255,255,.18); }
.sec--dark .step,
.sec--dark .eq__c{ background:rgba(255,255,255,.045); }
.sec--dark .steps,
.sec--dark .eq__c,
.sec--dark .faq details,
.sec--dark .adv__i{ border-color:rgba(255,255,255,.14); }
.sec--dark .steps{ background:rgba(255,255,255,.12); }
.sec--dark .step p,.sec--dark .adv__i p,.sec--dark .faq__a,
.sec--dark .gal__cap{ color:#A2937F; }
.sec--dark .step b{ color:rgba(255,255,255,.16); }
.sec--dark .step:hover{ background:rgba(255,255,255,.08); }
.sec--dark .step:hover b{ color:var(--yellow); }
.sec--dark .faq summary{ color:#fff; }
.sec--dark .faq summary::after,.sec--dark .faq summary::before{ background:#fff; }
.sec--dark .faq summary:hover,.sec--dark .faq details[open] summary{ color:var(--yellow); }
.sec--dark .eq__ph{ background:linear-gradient(150deg,#2A2119,#3B2E22); border-color:rgba(255,255,255,.12); }
.sec--dark .map{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.14); }
.sec--dark .map__list{ background:rgba(0,0,0,.25); border-color:rgba(255,255,255,.14); }
.sec--dark .pt{ border-color:rgba(255,255,255,.1); }
.sec--dark .pt b{ color:#F2E9DC; }
.sec--dark .pt span,.sec--dark .map__bar{ color:#A2937F; }
.sec--dark .pt:hover,.sec--dark .pt.on{ background:rgba(255,255,255,.07); }
.sec--dark .map__bar{ border-color:rgba(255,255,255,.14); }
.sec--dark .map__bar b,.sec--dark .map__bar a{ color:#F2E9DC; }
.sec--dark .terms{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); }
.sec--dark .gets__i{ border-color:rgba(255,255,255,.12); }
.sec--dark .gets__i p{ color:#A2937F; }

/* ══════════════════════════════════════════════════════════
   ПРЕИМУЩЕСТВА — было четыре колонки мелким текстом,
   содержания на восемь пунктов, а веса как на два
   ══════════════════════════════════════════════════════════ */
.adv{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(28px,3vw,44px); }
.adv__i{ padding-top:26px; border-top:2px solid var(--ink); }
.adv__i:nth-child(2n){ border-top-color:var(--yellow); }
.adv__n{
  font-family:var(--f-disp); font-size:2.1rem; font-weight:700; line-height:1;
  letter-spacing:-.03em; color:var(--yellow-dk); margin-bottom:14px;
}
.sec--dark .adv__n{ color:var(--yellow); }
.adv__i h3{ font-size:1.42rem; margin-bottom:11px; }
.adv__i p{ font-size:15.6px; color:var(--ink-2); }
.sec--beige .adv__i p{ color:var(--ink-2); }

@media (max-width:1080px){ .adv{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){
  .adv{ grid-template-columns:1fr; gap:26px; }
  .adv__n{ font-size:1.8rem; }
  .adv__i h3{ font-size:1.28rem; }
}

/* ══════════════════════════════════════════════════════════
   ОТЗЫВЫ
   ══════════════════════════════════════════════════════════ */
.rev{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(20px,2.6vw,32px); }
.rev__i{ margin:0; padding:clamp(26px,3vw,38px); background:var(--paper);
  border:1px solid var(--rule); border-radius:20px; display:flex; flex-direction:column; }
.sec--beige .rev__i{ background:var(--paper); }
.sec--dark .rev__i{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.14); }
.rev__i blockquote{ margin:0 0 22px; font-family:var(--f-disp); font-size:clamp(1.05rem,1.7vw,1.25rem);
  line-height:1.5; position:relative; padding-top:30px; flex:1; }
.rev__i blockquote::before{ content:"«"; position:absolute; top:-6px; left:-4px;
  font-family:var(--f-disp); font-size:4rem; line-height:1; color:var(--yellow); }
.rev__i figcaption{ display:flex; align-items:center; gap:14px; }
.rev__ava{ width:48px; height:48px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.rev__i figcaption b{ display:block; font-size:15.5px; }
.rev__i figcaption i{ display:block; font-style:normal; font-size:13.6px; color:var(--ink-soft); }
.sec--dark .rev__i figcaption i{ color:#A2937F; }
.rev__scan{ display:flex; align-items:center; gap:12px; margin-top:20px; padding-top:18px;
  border-top:1px solid var(--rule); text-decoration:none; font-size:14px; font-weight:600; }
.rev__scan img{ width:44px; height:58px; object-fit:cover; border-radius:6px; border:1px solid var(--rule); }
.rev__scan:hover{ color:var(--yellow-dk); }

/* ══════════════════════════════════════════════════════════
   КОМАНДА
   ══════════════════════════════════════════════════════════ */
.team{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(22px,2.8vw,36px); }
.team__ph{ aspect-ratio:1; border-radius:18px; overflow:hidden; margin-bottom:18px;
  background:linear-gradient(150deg,var(--paper-2),var(--paper-3)); position:relative; }
.team__ph img{ width:100%; height:100%; object-fit:cover; }
.team__ph::before{ content:""; position:absolute; inset:0;
  background:url("../img/logo-256.fa3e09872b14.png") center/40% no-repeat; opacity:.12; }
.team__ph img + ::before,.team__ph:has(img)::before{ display:none; }
.team__i h3{ font-size:1.3rem; }
.team__role{ font-size:13.5px; color:var(--yellow-dk); font-weight:600; margin:5px 0 10px;
  letter-spacing:.02em; }
.team__i p{ font-size:15px; color:var(--ink-2); }
.sec--dark .team__i p{ color:#A2937F; }

/* ══════════════════════════════════════════════════════════
   ДОКУМЕНТЫ ДЛЯ СКАЧИВАНИЯ
   ══════════════════════════════════════════════════════════ */
.docs{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.docs__i{ display:flex; align-items:center; gap:18px; padding:22px 24px;
  background:var(--paper); border:1px solid var(--rule); border-radius:16px;
  text-decoration:none; transition:.3s var(--ease); }
.sec--dark .docs__i{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.14); }
.docs__i:hover{ transform:translateY(-2px); border-color:var(--yellow);
  box-shadow:0 14px 30px -18px rgba(34,26,20,.5); }
.docs__i svg{ width:34px; height:34px; flex-shrink:0; color:var(--yellow-dk); }
.docs__i b{ display:block; font-family:var(--f-disp); font-size:1.1rem; }
.docs__i i{ display:block; font-style:normal; font-size:14px; color:var(--ink-soft); margin-top:3px; }
.docs__i em{ display:block; font-style:normal; font-size:12px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-soft); margin-top:7px; }
.sec--dark .docs__i i,.sec--dark .docs__i em{ color:#A2937F; }

/* ══════════════════════════════════════════════════════════
   КНОПКИ МЕССЕНДЖЕРОВ
   ══════════════════════════════════════════════════════════ */
.msgr{ position:fixed; right:clamp(14px,2.5vw,26px); z-index:98;
  display:flex; flex-direction:column; gap:10px;
  bottom:calc(clamp(14px,2.5vw,26px) + 62px);
  opacity:0; transform:translateY(14px); pointer-events:none;
  transition:.3s var(--ease); }
.msgr.show{ opacity:1; transform:none; pointer-events:auto; }
.msgr a{ width:48px; height:48px; border-radius:50%; display:flex;
  align-items:center; justify-content:center; color:#fff;
  box-shadow:0 8px 22px -8px rgba(0,0,0,.5); transition:transform .25s var(--ease); }
.msgr a:hover{ transform:scale(1.08); }
.msgr svg{ width:24px; height:24px; }
.msgr .wa{ background:#25D366; }
.msgr .tg{ background:#2AABEE; }
.msgr .vk{ background:#0077FF; }

@media (max-width:1080px){
  .rev,.docs{ grid-template-columns:1fr; }
  .team{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px){
  .team{ grid-template-columns:1fr; }
  .msgr{ bottom:calc(clamp(14px,2.5vw,26px) + 58px); }
  .msgr a{ width:44px; height:44px; }
}
