/* ==========================================================================
   НПК ЗНАМЯ — базовые стили: токены, типографика, сетка, кнопки, шапка,
   подвал, формы, текстовые страницы. Страничные стили — отдельными файлами.
   ========================================================================== */

/* ---------- Токены ---------- */
:root {
	--zn-navy: #43519F;       /* основной синий из логотипа: кнопки, ссылки, заголовки */
	--zn-navy-deep: #141A2E;  /* текст и самые тёмные площади */
	--zn-accent: #E8402B;     /* акцент: кнопки КП, ссылки-действия */
	--zn-accent-dark: #C93320;
	--zn-bg: #F4F6FA;         /* фон секций */
	--zn-line: #DDE2EC;       /* линии */
	--zn-text: #141A2E;
	--zn-muted: #434D66;
	--zn-white: #FFFFFF;

	--font-sans: "Onest", "Segoe UI", system-ui, -apple-system, sans-serif;
	--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;

	--container: 1760px;
	--container-text: 800px;
	--gutter: clamp(20px, 4vw, 80px);
	--section: clamp(48px, 6vw, 96px);
	--header-h: 72px;
	--btn-h: 46px;
	--radius: 0;           /* кнопки, поля, стрелки: прямые углы */

	/* Масштаб страницы на больших мониторах (см. ниже). Единицы окна просмотра внутри
	   масштабируемого body делим на масштаб, иначе полноэкранные окна выйдут за экран. */
	--zoom: 1;
	--vh100: calc(100vh / var(--zoom));
	--vw100: calc(100vw / var(--zoom));
}

/* Большие мониторы: плавное увеличение всей страницы (шрифт, ширина контента, интервалы),
   как на сайте rigol-moscow.com. До 1920 px ничего не меняется. */
@media (min-width: 1920px) {
	:root { --zoom: 1.08; }
	body { zoom: var(--zoom); }
}

@media (min-width: 2200px) {
	:root { --zoom: 1.12; }
}

@media (min-width: 2500px) {
	:root { --zoom: 1.15; --container: 1840px; }
}

/* ---------- Сброс ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: calc((var(--sticky-h, var(--header-h)) + 16px) * var(--zoom));
}

@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

body {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.6;
	color: var(--zn-text);
	background: var(--zn-white);
}

img, svg, video { max-width: 100%; height: auto; }
a { color: var(--zn-navy); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--zn-accent); }

h1, h2, h3, h4 { line-height: 1.2; letter-spacing: -0.01em; margin: 0 0 .6em; font-weight: 700; }
h1 { font-size: clamp(28px, 3.4vw, 44px); }
h2 { font-size: clamp(22px, 2.4vw, 32px); }
h3 { font-size: clamp(18px, 1.8vw, 22px); }

.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: var(--section); }

.screen-reader-text,
.skip-link:not(:focus) {
	position: absolute; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); white-space: nowrap;
}
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 1000; padding: 10px 16px; background: var(--zn-white); }

:focus-visible { outline: 2px solid var(--zn-accent); outline-offset: 2px; }

/* ---------- Кнопки ---------- */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: var(--btn-h); padding: 0 24px;
	border: 1.5px solid var(--zn-navy); border-radius: 0;
	background: transparent; color: var(--zn-navy);
	font: 600 15px/1 var(--font-sans); text-decoration: none; cursor: pointer;
	transition: background-color .15s, color .15s, border-color .15s;
}
.btn:hover { background: var(--zn-navy); color: var(--zn-white); }
.btn--accent { background: var(--zn-accent); border-color: var(--zn-accent); color: var(--zn-white); }
.btn--accent:hover { background: var(--zn-accent-dark); border-color: var(--zn-accent-dark); color: var(--zn-white); }
.btn--sm { min-height: 40px; padding: 0 18px; font-size: 14px; }

