:root{
  --green:#284A30;
  --green-deep:#1D3823;
  --yellow:#FAE15A;
  --paper:#F4F4EF;
  --ink:#15221A;
  --muted:#5E6B61;
  --ink-soft:#44524A;  /* для основного текста — темнее muted, легче читать с телефона */
  --card:#FFFFFF;
  --radius:20px;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{
  height:100%;
  overflow-x:hidden; /* водяные знаки выступают за край экрана;
                        именно на html, а не body — иначе ломается sticky */
}
body{
  min-height:100%;
  font-family:'Manrope',system-ui,sans-serif;
  background:var(--paper);
  color:var(--ink);
  display:flex;
  justify-content:center;
}
.phone{
  width:100%;
  max-width:430px;
  min-height:100dvh;
  padding:calc(20px + env(safe-area-inset-top)) 20px calc(28px + env(safe-area-inset-bottom));
  display:flex;
  flex-direction:column;
}

/* ── шапка ── */
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  padding:6px 2px 26px;
}
.brand img{width:44px;height:44px;border-radius:12px;display:block}
.brand-name{
  font-family:'Unbounded',sans-serif;
  font-weight:600;
  font-size:17px;
  letter-spacing:.01em;
  color:var(--green);
}
.brand-sub{
  font-size:11.5px;
  font-weight:600;
  color:var(--muted);
  letter-spacing:.05em;
  text-transform:uppercase;
  margin-top:2px;
}

/* ── переключатель языка ── */
.lang{
  margin-left:auto;
  display:flex;
  gap:2px;
  padding:3px;
  background:rgba(21,34,26,.06);
  border-radius:999px;
}
.lang button{
  border:none;
  background:none;
  font-family:inherit;
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.03em;
  color:var(--muted);
  padding:6px 11px;
  border-radius:999px;
  cursor:pointer;
  transition:background .18s ease, color .18s ease;
}
.lang button.on{
  background:var(--card);
  color:var(--green);
  box-shadow:0 1px 3px rgba(21,34,26,.08);
}
.lang button:focus-visible{outline:2px solid var(--green);outline-offset:2px}

/* ── экраны ── */
.screen{display:none;flex:1;flex-direction:column}
.screen.active{display:flex}

/* каскадное появление: блоки экрана всплывают друг за другом */
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.screen.active > *{animation:rise .45s cubic-bezier(.2,.7,.3,1) backwards}
.screen.active > *:nth-child(2){animation-delay:.05s}
.screen.active > *:nth-child(3){animation-delay:.1s}
.screen.active > *:nth-child(4){animation-delay:.15s}
.screen.active > *:nth-child(5){animation-delay:.2s}
.screen.active > *:nth-child(6){animation-delay:.25s}
.screen.active > *:nth-child(7){animation-delay:.3s}
.screen.active > *:nth-child(8){animation-delay:.35s}
.screen.active > *:nth-child(n+9){animation-delay:.4s}

/* сетка сервисов — своя лесенка внутри */
.services .svc{animation:rise .45s cubic-bezier(.2,.7,.3,1) backwards}
.services .svc:nth-child(1){animation-delay:.1s}
.services .svc:nth-child(2){animation-delay:.16s}
.services .svc:nth-child(3){animation-delay:.22s}
.services .svc:nth-child(4){animation-delay:.28s}

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

/* ── hero главного экрана ── */
.hero{
  position:relative;
  overflow:hidden;
  border-radius:24px;
  padding:26px 22px 22px;
  margin-bottom:24px;
  color:#fff;
  background:
    radial-gradient(130% 130% at 88% -12%, rgba(250,225,90,.32), transparent 46%),
    radial-gradient(90% 90% at -15% 110%, rgba(250,225,90,.10), transparent 40%),
    linear-gradient(150deg, #30583A, var(--green-deep));
}
.hero h1{
  font-family:'Unbounded',sans-serif;
  font-weight:600;
  font-size:25px;
  line-height:1.22;
  letter-spacing:.005em;
}
.hero .hl{color:var(--yellow)}
.hero p{
  margin-top:11px;
  font-size:15px;
  line-height:1.5;
  font-weight:500;
  color:rgba(255,255,255,.85);
  max-width:30ch;
}
.hero-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:18px;
}
.hero-tags span{
  font-size:12.5px;
  font-weight:600;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.13);
  color:rgba(255,255,255,.92);
  backdrop-filter:blur(2px);
}

