/* Components: іконки, кнопки, hero, списки-картки, FAQ, CTA, форми, картки записів. */

/* --- Іконки (inline-SVG з inc/icons.php) --- */

/* Іконка успадковує колір тексту, лишається в рядку (base.css робить усі
   svg блоковими) і не стискається у flex-контейнері. */
.icon {
	display: inline-block;
	flex: 0 0 auto;
	vertical-align: -0.15em;
	color: inherit;
	transition: transform var(--transition-fast);
}

/* Complianz: відмова має бути такою ж помітною і простою, як прийняття.
 * Банер розташований у куті, тому не блокує взаємодію з рештою сторінки. */
html body.cmplz-banner-active *:not(.cmplz-cookiebanner):not(.cmplz-cookiebanner *) {
	pointer-events: auto !important;
	user-select: auto !important;
}

html .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny {
	background-color: #222222;
	border-color: #222222;
	color: #ffffff;
}

@media (max-width: 47.99rem) {
	html #cmplz-manage-consent .cmplz-manage-consent {
		display: none !important;
	}
}

/* Таблиці в довгих матеріалах і правових сторінках не ламають мобільну сітку. */
.entry__content table {
	display: block;
	width: 100%;
	overflow-x: auto;
	border-collapse: collapse;
	-webkit-overflow-scrolling: touch;
}

.entry__content th,
.entry__content td {
	min-width: 11rem;
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--color-line);
	text-align: left;
	vertical-align: top;
}

.entry__content th {
	background: var(--color-surface);
	font-family: var(--font-headline);
	font-weight: 700;
}

/* --- Кнопки --- */

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-3);
	min-height: var(--button-height);
	padding: var(--button-padding);
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	font-family: var(--font-headline);
	font-size: var(--text-button);
	font-weight: 700;
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
	text-align: center;
	transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}

.button:hover,
.button:focus-visible {
	transform: translateY(-1px);
}

.button:hover .icon,
.button:focus-visible .icon {
	transform: translateX(0.15rem);
}

.button--primary {
	background: var(--gradient-primary);
	color: var(--color-white);
}

.button--ghost {
	border-color: var(--color-line-strong);
	color: var(--color-text-muted);
}

.button--ghost:hover,
.button--ghost:focus-visible {
	border-color: var(--color-white);
	background: var(--color-white);
	color: var(--color-black);
}

.button--header {
	min-height: var(--button-height-sm);
	padding-inline: 1.15rem;
	font-size: 0.62rem;
	letter-spacing: var(--tracking-nav);
}

/* --- Hero --- */

.hero {
	display: flex;
	align-items: center;
	min-height: calc(100svh - var(--header-height));
	/* Синьо-чорна основа + сітка. Останній шар — згасання в
	   --color-background, щоб низ hero зійшовся з наступною секцією
	   без видимого шва. */
	background-color: var(--color-hero-base);
	background-image:
		radial-gradient(ellipse at 82% 0%, var(--color-primary-faint), transparent 45%),
		linear-gradient(180deg, transparent 55%, var(--color-background)),
		linear-gradient(var(--color-blueprint-line-lifted) 1px, transparent 1px),
		linear-gradient(90deg, var(--color-blueprint-line-lifted) 1px, transparent 1px);
	background-size:
		auto,
		auto,
		var(--blueprint-size) var(--blueprint-size),
		var(--blueprint-size) var(--blueprint-size);
}

/* Без width: 100% — воно перебивало .container (та сама специфічність,
   components.css підключається пізніше за base.css) і hero розтягувався
   на всю ширину вікна. Помітно стало лише з фото: текст лягав на край
   екрана, а портрет виходив за правий край. */
.hero__inner {
	display: grid;
	gap: var(--space-10);
}

/* Hero без фото — по центру (як у референсі); з фото — двоколонковий. */
.hero__inner:not(:has(.hero__media)) .hero__copy {
	max-width: 62rem;
	margin-inline: auto;
	text-align: center;
}

.hero__inner:not(:has(.hero__media)) .hero__title {
	max-width: 18ch;
}

.hero__inner:not(:has(.hero__media)) .hero__title,
.hero__inner:not(:has(.hero__media)) .hero__subtitle {
	margin-inline: auto;
}

.hero__inner:not(:has(.hero__media)) .hero__actions {
	justify-content: center;
}

.hero__kicker {
	margin-bottom: var(--space-6);
}

