/*
Theme Name: Yariodor
Requires at least: 7.0
Description: Block theme for a Ukrainian business publication on agriculture and food processing.
Version: 0.6.16
Requires PHP: 8.1
Text Domain: yariodor
Update URI: false
*/

:focus-visible {
	outline: var(--wp--custom--rule--bold) solid var(--wp--preset--color--rust);
	outline-offset: 2px;
}

/* The rust ring fails 3:1 on the dark peat band, so the ring flips to grain there. */
.has-peat-background-color :focus-visible {
	outline-color: var(--wp--preset--color--grain);
}

figcaption,
cite {
	color: var(--wp--preset--color--fallow);
	font-size: var(--wp--preset--font-size--crumb);
}

/* Позначка «створено ШІ» під головним зображенням: ті самі токени, що й у підпису; у підписі автора — окремим рядком. */
figcaption.yd-ai-note {
	color: var(--wp--preset--color--fallow);
	font-size: var(--wp--preset--font-size--crumb);
}

.wp-element-caption > .yd-ai-note {
	display: block;
}

cite {
	font-style: normal;
	font-weight: 700;
}

.wp-block-post-content > * + * {
	margin-block-start: var(--wp--preset--spacing--row);
}

.wp-block-post-content :is(ul, ol) {
	padding-inline-start: var(--wp--preset--spacing--plot);
}

.wp-block-post-content li + li {
	margin-block-start: var(--wp--preset--spacing--seed);
}

.wp-block-post-content h2,
.wp-block-post-content h3 {
	margin-block-start: var(--wp--preset--spacing--plot);
}

.wp-block-image img {
	height: auto;
	max-width: 100%;
}

/* Page body. */
.yd-main {
	padding-block: var(--wp--preset--spacing--plot) var(--wp--preset--spacing--field);
}

.yd-head {
	border-block-end: var(--wp--custom--rule--bold) solid var(--wp--preset--color--fallow);
	padding-block-start: var(--wp--preset--spacing--row);
}

.yd-head__rubrics {
	border-block-start: var(--wp--custom--rule--hair) solid var(--wp--preset--color--stubble);
	margin-block-start: var(--wp--preset--spacing--sprig);
	padding-block: var(--wp--preset--spacing--sprig);
}

.yd-foot {
	border-block-start: var(--wp--custom--rule--stamp) solid var(--wp--preset--color--tilth);
	padding-block: var(--wp--preset--spacing--plot);
}

.yd-foot a {
	color: inherit;
}

.yd-foot a:hover {
	color: var(--wp--preset--color--straw);
}

.yd-heading {
	border-block-start: var(--wp--custom--rule--bold) solid var(--wp--preset--color--loam);
	margin-block-end: var(--wp--preset--spacing--plot);
	padding-block-start: var(--wp--preset--spacing--sprig);
}

/* Timeline: a dated mark on the left, the event on the right. */
.yd-tick {
	border-block-start: var(--wp--custom--rule--hair) solid var(--wp--preset--color--stubble);
	display: grid;
	gap: var(--wp--preset--spacing--seed) var(--wp--preset--spacing--plot);
	padding-block: var(--wp--preset--spacing--sprig);
}

.yd-tick--lead {
	border-block-start: var(--wp--custom--rule--bold) solid var(--wp--preset--color--loam);
	padding-block-end: var(--wp--preset--spacing--plot);
}

.yd-stamp {
	color: var(--wp--preset--color--tilth);
	font-size: var(--wp--preset--font-size--kernel);
	font-weight: 800;
	line-height: 1;
	white-space: nowrap;
}

.yd-tick .wp-block-post-title {
	margin-block: var(--wp--preset--spacing--seed);
}

.yd-tick--lead .wp-block-post-title {
	font-size: var(--wp--preset--font-size--bale);
}

@media (min-width: 48rem) {
	.yd-tick {
		grid-template-columns: var(--wp--custom--datecol) 1fr;
	}
}

/* Front page rail, article dateline, search hits. */
.yd-rail {
	border-inline-start: var(--wp--custom--rule--hair) solid var(--wp--preset--color--stubble);
	padding-inline-start: var(--wp--preset--spacing--row);
}

.yd-rail ul {
	list-style: none;
	padding: 0;
}

.yd-dateline {
	column-gap: var(--wp--preset--spacing--row);
	font-family: var(--wp--preset--font-family--mill);
	font-size: var(--wp--preset--font-size--crumb);
	font-weight: 700;
}