/* логотипы сервисов внутри зелёной шапки */
.hero-logos{
  display:flex;
  gap:9px;
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.14);
}
.hero-logos img{
  width:34px;height:34px;
  border-radius:10px;
  display:block;
  box-shadow:0 0 0 1px rgba(255,255,255,.18), 0 2px 8px rgba(0,0,0,.18);
  /* подпрыгивают волной раз в 5 секунд и замирают — заметно, но не мозолит */
  animation:logoHop 5s cubic-bezier(.3,.7,.4,1) infinite;
}
.hero-logos img:nth-child(2){animation-delay:.12s}
.hero-logos img:nth-child(3){animation-delay:.24s}
.hero-logos img:nth-child(4){animation-delay:.36s}
@keyframes logoHop{
  0%,16%,100%{transform:translateY(0)}
  5%{transform:translateY(-7px)}
  11%{transform:translateY(0)}
  13.5%{transform:translateY(-2px)}
}

/* ── карточки сервисов: сетка 2×2, все равнозначны ── */
.services{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.svc{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:11px;
  background:var(--card);
  border:1px solid rgba(21,34,26,.07);
  border-radius:var(--radius);
  padding:22px 10px 18px;
  font-family:inherit;
  font-size:16px;
  font-weight:700;
  color:var(--ink);
  cursor:pointer;
  text-align:center;
  transition:transform .12s ease, box-shadow .12s ease;
  box-shadow:0 1px 2px rgba(21,34,26,.04);
}
.svc:active{transform:scale(.98)}
.svc:focus-visible,.city:focus-visible,.back:focus-visible{outline:3px solid var(--green);outline-offset:2px}
@media (hover:hover){
  .svc:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(21,34,26,.09)}
  .city .wa:hover{transform:scale(1.04)}
  .gis-link:hover{opacity:.75}
}
.svc-logo{
  width:44px;height:44px;
  border-radius:12px;
  flex:none;
  display:block;
}
.svc small{
  display:block;
  font-size:12.5px;
  font-weight:600;
  color:var(--muted);
  margin-top:4px;
  line-height:1.3;
}

/* плитки городов на главной — те же карточки, но без логотипа */
.city-tile{
  padding:20px 12px;
  gap:5px;
  min-height:86px;
  justify-content:center;
}
.city-tile-name{
  font-size:17px;
  font-weight:700;
  line-height:1.2;
}
.city-tile.is-soon{
  cursor:default;
  box-shadow:none;
  background:rgba(255,255,255,.55);
}
.city-tile.is-soon .city-tile-name{color:var(--muted)}
.city-tile.is-soon .soon-badge{margin-top:4px}

/* адрес и часы под названием города */
.city-meta{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin-bottom:26px;
}
.city-meta small{
  font-size:14px;
  font-weight:600;
  color:var(--muted);
  line-height:1.45;
}
.city-meta .gis-link{align-self:flex-start;margin-top:8px}

/* ── акцентные темы под бренд сервиса ──
   красятся: активные чипы, кружки шагов, иконки плюсов, ползунки.
   Наши константы (фон, зелёный WhatsApp, текст) не трогаем. */