.hero__title {
	max-width: 16ch;
	font-size: var(--text-hero);
	text-wrap: balance;
}

.hero__subtitle {
	margin-top: var(--space-6);
	max-width: 42rem;
	color: rgba(255, 255, 255, 0.92);
	font-size: var(--text-lead);
	line-height: var(--leading-base);
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4);
	margin-top: var(--space-6);
}

.hero__actions .button {
	flex: 1 1 100%;
}

.hero__microcopy {
	margin-top: var(--space-4);
	color: var(--color-text-muted);
	line-height: 1.8;
}

.hero__media {
	padding: var(--space-3);
	border: 1px solid var(--color-line);
	background: var(--color-surface);
	box-shadow: var(--shadow-soft);
}

.hero__media img {
	width: 100%;
	object-fit: cover;
}

/* Одноколонковий розклад (до 64rem): портрет 3:4 на всю ширину контейнера
   став би вищим за екран — тримаємо його в межах кадру й центруємо.
   Саме width, а не max-width: auto-марджини на грід-елементі стискають
   його до вмісту, і фігура з lazy-картинкою схлопується до падінгів. */
@media (max-width: 63.99rem) {
	.hero__media,
	.section--text__media {
		width: min(100%, 24rem);
		margin-inline: auto;
	}
}

/* --- Секції-списки (грід 1px на фоні --color-line, як у референсі) --- */

/* Blueprint-сітка 1px: лінії малюють outline-и самих карток, тому
   порожні клітинки неповних рядів лишаються чистим фоном секції. */
.item-list {
	display: grid;
	gap: 1px;
	padding: 1px;
	counter-reset: item-list;
}

.item-list__item {
	padding: var(--space-5);
	background: var(--color-surface);
	outline: 1px solid var(--color-line);
	color: var(--color-text-muted);
	transition: background-color var(--transition-fast);
}

.item-list__item:hover {
	background: var(--color-surface-strong);
}

.item-list--icons .item-list__item {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--space-4);
	align-items: start;
}

.item-list__icon {
	display: inline-flex;
	margin-top: 0.15rem;
	color: var(--color-primary);
}

.item-list__item strong {
	display: block;
	margin-bottom: var(--space-2);
	color: var(--color-text);
	font-family: var(--font-headline);
	font-size: var(--text-card-title);
	font-weight: 700;
	letter-spacing: var(--tracking-heading);
	line-height: var(--leading-heading);
	text-transform: uppercase;
}

.item-list--ordered .item-list__item {
	counter-increment: item-list;
}

.item-list--ordered .item-list__item::before {
	content: counter(item-list, decimal-leading-zero);
	display: block;
	margin-bottom: var(--space-3);
	color: var(--color-text-ghost);
	font-family: var(--font-headline);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: var(--tracking-heading);
	transition: color var(--transition-fast);
}

.item-list--ordered .item-list__item:hover::before {
	color: var(--color-primary);
}

/* --- Текстові секції --- */

.section--text__inner {
	display: grid;
	gap: var(--space-10);
}

.section-text {
	max-width: 46rem;
}

.section-text p {
	color: var(--color-text-muted);
}

.section-text strong {
	color: var(--color-text);
}

/* Інлайн-посилання в текстових блоках (лінки з content/ проходять kses):
   акцентний колір за конвенцією .section-note a, підкреслення — на hover. */
.section-text a,
.section-intro a,
.section-outro a,
.cta__lead a,
.faq-item__panel a,
.item-list__item a,
.case-section__text a {
	color: var(--color-primary);
	transition: color var(--transition-fast);
}

.section-text a:hover,
.section-text a:focus-visible,
.section-intro a:hover,
.section-intro a:focus-visible,
.section-outro a:hover,
.section-outro a:focus-visible,
.cta__lead a:hover,
.cta__lead a:focus-visible,
.faq-item__panel a:hover,
.faq-item__panel a:focus-visible,
.item-list__item a:hover,
.item-list__item a:focus-visible,
.case-section__text a:hover,
.case-section__text a:focus-visible {
	color: var(--color-white);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.section--text__media {
	padding: var(--space-3);
	border: 1px solid var(--color-line);
	background: var(--color-surface);
}

.section--text__media img {
	width: 100%;
	object-fit: cover;
}

/* --- Картки послуг --- */

.cards-grid {
	display: grid;
	gap: 1px;
	padding: 1px;
}

.card {
	display: grid;
	gap: var(--space-3);
	padding: var(--space-5);
	background: var(--color-surface);
	outline: 1px solid var(--color-line);
	transition: background-color var(--transition-fast);
}

.card:hover {
	background: var(--color-surface-strong);
}

.card__title {
	font-size: var(--text-card-title);
}

.card__text {
	color: var(--color-text-muted);
}

.card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	margin-top: auto;
	padding-top: var(--space-4);
}