.yd-hit {
	border-block-start: var(--wp--custom--rule--hair) solid var(--wp--preset--color--stubble);
	column-gap: var(--wp--preset--spacing--row);
	padding-block: var(--wp--preset--spacing--sprig);
}

.yd-find,
.yd-front {
	margin-block-end: var(--wp--preset--spacing--plot);
}

.yd-front {
	column-gap: var(--wp--preset--spacing--plot);
}

@media (max-width: 47.99rem) {
	.yd-rail {
		border-inline-start: 0;
		padding-inline-start: 0;
	}
}

/* Anchors on the About page: the target section is marked and clears the top edge. */
:target {
	scroll-margin-block-start: var(--wp--preset--spacing--plot);
}

h2:target,
h3:target {
	border-inline-start: var(--wp--custom--rule--stamp) solid var(--wp--preset--color--rust);
	padding-inline-start: var(--wp--preset--spacing--sprig);
}

.yd-neighbours {
	border-block-start: var(--wp--custom--rule--bold) solid var(--wp--preset--color--loam);
	gap: var(--wp--preset--spacing--row);
	margin-block-start: var(--wp--preset--spacing--field);
	padding-block-start: var(--wp--preset--spacing--sprig);
}

.yd-neighbours a {
	box-sizing: border-box;
	display: inline-block;
	min-block-size: 2.75rem;
	min-inline-size: 2.75rem;
	overflow-wrap: anywhere;
	text-decoration: none;
}

/* The label sits above the title inside the link (linkLabel): a block span, never a flex link. */
.yd-neighbours .post-navigation-link__label {
	color: var(--wp--preset--color--fallow);
	display: block;
	font-size: var(--wp--preset--font-size--crumb);
}

.yd-neighbours .post-navigation-link-next {
	margin-inline-start: auto;
	text-align: end;
}

.yd-tick:hover .wp-block-post-title a {
	text-decoration: underline;
	text-decoration-thickness: var(--wp--custom--rule--bold);
	text-underline-offset: 0.2em;
}

.yd-hit .wp-block-post-date {
	flex: 0 0 6.5rem;
}

/* A long word shrinks the title, not the page (design-system.md 15 row 11). */
.yd-hit .wp-block-post-title {
	min-width: 0;
}

@media print {
	.yd-head,
	.yd-foot,
	.yd-rail,
	.yd-neighbours,
	.wp-block-search,
	.wp-block-query-pagination {
		display: none;
	}

	body {
		background: #ffffff;
		color: #000000;
	}

	.wp-block-post-content a::after {
		content: " (" attr(href) ")";
		font-size: var(--wp--preset--font-size--crumb);
	}
}

.yd-heading--split .wp-block-term-description {
	flex: 0 1 24rem;
}

/* Article end: related events under the body, before the neighbours. */
.yd-related {
	margin-block-start: var(--wp--preset--spacing--field);
}

.yd-related > .wp-block-heading {
	margin-block-end: var(--wp--preset--spacing--sprig);
}

.wp-block-post-excerpt {
	margin-block-end: var(--wp--preset--spacing--plot);
}

@media print {
	.yd-related {
		display: none;
	}
}

/* Skip link: off screen until it takes focus. */
.yd-skip a {
	color: inherit;
}

.yd-skip {
	background: var(--wp--preset--color--loam);
	color: var(--wp--preset--color--grain);
	margin: 0;
	font-family: var(--wp--preset--font-family--mill);
	font-weight: 700;
	inset-block-start: 0;
	inset-inline-start: 0;
	padding: var(--wp--preset--spacing--sprig) var(--wp--preset--spacing--row);
	position: absolute;
	transform: translateY(-110%);
	z-index: 100;
}

.yd-skip:focus-within {
	transform: none;
}

h5 { font-size: var(--wp--preset--font-size--kernel); font-weight: 700; }
h6 { font-size: var(--wp--preset--font-size--crumb); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }

/* Filter bar of the archive. */
.yd-filter {
	border-block: var(--wp--custom--rule--hair) solid var(--wp--preset--color--stubble);
	column-gap: var(--wp--preset--spacing--plot);
	margin-block-end: var(--wp--preset--spacing--plot);
	padding-block: var(--wp--preset--spacing--sprig);
}

.yd-filter :is(ul, ol) {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--seed) var(--wp--preset--spacing--row);
}

.yd-filter li {
	border: 0;
}

.yd-empty {
	border-inline-start: var(--wp--custom--rule--stamp) solid var(--wp--preset--color--stubble);
	padding-inline-start: var(--wp--preset--spacing--row);
}

.yd-empty ul {
	list-style: none;
	padding: 0;
}