#screen-service{
  --svc-solid:var(--green);
  --svc-soft:rgba(40,74,48,.08);
  --svc-on-solid:#fff;
  --svc-icon:var(--green);
  --svc-offer-bg:var(--yellow);
  --svc-offer-ink:var(--green-deep);
  --svc-offer-sub:rgba(29,56,35,.75);
  --svc-ring:rgba(21,34,26,.07);
  --svc-glow:rgba(21,34,26,.05);
}
#screen-service[data-svc="eda"]{
  --svc-solid:#FFDD2D;
  --svc-soft:rgba(255,221,45,.25);
  --svc-on-solid:#21201F;
  --svc-icon:#21201F;
  --svc-ring:rgba(214,175,0,.45);
  --svc-glow:rgba(255,205,0,.28);
}
/* палитра — с сайта Лавки: голубой #00ADFF и тёмно-синий #1B3A6A */
#screen-service[data-svc="lavka"]{
  --svc-solid:#00ADFF;
  --svc-soft:rgba(0,173,255,.12);
  --svc-on-solid:#fff;
  --svc-icon:#0E8FD1;
  --svc-offer-bg:linear-gradient(140deg,#00ADFF,#1B3A6A);
  --svc-offer-ink:#fff;
  --svc-offer-sub:rgba(255,255,255,.85);
  --svc-ring:rgba(0,173,255,.40);
  --svc-glow:rgba(0,173,255,.22);
}
#screen-service[data-svc="wolt"]{
  --svc-solid:#009DE0;
  --svc-soft:rgba(0,157,224,.12);
  --svc-on-solid:#fff;
  --svc-icon:#0084BC;
  --svc-offer-bg:linear-gradient(140deg,#25B4EE,#0084BC);
  --svc-offer-ink:#fff;
  --svc-offer-sub:rgba(255,255,255,.85);
  --svc-ring:rgba(0,157,224,.40);
  --svc-glow:rgba(0,157,224,.22);
}
/* палитра Arbuz — их зелёный из иконки приложения */
#screen-service[data-svc="arbuz"]{
  --svc-solid:#2EC862;
  --svc-soft:rgba(46,200,98,.12);
  --svc-on-solid:#fff;
  --svc-icon:#1FA94E;
  --svc-offer-bg:linear-gradient(140deg,#36D46C,#178B4C);
  --svc-offer-ink:#fff;
  --svc-offer-sub:rgba(255,255,255,.88);
  --svc-ring:rgba(46,200,98,.38);
  --svc-glow:rgba(46,200,98,.22);
}
/* палитра Kaspi — их фирменный красный */
#screen-service[data-svc="kaspi"]{
  --svc-solid:#F14635;
  --svc-soft:rgba(241,70,53,.10);
  --svc-on-solid:#fff;
  --svc-icon:#D93B2B;
  --svc-offer-bg:linear-gradient(140deg,#F65A4A,#DE3120);
  --svc-offer-ink:#fff;
  --svc-offer-sub:rgba(255,255,255,.86);
  --svc-ring:rgba(241,70,53,.35);
  --svc-glow:rgba(241,70,53,.20);
}
#screen-service[data-svc="choco"]{
  --svc-solid:#EE4237;
  --svc-soft:rgba(238,66,55,.10);
  --svc-on-solid:#fff;
  --svc-icon:#D03A30;
  --svc-offer-bg:linear-gradient(140deg,#F2564A,#DD2F23);
  --svc-offer-ink:#fff;
  --svc-offer-sub:rgba(255,255,255,.86);
  --svc-ring:rgba(238,66,55,.35);
  --svc-glow:rgba(238,66,55,.20);
}
/* палитра Рядом — малиново-красный с иконки приложения (сердце) */
#screen-service[data-svc="ryadom"]{
  --svc-solid:#E0142F;
  --svc-soft:rgba(224,20,47,.10);
  --svc-on-solid:#fff;
  --svc-icon:#C11128;
  --svc-offer-bg:linear-gradient(140deg,#EE2B44,#C60F27);
  --svc-offer-ink:#fff;
  --svc-offer-sub:rgba(255,255,255,.86);
  --svc-ring:rgba(224,20,47,.35);
  --svc-glow:rgba(224,20,47,.20);
}

/* ── фирменные водяные знаки: россыпь по всему экрану на ≈5%.
   Один слой с несколькими фоновыми копиями знака — декор, не шум. ── */