.card__price {
	color: var(--color-text-muted);
	font-size: var(--text-label);
	font-weight: 700;
	letter-spacing: var(--tracking-caps-sm);
	text-transform: uppercase;
}

.card__link {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--color-primary);
	font-family: var(--font-headline);
	font-size: var(--text-label);
	font-weight: 700;
	letter-spacing: var(--tracking-caps);
	text-transform: uppercase;
}

/* --- FAQ --- */

.faq-list {
	display: grid;
	gap: var(--space-4);
	counter-reset: faq;
}

.faq-item {
	padding: var(--space-5);
	border: 1px solid var(--color-line);
	background: var(--color-surface);
	counter-increment: faq;
	transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

/* Технічний код питання — як у першій версії теми, у типографіці label-ів. */
.faq-item::before {
	content: "QUERY_ID_" counter(faq, decimal-leading-zero);
	display: block;
	margin-bottom: var(--space-4);
	color: var(--color-text-soft);
	font-family: var(--font-headline);
	font-size: var(--text-label);
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
}

.faq-item.is-open {
	border-color: var(--color-primary-line);
	background: var(--color-surface-alt);
}

.faq-item__heading {
	margin: 0;
}

.faq-item__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	width: 100%;
	padding: 0;
	text-align: left;
	font-family: var(--font-headline);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: var(--leading-heading);
	letter-spacing: var(--tracking-heading);
	text-transform: uppercase;
}

.faq-item__icon {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border: 1px solid var(--color-line);
	border-radius: var(--radius-round);
	color: var(--color-text-soft);
	transition: transform var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);
}

.faq-item.is-open .faq-item__icon {
	transform: rotate(90deg);
	border-color: var(--color-primary-line);
	background: var(--color-primary-faint);
	color: var(--color-white);
}

/* Панель анімується по висоті, тому власні відступи живуть усередині.
   visibility прибирає закритий текст із дерева доступності й з таб-порядку,
   не ламаючи анімацію (перемикається миттєво на відкритті й після неї —
   на закритті). Без JS панелі лишаються згорнутими. */
.faq-item__panel {
	height: 0;
	overflow: hidden;
	visibility: hidden;
	opacity: 0;
	color: var(--color-text-muted);
	transition: height var(--transition-base), opacity var(--transition-fast), visibility 0s linear var(--transition-base-ms);
}

.faq-item.is-open .faq-item__panel {
	visibility: visible;
	opacity: 1;
	transition: height var(--transition-base), opacity var(--transition-fast), visibility 0s;
}

.faq-item__panel-inner {
	padding-top: var(--space-4);
}

/* --- CTA --- */

.section--cta {
	background-color: var(--color-surface-alt);
	background-image:
		radial-gradient(ellipse at 50% 110%, var(--color-primary-faint), transparent 55%),
		linear-gradient(var(--color-blueprint-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--color-blueprint-line) 1px, transparent 1px);
	background-size:
		auto,
		var(--blueprint-size) var(--blueprint-size),
		var(--blueprint-size) var(--blueprint-size);
	text-align: center;
}

.section--cta .section-title {
	max-width: 20ch;
}

.cta__lead {
	max-width: 42rem;
	margin-top: var(--space-6);
	margin-inline: auto;
}

.cta__lead p {
	color: rgba(255, 255, 255, 0.9);
}

.cta__form {
	margin-top: var(--space-8);
	text-align: left;
}

.cta__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-4);
	margin-top: var(--space-8);
}

.cta__microcopy {
	display: inline-flex;
	gap: var(--space-2);
	align-items: start;
	margin-top: var(--space-4);
	color: var(--color-text-muted);
	font-size: 0.95rem;
	text-align: left;
}

.cta__microcopy .icon {
	margin-top: 0.15rem;
	color: var(--color-text-soft);
}

.cta__alt {
	margin-top: var(--space-6);
}

.cta__alt a {
	display: inline-flex;
	align-items: center;
	min-height: 2rem;
	color: var(--color-primary);
}