/* Знак «Скиба» у шапці й підвалі (design-system.md 11.3, 15 рядки 2, 3, 14): декоративний ::before, назва лишається текстом. */
.wp-block-site-title a {
	box-sizing: border-box;
	display: inline-block;
	line-height: 1;
	min-block-size: 2.75rem;
	padding-block: 0.375rem;
}

.wp-block-site-title a::before {
	background: url("assets/brand/skyba.svg") center / contain no-repeat;
	content: "";
	display: inline-block;
	height: 2rem;
	margin-inline-end: 0.625rem;
	vertical-align: middle;
	width: 2rem;
}

.yd-foot .wp-block-site-title a::before {
	background-image: url("assets/brand/skyba-nich.svg");
}

/* The navigation links are blocks, not flex boxes (a flex link tears <em>/<mark> in its label into columns); the text of a one-line link is
   centred in the 44px by align-content, a link that wraps just grows. */
.yd-head__top .wp-block-navigation-item__content,
.yd-foot .wp-block-navigation-item__content {
	align-content: center;
	display: block;
	min-height: 2.75rem;
}

.yd-head__top .yariodor-mova__item {
	align-items: center;
	display: inline-flex;
	min-height: 2.75rem;
}

.yariodor-mova__item {
	min-width: 2.75rem;
}

.yariodor-mova__item[aria-current] {
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--tilth);
}

@media (min-width: 600px) {
	.wp-block-site-title a {
		min-height: 3.5rem;
	}

	.wp-block-site-title a::before {
		height: 2.5rem;
		width: 2.5rem;
	}
}

/* Телефон (< 600px, там же ядро згортає меню): шапка в один рядок ≤ 64px — знак і назва, перемикач мови, кнопка меню.
   Обидві групи шапки розкриваються (display: contents) в один flex-ряд; рубрики та посилання «Власність і видавець» живуть в оверлеї. */
@media (min-width: 600px) {
	.wp-block-navigation .wp-block-navigation-item.yd-menu-only {
		display: none;
	}
}

@media (max-width: 599.98px) {
	.yd-head {
		align-items: center;
		column-gap: var(--wp--preset--spacing--sprig);
		display: flex;
		flex-wrap: nowrap;
		padding-block: 0.5rem;
	}

	.yd-head .yd-head__top,
	.yd-head .yd-head__rubrics {
		display: contents;
	}

	.yd-head .yd-head__top > .wp-block-navigation {
		display: none;
	}

	.yd-head .wp-block-site-title {
		flex: 1 1 auto;
		line-height: 1;
		margin: 0;
		min-width: 0;
	}

	.yd-head .wp-block-navigation__responsive-container-open {
		align-items: center;
		justify-content: center;
		margin-inline-end: -0.625rem;
		min-height: 2.75rem;
		min-width: 2.75rem;
	}

	.yd-head .wp-block-navigation__responsive-container.is-menu-open {
		padding: var(--wp--preset--spacing--row);
	}

	.yd-head .is-menu-open .wp-block-navigation__responsive-container-content {
		padding-block-start: var(--wp--preset--spacing--plot);
	}

	.yd-head .is-menu-open .wp-block-navigation__container.wp-block-navigation {
		align-items: stretch;
		gap: 0;
		width: 100%;
	}

	.yd-head .is-menu-open .wp-block-navigation-item {
		border-block-start: var(--wp--custom--rule--hair) solid var(--wp--preset--color--stubble);
		width: 100%;
	}

	.yd-head .wp-block-navigation__responsive-container-close {
		align-items: center;
		display: flex;
		justify-content: center;
		margin-inline-end: -0.625rem;
		min-height: 2.75rem;
		min-width: 2.75rem;
	}

	.yd-head .is-menu-open .wp-block-navigation-item__content {
		align-content: center;
		display: block;
		font-size: var(--wp--preset--font-size--kernel);
		min-height: 3.5rem;
		width: 100%;
	}
}

/* Мініатюра в стрічці не розтягується на всю колонку: ~360px, без збільшення вузького файла. */
.yd-tick .yd-fig--card {
	max-width: 22.5rem;
}

/* Форма пошуку з порожнього стану дублює ту, що стоїть над результатами на сторінці пошуку. */
.yd-find ~ .wp-block-query .yd-empty .wp-block-search {
	display: none;
}

/* Головне зображення: лише коли воно є (ядро не друкує нічого без нього); пропорції задає атрибут блоку. */
.yd-fig {
	margin-block: var(--wp--preset--spacing--sprig);
}

