/*
Theme Name: KTIAM Child
Description: Child theme for ktiam.ru — Kadence base, «Сталь + Искра» palette, self-hosted Onest/Inter/JetBrains Mono.
Template: kadence
Version: 1.0.0
Text Domain: ktiam-child
*/

:root {
	--global-heading-font-family: 'Onest', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--global-body-font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--ktiam-mono: 'JetBrains Mono', 'SF Mono', Consolas, monospace;
}

body {
	font-family: var(--global-body-font-family);
}

/* ===== Контейнер и защита от горизонтального оверфлоу ===== */
html { overflow-x: clip; }

/* Kadence даёт контент-обёртке боковой padding, из-за чего alignfull (100vw)
   вылезает за правый край. На fullwidth-страницах прототипа обнуляем и
   заставляем alignfull жить в 100% родителя. */
.content-width-fullwidth .site-container,
.content-width-fullwidth .content-container,
.content-width-fullwidth .content-area,
.content-width-fullwidth .entry-content-wrap {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.content-width-fullwidth .entry-content .alignfull {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Контент секций-групп держим в контейнере 1200px с боковыми полями */
.entry-content .wp-block-group > h1,
.entry-content .wp-block-group > h2,
.entry-content .wp-block-group > h3,
.entry-content .wp-block-group > p,
.entry-content .wp-block-group > ul,
.entry-content .wp-block-group > .wp-block-columns,
.entry-content .wp-block-group > .wp-block-gallery,
.entry-content .wp-block-group > .wp-block-latest-posts,
.entry-content .wp-block-group > .wp-block-media-text,
.entry-content .wp-block-group > .wp-block-buttons {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}
.entry-content .wp-block-group {
	padding-left: clamp(16px, 4vw, 32px);
	padding-right: clamp(16px, 4vw, 32px);
}

/* Hero: контейнер + белый заголовок (перекрываем цвет заголовков темы) */
.wp-block-cover__inner-container {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding: 56px clamp(16px, 4vw, 32px);
}
.wp-block-cover h1,
.wp-block-cover h2 {
	color: var(--global-palette9);
	max-width: 22ch;
}

/* Страховка: классы палитры для core-блоков */
.has-palette1-color { color: var(--global-palette1) !important; }
.has-palette3-color { color: var(--global-palette3) !important; }
.has-palette4-color { color: var(--global-palette4) !important; }
.has-palette7-color { color: var(--global-palette7) !important; }
.has-palette9-color { color: var(--global-palette9) !important; }
.has-palette1-background-color { background-color: var(--global-palette1) !important; }
.has-palette7-background-color { background-color: var(--global-palette7) !important; }
.has-palette8-background-color { background-color: var(--global-palette8) !important; }

/* ===== Шапка: только логотип, без дублирующего текста ===== */
.site-header .site-title,
.site-header .site-description { display: none; }
.site-header .custom-logo {
	max-height: 56px;
	width: auto;
}

/* Переключатель языков компактнее */
.site-header .lang-item a { opacity: 0.75; }
.site-header .lang-item.current-lang a { opacity: 1; font-weight: 600; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--global-heading-font-family);
}

h1 { letter-spacing: -0.02em; }
h2 { letter-spacing: -0.015em; }

/* Числа-факты */
.ktiam-fact .kt-blocks-info-box-title,
.ktiam-fact h3 {
	font-size: clamp(40px, 5vw, 64px);
	font-variant-numeric: tabular-nums;
	color: var(--global-palette1);
	line-height: 1;
}

/* Фон сайта: Kadence использует слот 8 палитры как фон, а у нас это
   spark-tint (персиковый). Возвращаем нейтральный steel-100 + белые карточки. */
body { background-color: var(--global-palette7) !important; }
.content-bg, body.page .content-bg { background-color: #fff; }

/* Таблицы характеристик: зебра + моноширинные цифры */
.entry-content table {
	font-family: var(--ktiam-mono);
	font-size: 16px;
	line-height: 1.6;
	border-collapse: collapse;
	width: 100%;
}
.entry-content table thead th,
.entry-content table tr:first-child th {
	background: var(--global-palette3);
	color: #fff;
	font-family: var(--global-body-font-family);
	font-weight: 600;
}
.entry-content table tbody tr:nth-child(even) { background: var(--global-palette7); }
.entry-content table td,
.entry-content table th { border: 1px solid var(--global-palette6); padding: 10px 14px; }

/* Старый контент 2014 г. несёт инлайн-стили в таблицах (жёлтые шапки,
   синие рамки) — нейтрализуем, приводя к единому виду. */
.entry-content table td[style],
.entry-content table th[style] { background-color: transparent !important; }
.entry-content table tbody tr:nth-child(even) td { background-color: var(--global-palette7) !important; }
.entry-content table tr:first-child th,
.entry-content table tr:first-child td {
	background-color: var(--global-palette3) !important;
	color: #fff !important;
	font-family: var(--global-body-font-family);
	font-weight: 600;
}
.entry-content table,
.entry-content table td,
.entry-content table th { border-color: var(--global-palette6) !important; }

/* Широкие таблицы скроллятся внутри контейнера, не ломая страницу */
.entry-content .wp-block-table { overflow-x: auto; }

/* Врезки-цитаты */
.entry-content blockquote {
	background: var(--global-palette8);
	border-left: 3px solid var(--global-palette1);
	padding: 20px 24px;
	margin-left: 0;
	font-style: normal;
}

/* ===== Контраст (WCAG AA) ===== */

/* Ссылки на светлом фоне: spark #D9541A даёт 4.01:1 — используем spark-dark
   #B8410F (6.9:1), яркий spark остаётся для hover и акцентов на тёмном. */
.entry-content a:not(.wp-block-button__link),
.site-footer a,
.skip-link,
.entry-meta a,
.post-navigation a {
	color: var(--global-palette2);
}
.entry-content a:not(.wp-block-button__link):hover { color: var(--global-palette1); }
.entry-taxonomies a,
.entry-taxonomies .category-links,
.loop-entry .entry-taxonomies a { color: var(--global-palette2); }

/* Даты в блоке «последние записи» Kadence красит в светло-серый (1.5:1) */
.wp-block-latest-posts__post-date,
.wp-block-latest-posts time {
	color: var(--global-palette4) !important;
}

/* Сплошные кнопки: белый на spark = 4.01:1 → фон spark-dark (5.5:1),
   hover — ещё темнее. Касается и CF7, и пагинации. */
.wp-block-button__link.has-palette1-background-color,
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background-color: var(--global-palette2) !important;
}
.wp-block-button__link:hover { background-color: #9A3A0E !important; }
.pagination .page-numbers.current,
.page-numbers.current {
	background: var(--global-palette2) !important;
	color: #fff !important;
}

/* Кнопки и read-more: без капса (кириллический капс плохо читается) */
.wp-block-button__link, .kb-button,
.post-more-link, .more-link,
.entry-read-more, .loop-entry .entry-footer a {
	text-transform: none;
	letter-spacing: 0.01em;
	font-weight: 600;
}

/* Фокус форм — видимый (доступность) */
.entry-content input:focus-visible,
.entry-content textarea:focus-visible {
	outline: 2px solid var(--global-palette1);
	outline-offset: 1px;
}

/* CF7: поля в стиле брифа */
.wpcf7 input[type="text"], .wpcf7 input[type="tel"],
.wpcf7 input[type="email"], .wpcf7 textarea {
	width: 100%;
	border: 1px solid var(--global-palette6);
	border-radius: 4px;
	padding: 12px 16px;
	min-height: 52px;
	font-family: var(--global-body-font-family);
	font-size: 16px;
}
.wpcf7 textarea { min-height: 120px; }
.wpcf7 input[type="submit"] {
	background: var(--global-palette2);
	color: #fff;
	border: 0;
	border-radius: 4px;
	padding: 14px 28px;
	font-weight: 600;
	cursor: pointer;
}
.wpcf7 input[type="submit"]:hover { background: #9A3A0E; }

/* Списки-контакты без маркеров */
.ktiam-contact-list ul { list-style: none; padding-left: 0; }
.ktiam-contact-list li { padding: 6px 0; }

/* Даты в списках новостей */
.entry-meta, .kadence-blog-meta { font-family: var(--ktiam-mono); }

/* ============================================================
   V2 — правки по дизайн-ревью (типографика, hero, карточки)
   ============================================================ */

/* --- Типографическая шкала (major third от 18px) --- */
:root {
	--f-display: clamp(2rem, 1.15rem + 3.8vw, 3.5rem);
	--f-h1: clamp(1.75rem, 1.1rem + 2.7vw, 2.75rem);
	--f-h2: clamp(1.5rem, 1.1rem + 1.7vw, 2rem);
	--f-h3: clamp(1.1875rem, 1.05rem + 0.6vw, 1.375rem);
	--f-body: clamp(1.0625rem, 1rem + 0.2vw, 1.125rem);
	--radius: 2px;
	--shadow-card: 0 1px 2px rgba(20,24,28,.06), 0 12px 28px -16px rgba(20,24,28,.22);
	--section-py: clamp(3rem, 6vw, 5.5rem);
}
body, .entry-content p, .entry-content li { font-size: var(--f-body); line-height: 1.65; }
h1, .entry-title, .archive-title { font-size: var(--f-h1); line-height: 1.1; letter-spacing: -0.025em; text-wrap: balance; }
h2 { font-size: var(--f-h2); line-height: 1.15; }
h3, .loop-entry .entry-title { font-size: var(--f-h3); line-height: 1.25; letter-spacing: -0.01em; }
.wp-block-cover h1 {
	font-size: var(--f-display);
	font-weight: 800;
	line-height: 1.06;
	letter-spacing: -0.03em;
	max-width: 19ch;
}
.wp-block-cover__inner-container p { max-width: 34em; }

/* --- Русские переносы; не рвать слова и числа посреди --- */
html[lang^="ru"] .entry-title,
html[lang^="ru"] .entry-content p,
html[lang^="ru"] .loop-entry .entry-summary {
	hyphens: auto;
	-webkit-hyphens: auto;
	word-break: normal;
	overflow-wrap: normal;
}
.entry-content a { overflow-wrap: anywhere; }
/* в hero-лиде переносы неуместны */
html[lang^="ru"] .entry-content .wp-block-cover p {
	hyphens: manual;
	-webkit-hyphens: manual;
}

/* --- Hero: градиентный скрим вместо ровного дима --- */
.wp-block-cover .wp-block-cover__background.has-background-dim {
	background: linear-gradient(100deg,
		rgba(20,24,28,.92) 0%, rgba(20,24,28,.62) 45%,
		rgba(20,24,28,.28) 75%, rgba(20,24,28,.12) 100%) !important;
	opacity: 1 !important;
}
@media (max-width: 768px) {
	.wp-block-cover .wp-block-cover__background.has-background-dim {
		background: linear-gradient(180deg,
			rgba(20,24,28,.6) 0%, rgba(20,24,28,.82) 60%, rgba(20,24,28,.9) 100%) !important;
	}
}
.wp-block-cover .is-style-outline .wp-block-button__link {
	background: rgba(20,24,28,.35);
	backdrop-filter: blur(2px);
	border: 1.5px solid #fff;
}
.wp-block-cover .wp-block-button__link { min-width: 200px; text-align: center; }

/* --- Тёмная полоса фактов --- */
.ktiam-facts { padding-block: clamp(2.5rem, 4vw, 4rem); }
.ktiam-facts .ktiam-fact-num {
	font-size: clamp(2rem, 1.2rem + 2.6vw, 3rem) !important;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.03em;
	color: #FF8A3D; /* spark-light: 7.6:1 на ink */
	font-variant-numeric: tabular-nums;
}
.ktiam-facts .ktiam-fact-label { color: #C9D1D8; font-size: 0.9375rem; max-width: 30ch; }
@media (max-width: 600px) { .ktiam-facts .wp-block-columns { gap: 2rem; } }

/* --- Ритм секций (инлайн-паддинги сняты из разметки) --- */
.entry-content > .wp-block-group { padding-block: var(--section-py); }
.entry-content > .wp-block-group > h2 { margin-bottom: clamp(1.5rem, 2.5vw, 2.25rem); }

/* --- Карточки направлений --- */
.ktiam-cards .wp-block-column {
	background: #fff;
	border: 1px solid #E4E9EC;
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
	padding: 0 0 24px;
	display: flex;
	flex-direction: column;
}
.ktiam-cards .wp-block-image { margin: 0 0 18px; }
.ktiam-cards .wp-block-image img {
	aspect-ratio: 16/10;
	width: 100%;
	object-fit: cover;
	display: block;
	border-radius: var(--radius) var(--radius) 0 0;
}
.ktiam-cards h3, .ktiam-cards p { padding-inline: 24px; }
.entry-content .ktiam-cards h3 a { text-decoration: none; color: var(--global-palette3); }
.entry-content .ktiam-cards h3 a:hover { color: var(--global-palette2); }
/* на планшете держим 2 колонки, а не столбик */
@media (min-width: 600px) and (max-width: 781px) {
	.ktiam-cards { flex-wrap: wrap !important; }
	.ktiam-cards > .wp-block-column {
		flex-basis: calc(50% - 12px) !important;
		flex-grow: 0;
	}
}

/* --- Плитки отраслей --- */
.ktiam-tiles .wp-block-column {
	border: 1px solid var(--global-palette6);
	border-radius: var(--radius);
	padding: 20px 24px;
	transition: border-color .15s ease;
}
.ktiam-tiles .wp-block-column:hover { border-color: var(--global-palette1); }
.ktiam-tiles a { text-decoration: none; }
.ktiam-tiles a::after { content: " →"; color: var(--global-palette1); }

/* --- Карточки архивов: равная высота, обрезка анонса, кадр 16:10 --- */
.loop-entry { display: flex; flex-direction: column; height: 100%; border-radius: var(--radius); box-shadow: var(--shadow-card); border: 1px solid #E4E9EC; }
.loop-entry .entry-content-wrap { display: flex; flex-direction: column; flex: 1; }
.loop-entry .entry-summary {
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.loop-entry .entry-footer, .loop-entry .more-link-wrap { margin-top: auto; }
.loop-entry .post-thumbnail img { aspect-ratio: 16/10; object-fit: cover; width: 100%; }
.loop-entry .posted-by { display: none; } /* технический логин — не для витрины */
.loop-entry .entry-taxonomies { display: none; } /* рубрика-заглушка = шум */

/* --- Меню: индикатор активного пункта --- */
.main-navigation .primary-menu-container > ul > li.menu-item > a { position: relative; }
.main-navigation .primary-menu-container > ul > li.current-menu-item > a::after,
.main-navigation .primary-menu-container > ul > li.current-menu-ancestor > a::after {
	content: "";
	position: absolute;
	left: calc(1.2em / 2);
	right: calc(1.2em / 2);
	bottom: 0.2em;
	height: 2px;
	background: var(--global-palette2);
}

/* --- Переключатель языков: моно-код, активный с чертой --- */
.site-header .lang-item a {
	font-family: var(--ktiam-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.04em;
	opacity: 1;
	color: var(--global-palette5);
}
.site-header .lang-item a:hover { color: var(--global-palette3); }
.site-header .lang-item.current-lang a {
	color: var(--global-palette3);
	font-weight: 700;
	box-shadow: inset 0 -2px 0 var(--global-palette2);
}

/* --- Логотип: не во всю высоту шапки --- */
.site-header .custom-logo { max-height: 44px; }

/* --- Телефон в шапке --- */
.site-header .header-html a { color: var(--global-palette2); text-decoration: none; }
.site-header .header-html a:hover { color: var(--global-palette3); }

/* --- Единые радиусы --- */
.wp-block-button__link, input, textarea, select,
.pagination a, .pagination .page-numbers { border-radius: var(--radius); }

/* --- Focus-visible глобально --- */
:where(a, button, input, textarea, select, [tabindex]):focus-visible {
	outline: 2px solid var(--global-palette2);
	outline-offset: 2px;
}

/* --- Пагинация: зона клика 44px --- */
.pagination .page-numbers {
	min-width: 44px;
	min-height: 44px;
	display: inline-grid;
	place-items: center;
}

/* --- Подписи к изображениям --- */
.entry-content figcaption {
	font-family: var(--global-body-font-family);
	font-size: 14px;
	color: var(--global-palette4);
	text-align: left;
	border-top: 1px solid var(--global-palette6);
	padding-top: 8px;
	margin-top: 10px;
}

/* --- Мера строки на single-страницах --- */
.single .entry-content > :where(p, ul, ol, h2, h3, h4, blockquote) {
	max-width: 68ch;
}

/* --- Таблицы: цифры по центру, первая колонка слева, скролл на мобиле --- */
.entry-content table td { text-align: center; }
.entry-content table td:first-child { text-align: left; }
.entry-content table { font-variant-numeric: tabular-nums; }
.entry-content .wp-block-table { overflow-x: auto; }

/* --- Формы: лейблы, ширины, плейсхолдеры --- */
.wpcf7 label { display: block; font-size: 0.875rem; font-weight: 600; color: var(--global-palette3); margin-bottom: 6px; }
.wpcf7 ::placeholder { color: #78848E; opacity: 1; }
.wpcf7 textarea { min-height: 9rem; }
.wpcf7 .wpcf7-acceptance { font-size: 0.875rem; color: var(--global-palette4); }

/* --- Футер: тёмный, многоколоночный (HTML-контент в footer builder) --- */
.site-footer { background: var(--global-palette3); color: #C9D1D8; }
.site-footer a { color: #FF8A3D; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.ktiam-footer {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	max-width: 1200px;
	margin: 0 auto;
	padding: clamp(2rem, 4vw, 3.5rem) clamp(16px, 4vw, 32px) 1.5rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	text-align: left;
}
.ktiam-footer h4 { color: #fff; font-size: 1rem; margin: 0 0 12px; }
.ktiam-footer ul { list-style: none; margin: 0; padding: 0; }
.ktiam-footer li { padding: 3px 0; }
@media (max-width: 720px) { .ktiam-footer { grid-template-columns: 1fr; } }
.ktiam-footer-bottom { border-top: 1px solid rgba(255,255,255,.12); padding-top: 16px; margin-top: 8px; font-size: 0.875rem; color: #9FAAB4; }

/* --- reCAPTCHA бейдж: не поверх контента --- */
.grecaptcha-badge { z-index: 1 !important; }