/* ---------- Форма «Запросить КП» ---------- */
.rfq { display: grid; gap: 14px; max-width: 460px; }
.rfq__title { color: inherit; margin: 0; }
.rfq__trap { position: absolute; left: -9999px; }
.field { display: grid; gap: 6px; font-size: 14px; font-weight: 600; }
.field input,
.field textarea {
	width: 100%; padding: 12px 14px; font: 400 16px var(--font-sans);
	border: 1.5px solid var(--zn-line); border-radius: 0;
	background: var(--zn-white); color: var(--zn-text);
}
.field input:focus,
.field textarea:focus { border-color: var(--zn-accent); outline: 0; }
.rfq__legal { margin: 0; font-size: 13px; color: var(--zn-muted); }
.site-footer .rfq__legal { color: #9AA3BC; }
.rfq__notice { margin: 0; padding: 12px 14px; border-radius: 0; font-size: 14px; }
.rfq__notice--ok { background: #E4F5EA; color: #14532D; }
.rfq__notice--error { background: #FDE8E5; color: #8A1C10; }
.site-footer .field { color: var(--zn-white); }

/* ---------- Текст ---------- */
.page-title { margin-bottom: .8em; }
.prose { max-width: var(--container-text); }
.prose > * + * { margin-top: 1em; }
.prose table { width: 100%; border-collapse: collapse; }
.prose th, .prose td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--zn-line); }
.post-list { display: grid; gap: 24px; }
.post-card { padding-bottom: 24px; border-bottom: 1px solid var(--zn-line); }
.post-card__date { color: var(--zn-muted); font-family: var(--font-mono); font-size: 14px; }
.post-card__title { margin: 4px 0 8px; font-size: 22px; }
.post-card__title a { text-decoration: none; }

/* ---------- Товары: цена по запросу ---------- */
.price--request { font-weight: 700; color: var(--zn-muted); }
.product-rfq { margin-block: 16px; }

/* ---------- Кнопка «Наверх» ---------- */
.to-top {
	position: fixed; right: 20px; bottom: 20px; z-index: 40;
	display: none; align-items: center; justify-content: center;
	width: 46px; height: 46px; border: 1.5px solid var(--zn-navy); border-radius: 0;
	background: var(--zn-white); color: var(--zn-navy); cursor: pointer;
	box-shadow: none;
	transition: background .2s, color .2s;
}
.to-top.is-visible { display: inline-flex; }
.to-top:hover { background: var(--zn-navy); color: var(--zn-white); }

/* ---------- Подсказка к полю, липкая панель на мобильном ---------- */
.field__hint { font-size: 12.5px; font-weight: 400; color: var(--zn-muted); }
.field input[type="file"] { padding: 9px 12px; font-size: 14px; }

.mobile-bar { display: none; }
@media (max-width: 980px) {
	.mobile-bar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 45;
		display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px;
		padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, .96); border-top: 1px solid var(--zn-line);
		backdrop-filter: blur(8px); transition: transform .2s;
	}
	.mobile-bar.is-hidden { transform: translateY(110%); }
	.mobile-bar .btn { min-height: 46px; padding: 0 12px; }
	body { padding-bottom: 66px; }
	.to-top { bottom: 82px; }
}

/* ---------- Окно «Запросить КП» ---------- */
.rfq-dialog {
	width: min(520px, calc(var(--vw100) - 32px)); max-height: calc(var(--vh100) - 32px); overflow-y: auto;
	margin: auto; padding: 28px; border: 0; border-radius: 0;
	background: var(--zn-white); color: var(--zn-text);
	box-shadow: none;
}
.rfq-dialog::backdrop { background: rgba(20, 26, 46, .6); }
.rfq-dialog .rfq { max-width: none; }
.rfq-dialog .rfq__title { color: var(--zn-navy); font-size: 22px; padding-right: 32px; }
.rfq-dialog__close {
	position: absolute; top: 10px; right: 12px; width: 36px; height: 36px;
	border: 0; background: transparent; color: var(--zn-muted);
	font-size: 28px; line-height: 1; cursor: pointer;
}
.rfq-dialog__close:hover { color: var(--zn-accent); }
body:has(.rfq-dialog[open]) { overflow: hidden; }