/* --- Форми (CF7) --- */

.wpcf7 form {
	display: grid;
	gap: var(--space-4);
	padding: var(--space-6);
	border: 1px solid var(--color-line);
	background: var(--color-panel-glass);
	backdrop-filter: blur(var(--blur-glass));
}

.wpcf7 form p {
	display: grid;
	gap: var(--space-2);
	margin: 0;
}

/* CF7 вставляє <br> між label і полем — у grid це зайвий порожній ряд. */
.wpcf7 form br {
	display: none;
}

.wpcf7 form label {
	color: var(--color-text-soft);
	font-size: var(--text-label);
	font-weight: 700;
	letter-spacing: var(--tracking-caps);
	text-transform: uppercase;
}

.wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wpcf7 textarea {
	width: 100%;
	padding: 0 0 var(--space-3);
	border: 0;
	border-bottom: 1px solid var(--color-input-line);
	border-radius: 0;
	background: transparent;
	color: var(--color-white);
}

.wpcf7 textarea {
	min-height: var(--textarea-min-height);
	resize: vertical;
}

/* Селект: нативний елемент під ту саму лінію, що й інпути. */
.wpcf7 select {
	width: 100%;
	padding: 0 var(--space-6) var(--space-3) 0;
	border: 0;
	border-bottom: 1px solid var(--color-input-line);
	border-radius: 0;
	background-color: transparent;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%23a3a3a3' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.25rem top 0.4rem;
	color: var(--color-white);
	font: inherit;
	color-scheme: dark;
	appearance: none;
	cursor: pointer;
}

/* -------------------------------------------------------------------------
 * Кастомний випадний список (assets/js/theme.js). Нативне меню селекта
 * малює операційна система — CSS до нього майже не дістає, тому на
 * пристроях з мишею його підміняє власний listbox у стилі сайту.
 * Нативний select лишається в DOM: він і відправляє значення у форму.
 * ---------------------------------------------------------------------- */

.select-field {
	position: relative;
}

.wpcf7 select.select-field__native {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	opacity: 0;
	pointer-events: none;
	clip-path: inset(50%);
}

.select-field__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	width: 100%;
	padding: 0 0 var(--space-3);
	border-bottom: 1px solid var(--color-input-line);
	color: var(--color-white);
	font: inherit;
	text-align: left;
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.select-field__trigger::after {
	content: "";
	flex: 0 0 auto;
	width: 0.75rem;
	height: 0.5rem;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%23a3a3a3' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
	transition: transform var(--transition-fast);
}

.select-field.is-open .select-field__trigger::after {
	transform: rotate(180deg);
}

.select-field__trigger:hover,
.select-field.is-open .select-field__trigger {
	border-color: var(--color-line-strong);
}

.select-field__trigger:focus-visible {
	border-color: var(--color-primary);
	outline: 0;
	box-shadow: var(--input-focus-shadow);
}

.select-field__list {
	position: absolute;
	z-index: 30;
	right: 0;
	left: 0;
	top: calc(100% + var(--space-2));
	max-height: 15rem;
	overflow-y: auto;
	padding: var(--space-2);
	border: 1px solid var(--color-line-strong);
	border-radius: var(--radius-sm);
	background: var(--color-surface-alt);
	box-shadow: var(--shadow-soft);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-0.25rem);
	pointer-events: none;
	transition: opacity var(--transition-fast), transform var(--transition-fast), visibility 0s linear var(--transition-fast-ms);
}

.select-field.is-open .select-field__list {
	opacity: 1;
	visibility: visible;
	transform: none;
	pointer-events: auto;
	transition: opacity var(--transition-fast), transform var(--transition-fast), visibility 0s;
}

.select-field__option {
	display: flex;
	align-items: center;
	min-height: 2.75rem;
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius-sm);
	color: var(--color-text-muted);
	cursor: pointer;
	transition: background-color var(--transition-fast), color var(--transition-fast);
}

.select-field__option:hover,
.select-field__option.is-active {
	background: var(--color-surface-strong);
	color: var(--color-white);
}

.select-field__option[aria-selected="true"] {
	color: var(--color-primary);
}

.select-field__option[aria-selected="true"].is-active,
.select-field__option[aria-selected="true"]:hover {
	background: var(--color-primary-faint);
	color: var(--color-white);
}

/* Згода на обробку даних під формою — не поле, а примітка: звичайний
   абзац, а не рядок сітки (інакше посилання всередині стає окремим рядом). */