.yd-fig img {
	display: block;
	height: auto;
	max-width: 100%;
	object-fit: cover;
	width: 100%;
}

.yd-fig--card a {
	display: block;
}

/* Картка без фото в списку рубрики: нейтральна друкована плашка тих самих пропорцій 16:9 з назвою рубрики (без назви матеріалу й сайту), щоб рядки були рівні й без порожнечі. */
.yd-fig--plate {
	align-items: flex-end;
	aspect-ratio: 16 / 9;
	background: var(--wp--preset--color--straw);
	border-block-start: var(--wp--custom--rule--bold) solid var(--wp--preset--color--loam);
	box-sizing: border-box;
	display: flex;
	overflow: hidden;
	padding: var(--wp--preset--spacing--sprig);
}

.yd-plate__rubric {
	color: var(--wp--preset--color--tilth);
	font-family: var(--wp--preset--font-family--mill);
	font-size: var(--wp--preset--font-size--crumb);
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.2;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

@media print {
	.yd-fig--plate {
		display: none;
	}
}

/* Згенерована обкладинка-плашка (клас ставить mu-plugin aicaption; фото без нього): світла половина не зливається з тлом сторінки, а в статті
   плашка не повторює H1 на пів екрана (на телефоні природна висота менша за ліміт, тож там нічого не змінюється). Фотообкладинки не чіпаємо. */
.yd-fig--ai img {
	border: var(--wp--custom--rule--hair) solid var(--wp--preset--color--stubble);
	box-sizing: border-box;
}

.yd-fig--head.yd-fig--ai img {
	max-height: 15rem;
}

/* The AI line sits under the picture, inside the figure; aspect-ratio belongs to the img only, so nothing is cropped. */
.yd-ai-note {
	display: block;
	margin-block-start: var(--wp--preset--spacing--seed);
}

figcaption > .yd-ai-note {
	display: inline;
}

@media (prefers-reduced-motion: reduce) {
	.yd-skip {
		transition: none;
	}
}

/* Цілі дотику: посилання рубрик, місяців, заголовків і таблиць не нижчі за 44 px на телефоні та за грубого вказівника.
   Розмір і вага шрифту ті самі; у списках правого стовпця відступ рядка переходить у висоту посилання. */
@media (max-width: 47.9375rem), (pointer: coarse) {
	.wp-block-post-terms a,
	.wp-block-categories a,
	.wp-block-archives a,
	.wp-block-table :is(td, th) a {
		box-sizing: border-box;
		display: inline-block;
		min-block-size: 2.75rem;
		min-inline-size: 2.75rem;
		overflow-wrap: anywhere;
		padding-block: 0.5rem;
		padding-block: calc((2.75rem - 1lh) / 2);
	}

	/* Заголовок може містити <em>/<mark>: inline-block, не flex (flex розбиває розмітку на колонки). Внутрішніх відступів по горизонталі немає. */
	.wp-block-post-title a {
		box-sizing: border-box;
		display: inline-block;
		min-block-size: 2.75rem;
		min-inline-size: 2.75rem;
		overflow-wrap: anywhere;
		padding-block: 0.5rem;
		padding-block: calc((2.75rem - 1lh) / 2);
	}

	ul.wp-block-categories li,
	ul.wp-block-archives li {
		padding-block: 0;
	}
}

/* Посилання рубрик у шапці від 600 px (нижче вони в оверлеї): ціль 44 px замість 23,8 px. Блок-рамка з відступом, не flex: підпис пункту може містити розмітку. Щоб шапка не виросла на ~20 px, вертикальний відступ рядка рубрик зменшено на ту саму величину (чистий приріст ~4 px). */
@media (min-width: 600px) {
	.yd-head .yd-head__rubrics {
		padding-block: 0.25rem;
	}

	.yd-head .yd-head__rubrics .wp-block-navigation-item__content {
		box-sizing: border-box;
		display: inline-block;
		min-block-size: 2.75rem;
		min-inline-size: 2.75rem;
		padding-block: 0.5rem;
		padding-block: calc((2.75rem - 1lh) / 2);
	}
}

/* Forced colours (Windows high contrast): the left rules are drawn by border, so they follow the system text colour (design-system.md 15 row 15). */
@media (forced-colors: active) {
	.yd-unknown,
	.yd-asof,
	.yd-tick--lead .yd-mark {
		border-inline-start-color: CanvasText;
	}
}

/* Print: the archive filter is controls only (row 15). The doubled class beats the flex layout class the editor prints for the group. */
@media print {
	.wp-block-group.yd-filter {
		display: none;
	}
}
