/*
 * 22.10.2026 fix/layout-1022 — правки вёрстки по аудиту /workspace/qa-layout-1022/REPORT.md.
 * Файл грузится в <head> после ui-v2/mobile-p0 (prio 999), но CSS блоков money, pp87, related и крошек
 * подключаются из шаблонов блоков и печатаются в подвале (позже), а blankslate style.css:187 сбрасывает
 * font. Поэтому специфичность везде поднята через body/html (+ !important там, где его ставит ui-v2).
 * Только стили: тексты, title и H1 не меняются.
 */

/* ---------- 1. Шрифт (P1-1..P1-4): reset style.css:187 сбрасывал body → Times ---------- */
html body {
	font-family: var(--kaskad-font-body, 'Open Sans', sans-serif);
}

body .error-404-container {
	font-family: var(--kaskad-font-body, 'Open Sans', sans-serif);
	background-color: #fff;
}

body .error-404-container .error-code {
	color: var(--kaskad-color-heading, #0a1d5d);
	font-weight: 700;
	line-height: 1;
}

body .error-404-container .error-text {
	color: var(--kaskad-color-muted, #6b7489);
	font-size: 16px;
	line-height: 1.6;
}

body .error-404-container .error-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 16px 28px;
}

body .error-404-container .btn-home {
	font-size: 15px;
	font-weight: 600;
	color: var(--kaskad-color-heading, #0a1d5d);
}

body .error-404-container .btn-home:hover {
	border-bottom-color: currentColor;
}

/* ---------- 2. Логотип: размер до загрузки SVG (CLS 0.17–0.19, P1-15) ----------
   ui-v2 ставил width/height:auto!important → у <img> до загрузки 0×0. Фиксируем высоту и пропорцию
   SVG (255.23×63.98 ≈ 1021/256); max-height/max-width из ui-v2 и mobile-p0 по-прежнему ограничивают. */
html body .header-logo1 img,
html body .header-logo img,
html body img.logoh {
	height: 64px !important;
	width: auto !important;
	aspect-ratio: 1021 / 256;
}

/* ---------- 3. Общий контейнер 1240 + padding 20 (P1-7): левый край = остальные секции ---------- */
html body .faq-block .container,
html body .contacts-block .container,
html body .contacts-page-hero .container,
html body .pp87-sections .container,
html body .money-cost .container,
html body .money-cases .container,
html body .related-money .container,
html body .money-tz .container,
html body .vacancy-section .container,
html body .kaskad-search .container {
	max-width: 1240px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
	box-sizing: border-box;
}

/* ---------- 4. Ритм: SEO-текст не прилипает к FAQ (P1-8) ---------- */
/* ui-v2: .main-page > .article-content { padding: 0 20px … !important } */
@media (min-width: 769px) {
	html body .faq-block + .article-content,
	html body .faq-block + script + .article-content {
		padding-top: 56px !important;
	}
}

/* ---------- 5. H1: один токен (P1-6) ---------- */
html body .contacts-page-title,
html body .about-page-title,
html body h1.article-title,
html body .vacancy-section h1.page-title,
html body .kaskad-search__title,
html body .error-404-container .error-title,
html body .kaskad-legal-doc h1 {
	font-family: var(--kaskad-font-body, 'Open Sans', sans-serif) !important;
	font-size: clamp(24px, 2.6vw, 36px) !important;
	line-height: 1.22 !important;
	font-weight: 600 !important;
	letter-spacing: -0.02em !important;
	color: var(--kaskad-color-heading, #0a1d5d) !important;
	text-transform: none !important;
}

html body .vacancy-section h1.page-title {
	margin-bottom: 32px !important;
}

html body .error-404-container .error-title {
	margin-bottom: 16px;
}

@media (min-width: 769px) {
	html body .main-banner-custom .banner-title {
		font-size: clamp(26px, 2.6vw, 36px);
		line-height: 1.22;
		font-weight: 600;
		letter-spacing: -0.02em;
		color: var(--kaskad-color-heading, #0a1d5d);
	}
}

/* ---------- 6. H2: один токен 30/38, 600, navy, слева (P1-9) — десктоп/планшет ---------- */
@media (min-width: 769px) {
	html body .pp87-sections__title,
	html body .money-cost__title,
	html body .money-cases__title,
	html body .related-money__title,
	html body .money-tz__title,
	html body .licenses-bento-main-title,
	html body .about-bento-main-title,
	html body .bento-slider-title,
	html body .clients-list-section h2,
	html body .clients-main-subtitle,
	html body .case-gallery__title,
	html body .sub-services-block h2,
	html body.single-our_works .article-content h2 {
		font-family: var(--kaskad-font-body, 'Open Sans', sans-serif) !important;
		font-size: clamp(24px, 2.2vw, 30px) !important;
		line-height: 1.27 !important;
		font-weight: 600 !important;
		letter-spacing: -0.01em;
		color: var(--kaskad-color-heading, #0a1d5d) !important;
		text-align: left !important;
	}
}

/* ---------- 7. Единый стиль CTA в hero и в тексте (P1-11): 15px/600, 48px, pill, без капса ----------
   Надписи не меняются (только text-transform). */
html body .main-banner-custom .btn-banner,
html body .technical-documentation-block .btn,
html body .article-cta a.article-cta__btn,
html body .vacancy-section .btn-respond,
html body .error-404-container .btn-404-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 48px;
	padding: 0 28px !important;
	font-family: var(--kaskad-font-body, 'Open Sans', sans-serif) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	border-radius: var(--kaskad-radius-pill, 999px) !important;
	text-decoration: none !important;
}

html body .vacancy-section .btn-respond,
html body .error-404-container .btn-404-cta {
	background: var(--kaskad-color-heading, #0a1d5d);
	color: #fff;
	border: 0;
}

html body .vacancy-section .btn-respond:hover,
html body .error-404-container .btn-404-cta:hover {
	background: var(--kaskad-color-brand, #5366a5);
	color: #fff;
}

/* ---------- 8. Слайдеры: двойные стрелки и наезд на карточки (P1-12, «Рекомендации») ----------
   Swiper 11 вставляет svg.swiper-navigation-icon, а ui-v2 рисует свой шеврон в ::after. */
html body .services-slider-block .swiper-navigation-icon,
html body .certificates-slider-block .swiper-navigation-icon,
html body .articles-slider-block .swiper-navigation-icon,
html body .employees-slider-block .swiper-navigation-icon {
	display: none !important;
}

@media (min-width: 1400px) {
	html body .services-slider-block .swiper-button-prev,
	html body .certificates-slider-block .swiper-button-prev,
	html body .articles-slider-block .swiper-button-prev {
		left: -64px !important;
	}

	html body .services-slider-block .swiper-button-next,
	html body .certificates-slider-block .swiper-button-next,
	html body .articles-slider-block .swiper-button-next {
		right: -64px !important;
	}
}

@media (min-width: 769px) and (max-width: 1399px) {
	html body .services-slider-block .services-slider,
	html body .certificates-slider-block .certificates-slider,
	html body .articles-slider-block .articles-slider {
		margin-left: 56px;
		margin-right: 56px;
	}

	html body .services-slider-block .swiper-button-prev,
	html body .certificates-slider-block .swiper-button-prev,
	html body .articles-slider-block .swiper-button-prev {
		left: 0 !important;
	}

	html body .services-slider-block .swiper-button-next,
	html body .certificates-slider-block .swiper-button-next,
	html body .articles-slider-block .swiper-button-next {
		right: 0 !important;
	}
}

/* Разделитель под заголовком карточки услуги на одной высоте (1 или 2 строки). */
html body .services-slider-block .service-title {
	min-height: 2.6em;
}

/* ---------- 9. ПП 87: равные высоты карточек (P1-13, только CSS) ---------- */
html body .pp87-sections__grid {
	grid-auto-rows: 1fr;
	align-items: stretch;
}

html body .pp87-sections__item {
	display: flex;
}

html body .pp87-sections__card {
	flex: 1 1 auto;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
}

/* ---------- 10. Кейсы на money-странице: eyebrow + H2 слева, «Все проекты» справа (P1-14) ---------- */
html body .money-cases__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	column-gap: 24px;
	row-gap: 0;
}

html body .money-cases__badge {
	grid-column: 1;
	grid-row: 1;
}

html body .money-cases__title {
	grid-column: 1;
	grid-row: 2;
	text-align: left;
}

html body .money-cases__all {
	grid-column: 2;
	grid-row: 2;
	justify-self: end;
	white-space: nowrap;
	margin-bottom: 4px;
}

/* ---------- 11. Hero страниц услуг на 1024–1239 (P1-19): картинка не упирается в край окна ---------- */
@media (min-width: 769px) and (max-width: 1239px) {
	html body .main-banner-custom {
		padding: 16px 0 40px;
	}

	html body .main-banner-custom > .container {
		max-width: 1240px;
		padding-left: 20px;
		padding-right: 20px;
		box-sizing: border-box;
	}

	html body .main-banner-custom .banner-row {
		gap: 40px;
	}

	/* Hero главной/архивов/кейсов: край текста 20px, как у секций ниже (было 10px). */
	html body .technical-documentation-block {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* «Связанные направления» на хабе: H2 navy, а не тёмно-серый (P1-19). */
html body .sub-services-block h2 {
	color: var(--kaskad-color-heading, #0a1d5d);
}

/* ---------- 12. Цифры «О компании» (P2-5): шрифт как в «Нам доверяют» на главной, ширина контента ---------- */
html body .statistics-block {
	max-width: 1240px;
}

html body .statistics-block .statistics-value {
	font-family: var(--kaskad-font-body, 'Open Sans', sans-serif);
	font-weight: 700;
	letter-spacing: -0.02em;
}

/* ---------- 13. Поиск (P1-3): шаблон search.php с main.main-page и .container ---------- */
html body .kaskad-search {
	padding: 40px 0 64px;
	background: #fff;
}

html body .kaskad-search__header {
	margin-bottom: 24px;
}

html body .kaskad-search__item {
	padding: 20px 0;
	border-bottom: 1px solid var(--kaskad-color-border, #e3e8f2);
}

html body .kaskad-search__item-title {
	margin: 0 0 6px;
	font-size: 20px;
	line-height: 1.35;
	font-weight: 600;
	color: var(--kaskad-color-heading, #0a1d5d);
}

html body .kaskad-search__item-title a {
	color: inherit;
	text-decoration: none;
}

html body .kaskad-search__item-title a:hover {
	color: var(--kaskad-color-brand, #5366a5);
}

html body .kaskad-search__item-excerpt,
html body .kaskad-search__empty p {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--kaskad-color-muted, #6b7489);
}

html body .kaskad-search__nav .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 28px;
}

html body .kaskad-search__nav .page-numbers {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 14px;
	border: 1px solid var(--kaskad-color-border, #e3e8f2);
	border-radius: var(--kaskad-radius-pill, 999px);
	font-size: 14px;
	font-weight: 600;
	color: var(--kaskad-color-heading, #0a1d5d);
	text-decoration: none;
}

html body .kaskad-search__nav .page-numbers.current {
	background: var(--kaskad-color-heading, #0a1d5d);
	border-color: var(--kaskad-color-heading, #0a1d5d);
	color: #fff;
}

html body .kaskad-search__empty form {
	margin-top: 16px;
}

/* ---------- 14. Правовые страницы (P1-18): Open Sans вместо Inter, H1 крупнее H2 ----------
   В контенте inline <style> с !important (.kaskad-legal-doc …) — перебиваем специфичностью. */
html body .kaskad-legal-doc,
html body .kaskad-legal-doc h2,
html body .kaskad-legal-doc p,
html body .kaskad-legal-doc ul,
html body .kaskad-legal-doc li,
html body .kaskad-legal-doc a,
html body .kaskad-legal-doc strong,
html body .kaskad-legal-doc .kaskad-legal-meta {
	font-family: var(--kaskad-font-body, 'Open Sans', sans-serif) !important;
}

html body .kaskad-legal-doc p,
html body .kaskad-legal-doc li,
html body .kaskad-legal-doc .kaskad-legal-meta {
	font-size: 16px !important;
	line-height: 1.6 !important;
}

html body .kaskad-legal-doc h1 {
	margin: 0 0 24px !important;
}

html body .kaskad-legal-doc h2 {
	font-size: 20px !important;
	line-height: 1.35 !important;
	font-weight: 600 !important;
	color: var(--kaskad-color-heading, #0a1d5d) !important;
	margin: 28px 0 12px !important;
}