.wpcf7 form .form-consent {
	display: block;
	color: var(--color-text-muted);
	font-size: 0.8rem;
	line-height: 1.5;
}

/* Випадний список малює операційна система, і поле з appearance:none
   передає пунктам свій білий колір тексту — на світлому системному тлі
   вони стають невидимими. Тому кольори пунктів задаємо явно; color-scheme
   додатково перемикає в темний режим ті браузери (Safari, Firefox), які
   авторські кольори пунктів ігнорують. */
.wpcf7 select option,
.wpcf7 select optgroup {
	background-color: var(--color-surface-alt);
	color: var(--color-white);
}

.wpcf7 input:not([type="submit"]):focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	border-color: var(--color-primary);
	outline: 0;
	box-shadow: var(--input-focus-shadow);
}

.wpcf7 input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	justify-self: center;
	width: auto;
	min-width: 16rem;
	min-height: var(--button-height);
	padding: var(--button-padding);
	border: 0;
	border-radius: var(--radius-sm);
	background: var(--gradient-primary);
	color: var(--color-white);
	font-family: var(--font-headline);
	font-size: var(--text-button);
	font-weight: 700;
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
	cursor: pointer;
	transition: transform var(--transition-fast), filter var(--transition-fast);
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 input[type="submit"]:focus-visible {
	filter: brightness(1.06);
	transform: translateY(-1px);
}

.wpcf7-not-valid-tip,
.wpcf7 .wpcf7-response-output {
	font-size: 0.8rem;
	color: var(--color-text-muted);
}

/* --- Картки записів (блог, кейси) --- */

.posts-grid,
.cases-grid {
	display: grid;
	gap: 1px;
	padding: 1px;
}

.entry-card {
	min-height: 100%;
	background: var(--color-surface);
	outline: 1px solid var(--color-line);
	transition: background-color var(--transition-fast);
}

.entry-card:hover {
	background: var(--color-surface-strong);
}

.entry-card__link {
	display: grid;
	min-height: 100%;
}

.entry-card__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.entry-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Скріни кейсів мають desktop-пропорцію близько 16:9. Показуємо їх
   повністю; блогові картки зберігають свій кадр 4:3 і cover. */
.entry-card--case .entry-card__media {
	aspect-ratio: 1248 / 712;
	background: var(--color-bg);
}

.entry-card--case .entry-card__media img {
	object-fit: contain;
}

.entry-card__body {
	display: grid;
	gap: var(--space-4);
	padding: var(--space-6);
}

.entry-card__meta {
	color: var(--color-text-soft);
	font-size: var(--text-label);
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
}

.entry-card__title {
	font-size: var(--text-card-title-lg);
}

.entry-card__excerpt {
	color: var(--color-text-muted);
}

.entry-card__more {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--color-primary);
	font-family: var(--font-headline);
	font-size: var(--text-label);
	font-weight: 700;
	letter-spacing: var(--tracking-caps);
	text-transform: uppercase;
}

.card__link:hover .icon,
.card__link:focus-visible .icon {
	transform: translateX(0.2rem);
}

.entry-card__link:hover .entry-card__more .icon,
.entry-card__link:focus-visible .entry-card__more .icon {
	transform: translateX(0.2rem);
}

/* --- Одиночні записи, архіви --- */

.entry {
	display: grid;
	gap: var(--space-8);
}

.entry__title {
	font-size: var(--text-section-title);
}

.entry__media {
	overflow: hidden;
	border-radius: var(--radius-md);
}

.entry__content p,
.entry__content li {
	color: var(--color-text-muted);
}

.entry__content h2,
.entry__content h3,
.entry__content h4 {
	margin-top: var(--space-8);
	font-size: 1.6rem;
}

.entry__content ul,
.entry__content ol {
	padding-left: 1.25rem;
}

.entry__content ul {
	list-style: disc;
}

.entry__content ol {
	list-style: decimal;
}

.entry__content a {
	color: var(--color-primary);
}

.entry__content blockquote {
	padding-left: var(--space-5);
	border-left: 1px solid var(--color-primary);
	color: var(--color-white);
}

.entry__content img {
	border-radius: var(--radius-md);
}

.archive-intro {
	display: grid;
	gap: var(--space-4);
	margin-bottom: var(--space-12);
}

.archive-intro__title {
	font-size: var(--text-section-title);
}