#screen-service{position:relative}
#screen-service::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background-repeat:no-repeat;
}
#screen-service[data-svc="eda"]::before{
  --m:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="20 20 80 80"><path d="M60 60a6 6 0 0 1 12 0a12 12 0 0 1 -24 0a18 18 0 0 1 36 0a24 24 0 0 1 -48 0a30 30 0 0 1 60 0" fill="none" stroke="%2321201F" stroke-width="9" stroke-linecap="round"/></svg>');
  opacity:.055;
  background-image:var(--m),var(--m),var(--m),var(--m),var(--m),var(--m),var(--m);
  background-position:106% 1%, -10% 11%, 94% 24%, 0% 38%, 102% 52%, 8% 67%, 90% 84%;
  background-size:200px,105px,78px,140px,100px,88px,130px;
}
#screen-service[data-svc="lavka"]::before{
  --m:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M50 86C32 70 12 56 12 38 12 22 26 12 37 14c6 1 10 5 13 10 3-5 7-9 13-10 11-2 25 8 25 24 0 18-20 32-38 48z" fill="%23189EF2"/></svg>');
  opacity:.06;
  background-image:var(--m),var(--m),var(--m),var(--m),var(--m),var(--m),var(--m);
  background-position:104% 2%, -8% 13%, 92% 27%, 2% 42%, 100% 57%, 10% 72%, 88% 88%;
  background-size:180px,95px,70px,125px,90px,78px,115px;
}
/* у Chocofood и Wolt знак словесный — рисуем текстом в SVG */
#screen-service[data-svc="choco"]::before{
  --a:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 340 100"><text x="170" y="80" text-anchor="middle" font-family="Arial Black,Helvetica,sans-serif" font-weight="900" font-size="82" fill="%23EE4237">CHOCO</text></svg>');
  --b:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 260 100"><text x="130" y="80" text-anchor="middle" font-family="Arial Black,Helvetica,sans-serif" font-weight="900" font-size="82" fill="%23EE4237">FOOD</text></svg>');
  opacity:.05;
  background-image:var(--a),var(--b),var(--a),var(--b),var(--a),var(--b);
  background-position:108% 2%, -14% 16%, 100% 32%, -10% 48%, 104% 64%, -12% 82%;
  background-size:230px,170px,195px,145px,215px,160px;
}
#screen-service[data-svc="arbuz"]::before{
  --m:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 100"><text x="160" y="78" text-anchor="middle" font-family="Arial Black,Helvetica,sans-serif" font-weight="900" font-size="78" fill="%232EC862">arbuz</text></svg>');
  opacity:.06;
  background-image:var(--m),var(--m),var(--m),var(--m),var(--m),var(--m);
  background-position:105% 2%, -12% 18%, 97% 35%, -8% 52%, 103% 69%, -10% 87%;
  background-size:210px,150px,175px,135px,195px,160px;
}
#screen-service[data-svc="kaspi"]::before{
  --m:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 100"><text x="150" y="78" text-anchor="middle" font-family="Arial Black,Helvetica,sans-serif" font-weight="900" font-size="80" fill="%23F14635">kaspi</text></svg>');
  opacity:.05;
  background-image:var(--m),var(--m),var(--m),var(--m),var(--m),var(--m);
  background-position:106% 2%, -12% 17%, 98% 34%, -8% 51%, 104% 68%, -10% 86%;
  background-size:215px,155px,180px,140px,200px,165px;
}
#screen-service[data-svc="wolt"]::before{
  --m:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 110"><text x="110" y="82" text-anchor="middle" font-family="Pacifico,Segoe Script,Brush Script MT,cursive" font-size="76" fill="%23009DE0">Wolt</text></svg>');
  opacity:.05;
  background-image:var(--m),var(--m),var(--m),var(--m),var(--m),var(--m);
  background-position:106% 3%, -10% 17%, 96% 34%, 0% 51%, 102% 68%, 8% 86%;
  background-size:175px,115px,140px,100px,155px,125px;
}
/* у Рядом знак — сердце с иконки приложения */
#screen-service[data-svc="ryadom"]::before{
  --m:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M50 86C32 70 12 56 12 38 12 22 26 12 37 14c6 1 10 5 13 10 3-5 7-9 13-10 11-2 25 8 25 24 0 18-20 32-38 48z" fill="%23E0142F"/></svg>');
  opacity:.05;
  background-image:var(--m),var(--m),var(--m),var(--m),var(--m),var(--m),var(--m);
  background-position:104% 2%, -8% 13%, 92% 27%, 2% 42%, 100% 57%, 10% 72%, 88% 88%;
  background-size:180px,95px,70px,125px,90px,78px,115px;
}

