/*
 * Единая шкала отступов (fix/spacing-scale, 22.10.2026).
 * Грузится последним (wp_enqueue_scripts 1000, dep kaskad-layout-1022).
 *
 * Ритм секций: --section-y сверху и снизу у каждой секции верхнего уровня,
 * между соседними секциями ≈ 2 × --section-y: 48px на 390, 88px на 1440.
 * Старые правила ui-v2 / mobile-p0 / блоков ставят padding с !important и специфичностью
 * до (0,2,1), поэтому здесь селектор с :not(#kaskad-sp) (вес id) + !important.
 * Горизонтальные отступы секций не трогаем: только padding-top / padding-bottom.
 */

:root {
	--sp-1: 4px;
	--sp-2: 8px;
	--sp-3: 12px;
	--sp-4: 16px;
	--sp-6: 24px;
	--sp-8: 32px;
	--sp-10: 40px;
	--sp-12: 48px;
	--sp-16: 64px;

	--section-y: clamp(24px, 3.2vw, 44px);
	--head-gap: clamp(24px, 2.4vw, 32px);
	--title-lead: 12px;
	--eyebrow-gap: 8px;
	--hero-y: clamp(24px, 3vw, 48px);
}

/* 1. Ритм: все секции верхнего уровня (страницы, архивы, кейсы, вакансии) */
html body :is(.main-page, .site-main, .vacancy-page-wrapper) > section:not(#kaskad-sp),
html body.single-our_works > section:not(#kaskad-sp) {
	padding-top: var(--section-y) !important;
	padding-bottom: var(--section-y) !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* 2. Hero. Архивы и кейсы: без min-height (главная оставлена — у неё своё фото и правило ui-v2) */
html body :is(.main-page, .site-main) > .technical-documentation-block .container,
html body.single-our_works > .technical-documentation-block .container {
	min-height: 0;
}

html body :is(.main-page, .site-main) > section.technical-documentation-block:not(#kaskad-sp),
html body.single-our_works > section.technical-documentation-block:not(#kaskad-sp) {
	padding-top: var(--hero-y) !important;
	padding-bottom: var(--hero-y) !important;
}

html body .main-page > section.main-banner-custom:not(#kaskad-sp),
html body .main-page > section.about-page-hero:not(#kaskad-sp),
html body .main-page > section.contacts-page-hero:not(#kaskad-sp),
html body .vacancy-page-wrapper > section.vacancy-section:first-child:not(#kaskad-sp) {
	padding-top: var(--hero-y) !important;
}

/* Заголовок страницы + её же контент: связка, а не две секции */
html body .main-page > section.about-page-hero:not(#kaskad-sp),
html body .main-page > section.contacts-page-hero:not(#kaskad-sp) {
	padding-bottom: 0 !important;
}

html body .main-page > section.about-page-hero + section:not(#kaskad-sp),
html body .main-page > section.contacts-page-hero + section:not(#kaskad-sp) {
	padding-top: var(--head-gap) !important;
}

@media (max-width: 768px) {
	/* Мобильный hero остаётся компактным (первый экран), меняется только ритм после него */
	html body :is(.main-page, .site-main) > section.technical-documentation-block:not(#kaskad-sp),
	html body.single-our_works > section.technical-documentation-block:not(#kaskad-sp) {
		padding-top: 8px !important;
		padding-bottom: 16px !important;
	}

	html body .main-page > section.main-banner-custom:not(#kaskad-sp),
	html body .main-page > section.about-page-hero:not(#kaskad-sp),
	html body .main-page > section.contacts-page-hero:not(#kaskad-sp) {
		padding-top: 12px !important;
	}
}

/* 3. Заголовки внутри секций: без верхнего margin, отступ даёт секция */
html body :is(.faq-title, .calculation-title, .works-bento-main-title, .case-gallery__title, .contacts-page-title, .about-page-title):not(#kaskad-sp),
html body :is(.certificates-slider-block, .articles-slider-block, .employees-slider-block, .services-slider-block) :is(.block-title, .block-subtitle),
html body section > .container > :is(h1, h2):first-child,
html body .article-content .article-body > :is(h2, h3):first-child {
	margin-top: 0 !important;
}

/* eyebrow → H2 */
html body .block-title,
html body :is(.certificates-slider-block, .articles-slider-block, .employees-slider-block, .services-slider-block) .block-title {
	margin-bottom: var(--eyebrow-gap) !important;
}

/* H2 → подзаголовок (было 6–10px) */
html body :is(.pp87-sections__title, .money-cost__title, .money-tz__title, .related-money__title, .money-cases__title, .calculation-title, .faq-title):not(#kaskad-sp) {
	margin-bottom: var(--title-lead) !important;
}

/* Шапка блока → контент */
html body :is(.pp87-sections__head, .money-cost__head, .money-tz__head, .related-money__head, .money-cases__head,
	.certificates-header, .works-bento-header, .clients-list-header, .bento-slider-header),
html body .faq-block .faq-subtitle {
	margin-bottom: var(--head-gap) !important;
}

/* 4. Карточки слайдера услуг: без пустоты внутри (services-block.css задаёт 45/35 + min-height 320 + space-between) */
html body .services-slider-block .service-card {
	min-height: 0 !important;
	padding: clamp(16px, 2vw, 24px) !important;
	justify-content: flex-start !important;
}

html body .services-slider-block .service-info:not(:has(*:not(:empty))) {
	display: none;
}

html body .services-slider-block .service-buttons {
	margin-top: auto;
	padding-top: var(--sp-4);
}

/* 5. CTA-карточка расчёта: внутренний отступ по шкале (на 390 было 12/14) */
html body .cost-calculation-block .container {
	padding: clamp(20px, 3vw, 40px) clamp(16px, 3.5vw, 48px) !important;
}

/* 6. Текстовые секции: крайние поля текста не добавляются к ритму секции */
html body .article-content .article-body > :first-child {
	margin-top: 0 !important;
}

html body .article-content .article-body > :last-child {
	margin-bottom: 0 !important;
}

html body.single-our_works > section.article-content article {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Логотипы клиентов: поле под тень не нужно (логотипы без тени) */
html body .clients-bento-slider .bento-swiper {
	padding-top: 4px !important;
	padding-bottom: 4px !important;
}

/* 7. Компенсация «невидимых» полей внутри блоков, чтобы видимый зазор совпадал с ритмом:
 * карточки логотипов (padding 15, без рамки) и слайды статей на десктопе (padding-bottom 20 под тень). */
html body :is(.main-page, .site-main) > section.clients-bento-slider:not(#kaskad-sp),
html body.single-our_works > section.clients-bento-slider:not(#kaskad-sp) {
	padding-bottom: max(8px, calc(var(--section-y) - 16px)) !important;
}

@media (min-width: 769px) {
	html body :is(.main-page, .site-main) > section.articles-slider-block:not(#kaskad-sp),
	html body.single-our_works > section.articles-slider-block:not(#kaskad-sp) {
		padding-bottom: max(8px, calc(var(--section-y) - 16px)) !important;
	}
}

html body .documents-block .document-category:last-child {
	margin-bottom: 0 !important;
}
