/* =====================================================================================================================
   tpl-geografiya.css — хаб «География поставок» (/geografiya/, ID 4368), 16.10.2026.
   Система «Цех и ведомость»: схема-радар от завода (кольца по км трассы, зоны срока в пути), поиск своего города,
   ведомость городов со ссылками на страницы регионов, главы из текста страницы, заявка на доставку.
   Цвет зон - одна синяя шкала (ближе - плотнее), синий в остальном - только у действий.
   ===================================================================================================================== */

@font-face {
	font-family: 'Sofia Sans Condensed';
	src: url('../fonts/izg/SofiaSansCondensed-cyrillic.woff2') format('woff2');
	font-weight: 500 900;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
	font-family: 'Sofia Sans Condensed';
	src: url('../fonts/izg/SofiaSansCondensed-latin.woff2') format('woff2');
	font-weight: 500 900;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'IBM Plex Mono';
	src: url('../fonts/izg/IBMPlexMono-400-cyrillic.woff2') format('woff2');
	font-weight: 400;
	font-display: swap;
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
	font-family: 'IBM Plex Mono';
	src: url('../fonts/izg/IBMPlexMono-400-latin.woff2') format('woff2');
	font-weight: 400;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.geo {
	--g-bg: #0d1117;
	--g-deep: #090c11;
	--g-plate: #10151c;
	--g-card: #161b22;
	--g-line: #21262d;
	--g-line2: #30363d;
	--g-ink: #e6edf3;
	--g-text: #b4bdc8;
	--g-mute: #8b949e;
	--g-dim: #6e7681;
	--g-act: #2563eb;
	--g-act-h: #3b82f6;
	--g-link: #8fb8ff;
	--g-z1: rgba(59, 130, 246, .13);
	--g-z2: rgba(59, 130, 246, .065);
	--g-z3: rgba(59, 130, 246, .03);
	--g-display: 'Sofia Sans Condensed', 'Arial Narrow', 'Roboto Condensed', sans-serif;
	--g-mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
	--g-gut: clamp(16px, 4vw, 40px);
	--g-ease: cubic-bezier(.2, .75, .25, 1);
	--g-grid: linear-gradient(rgba(139, 148, 158, .045) 1px, transparent 1px) 0 0 / 28px 28px,
		linear-gradient(90deg, rgba(139, 148, 158, .045) 1px, transparent 1px) 0 0 / 28px 28px;
	background: var(--g-bg);
	color: var(--g-ink);
	overflow-x: clip;
}
.geo *,
.geo *::before,
.geo *::after { box-sizing: border-box; }
.geo table { min-width: 0; }   /* тема: table { min-width: 480px } на телефонах */

/* запас на случай, если обвес «Цех и ведомость» выключат: ось, кнопки, надписи нужны странице сами */
.geo .c3-in { width: min(1264px, calc(100% - 2 * var(--g-gut))); margin-inline: auto; }
.geo .c3-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.geo .c3-kick {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font: 400 11.5px/1.2 var(--g-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--g-mute);
}
.geo .c3-kick b { font-weight: 400; color: var(--g-act-h); }
.geo .c3-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 54px;
	padding: 0 24px;
	border: 1px solid transparent;
	border-radius: 10px;
	background: var(--g-act);
	color: #fff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.15;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .2s, border-color .2s, transform .2s;
}
.geo .c3-btn:hover { background: var(--g-act-h); color: #fff; }
.geo .c3-btn:active { transform: translateY(1px); }
.geo .c3-btn--ghost { background: transparent; border-color: rgba(230, 237, 243, .24); color: var(--g-ink); }
.geo .c3-btn--ghost:hover { background: rgba(255, 255, 255, .06); border-color: var(--g-ink); }
.geo a:focus-visible,
.geo button:focus-visible,
.geo input:focus-visible,
.geo textarea:focus-visible { outline: 2px solid var(--g-act-h); outline-offset: 2px; }

/* =================================================================================================== первый экран */
.geo-hero {
	position: relative;
	padding: clamp(28px, 4vw, 52px) 0 0;
	background:
		radial-gradient(900px 700px at 76% 42%, rgba(37, 99, 235, .14), transparent 62%),
		var(--g-grid),
		var(--g-bg);
	border-bottom: 1px solid var(--g-line);
}
.geo-hero__in {
	display: grid;
	grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
	gap: clamp(24px, 4vw, 64px);
	align-items: center;
}
.geo .geo-hero__title {
	margin: 18px 0 18px;
	padding: 0;
	border: 0;
	font: 800 clamp(44px, 5.4vw, 80px)/.9 var(--g-display);
	letter-spacing: -.012em;
	color: var(--g-ink);
}
.geo .geo-hero__title::before,
.geo .geo-hero__title::after { content: none; }
.geo-hero__t1 { display: block; }
.geo-hero__t2 {
	display: block;
	margin-top: 16px;
	font: 400 13px/1.2 var(--g-mono);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--g-mute);
}
.geo-hero__lead { max-width: 54ch; margin: 0; font-size: 18px; line-height: 1.6; color: var(--g-text); }
.geo-hero__acts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }

/* поиск своего города */
.geo-find { margin-top: 28px; max-width: 560px; }
.geo-find__label {
	display: block;
	margin-bottom: 10px;
	font: 400 11.5px/1.2 var(--g-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--g-mute);
}
.geo-find__box { position: relative; }
.geo-find__i { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: var(--g-act-h); pointer-events: none; }
.geo .geo-find__box input {
	width: 100%;
	height: 62px;
	margin: 0;
	padding: 0 18px 0 52px;
	border: 1px solid var(--g-line2);
	border-radius: 12px;
	background: rgba(9, 12, 17, .82);
	color: var(--g-ink);
	font: 600 21px/1 var(--g-display);
	letter-spacing: .01em;
	box-shadow: none;
	transition: border-color .2s, box-shadow .2s;
	-webkit-appearance: none;
	appearance: none;
}
.geo .geo-find__box input::placeholder { color: var(--g-dim); font-weight: 500; }
.geo .geo-find__box input:focus { outline: none; border-color: var(--g-act-h); box-shadow: 0 0 0 4px rgba(59, 130, 246, .2); }
.geo-find__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; }
.geo .geo-chip {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0 13px;
	border: 1px solid var(--g-line2);
	border-radius: 999px;
	background: var(--g-card);
	color: var(--g-text);
	font: 500 16px/1 var(--g-display);
	cursor: pointer;
	transition: border-color .15s, color .15s, background-color .15s;
}
.geo .geo-chip:hover,
.geo .geo-chip.is-on { border-color: var(--g-act-h); color: #fff; background: rgba(59, 130, 246, .14); }
.geo-find__out:empty { display: none; }
.geo-find__out { margin-top: 14px; }
.geo-res {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 8px 18px;
	padding: 16px 18px;
	border: 1px solid var(--g-line2);
	border-left: 3px solid var(--g-act-h);
	border-radius: 12px;
	background: rgba(22, 27, 34, .92);
	animation: geo-fade .25s var(--g-ease) both;
}
.geo-res__city { margin: 0; font: 800 28px/1 var(--g-display); color: var(--g-ink); }
.geo-res__meta { margin: 6px 0 0; font: 400 13px/1.4 var(--g-mono); color: var(--g-text); }
.geo-res__meta b { font-weight: 400; color: #fff; }
.geo .geo-res__link { display: inline-block; margin-top: 8px; font-size: 15px; color: var(--g-link); text-decoration: none; }
.geo .geo-res__link:hover { color: #fff; }
.geo .geo-res .c3-btn { min-height: 46px; padding: 0 18px; font-size: 15px; }
.geo-res--miss { grid-template-columns: 1fr; border-left-color: var(--g-mute); }
.geo-res--miss p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--g-text); }
.geo-res--miss .c3-btn { justify-self: start; margin-top: 4px; }
@keyframes geo-fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* схема-радар */
.geo-radar { position: relative; margin: 0; }
.geo-radar__svg { display: block; width: 100%; max-width: 720px; height: auto; margin-inline: auto; overflow: visible; }
.geo-z--1 { fill: var(--g-z1); }
.geo-z--2 { fill: var(--g-z2); }
.geo-z--3 { fill: var(--g-z3); }
.geo-spokes line { stroke: var(--g-line2); stroke-width: 1; stroke-dasharray: 2 7; opacity: .7; }
.geo-rings circle { fill: none; stroke: var(--g-line2); stroke-width: 1.2; stroke-dasharray: 5 7; }
.geo-rings circle.is-day { stroke: rgba(59, 130, 246, .55); stroke-width: 1.6; stroke-dasharray: none; }
.geo-rings .geo-rings__out { stroke: var(--g-line2); stroke-width: 1.6; stroke-dasharray: none; }
.geo-rings__t { font: 400 17px var(--g-mono); fill: var(--g-dim); }
.geo-compass text { font: 400 20px var(--g-mono); fill: var(--g-mute); letter-spacing: .1em; }
.geo-rays line {
	stroke: var(--g-act-h);
	stroke-width: 2.2;
	stroke-linecap: round;
	stroke-dasharray: 1200;
	stroke-dashoffset: 1200;
	opacity: 0;
	transition: stroke-dashoffset .5s var(--g-ease), opacity .2s;
}
.geo-rays line.is-on { stroke-dashoffset: 0; opacity: 1; }
.geo-pt { cursor: pointer; outline: none; }
.geo-pt__hit { fill: transparent; }
.geo-pt__dot {
	fill: var(--g-bg);
	stroke: var(--g-act-h);
	stroke-width: 3;
	transform-box: fill-box;
	transform-origin: center;
	transition: transform .2s var(--g-ease), fill .2s;
}
.geo-pt--t2 .geo-pt__dot { stroke: #8fb8ff; }
.geo-pt--t3 .geo-pt__dot { stroke: #bfdbfe; }
.geo-pt__t {
	font: 600 22px var(--g-display);
	letter-spacing: .01em;
	fill: var(--g-text);
	paint-order: stroke;
	stroke: var(--g-bg);
	stroke-width: 6px;
	stroke-linejoin: round;
	transition: fill .2s;
}
.geo-pt:hover .geo-pt__dot,
.geo-pt:focus-visible .geo-pt__dot,
.geo-pt.is-on .geo-pt__dot { fill: #fff; transform: scale(1.45); }
.geo-pt:hover .geo-pt__t,
.geo-pt:focus-visible .geo-pt__t,
.geo-pt.is-on .geo-pt__t { fill: #fff; }
.geo-plant { cursor: pointer; outline: none; }
.geo-plant__mark { fill: var(--g-act); stroke: #fff; stroke-width: 3; }
.geo-plant__pulse {
	fill: none;
	stroke: var(--g-act-h);
	stroke-width: 2;
	transform-box: fill-box;
	transform-origin: center;
	animation: geo-pulse 2.6s ease-out infinite;
}
.geo-plant__t {
	font: 400 17px var(--g-mono);
	letter-spacing: .08em;
	fill: var(--g-ink);
	paint-order: stroke;
	stroke: var(--g-bg);
	stroke-width: 6px;
	stroke-linejoin: round;
}
.geo-plant.is-on .geo-plant__mark,
.geo-plant:hover .geo-plant__mark { fill: #fff; stroke: var(--g-act); }
@keyframes geo-pulse { 0% { transform: scale(1); opacity: .85; } 100% { transform: scale(3.4); opacity: 0; } }

/* сборка схемы при загрузке: кольца, затем города по удалению */
.geo-rings circle,
.geo-z { transform-box: view-box; transform-origin: 500px 500px; animation: geo-ring .9s var(--g-ease) both; animation-delay: var(--d, 0ms); }
.geo-pt { animation: geo-pop .5s var(--g-ease) both; animation-delay: var(--d, 0ms); }
@keyframes geo-ring { from { opacity: 0; transform: scale(.82); } to { opacity: 1; transform: none; } }
@keyframes geo-pop { from { opacity: 0; } to { opacity: 1; } }

/* карточка города - в нижнем правом углу схемы: там нет городов, соседей она не закрывает */
.geo-card {
	position: absolute;
	z-index: 3;
	right: 0;
	bottom: 62px;
	width: max-content;
	max-width: 290px;
	padding: 14px 16px 15px;
	border: 1px solid var(--g-line2);
	border-radius: 12px;
	background: rgba(16, 21, 28, .97);
	box-shadow: 0 20px 44px -18px rgba(0, 0, 0, .85);
	pointer-events: none;   /* мышь идёт сквозь; страница города - по клику на саму точку */
	animation: geo-fade .2s var(--g-ease) both;
}
.geo-card[hidden] { display: none; }
.geo-card__city { margin: 0; font: 800 26px/1 var(--g-display); color: var(--g-ink); }
.geo-card__row { margin: 8px 0 0; font: 400 12.5px/1.45 var(--g-mono); color: var(--g-text); }
.geo-card__row b { font-weight: 400; color: #fff; }
.geo .geo-card__go { display: inline-block; margin-top: 10px; font-size: 14.5px; color: var(--g-link); text-decoration: none; }
.geo .geo-card__go:hover { color: #fff; }

.geo-radar__cap { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; margin-top: 8px; }
.geo-leg { display: inline-flex; align-items: center; gap: 8px; font: 400 12px/1.3 var(--g-mono); color: var(--g-text); }
.geo-leg i { width: 14px; height: 14px; border-radius: 50%; border: 1px solid rgba(59, 130, 246, .5); }
.geo-leg--1 i { background: rgba(59, 130, 246, .45); }
.geo-leg--2 i { background: rgba(59, 130, 246, .22); }
.geo-leg--3 i { background: rgba(59, 130, 246, .08); }
.geo-radar__note { flex-basis: 100%; text-align: center; font: 400 11.5px/1.3 var(--g-mono); color: var(--g-dim); }

/* цифры под первым экраном */
.geo .geo-facts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: clamp(28px, 4vw, 48px);
	margin-bottom: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--g-line2);
}
.geo .geo-facts li { margin: 0; padding: 22px 24px 26px; border-left: 1px solid var(--g-line); }
.geo .geo-facts li:first-child { padding-left: 0; border-left: 0; }
.geo .geo-facts li::before { content: none; }
.geo-facts b { display: block; font: 800 clamp(34px, 3.8vw, 54px)/1 var(--g-display); letter-spacing: -.01em; color: var(--g-ink); }
.geo-facts small { font-size: .5em; font-weight: 700; color: var(--g-mute); }
.geo-facts span { display: block; margin-top: 10px; font: 400 11.5px/1.4 var(--g-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--g-mute); }

/* =================================================================================================== главы */
.geo-ch { position: relative; padding: clamp(56px, 7vw, 100px) 0; border-bottom: 1px solid var(--g-line); }
.geo-ch--2,
.geo-ch--4 { background: var(--g-plate); }
.geo-ch__in { position: relative; }
.geo-ch__kick {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font: 400 12px/1 var(--g-mono);
	color: var(--g-mute);
}
.geo-ch__kick b { font-weight: 400; color: var(--g-act-h); }
.geo-ch__kick i { width: 48px; height: 1px; background: var(--g-line2); }
.geo-ch__no {
	position: absolute;
	right: 0;
	top: -.12em;
	font: 900 clamp(110px, 15vw, 230px)/.8 var(--g-display);
	color: transparent;
	-webkit-text-stroke: 1px #252c36;
	pointer-events: none;
	user-select: none;
}
.geo .geo-ch h2 {
	position: relative;
	z-index: 1;
	max-width: 22ch;
	margin: 18px 0 22px;
	padding: 0;
	border: 0;
	font: 800 clamp(32px, 3.8vw, 54px)/.98 var(--g-display);
	letter-spacing: -.008em;
	color: var(--g-ink);
}
.geo .geo-ch h2::before,
.geo .geo-ch h2::after { content: none; }
.geo-ch__text { position: relative; z-index: 1; }
.geo-head { position: relative; z-index: 1; }   /* абзац под заголовком, от левого края (Влад: текст вправо не смещать) */
.geo .geo-head h2 { margin-bottom: 22px; }
.geo .geo-head__r p:last-child { margin-bottom: 0; }
.geo .geo-ch__text p { max-width: 70ch; margin: 0 0 14px; font-size: 17px; line-height: 1.7; color: var(--g-text); }
.geo .geo-ch__text a { color: var(--g-link); text-decoration: underline; text-underline-offset: 3px; }
.geo .geo-ch__text a:hover { color: #fff; }

/* 01: зоны срока */
.geo-zones {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 36px;
	border: 1px solid var(--g-line2);
	border-radius: 16px;
	overflow: hidden;
}
.geo-zone { position: relative; padding: 26px 26px 28px; border-left: 1px solid var(--g-line2); }
.geo-zone:first-child { border-left: 0; }
.geo-zone--1 { background: var(--g-z1); }
.geo-zone--2 { background: var(--g-z2); }
.geo-zone--3 { background: var(--g-z3); }
.geo .geo-zone p { margin: 0; }
.geo-zone__km { font: 800 clamp(30px, 3vw, 44px)/1 var(--g-display); color: var(--g-ink); }
.geo .geo-zone__t { margin: 10px 0 16px; font: 400 12px/1.2 var(--g-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--g-act-h); }
.geo .geo-zone__c { position: relative; z-index: 1; font-size: 15.5px; line-height: 1.75; color: var(--g-text); }
.geo .geo-zone__c a { color: var(--g-ink); text-decoration: none; border-bottom: 1px dashed rgba(143, 184, 255, .45); }
.geo .geo-zone__c a:hover { color: #fff; border-bottom-color: #fff; }
.geo-zone__n {
	position: absolute;
	right: 20px;
	top: 14px;
	font: 800 72px/1 var(--g-display);
	color: transparent;
	-webkit-text-stroke: 1px rgba(143, 184, 255, .35);
	pointer-events: none;
}
.geo .geo-note { margin: 14px 0 0; font: 400 12px/1.5 var(--g-mono); color: var(--g-dim); }

/* 02: ведомость городов */
.geo-ledger { margin-top: 36px; }
.geo-ledger__ctl { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.geo .geo-tab {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	padding: 0 16px;
	border: 1px solid var(--g-line2);
	border-radius: 999px;
	background: transparent;
	color: var(--g-text);
	font: 600 17px/1 var(--g-display);
	cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
.geo .geo-tab b { font: 400 12px/1 var(--g-mono); color: var(--g-dim); }
.geo .geo-tab:hover { border-color: var(--g-act-h); color: #fff; }
.geo .geo-tab.is-on { background: var(--g-act); border-color: var(--g-act); color: #fff; }
.geo .geo-tab.is-on b { color: rgba(255, 255, 255, .8); }
.geo .geo-tbl { width: 100%; margin: 0; border-collapse: collapse; background: none; }
.geo .geo-tbl th {
	padding: 0 16px 12px;
	border: 0;
	border-bottom: 1px solid var(--g-line2);
	background: none;
	font: 400 11px/1.2 var(--g-mono);
	letter-spacing: .12em;
	text-transform: uppercase;
	text-align: left;
	color: var(--g-dim);
}
.geo .geo-tbl td {
	padding: 12px 16px;
	border: 0;
	border-bottom: 1px solid var(--g-line);
	background: none;
	vertical-align: middle;
	color: var(--g-text);
}
.geo .geo-tbl tbody tr { cursor: pointer; transition: background-color .15s; }
.geo .geo-tbl tbody tr:hover { background: rgba(59, 130, 246, .07); }
.geo .geo-tbl tbody tr[hidden] { display: none; }
.geo .geo-tbl__n { width: 56px; font: 400 12px/1 var(--g-mono); color: var(--g-dim); }
.geo .geo-tbl__city b { display: block; font: 800 23px/1 var(--g-display); color: var(--g-ink); }
.geo .geo-tbl__city a { display: inline-block; margin-top: 5px; font-size: 13.5px; color: var(--g-link); text-decoration: none; }
.geo .geo-tbl__city a::after { content: ' →'; }
.geo .geo-tbl tbody tr:hover .geo-tbl__city a { color: #fff; }
.geo .geo-tbl__km { font: 400 15px/1 var(--g-mono); color: var(--g-ink); white-space: nowrap; }
.geo .geo-tbl__tr { width: 240px; font: 400 13px/1 var(--g-mono); white-space: nowrap; }
.geo-bar {
	display: block;
	width: 100%;
	height: 4px;
	margin-bottom: 9px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--g-act-h) var(--w), var(--g-line) var(--w));
}
.geo .geo-tbl__dir { width: 96px; font: 400 13px/1 var(--g-mono); white-space: nowrap; }
.geo-tbl__dir svg { margin-right: 8px; vertical-align: -4px; color: var(--g-act-h); }

.geo-regions { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 12px; margin-top: 26px; }
.geo .geo-region {
	display: grid;
	gap: 6px;
	align-content: start;
	padding: 20px 22px 22px;
	border: 1px solid var(--g-line2);
	border-radius: 14px;
	background: var(--g-card);
	text-decoration: none;
	transition: border-color .2s, transform .2s var(--g-ease), background-color .2s;
}
.geo .geo-region:hover { border-color: var(--g-act-h); background: #19212c; transform: translateY(-2px); }
.geo-region__name { font: 800 26px/1 var(--g-display); color: var(--g-ink); }
.geo-region__km { font: 400 12.5px/1.3 var(--g-mono); color: var(--g-act-h); }
.geo-region__note { font-size: 14px; line-height: 1.45; color: var(--g-mute); }
.geo-region__go { margin-top: 8px; font-size: 14.5px; color: var(--g-link); }
.geo .geo-region:hover .geo-region__go { color: #fff; }

/* 03: список + фото */
.geo-split {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
	gap: clamp(28px, 4vw, 72px);
	align-items: start;
}
.geo .geo-ch__text--list ul { margin: 28px 0 0; padding: 0; list-style: none; counter-reset: geo; }
.geo .geo-ch__text--list li {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr);
	gap: 4px 12px;
	margin: 0;
	padding: 18px 0;
	border-top: 1px solid var(--g-line);
	counter-increment: geo;
}
.geo .geo-ch__text--list li:last-child { border-bottom: 1px solid var(--g-line); }
.geo .geo-ch__text--list li::before {
	content: counter(geo, decimal-leading-zero);
	position: static;
	grid-row: span 2;
	width: auto;
	height: auto;
	padding-top: 7px;
	background: none;
	font: 400 12px/1 var(--g-mono);
	color: var(--g-act-h);
}
.geo-ch__text--list .geo-li__t { font: 700 23px/1.15 var(--g-display); color: var(--g-ink); }
.geo-ch__text--list .geo-li__d { font-size: 16px; line-height: 1.55; color: var(--g-text); }
.geo-photo { position: sticky; top: 104px; margin: 0; }
.geo .geo-photo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border: 1px solid var(--g-line2);
	border-radius: 16px;
}
.geo-photo figcaption { margin-top: 10px; font: 400 12px/1.4 var(--g-mono); color: var(--g-dim); }

/* объекты: блок темы по оси страницы */
.geo-projects .container { width: min(1264px, calc(100% - 2 * var(--g-gut))); max-width: none; margin-inline: auto; padding: 0; }
.geo-projects .realized-projects { padding: clamp(56px, 7vw, 96px) 0; border-bottom: 1px solid var(--g-line); background: var(--g-bg); }
.geo .geo-projects .realized-projects__title {
	margin: 0 0 10px;
	font: 800 clamp(32px, 3.8vw, 54px)/.98 var(--g-display);
	letter-spacing: -.008em;
	text-align: left;
	color: var(--g-ink);
}
.geo .geo-projects .realized-projects__sub { margin: 0 0 30px; font: 400 12.5px/1.5 var(--g-mono); text-align: left; color: var(--g-mute); }

/* 04: текст + заявка */
.geo-split--order { align-items: start; }
.geo .geo-form {
	margin: 0;
	padding: clamp(22px, 3vw, 32px);
	border: 1px solid var(--g-line2);
	border-radius: 18px;
	background: linear-gradient(180deg, var(--g-card), var(--g-plate));
	box-shadow: 0 30px 70px -40px rgba(0, 0, 0, .9);
}
.geo .geo-form__title { margin: 10px 0 20px; font: 800 32px/1 var(--g-display); color: var(--g-ink); }
.geo .geo-f { display: block; margin: 0 0 14px; }
.geo .geo-f > span:first-child {
	display: block;
	margin-bottom: 7px;
	font: 400 11px/1.2 var(--g-mono);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--g-mute);
}
.geo .geo-f input,
.geo .geo-f textarea {
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 13px 14px;
	border: 1px solid var(--g-line2);
	border-radius: 10px;
	background: var(--g-bg);
	color: var(--g-ink);
	font: inherit;
	font-size: 16px;
	line-height: 1.4;
	box-shadow: none;
	resize: vertical;
	transition: border-color .2s;
}
.geo .geo-f textarea { min-height: 76px; }
.geo .geo-f input:focus,
.geo .geo-f textarea:focus { outline: none; border-color: var(--g-act-h); }
.geo .geo-f input.error { border-color: #f87171; }
.geo .geo-f .lead-form__error { display: block; margin-top: 4px; font-size: 12px; color: #f87171; }
.geo .geo-f .lead-form__error:empty { display: none; }
.geo-form__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 12px; }
.geo .geo-form .gksc-pd { margin: 2px 0 16px; color: var(--g-mute); }
.geo .geo-form__go { width: 100%; }
.geo .geo-form__note { margin: 12px 0 0; font-size: 13px; text-align: center; color: var(--g-dim); }
.geo .geo-form .lead-form__result { margin-top: 12px; padding: 12px 14px; border-radius: 10px; font-size: 14px; line-height: 1.45; }
.geo .geo-form .lead-form__result--success { background: rgba(22, 163, 74, .14); color: #86efac; }
.geo .geo-form .lead-form__result--error { background: rgba(248, 113, 113, .12); color: #fca5a5; }

/* «Услуги завода» - блок темы в конце текста */
.geo .gksc-related-services {
	margin-top: 34px;
	padding: 20px 22px;
	border: 1px solid var(--g-line2);
	border-left: 1px solid var(--g-line2);
	border-radius: 14px;
	background: var(--g-bg);
}
.geo .gksc-related-services h3 {
	margin: 0 0 14px;
	padding: 0;
	font: 400 11.5px/1.2 var(--g-mono);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--g-mute);
}
.geo .gksc-related-services ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.geo .gksc-related-services li { margin: 0; padding: 0; }
.geo .gksc-related-services li::before { content: none; }
.geo .gksc-related-services a {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0 13px;
	border: 1px solid var(--g-line2);
	border-radius: 999px;
	color: var(--g-text);
	font: 500 16px/1 var(--g-display);
	text-decoration: none;
	transition: border-color .15s, color .15s;
}
.geo .gksc-related-services a:hover { border-color: var(--g-act-h); color: #fff; }

/* =================================================================================================== ширины */
@media (max-width: 1100px) {
	.geo-hero__in { grid-template-columns: minmax(0, 1fr); }
	.geo-radar { max-width: 640px; width: 100%; margin-inline: auto; }
	.geo-find { max-width: none; }
}
@media (max-width: 900px) {
	.geo-split { grid-template-columns: minmax(0, 1fr); }
	.geo-photo { position: static; }
	.geo-zones { grid-template-columns: minmax(0, 1fr); }
	.geo-zone { border-left: 0; border-top: 1px solid var(--g-line2); }
	.geo-zone:first-child { border-top: 0; }
	.geo-regions { grid-template-columns: minmax(0, 1fr); }
	.geo .geo-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.geo .geo-facts li { padding: 18px 0 20px 18px; }
	.geo .geo-facts li:nth-child(odd) { padding-left: 0; border-left: 0; }
	.geo .geo-facts li:nth-child(n + 3) { border-top: 1px solid var(--g-line); }
}
@media (max-width: 760px) {
	.geo-hero__lead { font-size: 16.5px; }
	/* схема приближена к городам (viewBox из скрипта), подписи раскладывает скрипт без наложений */
	.geo-pt__t { font-size: 26px; stroke-width: 7px; }
	.geo-plant__t { font-size: 20px; }
	.geo-rings__t { font-size: 18px; }
	.geo-rings__t[data-km="900"],
	.geo-rings__t[data-km="1200"] { display: none; }   /* за краем приближенной схемы */
	.geo-compass text { font-size: 22px; }
	/* карточка города - под схемой, не над точкой */
	.geo-card { position: static; width: auto; max-width: none; margin-top: 8px; pointer-events: auto; }
	.geo-res { grid-template-columns: minmax(0, 1fr); }
	.geo .geo-res .c3-btn { justify-self: start; }
	/* ведомость: строка - карточка */
	.geo .geo-tbl thead { display: none; }
	.geo .geo-tbl,
	.geo .geo-tbl tbody { display: block; }
	.geo .geo-tbl tbody tr {
		display: grid;
		grid-template-columns: 36px minmax(0, 1fr) auto;
		grid-template-areas: 'n city dir' 'n km tr';
		align-items: center;
		gap: 6px 10px;
		padding: 14px 0;
		border-bottom: 1px solid var(--g-line);
	}
	.geo .geo-tbl tbody tr[hidden] { display: none; }
	.geo .geo-tbl td { display: block; padding: 0; border: 0; }
	.geo .geo-tbl__n { grid-area: n; align-self: start; padding-top: 6px; width: auto; }
	.geo .geo-tbl__city { grid-area: city; }
	.geo .geo-tbl__km { grid-area: km; font-size: 13px; }
	.geo .geo-tbl__tr { grid-area: tr; width: auto; text-align: right; }
	.geo .geo-tbl__tr .geo-bar { display: none; }
	.geo .geo-tbl__dir { grid-area: dir; width: auto; text-align: right; }
	.geo .geo-tbl__city b { font-size: 22px; }
	.geo-form__row { grid-template-columns: minmax(0, 1fr); }
	.geo-ch__no { font-size: 96px; }
}

@media (prefers-reduced-motion: reduce) {
	.geo-rings circle,
	.geo-z,
	.geo-pt,
	.geo-res { animation: none; }
	.geo-plant__pulse { animation: none; opacity: 0; }
	.geo-rays line { transition: none; }
}