/* ── экран сервиса ── */
/* липкая шапка сервиса: «назад» + логотип и имя остаются сверху при скролле */
.svc-head{
  position:sticky;
  top:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 -20px 14px;
  padding:10px 20px 16px;
  /* полоса-подложка растворяется книзу, чтобы контент уезжал мягко */
  background:linear-gradient(var(--paper) 58%, rgba(244,244,239,0));
  pointer-events:none;
}
.svc-head > *{pointer-events:auto}

/* оба элемента шапки — «бабблы» из матового стекла */
.back,.svc-head-id{
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  border-radius:999px;
  box-shadow:0 2px 10px rgba(21,34,26,.05);
  transition:box-shadow .2s ease, transform .12s ease;
}
.back{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1px solid rgba(21,34,26,.07);
  padding:8px 15px 8px 12px;
  font-family:inherit;
  font-size:13.5px;
  font-weight:700;
  color:var(--muted);
  cursor:pointer;
}
.back:active{transform:scale(.96)}
.svc-head-id{
  font-family:'Unbounded',sans-serif;
  font-weight:600;
  font-size:15px;
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  /* обвод и свечение — в цвете сервиса */
  border:1px solid var(--svc-ring,rgba(21,34,26,.07));
  padding:5px 14px 5px 5px;
  box-shadow:0 3px 12px var(--svc-glow,rgba(21,34,26,.05));
}
/* у города логотипа нет — отступы симметричные, иначе текст съезжает влево */
#city-head .svc-head-id{padding:9px 17px}
.svc-head.stuck .back{box-shadow:0 5px 16px rgba(21,34,26,.09)}
.svc-head.stuck .svc-head-id{box-shadow:0 5px 18px var(--svc-glow,rgba(21,34,26,.09))}
.svc-head-id span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.svc-logo-lg{
  width:28px;height:28px;
  border-radius:50%;
  flex:none;
  display:block;
}

/* названия сервисов — шрифты-двойники их фирменных начертаний */
.b-eda{
  font-family:'Golos Text',sans-serif;
  font-weight:800;
}
.b-lavka{
  font-family:'Golos Text',sans-serif;
  font-weight:800;
  color:#00ADFF;
}
.b-wolt{
  font-family:'Pacifico',cursive;
  font-weight:400;
  font-size:19px;
  color:#009DE0;
}
.b-choco{
  font-family:'Nunito',sans-serif;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.03em;
  color:#EE4237;
}
.b-kaspi{
  font-family:'Golos Text',sans-serif;
  font-weight:800;
  letter-spacing:-.01em;
  color:#F14635;
}
.b-arbuz{
  font-family:'Nunito',sans-serif;
  font-weight:900;
  letter-spacing:-.01em;
  color:#2EC862;
}
.b-ryadom{
  font-family:'Nunito',sans-serif;
  font-weight:900;
  letter-spacing:-.01em;
  color:#E0142F;
}
.svc-desc{
  font-size:16px;
  line-height:1.5;
  color:var(--ink-soft);
  font-weight:500;
  margin-bottom:18px;
}

/* ── верхняя CTA-кнопка: зелёный WhatsApp, ведёт к городам внизу ──
   цвет намеренно ватсаповский, а не брендовый: кнопка одинаково
   читается «это WhatsApp» на любой акцентной теме сервиса */