.empty-state__text {
	color: var(--color-text-muted);
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4);
	margin-top: var(--space-12);
	color: var(--color-text-muted);
}

/* --- Соцпосилання, реквізити, кейс --- */

.social-list {
	display: grid;
	gap: var(--space-3);
}

.social-list--inline {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4);
}

.social-list__item a {
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	color: var(--color-text);
	font-family: var(--font-headline);
	font-size: var(--text-small);
	font-weight: 700;
	letter-spacing: var(--tracking-caps);
	text-transform: uppercase;
	transition: color var(--transition-fast);
}

.social-list__item a:hover {
	color: var(--color-primary);
}

.social-list__note {
	color: var(--color-text-soft);
}

.requisites p {
	color: var(--color-text-muted);
}

.requisites p .icon {
	margin-right: var(--space-2);
	color: var(--color-text-soft);
}

.requisites__company strong {
	color: var(--color-text);
}

.case-section + .case-section {
	margin-top: var(--space-10);
}

.case-section__label {
	color: var(--color-text-soft);
	font-size: var(--text-label);
	font-weight: 700;
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
}

.case-section__text {
	margin-top: var(--space-3);
	color: var(--color-text-muted);
}

.course-status {
	margin-bottom: var(--space-6);
}

/* --- Брейкпоінти --- */

@media (min-width: 48rem) {
	.hero__actions .button {
		flex: 0 0 auto;
	}

	.item-list,
	.cards-grid,
	.posts-grid,
	.cases-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64rem) {
	.item-list,
	.cards-grid,
	.cases-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.faq-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}

	.hero__inner:has(.hero__media) {
		grid-template-columns: minmax(0, 1.1fr) minmax(19rem, 0.7fr);
		align-items: center;
	}

	.section--text__inner:has(.section--text__media) {
		grid-template-columns: minmax(0, 1.15fr) minmax(19rem, 0.7fr);
		align-items: center;
	}
}

/* --- Порівняльна таблиця --- */

.compare-scroll {
	overflow-x: auto;
}

.compare {
	width: 100%;
	border-collapse: collapse;
	text-align: left;
}

/* Мобільний: кожен рядок — картка, значення підписані data-label. */
.compare thead {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

.compare tbody tr {
	display: grid;
	gap: var(--space-3);
	padding: var(--space-5);
	background: var(--color-surface);
	outline: 1px solid var(--color-line);
}

.compare tbody tr + tr {
	margin-top: 1px;
}

.compare__criterion {
	color: var(--color-text);
	font-family: var(--font-headline);
	font-size: var(--text-card-title);
	font-weight: 700;
	line-height: var(--leading-heading);
	letter-spacing: -0.01em;
}

.compare__cell {
	color: var(--color-text-muted);
}

/* Honeypot CF7: доступний у DOM для ботів, але поза видимою областю для людей. */
.sni-antispam-field {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.compare__cell::before {
	content: attr(data-label);
	display: block;
	margin-bottom: var(--space-1);
	color: var(--color-text-soft);
	font-size: var(--text-label);
	font-weight: 700;
	letter-spacing: var(--tracking-caps);
	text-transform: uppercase;
}

.compare__cell--b {
	color: var(--color-text);
}

@media (min-width: 48rem) {
	.compare {
		min-width: 44rem;
	}

	.compare thead {
		position: static;
		width: auto;
		height: auto;
		clip: auto;
	}

	.compare tbody tr,
	.compare thead tr {
		display: table-row;
		padding: 0;
		background: none;
		outline: 0;
	}

	.compare tbody tr + tr {
		margin-top: 0;
	}

	.compare th,
	.compare td {
		padding: var(--space-4) var(--space-5);
		border-bottom: 1px solid var(--color-line);
		vertical-align: top;
	}

	.compare thead th {
		padding-bottom: var(--space-3);
		border-bottom: 1px solid var(--color-line-strong);
		color: var(--color-text-soft);
		font-family: var(--font-headline);
		font-size: var(--text-label);
		font-weight: 700;
		letter-spacing: var(--tracking-caps);
		text-transform: uppercase;
	}

	.compare thead .compare__head--b {
		color: var(--color-primary);
	}

	.compare__criterion {
		width: 30%;
		font-size: 1rem;
	}

	.compare__cell::before {
		display: none;
	}

	.compare tbody tr:hover td,
	.compare tbody tr:hover th {
		background: var(--color-surface);
	}
}
