/* Global visual system V4: the same semantic tokens (same names, same values) as the :root block
   at the top of app.css. This page is standalone (it does not load app.css), so the values are
   repeated here; the --rc-* names below are kept only as aliases for the existing rules. */
:root{
  --page:#F6F8F7;
  --surface:#ffffff;
  --surface-sunken:#F3F6F4;
  --ink:#303733;
  --ink-strong:#18231E;
  --ink-2:#6B716D;
  --border:#DBE4DF;
  --brand-primary:#1F4D3A;
  --brand-primary-hover:#17392B;
  --brand-primary-soft:#EDF3EF;
  --brand-primary-border:#C9DCD2;
  --semantic-positive:#138253;
  --semantic-warning:#B97909;
  --semantic-warning-soft:#FFF5DC;
  --semantic-negative:#B33A3A;
  --shadow-card:0 7px 22px rgba(31,77,58,0.06);
  --shadow-panel:0 10px 30px rgba(31,77,58,0.08);
  --radius-card:16px;
  --radius-hero:22px;
  --radius-control:10px;
  --tabs-track:#EEF2F0;
  --font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-serif:Georgia,"Times New Roman",serif;
  --rc-bg:var(--page);
  --rc-surface:var(--surface);
  --rc-ink:var(--ink-strong);
  --rc-text:var(--ink);
  --rc-muted:var(--ink-2);
  --rc-border:var(--border);
  --rc-green:var(--brand-primary);
  --rc-green-hover:var(--brand-primary-hover);
  --rc-green-soft:var(--brand-primary-soft);
  --rc-green-border:var(--brand-primary-border);
  --rc-amber:var(--semantic-warning);
  --rc-amber-soft:var(--semantic-warning-soft);
  --rc-red:var(--semantic-negative);
  --rc-shadow:var(--shadow-panel);
  --rc-radius:var(--radius-card);
}
*{box-sizing:border-box}
html{background:var(--rc-bg);color:var(--rc-text);font-family:var(--font-sans)}
body{margin:0;background:linear-gradient(180deg,#fff 0,#f7f9f8 34rem,var(--rc-bg) 100%);min-height:100vh}
a{color:inherit;text-decoration:none}
button,select,input{font:inherit}
button{cursor:pointer}

.rc-topbar{
  height:58px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:0 clamp(12px,2.4vw,20px);border-bottom:1px solid #e7ece9;background:rgba(255,255,255,.97);
  position:sticky;top:0;z-index:30;backdrop-filter:blur(10px)
}
.rc-brand{justify-self:start;display:flex;align-items:center}
.rc-brand img{display:block;width:150px;height:auto}
.rc-brand{grid-column:1}.rc-nav{grid-column:2}.rc-actions{grid-column:3}
.rc-nav{display:flex;align-items:center;gap:clamp(2px,0.6vw,10px);font-family:var(--font-serif);font-size:15px;color:var(--ink-2)}
.rc-nav a{display:inline-flex;align-items:center;height:34px;padding:0 13px;line-height:1;font-weight:500}
.rc-nav a:hover{color:var(--rc-green)}
.rc-actions{justify-self:end;display:flex;align-items:center;gap:10px}
.rc-channel,.rc-edge{
  min-height:36px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--rc-border);
  border-radius:10px;padding:0 12px;background:#fff;font-weight:650;font-size:13px
}
.rc-channel{border-color:#b8dff1;color:#24434f}
.rc-tg{color:#229ed9;font-size:17px;transform:rotate(-18deg);display:inline-block}
.rc-edge{color:#167934;border-color:transparent;background:transparent;padding-right:0}
.rc-channel:hover{background:#f1fbff}.rc-edge:hover{text-decoration:underline}

.rc-data-strip{
  min-height:33px;border-bottom:1px solid #dde6e1;background:#f5f8f6;
  display:flex;align-items:center;justify-content:space-between;padding:0 28px;
  color:#52514e;font-size:13px
}
.rc-data-facts,.rc-data-sources{display:flex;align-items:center;gap:10px;white-space:nowrap}
.rc-data-facts i{display:block;width:1px;height:14px;background:#d4ddd8}
.rc-pulse{width:7px;height:7px;border-radius:50%;background:#8aa397;box-shadow:0 0 0 4px rgba(138,163,151,.12)}
.rc-data-sources::before{content:"";width:7px;height:7px;border-radius:50%;background:#f2b218}
.rc-data-sources.is-ok::before{background:#34a36f}

.rc-main{width:min(1180px,calc(100% - 40px));margin:28px auto 60px}

.rc-hero{
  min-height:316px;border-radius:22px;overflow:hidden;display:grid;grid-template-columns:1.08fr .92fr;
  background:#f9fbfa;border:1px solid #e2eae5;box-shadow:var(--rc-shadow)
}
.rc-hero-copy{padding:40px 34px 34px 38px;display:flex;flex-direction:column;justify-content:center}
.rc-eyebrow{margin:0 0 12px;color:#718078;font-size:12px;font-weight:750;letter-spacing:.16em}
.rc-hero h1{
  margin:0;max-width:650px;color:var(--rc-ink);font:700 clamp(40px,5vw,62px)/.98 Georgia,"Times New Roman",serif;
  letter-spacing:-.035em
}
.rc-hero h1 em{font-style:normal;color:#1f6a4e}
.rc-lead{margin:18px 0 24px;max-width:650px;color:#66706b;font-size:18px;line-height:1.45}
.rc-proof{display:flex;gap:26px;flex-wrap:wrap;color:#46504b;font-size:13px;line-height:1.35}
.rc-proof span{display:grid;grid-template-columns:34px auto;align-items:center;column-gap:9px}
.rc-proof b{
  grid-row:1/3;width:34px;height:34px;border-radius:10px;background:var(--rc-green-soft);
  color:var(--rc-green);display:grid;place-items:center;font-size:18px
}
.rc-hero-photo{
  min-height:316px;background:
    linear-gradient(90deg,#f9fbfa 0%,rgba(249,251,250,.05) 23%,rgba(249,251,250,0) 42%),
    url("/static/img/hero-vladivostok.webp") center/cover no-repeat;
}

.rc-method{
  margin:14px 0 20px;padding:16px 18px;border:1px solid var(--rc-green-border);
  background:linear-gradient(90deg,#eef7f2,#f8fbf9);border-radius:14px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px;line-height:1.4;color:#4d5953
}
.rc-method div{display:flex;gap:8px;flex-wrap:wrap}.rc-method strong{color:var(--rc-green)}
.rc-method a{white-space:nowrap;border:1px solid #b8d5c7;border-radius:10px;background:#fff;padding:9px 12px;color:var(--rc-green);font-weight:700}
.rc-method a:hover{background:var(--rc-green-soft)}

.rc-toolbar{
  display:grid;grid-template-columns:220px 1fr auto;gap:12px;align-items:center;margin-bottom:22px
}
.rc-control{
  height:44px;border:1px solid var(--rc-border);border-radius:11px;background:#fff;
  display:grid;grid-template-columns:auto 1fr;align-items:center;padding:0 12px;gap:8px;color:#5d655f
}
.rc-control span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#8a918d}
.rc-control select{border:0;outline:0;background:transparent;color:var(--rc-ink);font-weight:650;width:100%}
.rc-tabs{display:flex;gap:6px;background:var(--tabs-track);border-radius:12px;padding:4px;width:max-content;max-width:100%}
.rc-tabs button{
  border:0;background:transparent;color:#5e6661;border-radius:9px;padding:9px 14px;font-weight:650;white-space:nowrap
}
.rc-tabs button span{opacity:.65}
.rc-tabs button.is-active{background:var(--rc-green);color:#fff;box-shadow:0 4px 12px rgba(31,77,58,.18)}
.rc-scenario{position:relative}
.rc-scenario summary{
  list-style:none;height:44px;padding:0 14px;border:1px solid var(--rc-border);border-radius:11px;
  background:#fff;display:flex;align-items:center;font-weight:700;color:#4b5650;cursor:pointer;white-space:nowrap
}
.rc-scenario summary::-webkit-details-marker{display:none}
.rc-scenario-pop{
  position:absolute;right:0;top:52px;z-index:20;width:320px;padding:16px;background:#fff;border:1px solid var(--rc-border);
  border-radius:14px;box-shadow:0 16px 40px rgba(31,77,58,.16);display:grid;gap:10px
}
.rc-scenario-pop label{display:grid;grid-template-columns:1fr 90px;gap:12px;align-items:center;font-size:13px;color:#5e6661}
.rc-scenario-pop input{width:90px;border:1px solid var(--rc-border);border-radius:9px;padding:8px 9px}
.rc-scenario-pop button{border:0;border-radius:9px;background:var(--rc-green);color:#fff;font-weight:750;padding:10px}
.rc-scenario-pop button:hover{background:var(--rc-green-hover)}
.rc-scenario-pop small{color:#7b827e;line-height:1.35}

.rc-results-head{display:flex;align-items:end;justify-content:space-between;margin:4px 2px 12px}
.rc-results-head h2{margin:0;color:var(--rc-ink);font:700 25px/1.1 Georgia,"Times New Roman",serif}
.rc-results-head p{margin:5px 0 0;color:var(--rc-muted);font-size:13px}
.rc-sort-label{font-size:12px;color:#78807b;border:1px solid var(--rc-border);background:#fff;padding:8px 10px;border-radius:9px}

.rc-results{display:grid;gap:12px}
.rc-card{
  min-height:215px;border:1px solid #dfe6e2;border-radius:var(--radius-card);background:#fff;box-shadow:var(--shadow-card);
  display:grid;grid-template-columns:285px 1.25fr .95fr;overflow:hidden
}
.rc-cover{position:relative;min-height:215px;background:#e9efec center/cover no-repeat}
.rc-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.12))}
.rc-badge{
  position:absolute;z-index:2;left:12px;top:12px;border-radius:999px;padding:7px 10px;color:#fff;background:#20a463;
  font-size:11px;font-weight:800;box-shadow:0 4px 12px rgba(0,0,0,.14)
}
.rc-badge--near{background:#e5aa28;color:#3d2c05}
.rc-badge--below{background:#87918c;color:#fff}
.rc-card-main{padding:20px 22px;border-right:1px solid #edf0ee;display:flex;flex-direction:column}
.rc-card-main h3{margin:0 0 4px;color:var(--rc-ink);font-size:22px;line-height:1.15}
.rc-meta{color:#737b76;font-size:13px;margin-bottom:15px}
.rc-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.rc-chip{background:#f3f6f4;border:1px solid #e5ebe7;border-radius:8px;padding:6px 8px;font-size:12px;font-weight:650;color:#465049}
.rc-open{margin-top:auto;color:var(--rc-green);font-weight:750;font-size:13px}
.rc-open:hover{text-decoration:underline}

.rc-card-finance{display:grid;grid-template-rows:auto 1fr auto;padding:18px 18px 16px;gap:12px}
.rc-price-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.rc-price{font-size:24px;font-weight:800;color:var(--rc-ink)}
.rc-ratio{min-width:90px;text-align:center;border-radius:11px;background:var(--rc-green-soft);color:#168356;padding:9px 10px;font-weight:850}
.rc-ratio small{display:block;margin-top:2px;color:#5e776a;font-size:10px;font-weight:650}
.rc-ratio--near{background:var(--rc-amber-soft);color:var(--rc-amber)}
.rc-ratio--below{background:#f1f3f2;color:#66706b}
.rc-finance-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.rc-finance-cell{padding-right:10px;border-right:1px solid #edf0ee}
.rc-finance-cell:last-child{border-right:0;padding-right:0}
.rc-finance-cell span{display:block;color:#7b827e;font-size:11px;margin-bottom:5px}
.rc-finance-cell strong{display:block;color:#27312c;font-size:17px;line-height:1.15}
.rc-finance-cell strong.is-positive{color:var(--semantic-positive)}
.rc-finance-cell strong.is-negative{color:var(--rc-red)}
.rc-price-note{color:#8b928e;font-size:11px}
.rc-finance-cell small{display:block;margin-top:4px;color:#8b928e;font-size:11px;line-height:1.25}
.rc-card-actions{display:flex;gap:8px;justify-content:flex-end}
.rc-card-actions a{border:1px solid var(--rc-green-border);border-radius:10px;padding:9px 12px;font-size:12px;font-weight:750;color:var(--rc-green);background:#fff}
.rc-card-actions a:last-child{background:var(--rc-green);color:#fff;border-color:var(--rc-green)}
.rc-card-actions a:hover{background:var(--rc-green-soft);color:var(--rc-green)}
.rc-card-actions a:last-child:hover{background:var(--rc-green-hover);color:#fff}

[hidden]{display:none!important}
.rc-state,.rc-loading{border:1px solid var(--rc-border);border-radius:16px;background:#fff;padding:28px;text-align:center;color:var(--rc-muted)}
.rc-state{display:grid;justify-items:center;gap:8px}.rc-state strong{color:var(--rc-ink)}
.rc-state button{border:0;border-radius:9px;background:var(--rc-green);color:#fff;padding:9px 13px;font-weight:700}
.rc-loading{display:grid;gap:10px;padding:12px}
.rc-skeleton{height:180px;border-radius:12px;background:linear-gradient(90deg,#eef2f0 25%,#f8faf9 37%,#eef2f0 63%);background-size:400% 100%;animation:rcShimmer 1.3s infinite}
@keyframes rcShimmer{0%{background-position:100% 0}100%{background-position:0 0}}

.rc-footnote{margin-top:28px;border-top:1px solid var(--rc-border);padding:22px 4px 0;color:#69716c;font-size:13px;line-height:1.55}
.rc-footnote h2{color:var(--rc-ink);font:700 20px Georgia,"Times New Roman",serif;margin:0 0 8px}
.rc-footnote p{max-width:920px;margin:6px 0}

@media (max-width:1050px){
  .rc-topbar{grid-template-columns:auto 1fr auto;padding:0 18px}.rc-nav{display:none}
  .rc-main{width:min(100% - 28px,920px)}
  .rc-hero{grid-template-columns:1fr}.rc-hero-photo{min-height:210px;order:-1;background-image:linear-gradient(180deg,rgba(255,255,255,0) 50%,#f9fbfa 100%),url("/static/img/hero-vladivostok.webp")}
  .rc-hero-copy{padding-top:20px}
  .rc-toolbar{grid-template-columns:1fr auto}.rc-tabs{grid-column:1/-1;grid-row:2;overflow:auto;width:100%}
  .rc-card{grid-template-columns:235px 1fr}.rc-card-finance{grid-column:1/-1;border-top:1px solid #edf0ee}
}
@media (max-width:720px){
  .rc-topbar{height:54px;padding:0 12px}.rc-brand img{width:130px;height:auto}.rc-edge{display:none}.rc-channel span:last-child{display:none}.rc-channel{width:36px;padding:0;justify-content:center}
  .rc-data-strip{padding:0 12px;font-size:11px;gap:8px}.rc-data-sources{font-weight:700}
  .rc-main{width:calc(100% - 20px);margin-top:12px}
  .rc-hero{border-radius:16px}.rc-hero-photo{min-height:160px}.rc-hero-copy{padding:20px 18px 22px}.rc-hero h1{font-size:40px}.rc-lead{font-size:15px;margin:14px 0 18px}.rc-proof{gap:12px;display:grid;grid-template-columns:1fr 1fr}.rc-proof span:last-child{grid-column:1/-1}
  .rc-method{align-items:flex-start;display:grid;padding:14px}.rc-method div{display:grid;gap:4px}.rc-method a{width:max-content}
  .rc-toolbar{grid-template-columns:1fr}.rc-scenario{grid-row:auto}.rc-tabs{grid-column:auto;grid-row:auto;display:grid;grid-template-columns:1fr 1fr;width:100%;overflow:visible}.rc-tabs button:first-child{grid-column:1/-1}.rc-tabs button{white-space:normal;min-height:42px}
  .rc-scenario-pop{position:static;width:100%;margin-top:8px}
  .rc-results-head{align-items:flex-start;gap:8px}.rc-sort-label{display:none}
  .rc-card{grid-template-columns:1fr}.rc-cover{min-height:210px}.rc-card-main{border-right:0;border-bottom:1px solid #edf0ee}.rc-card-finance{grid-column:auto;border-top:0}
  .rc-finance-grid{grid-template-columns:1fr 1fr}.rc-finance-cell:nth-child(2){border-right:0}.rc-finance-cell:last-child{grid-column:1/-1;border-top:1px solid #edf0ee;padding-top:10px}
  .rc-card-actions{display:grid;grid-template-columns:1fr 1fr}.rc-card-actions a{text-align:center}
}
@media (max-width:430px){
  .rc-data-facts span:nth-child(n+4){display:none}.rc-data-sources{font-size:0}.rc-data-sources::after{content:attr(data-short);font-size:11px}
  .rc-hero h1{font-size:36px}.rc-proof{grid-template-columns:1fr}.rc-proof span:last-child{grid-column:auto}
  .rc-card-main h3{font-size:20px}.rc-price{font-size:22px}
}
@media (max-width:1439.98px){
  .rc-nav a{padding:0 9px}
}

/* Bottom tab bar: the SPA's .mobile-nav with the same numbers (67px, five equal cells, 22px icons,
   11px/600 labels), so the phone / installed-app navigation does not disappear on this page. */
.mobile-nav{display:none}
@media (max-width:1023px){
  body{padding-bottom:72px}
  .mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;height:67px;display:grid;grid-template-columns:repeat(5,1fr);background:var(--rc-surface);border-top:1px solid var(--rc-border);box-shadow:0 -4px 12px rgba(11,11,11,.06);padding-bottom:env(safe-area-inset-bottom,0)}
  .mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 2px;font-size:11px;font-weight:600;line-height:1.2;color:var(--rc-muted);text-decoration:none}
  .mobile-nav a svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .mobile-nav a:active{color:var(--rc-green)}
}

/* ==== Full-width hero (2026-10-06), the same scheme as the home page and /radar ====================
   The hero is a band right under the data strip - no side fields, no rounded card - and everything
   below it (note, filters, results) shares one column with the site's own gutter:
   16px + clamp(0, 2.2vw - 8px, 24px) inside 1592px. Up to 1050px the previous stacked card stays. */
:root{--rc-gutter:calc(16px + clamp(0px, 2.2vw - 8px, 24px))}
.rc-main{margin-top:0}
.rc-method{margin-top:18px}
.rc-hero{width:min(100% - 28px,920px);margin:28px auto 0}
@media (min-width:1051px){
  .rc-main{box-sizing:border-box;width:auto;max-width:1592px;margin:0 auto 60px;padding-inline:var(--rc-gutter)}
  .rc-hero{width:100%;margin:0;min-height:clamp(330px,24vw,380px);grid-template-columns:45fr 55fr;
    border:0;border-bottom:1px solid #e2eae5;border-radius:0;box-shadow:none;background:#f9fbfa}
  .rc-hero-copy{padding:38px 30px 34px calc(max(0px, (100vw - 1592px) / 2) + var(--rc-gutter))}
  .rc-hero-photo{min-height:0;background:
    linear-gradient(90deg,#f9fbfa 0%,rgba(249,251,250,.82) 12%,rgba(249,251,250,.42) 28%,rgba(249,251,250,.12) 42%,rgba(249,251,250,0) 56%),
    url("/static/img/hero-vladivostok.webp") center right/cover no-repeat}
  .rc-proof{max-width:640px}
}
@media (max-width:720px){
  .rc-hero{width:calc(100% - 20px);margin-top:12px}
}
@media (min-width:1051px){
  .rc-hero h1{font-size:clamp(38px,3.4vw,54px)}
  .rc-lead{font-size:17px;margin:14px 0 20px;max-width:560px}
  .rc-eyebrow{margin-bottom:10px}
}

/* One header on every page (2026-10-08) - the numbers are app.css's «ONE HEADER ON EVERY PAGE». */
@media (min-width:1024px) and (max-width:1365.98px){
  .rc-topbar{grid-template-columns:1fr auto 1fr}
  .rc-nav{display:flex;font-size:14px}
}
@media (min-width:1240px) and (max-width:1365.98px){
  .rc-nav{gap:0}
  .rc-nav a{padding:0 7px}
}
@media (min-width:1024px) and (max-width:1239.98px){
  .rc-nav a[href="/developers"]{display:none}
  .rc-nav a{padding:0 8px}
}
@media (min-width:1024px) and (max-width:1139.98px){
  .rc-nav{gap:0;font-size:13.5px}
  .rc-nav a{padding:0 6px}
}

/* Search pages by city (2026-10-09) - one quiet wrapping row right above the footer */
.city-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;max-width:1400px;margin:0 auto;
  padding:14px 28px 14px;font-size:13px;line-height:1.5;position:relative;z-index:1}
.city-links-title{color:var(--ink-muted,#8A908C);font-weight:600}
.city-links a{color:var(--ink-2,#5b635e);text-decoration:none}
.city-links a:hover{color:var(--brand-primary,#1f4d3a);text-decoration:underline}
@media (max-width:767px){.city-links{padding:12px 16px;gap:4px 12px}}

.city-links{padding-bottom:28px}
