/* Страницы ниш и «Сколько стоит сайт» (tools/build-geo.mjs). Токены — из style.css. */
.geo-page .crumbs a{ padding:12px 4px; }
.geo{ padding-block:clamp(24px,4vw,56px) var(--sec-y); }
.geo > *{ max-width:1080px; }
.geo-h1{ font:700 clamp(36px,6.4vw,88px)/.98 var(--f-disp); font-stretch:112%; letter-spacing:-.02em; margin:0 0 clamp(20px,3vw,36px); text-wrap:balance; }
.geo-h1 span{ color:var(--muted); }
.geo-answer{ font-size:clamp(18px,1.7vw,23px); line-height:1.45; max-width:62ch; margin:0 0 28px; }
.geo-facts{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:0 0 28px; border-top:1px solid var(--ink); }
.geo-facts > div{ padding:14px 16px 14px 0; border-bottom:1px solid var(--line); }
.geo-facts dt{ font:400 12px/1.3 var(--f-mono); text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:6px; }
.geo-facts dd{ margin:0; font:600 clamp(17px,1.5vw,21px)/1.25 var(--f-text); }
.geo-cta{ display:flex; flex-wrap:wrap; gap:10px; margin:0; }
.geo-sec{ margin-top:clamp(48px,6vw,88px); }
.geo-sec h2{ font:700 clamp(26px,3.2vw,44px)/1.05 var(--f-disp); font-stretch:110%; letter-spacing:-.015em; margin:0 0 20px; text-wrap:balance; }
.geo-sec h3{ font:600 18px/1.3 var(--f-text); margin:28px 0 10px; }
.geo-sec p{ max-width:68ch; margin:0 0 14px; line-height:1.55; }
.geo-sec a:not(.btn):not(.chip):not(.geo-shot){ text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--accent); }
.geo-shot{ display:block; border-radius:16px; overflow:hidden; border:1px solid var(--line); background:var(--surface); max-width:920px; }
.geo-shot img{ display:block; width:100%; height:auto; }
.geo-pairs{ display:grid; gap:0; border-top:1px solid var(--ink); }
.geo-pair{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:24px; padding:18px 0; border-bottom:1px solid var(--line); }
.geo-pair p{ margin:0; }
.geo-pair .mono{ display:block; font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:6px; }
.geo-was{ color:var(--muted); }
.geo-note{ font-size:14px; color:var(--muted); margin-top:14px; }
.geo-list{ margin:0; padding:0; list-style:none; border-top:1px solid var(--ink); max-width:820px; }
.geo-list li{ padding:12px 0 12px 22px; border-bottom:1px solid var(--line); position:relative; line-height:1.45; }
.geo-list li::before{ content:""; position:absolute; left:0; top:23px; width:10px; height:1px; background:var(--ink); }
.geo-tablewrap{ overflow-x:auto; margin:0 0 18px; -webkit-overflow-scrolling:touch; }
.geo-table{ width:100%; border-collapse:collapse; font-size:15px; line-height:1.45; min-width:640px; }
.geo-table th, .geo-table td{ text-align:left; vertical-align:top; padding:12px 16px 12px 0; border-bottom:1px solid var(--line); }
.geo-table thead th{ font:400 12px/1.3 var(--f-mono); text-transform:uppercase; letter-spacing:.06em; color:var(--muted); border-bottom:1px solid var(--ink); }
.geo-table tbody th{ font-weight:600; }
.geo-table .geo-num{ white-space:nowrap; font-variant-numeric:tabular-nums; font-weight:600; }
.geo-table tr.is-rec th, .geo-table tr.is-rec td{ background:var(--surface); }
.geo-table tr.is-rec th{ padding-left:12px; box-shadow:inset 2px 0 0 var(--accent); }
.geo-tag{ display:block; margin-top:4px; font:400 11px/1 var(--f-mono); text-transform:uppercase; letter-spacing:.05em; color:var(--muted); white-space:nowrap; }
.geo-src{ margin:0; padding:0; list-style:none; font-size:14px; color:var(--muted); max-width:820px; }
.geo-src li{ padding:6px 0; border-bottom:1px solid var(--line); }
.geo-src a{ color:var(--text); }
.geo-faq{ border-top:1px solid var(--ink); max-width:860px; }
.geo-faq details{ border-bottom:1px solid var(--line); }
.geo-faq summary{ cursor:pointer; padding:16px 32px 16px 0; font:600 17px/1.35 var(--f-text); list-style:none; position:relative; }
.geo-faq summary::-webkit-details-marker{ display:none; }
.geo-faq summary::after{ content:"+"; position:absolute; right:4px; top:14px; font:400 22px/1 var(--f-text); }
.geo-faq details[open] summary::after{ content:"–"; }
.geo-faq p{ margin:0 0 18px; }
.geo-upd{ margin-top:40px; font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; }
@media (max-width:760px){
  .geo-facts{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .geo-pair{ grid-template-columns:1fr; gap:10px; }
  .geo-cta .btn{ flex:1 1 100%; justify-content:center; }
}
@media print{ .geo-cta, .geo-more{ display:none; } }