.cta-wa{
  display:flex;
  align-items:center;
  gap:13px;
  width:100%;
  border:none;
  cursor:pointer;
  text-align:left;
  font-family:inherit;
  color:#fff;
  background:linear-gradient(135deg,#2BD46A,#17A054);
  border-radius:18px;
  padding:14px 16px;
  margin-bottom:26px;
  box-shadow:0 6px 18px rgba(31,169,84,.30), inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .12s ease, box-shadow .2s ease;
}
.cta-wa:active{transform:scale(.97)}
.cta-wa:focus-visible{outline:3px solid var(--green);outline-offset:2px}
@media (hover:hover){
  .cta-wa:hover{transform:translateY(-1px);box-shadow:0 9px 24px rgba(31,169,84,.38), inset 0 1px 0 rgba(255,255,255,.18)}
}
.cta-wa > svg:first-child{flex:none}
.cta-txt{flex:1;min-width:0}
.cta-txt b{display:block;font-size:15.5px;font-weight:800;letter-spacing:-.01em;line-height:1.25}
.cta-txt small{display:block;font-size:12.5px;font-weight:600;color:rgba(255,255,255,.88);margin-top:2px;line-height:1.3}
.cta-arr{
  flex:none;
  width:28px;height:28px;
  padding:6px;
  box-sizing:border-box;
  background:rgba(255,255,255,.16);
  border-radius:50%;
  /* стрелка изредка кивает вниз — подсказывает, что кнопка ведёт по странице */
  animation:ctaNudge 2.8s ease-in-out infinite;
}
@keyframes ctaNudge{
  0%,55%,100%{transform:translateY(0)}
  70%{transform:translateY(3px)}
  85%{transform:translateY(0)}
}

/* якорь прокрутки: заголовок городов не ныряет под липкую шапку */
#cities-label,#cities{scroll-margin-top:86px}

/* подсветка после прокрутки: кнопки WhatsApp внизу дважды пульсируют кольцом */
@keyframes waRing{
  0%{box-shadow:0 0 0 0 rgba(37,211,102,.55)}
  100%{box-shadow:0 0 0 14px rgba(37,211,102,0)}
}
.wa.flash{animation:waRing .9s ease-out 2}
/* заголовки секций: раньше были мелкие серые капсом и терялись —
   теперь обычный крупный заголовок, тёмный и жирный */
.choose-label{
  font-size:19px;
  font-weight:700;
  letter-spacing:-.01em;
  color:var(--ink);
  margin-bottom:14px;
}

/* ── доп. блоки сервиса (плюсы / оффер / шаги) ── */
.perks{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:16px;
}
.perk{
  background:var(--card);
  border:1px solid rgba(21,34,26,.07);
  border-radius:16px;
  padding:13px 12px;
  box-shadow:0 1px 2px rgba(21,34,26,.04);
}
.perk svg{
  color:var(--svc-icon,var(--green));
  width:32px;height:32px;
  padding:7px;
  box-sizing:border-box;
  background:var(--svc-soft,rgba(40,74,48,.08));
  border-radius:10px;
  margin-bottom:8px;
  display:block;
}
.perk b{display:block;font-size:14px;line-height:1.25;letter-spacing:-.01em}
.perk small{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin-top:3px;line-height:1.35}
.offer{
  background:var(--svc-offer-bg,var(--yellow));
  border-radius:16px;
  padding:14px 16px;
  margin-bottom:22px;
}
.offer b{display:block;font-size:16.5px;color:var(--svc-offer-ink,var(--green-deep));line-height:1.3}
.offer small{display:block;font-size:13.5px;font-weight:600;color:var(--svc-offer-sub,rgba(29,56,35,.75));margin-top:5px;line-height:1.45}
.steps{
  list-style:none;
  counter-reset:step;
  display:flex;
  flex-direction:column;
  gap:9px;
  margin-bottom:6px;
}
.steps li{
  counter-increment:step;
  display:flex;
  align-items:flex-start;
  gap:11px;
  font-size:15px;
  font-weight:500;
  color:var(--ink);
  line-height:1.45;
}
.steps li::before{
  content:counter(step);
  flex:none;
  width:22px;height:22px;
  border-radius:50%;
  background:var(--svc-solid,var(--green));
  color:var(--svc-on-solid,#fff);
  font-size:12px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
}
.svc-note{
  font-size:13px;
  font-weight:500;
  color:var(--muted);
  line-height:1.4;
  margin:4px 0 22px;
}
.cities{display:flex;flex-direction:column;gap:10px}
.city{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  background:var(--card);
  color:var(--ink);
  border:1px solid rgba(21,34,26,.07);
  border-radius:var(--radius);
  padding:14px 14px 14px 16px;
  cursor:pointer;
  text-decoration:none;
  transition:transform .12s ease;
  box-shadow:0 1px 2px rgba(21,34,26,.04);
}
.city:active{transform:scale(.98)}
.city-info{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
  flex:1;
}
.city-name{
  font-size:17.5px;
  font-weight:700;
  margin-bottom:3px;
}
.city-info small{
  font-size:13.5px;
  font-weight:600;
  color:var(--muted);
  line-height:1.45;
}
.city .wa{
  flex:none;
  display:flex;
  align-items:center;
  gap:6px;
  background:linear-gradient(135deg,#2BD46A,#17A054);
  color:#fff;
  font-size:13.5px;
  font-weight:700;
  padding:13px 18px;
  border-radius:999px;
  text-decoration:none;
  box-shadow:0 4px 12px rgba(31,169,84,.28);
  transition:transform .12s ease;
}
.city .wa:active{transform:scale(.94)}
/* когда город один (рекламная ссылка) — кнопка во всю ширину, крупнее:
   главный CTA страницы должен быть самым большим элементом в блоке */
.cities.single .city{flex-direction:column;align-items:stretch;gap:14px;padding:18px 16px 16px}
.cities.single .wa{justify-content:center;padding:15px 18px;font-size:15.5px;border-radius:16px}
.cities.single .wa svg{width:18px;height:18px}
.gis-link{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:7px;
  font-size:13px;
  font-weight:700;
  color:#2FA13B;
  text-decoration:none;
}
.gis-link:active{opacity:.6}
.city.soon .city-name{color:var(--muted)}
.soon-badge{
  flex:none;
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--muted);
  background:rgba(21,34,26,.06);
  padding:7px 12px;
  border-radius:999px;
}

/* ── калькулятор дохода ── */
#svc-calc .choose-label,#svc-steps .choose-label{margin-top:26px}
.calc{
  background:var(--card);
  border:1px solid rgba(21,34,26,.07);
  border-radius:var(--radius);
  padding:16px;
  box-shadow:0 1px 2px rgba(21,34,26,.04);
}
.chips{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-bottom:12px;
}
.chip{
  border:1px solid rgba(21,34,26,.12);
  background:none;
  color:var(--ink);
  font-family:inherit;
  font-size:14px;
  font-weight:600;
  padding:9px 14px;
  border-radius:999px;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,color .18s ease,transform .12s ease;
}
.chip:active{transform:scale(.94)}
.chip.on{
  background:var(--svc-solid,var(--green));
  border-color:var(--svc-solid,var(--green));
  color:var(--svc-on-solid,#fff);
}
.calc-group-label{
  font-size:12.5px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:8px;
}
.calc-slider{display:block;margin:12px 0 4px}
.calc-slider span{
  display:flex;
  justify-content:space-between;
  font-size:14.5px;
  font-weight:600;
  color:var(--ink-soft);
  margin-bottom:5px;
}
.calc-slider b{color:var(--ink)}
.calc-slider input{
  width:100%;
  accent-color:var(--green);
}
.calc-res{
  display:flex;
  gap:16px;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(21,34,26,.08);
}
/* фиксируем колонки, чтобы блок «в неделю» не ездил,
   когда меняется ширина цифр месяца */
.calc-res > div:first-child{flex:1 1 auto;min-width:0}
.calc-res > div:last-child{flex:0 0 104px}
.calc-res b{font-variant-numeric:tabular-nums;white-space:nowrap}
.calc-res small{
  display:block;
  font-size:12.5px;
  font-weight:600;
  color:var(--muted);
  margin-bottom:3px;
}
.calc-res b{
  font-family:'Unbounded',sans-serif;
  font-weight:600;
  font-size:19px;
  color:var(--green);
}
.calc-res div:last-child b{font-size:14px;color:var(--ink)}
.calc-note{
  font-size:12.5px;
  font-weight:500;
  color:var(--muted);
  margin-top:12px;
  line-height:1.4;
}

/* ── подвал ── */
.foot{
  margin-top:auto;
  padding-top:30px;
  font-size:13px;
  font-weight:600;
  color:var(--muted);
  text-align:center;
}
