/* Адаптив. Макеты Никиты нарисованы только на 1920, остальные ширины — здесь.
   Порядок: общая компоновка, десктоп (≥1101, контент 1200px по центру), планшет (≤1100), телефон (≤640). */

/* ── Общая компоновка ────────────────────────────────── */
/* Макет рассчитан на 1920 с полями 160px. Контент у нас уже — 1200px, под него компоновка,
   которую макет даёт для ноутбука. Планшет и телефон ниже её уточняют. */
header { gap: 28px; }
nav { gap: 22px; }
.sx h2, .sec .sx h2 { font-size: 44px !important; }
.hero { grid-template-columns: 1fr 600px; gap: 40px; }
.hero h1, .chead h1 { font-size: 56px !important; }
.draw { width: auto; }
.chr { grid-template-columns: 1fr !important; gap: 28px; }
.chead .hq { min-width: 0; justify-content: flex-start; }
.ac { padding: 36px 32px 40px; }
.ac h3 { font-size: 28px; }
.zp { gap: 40px; padding: 48px 40px; }
.end .wm { font-size: min(390px, 30vw); }
.end .fb .lg { position: static; }

/* ── Десктоп ─────────────────────────────────────────── */
/* Контент не шире 1200px и по центру на любом экране: отступ --px растёт вместе с окном. */
@media (min-width: 1101px) {
	:root { --px: max(40px, calc((100vw - 1200px) / 2)); }
	.ind:not(.pv-one) { grid-template-columns: 400px 1fr; }
	.ect .tel { font-size: 38px; white-space: nowrap; }
	.d-ind { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.d-ind a, .d-ind div { padding: 20px 22px; }
}

/* Узкий десктоп: в шапке пять пунктов меню, подпись под телефоном убираем, номер в одну строку */
@media (min-width: 1101px) and (max-width: 1320px) {
	header { gap: 16px; }
	nav { gap: 16px; }
	.hph .phs { display: none; }
	.hph .ph { white-space: nowrap; }
}

/* ── Планшет ─────────────────────────────────────────── */
@media (max-width: 1100px) {
	:root { --px: 40px; }

	/* шапка: меню прячется под бургер; в верхней строке без адреса, часы в одну строку */
	.top .top-adr { display: none; }
	.top span, .top a { white-space: nowrap; }
	header { height: 68px; gap: 16px; position: relative; }
	.burger { display: grid; place-items: center; width: 44px; height: 44px; color: var(--ink); }
	#nav { display: none; }
	#nav.is-open {
		display: flex; flex-direction: column; gap: 0; position: absolute; z-index: 50; top: 100%; left: 0; right: 0;
		background: #fff; border-bottom: 1px solid var(--line); box-shadow: 0 24px 40px -24px rgba(14, 20, 36, .3);
		padding: 8px var(--px) 24px; font-size: 18px;
	}
	#nav.is-open > a { padding: 14px 0; border-bottom: 1px solid var(--line); }
	#nav a.act::after { display: none; }
	#nav.is-open .nmob { display: flex; flex-direction: column; gap: 8px; padding-top: 18px; font-size: 16px; }
	#nav .nmob .ph { font-weight: 600; font-size: 20px; }
	#nav .nmob span { color: var(--dim); font-size: 14px; }

	/* разделы и общие сетки */
	.sheet, .sheet.alt, .prod3 { padding-top: 80px; padding-bottom: 80px; }
	.sheet.alt, .prod3 { margin-top: 64px; }
	.sec { padding-top: 72px; }
	.prodsec { padding-top: 96px !important; }
	.sx { grid-template-columns: 1fr; row-gap: 16px; margin-bottom: 40px; padding-bottom: 28px; }
	.sxl, .sx h2, .sx p, .sec .sx h2, .sec .sx p { grid-column: 1 / -1 !important; }
	.sxl { padding-top: 0; }
	.sx p { max-width: 640px; }

	.hero { grid-template-columns: 1fr; }
	.hero .draw { display: none; }
	.chead { padding-top: 32px; padding-bottom: 40px; }
	.hph { display: none; }
	.chead .hq { display: grid; grid-template-columns: repeat(3, 1fr); }
	.chead .hq > div { margin-left: 0; padding-left: 20px; }
	.chead .hq > div:first-child { padding-left: 0; border-left: 0; }
	.hq b { white-space: normal; }
	.ect .tel { font-size: 34px; white-space: nowrap; }

	.grid, .cgrid, .pv-cg, .ops, .steps3 { grid-template-columns: repeat(2, 1fr); }
	.advs, .kg, .kg.k3, .kg.k4 { grid-template-columns: repeat(2, 1fr); }
	.kc { border-bottom: 1px solid var(--line); }
	.bls { grid-template-columns: 1fr 1fr; }
	.bls .bh { grid-column: 1 / -1; }

	.faq3 { grid-template-columns: 1fr; row-gap: 28px; }
	.fql, .fqs { grid-column: 1 / -1; }

	.ind, .pv-rt { grid-template-columns: minmax(0, 1fr); min-height: 0; }
	.il { display: grid !important; grid-template-columns: repeat(2, 1fr); height: auto; }
	.ir, .pv-rt .ir, .pv-one .ir { grid-template-columns: 1fr !important; }
	.iph { aspect-ratio: 4 / 3; }
	.ind .iph { aspect-ratio: 1; }

	.zp { grid-template-columns: 1fr; }
	.km { grid-template-columns: 1fr; }
	.km .kw { border-right: 0 !important; border-bottom: 1px solid var(--line); }
	.km #map { min-height: 380px !important; }

	.v4, .d-two, .matl, .cts .ect, .end .efl { grid-template-columns: 1fr 1fr; row-gap: 32px; }
	.v4-l, .v4-r, .d-col, .d-col.d-r, .ect .c3 { grid-column: 1 / -1; }
	.v4-l { padding-right: 0; }
	.matl .mh, .grs, .cert3 { grid-column: 1 / -1; border: 0; }
	.matl .mh { border-bottom: 1px solid #dde2ec; }
	.cert3 { border-top: 1px solid #dde2ec; }
	.ect .c1 { grid-column: 1 / 2; }
	.ect .c2 { grid-column: 2 / 3; }
	.efl .f0 { grid-column: 1 / -1; }
	.efl .fc { grid-column: span 1; }
	.end .efl { grid-template-columns: repeat(3, 1fr); }
	.end { margin-top: 96px; padding-top: 80px; }
	.end .wm { gap: 2vw; }
	.end .fb { flex-wrap: wrap; gap: 16px; }
}

/* ── Телефон ─────────────────────────────────────────── */
@media (max-width: 640px) {
	:root { --px: 16px; }
	.top { display: none; }
	header { height: 60px; }
	.logo span { font-size: 18px; }
	.hr .lang, .hph { display: none; }
	.hdrbtn { padding: 0 14px !important; height: 44px !important; margin: 0 !important; }
	.hdrbtn span { display: none; }

	.hero { padding-top: 24px; padding-bottom: 32px; }
	.hero h1, .chead h1 { font-size: 36px !important; letter-spacing: -.02em !important; }
	.hero .lead, .chead .lead { font-size: 17px; }
	.ticks { grid-template-columns: 1fr; }
	.when, .hero .when { grid-template-columns: 1fr; }
	.sendrow2 { grid-template-columns: 1fr; }
	.form.lite h2, .zl h3 { font-size: 26px !important; }
	.chead .hq { grid-template-columns: 1fr; gap: 12px; }
	.chead .hq > div { border-left: 0 !important; padding-left: 0 !important; margin-left: 0 !important; }
	.hero > * { min-width: 0; }
	.hero h1 { overflow-wrap: break-word; }
	.chead h1 { font-size: 32px !important; overflow-wrap: break-word; }
	.form.lite { max-width: 100%; }

	.sheet, .sheet.alt, .prod3 { padding-top: 56px; padding-bottom: 56px; }
	.sheet.alt, .prod3 { margin-top: 48px; }
	.sec { padding-top: 56px; }
	.prodsec { padding-top: 64px !important; }
	.sx h2, .sec .sx h2 { font-size: 32px !important; }
	.sx { margin-bottom: 28px; }
	.kx { gap: 12px; }
	.kx .mono { min-width: 0; }

	.grid, .cgrid, .pv-cg, .ops, .steps3, .advs, .kg, .kg.k3, .kg.k4, .bls, .il, .d-ind { grid-template-columns: 1fr; }
	.prod3 .ph { height: 260px; }
	.ac { min-height: 0; padding: 28px 20px; }
	.an { right: 20px; top: 28px; }
	.ac h3 { font-size: 24px; margin-top: 24px; }
	.fqh { grid-template-columns: 40px minmax(0, 1fr) 32px; column-gap: 8px; }
	.fqh b { font-size: 20px !important; }
	.fqh i { width: 32px; height: 32px; font-size: 18px; }
	.fq p { margin-left: 48px; font-size: 16px; }
	.fq { padding: 20px 0; }

	.ib, .pv-rt .ib { padding: 24px 20px !important; }
	.pv-rt .pv-spec3 > div, .pv-rt .pv-steps-v > div { grid-template-columns: 1fr; row-gap: 6px; }
	.pv-rt .pv-steps-v span { grid-row: auto; }
	.ic2 { flex-wrap: wrap; }
	.ic2 .btn { width: 100%; justify-content: center; }

	.zp { padding: 28px 16px; gap: 28px; }
	.zf { padding: 24px 16px; }
	.z2 { grid-template-columns: 1fr; }
	.kc { padding: 24px 20px; }
	.kw { padding: 24px 20px; }
	.kw h3 { font-size: 22px !important; }
	.v-st { font-size: 22px !important; }
	.v4-r .hd { padding: 20px; }
	.v4-r dl { grid-template-columns: 1fr; padding: 0 20px; }
	.v4-r dt { padding-left: 0; padding-bottom: 0; border-bottom: 0; }
	.v4-r dd { padding-right: 0; }
	.v4-r .hd { flex-wrap: wrap; gap: 6px 16px; }
	.v4-r dd { padding-top: 4px; }
	.d-ch { flex-direction: column; gap: 4px; }

	/* окно «Опишите словами»: схема над полями, кнопки в столбик */
	.dm__in { padding: 24px 16px 20px; }
	.dm__title { font-size: 24px; }
	.dm__type { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.dm__sketch svg { max-height: 150px; width: auto; }
	.dm__grid { grid-template-columns: minmax(0, 1fr); }
	.dm__foot { grid-template-columns: 1fr 1fr; }
	.dm__foot p { grid-column: 1 / -1; max-width: none; }
	.dm__foot .btn { justify-content: center; padding-left: 12px; padding-right: 12px; }
	.grs { grid-template-columns: 1fr; }
	.fmt { flex-wrap: wrap; justify-content: center; }

	.v4, .d-two, .matl, .cts .ect { grid-template-columns: 1fr; }
	.ect .c1, .ect .c2 { grid-column: 1 / -1; }
	.ect .tel { font-size: 30px; }
	.end { margin-top: 64px; padding-top: 56px; }
	.end .efl { grid-template-columns: 1fr 1fr; padding: 40px 0; row-gap: 28px; }
	.efl .fc:first-of-type { grid-column: 1 / -1; }
	.end .fb { flex-direction: column; align-items: flex-start; }
	.end .fb .pp { display: block; margin: 6px 0 0 !important; }

	/* Зоны нажатия пальцем: шире по высоте, раскладка не сдвигается */
	.crumbs a { padding: 10px 0; margin: -10px 0; }
	.efl .fc a { padding: 5px 0; margin: -5px 0; }
	.zb a { padding-top: 10px; margin-top: -10px; }
}

.swc { display: none; }
/* ── Телефон: компактная лента ───────────────────────── */
/* Десктопные сетки в одну колонку растягивали главную до 22 экранов. Здесь каждая группа карточек
   собрана под телефон: каталог плиткой 2×N, преимущества и контроль — списком, станки — лентой со свайпом,
   шаги — таймлайном, подвал — со сворачиванием. */
@media (max-width: 640px) {
	/* отступы между разделами из макета (--E 96, --G 128) на телефоне вдвое меньше */
	:root { --E: 48px; --G: 64px; }
	.sheet, .sheet.alt, .prod3 { padding-top: 40px; padding-bottom: 40px; }
	.sheet.alt, .prod3 { margin-top: 32px !important; }
	.sec { padding-top: 40px; }
	.prodsec { padding-top: 48px !important; }
	.sx { margin-bottom: 20px; padding-bottom: 16px; row-gap: 10px; }
	.sx h2, .sec .sx h2 { font-size: 28px !important; }

	/* Первый экран: заявка плотнее, зона загрузки ниже */
	.hero .lead { font-size: 16px; }
	.ticks { gap: 8px !important; margin: 18px 0 !important; }
	.ticks div { font-size: 15px; }
	.form.lite { padding: 20px 16px 18px !important; }
	.bigdrop { margin-top: 16px !important; padding: 18px 14px !important; }
	.bigdrop .u { width: 48px !important; height: 48px !important; border-radius: 14px !important; margin-bottom: 10px !important; }
	.bigdrop b { font-size: 18px !important; }
	.bigdrop .fmt { margin-top: 10px; gap: 4px; }
	.bigdrop .fmt span { font-size: 11px !important; padding: 2px 6px !important; }

	/* Каталог плиткой 2×N: фото, название, стрелка; описание и теги — на странице изделия */
	.grid, .cgrid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
	.grid .cc, .cgrid .cc { border-radius: 12px; }
	.grid .cim, .cgrid .cim { aspect-ratio: 1 / .9; }
	.grid .cno, .cgrid .cno { top: 8px; left: 8px; }
	.grid .cc, .cgrid .cc { position: relative; }
	.grid .cb, .cgrid .cb { padding: 10px 12px 12px; }
	.grid .cb h3, .cgrid .cb h3 { font-size: 15px !important; line-height: 1.25 !important; min-width: 0; overflow-wrap: break-word; }
	.grid .cb p, .cgrid .cb p, .grid .tg, .cgrid .tg, .grid .cmore, .cgrid .cmore { display: none; }
	.grid .ca, .cgrid .ca { position: absolute; top: 8px; right: 8px; margin: 0; padding: 0; border: 0; }
	.grid .cgo, .cgrid .cgo { width: 32px; height: 32px; }

	/* Преимущества, контроль, сотрудничество — список: иконка слева, текст справа */
	.advs, .kg, .kg.k3, .kg.k4 { grid-template-columns: 1fr !important; border: 0 !important; gap: 0 !important; }
	.ac, .kc {
		display: grid !important; grid-template-columns: 40px minmax(0, 1fr); column-gap: 14px; align-items: start;
		min-height: 0 !important; padding: 16px 0 !important; margin: 0 !important;
		border: 0 !important; border-bottom: 1px solid var(--line) !important; background: none !important;
	}
	.ac:first-child, .kc:first-child { border-top: 1px solid var(--line) !important; }
	.ac > *, .kc > * { grid-column: 2; }
	.ac .ai, .kc .ki { grid-column: 1; grid-row: 1 / span 3; width: 40px !important; height: 40px !important; margin: 0 !important; }
	.ac .ai svg { width: 28px; height: 28px; }
	.kc .ki svg { width: 20px; height: 20px; }
	.ac .an { display: none; }
	.ac h3, .kc b { font-size: 18px !important; line-height: 1.3 !important; margin: 0 0 4px !important; }
	.ac p, .kc p { font-size: 15px !important; line-height: 1.5 !important; margin: 0 !important; }
	.kc .kcl { font-size: 12px !important; margin: 0 0 2px; }
	/* выделенная карточка в столбике была синим блоком — в списке это обычная строка */
	.ac:nth-child(3), .ac:nth-child(3) p, .ac:nth-child(3) .an { color: inherit; }
	.ac:nth-child(3) p { color: var(--dim); }
	.ac:nth-child(3) .ai { background-color: #fff; border-color: #e4e8f0; }

	/* Станки и этапы производства — лента со свайпом, справа виден край следующей карточки */
	.ops, .pv-cg {
		display: flex !important; gap: 12px !important; overflow-x: auto; scroll-snap-type: x mandatory;
		margin: 0 calc(-1 * var(--px)); padding: 0 var(--px) 4px; scroll-padding: 0 var(--px);
		scrollbar-width: none; -webkit-overflow-scrolling: touch;
	}
	.ops::-webkit-scrollbar, .pv-cg::-webkit-scrollbar { display: none; }
	.ops > *, .pv-cg > * { flex: 0 0 78%; scroll-snap-align: start; }
	.swc { grid-column: 1 / -1; }
	.opc { padding: 18px !important; }
	.opi { height: 110px !important; }
	.opn { margin-top: 14px !important; }
	.opc h3 { font-size: 20px !important; margin: 4px 0 6px !important; }
	.opc p, .pv-cg .cb p { font-size: 15px !important; }
	.pv-cg .cim { aspect-ratio: 4 / 3 !important; }
	.pv-cg .cb { padding: 14px 16px 16px; }
	.pv-cg .cb h3 { font-size: 18px !important; }
	.swc { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; font: 500 13px/1 'IBM Plex Mono', monospace; color: var(--dim); }
	.swc i { display: flex; gap: 6px; }
	.swc i b { width: 6px; height: 6px; border-radius: 50%; background: #c9d1e0; transition: background .2s, width .2s; }
	.swc i b.on { width: 18px; border-radius: 3px; background: var(--a); }
	.prod3 .ph { height: 200px; }

	/* Проволока по стандартам — в две колонки */
	.grs { grid-template-columns: 1fr 1fr !important; }
	.gr { padding: 12px 14px !important; min-width: 0; }
	.gr b { font-size: 14px !important; overflow-wrap: anywhere; }
	.matl .mh { padding: 18px 14px !important; }
	.cert3 { padding: 12px 14px !important; }

	/* Четыре шага — таймлайн: значок слева, текст справа */
	.steps3 { grid-template-columns: 1fr !important; gap: 0 !important; }
	.stc { display: grid; grid-template-columns: 56px minmax(0, 1fr); column-gap: 14px; padding-bottom: 20px; position: relative; }
	.stc > * { grid-column: 2; }
	.stc .sti { grid-column: 1; grid-row: 1 / span 3; height: 56px !important; width: 56px; background-size: 8px 8px !important; display: grid; place-items: center; overflow: hidden; }
	.stc .sti svg { width: 44px !important; height: 44px !important; }
	.stc:not(:last-child)::before { content: ''; position: absolute; left: 28px; top: 60px; bottom: 4px; border-left: 1px dashed #b8c3dc; }
	.stc .stn { margin: 0 0 4px !important; }
	.stc .stn i { display: none; }
	.stc h3 { font-size: 18px !important; margin: 0 0 4px !important; }
	.stc p { font-size: 15px !important; }

	/* Бланки — три кнопки в ряд */
	.bls { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; margin-top: 24px !important; padding-top: 20px !important; }
	.bls .bh { grid-column: 1 / -1; }
	.bf { grid-template-columns: 1fr !important; justify-items: center; text-align: center; gap: 6px !important; padding: 12px 6px !important; }
	.bf img { display: none; }
	.bf b { font-size: 14px !important; line-height: 1.25 !important; }
	.bf small { display: none; }
	.bf span { grid-row: 1; width: 36px !important; height: 36px !important; }

	/* Заявка внизу страниц: три способа отправки в ряд значками */
	.zi { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 20px !important; border: 0 !important; }
	.zi > div { grid-template-columns: 1fr !important; justify-items: center; text-align: center; gap: 8px !important; padding: 12px 4px !important; border: 1px solid rgba(255, 255, 255, .22) !important; }
	.zi > div > div > span { display: none !important; }
	.zi b { font-size: 13px !important; line-height: 1.3 !important; }
	.zk { width: 40px !important; height: 40px !important; }
	.zb { padding-top: 20px !important; gap: 8px 18px !important; }
	.zl .zs { margin-top: 10px; }

	/* Отрасли и география */
	.d-ind { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.d-ind a, .d-ind div { padding: 12px !important; gap: 8px !important; font-size: 14px; min-width: 0; }
	.d-ind span, .d-ind a svg { display: none; }
	.d-ind b { font-size: 14px !important; line-height: 1.3; overflow-wrap: anywhere; }
	.pv-rows > div { padding: 14px 0 !important; gap: 14px !important; grid-template-columns: 40px 1fr !important; }
	.pv-rows i { width: 40px !important; height: 40px !important; }

	/* Переключатели (изделия на производстве, отрасли в каталоге): все вкладки видны сразу — сетка 2 колонки, без свайпа; фото квадратом */
	.ind .il { display: grid !important; grid-template-columns: repeat(2, minmax(min-content, 1fr)) !important; height: auto !important; gap: 8px !important; margin-bottom: 12px; overflow: visible; }
	.ind .il > .ii.ii { display: flex !important; align-items: center; gap: 6px !important; padding: 6px 8px 6px 5px !important; min-height: 48px; transform: none !important; }
	.ind .il > .ii.ii img { flex: none; width: 28px !important; height: 28px !important; border-radius: 6px; }
	/* Слова по слогам не рвём: колонка подрастает под самое длинное слово */
	.ind .il > .ii.ii b { font-size: 13px !important; line-height: 1.25 !important; white-space: normal; hyphens: manual; overflow-wrap: normal !important; word-break: normal !important; }
	.ind .il > .ii.ii span, .ind .il > .ii.ii > i { display: none !important; }
	/* Фото на телефоне — квадратный оригинал (<source> в picture) целиком; подпись не нужна, название уже на выбранной вкладке */
	.ind .iph, .ind.pv-rt .iph { aspect-ratio: 1 !important; }
	.ind .iph img { object-fit: contain !important; }
	.ind .iph .itg { display: none !important; }
	.ind .ib { padding-top: 20px !important; }

	/* Контакты: карта ниже */
	#map { min-height: 220px !important; }
	.km #map { min-height: 240px !important; }

	/* Подвал: разделы сворачиваются, знак COIL меньше */
	.end { margin-top: 40px; padding-top: 36px; }
	.end .efl { grid-template-columns: 1fr !important; padding: 0 0 20px !important; row-gap: 0 !important; }
	.efl .f0 { padding-bottom: 16px; }
	.efl .fc { border-top: 1px solid rgba(255, 255, 255, .18); }
	.efl .fc h5 { margin: 0 !important; padding: 14px 0; display: flex; justify-content: space-between; align-items: center; cursor: pointer; }
	.efl .fc h5::after { content: '+'; font-size: 20px; line-height: 1; color: #fff; }
	.efl .fc.open h5::after { content: '−'; }
	.efl .fc:not(.open) a { display: none; }
	.efl .fc.open { padding-bottom: 12px; }
	.end .wm { font-size: 22vw !important; gap: 3vw !important; }
	.end .wm img { width: 18vw; height: auto; }
}

/* Узкие телефоны 320–380: длинные слова в плитке каталога («Нестандартные», «Микропружины») и номера ГОСТ не рвём посередине */
@media (max-width: 380px) {
	.grid .cb, .cgrid .cb { padding: 8px 10px 10px; }
	.grid .cb h3, .cgrid .cb h3 { font-size: 13.5px !important; }
	.gr span { font-size: 12px !important; white-space: nowrap; }
	.gr span svg { width: 12px; height: 12px; }
	.gr b { font-size: 13px !important; hyphens: auto; -webkit-hyphens: auto; overflow-wrap: normal !important; }
}

/* Отрасли в каталоге и «О компании»: «Автомобилестроение» одним словом не влезало и сдвигало страницу вбок —
   на 320–400 (одна колонка) и на 641–760 (две колонки, телефон боком и узкий планшет). */
@media (max-width: 400px), (min-width: 641px) and (max-width: 760px) {
	.d-ind a, .d-ind div { padding: 16px; gap: 12px; }
	.ind:not(.pv-rt) .ii { grid-template-columns: 48px minmax(0, 1fr) 32px !important; gap: 12px !important; }
	.ind:not(.pv-rt) .ii img { width: 48px !important; height: 48px !important; }
	.ind:not(.pv-rt) .ii i { width: 32px !important; height: 32px !important; }
}

/* ── Телефон боком ───────────────────────────────────── */
/* Ограничение — высота: верхнюю строку и лишние поля убираем, чтобы первый экран не съедала шапка. */
@media (max-height: 520px) and (orientation: landscape) {
	.top { display: none; }
	header { height: 56px; }
	.hero { padding-top: 20px; padding-bottom: 32px; }
	.hero h1, .chead h1 { font-size: 34px !important; }
	.chead { padding-top: 20px; padding-bottom: 28px; }
	.sheet, .sheet.alt, .prod3 { padding-top: 48px; padding-bottom: 48px; }
	.sec { padding-top: 48px; }
	.prod3 .ph { height: 280px; }
	.km #map { min-height: 300px !important; }
	#nav.is-open { max-height: calc(100svh - 56px); overflow-y: auto; overscroll-behavior: contain; }
}

/* ── Вырез экрана ────────────────────────────────────── */
/* С viewport-fit=cover телефон боком отдаёт странице область под вырезом: боковые поля не меньше неё. */
@supports (padding: max(0px)) {
	@media (max-width: 1100px) {
		:root { --px: max(40px, env(safe-area-inset-left), env(safe-area-inset-right)); }
	}
	@media (max-width: 640px) {
		:root { --px: max(16px, env(safe-area-inset-left), env(safe-area-inset-right)); }
	}
}

/* ── Тач-экраны: по типу ввода, а не по ширине (планшет боком шире 1100, ноутбук бывает с тачем) ── */
@media (pointer: coarse) {
	/* Зона нажатия не меньше 44px. Поле вокруг ссылки растёт невидимо, раскладка не сдвигается. */
	.logo, .lang a, .lg a, .crumbs a, .ect .tel, .ect .t2 a, .ecr2 a, .end .fb .pp, .end .fb .ma,
	.zb a, .top a, .link-btn, #nav > a, a.hph { position: relative; }
	.logo::after, .lang a::after, .lg a::after, .crumbs a::after, .ect .tel::after, .ect .t2 a::after, .ecr2 a::after,
	.end .fb .pp::after, .end .fb .ma::after, .zb a::after, .top a::after, .link-btn::after, a.hph::after {
		content: ''; position: absolute; inset: -12px -2px;
	}
	.lang a, .lg a { min-width: 40px; justify-content: center; }
	.efl .fc a { padding: 11px 0; margin: 0; }
	.crumbs a { margin: 0; padding: 0; }
	/* «Перетащить» пальцем некуда — на тач-экране зона загрузки зовёт выбрать файл */
	.bd-drag { display: none; }
}
/* меню в строку на планшете боком: ::after у пункта занят подчёркиванием активного */
@media (pointer: coarse) and (min-width: 1101px) {
	#nav > a::before { content: ''; position: absolute; inset: -12px -6px; }
}
.bd-tap { display: none; }
@media (pointer: coarse) { .bd-tap { display: inline; } }

/* ── Большие мониторы ─────────────────────────────────── */
/* Контент 1200px до 1960, дальше плавно шире до 1440px: на 2560+ узкая колонка теряется посреди экрана. */
@media (min-width: 1961px) {
	:root { --px: calc((100vw - min(1440px, 100vw - 760px)) / 2); }
}

/* Вкладки переключателей на узких телефонах: без иконок, чтобы длинные названия влезли целым словом */
@media (max-width: 380px) {
	.ind .il > .ii.ii img { display: none !important; }
	.ind .il > .ii.ii { padding: 8px 10px !important; }
}
@media (max-width: 340px) {
	.ind .il > .ii.ii b { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: anywhere !important; }
}

/* Телефон, правки Никиты 26.10 */
@media (max-width: 640px) {
	/* Заголовок раздела → содержимое: без пустоты в полэкрана */
	.sx, .kx, .sec .sx { margin-bottom: 20px !important; }
	.sec .sx { padding-bottom: 16px !important; }
	/* Двойная линия: под заголовком раздела своя линия, верхняя граница первой строки списка лишняя */
	.advs > .ac:first-child, .kg > .kc:first-child { border-top: 0 !important; padding-top: 4px !important; }
	/* Фото цеха на главной целиком, подпись под ним, а не плашкой поверх */
	.prod3 .ph { height: auto !important; overflow: visible; }
	.prod3 .ph img { height: auto; aspect-ratio: 3 / 2; border-radius: 4px; }
	.prod3 .ph .tag { position: static; display: block; background: none; padding: 10px 0 0; font-size: 12px !important; color: var(--dim); }
}
