/* ==========================================================================
   INFOCEAN — Catalog
   --------------------------------------------------------------------------
   Структурные стили каталога исследований:
   Catalog Hub, research card и WooCommerce product archives.

   Канонические стили публичной Catalog System:
   hub, classification indexes/archives, filters, search и Research Card.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Catalog Hub
   -------------------------------------------------------------------------- */

.infocean-catalog-hub {
	padding-bottom: var(--sp-9);
}


/* Hero --------------------------------------------------------------- */

.infocean-catalog-hub__hero {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(360px, 0.78fr);

	grid-template-areas:
		"eyebrow search"
		"title   search"
		"lead    routes";

	column-gap: var(--sp-8);
	row-gap: 0;

	align-items: end;

	padding:
		0
		0
		var(--sp-8);

	border-bottom:
		1px solid
		var(--color-border);
}


.infocean-catalog-hub__eyebrow {
	grid-area: eyebrow;

	display: flex;
	align-items: center;

	gap: var(--sp-3);

	margin:
		0
		0
		var(--sp-3);

	font-size: 11px;
	font-weight: 600;
	line-height: 1.3;

	letter-spacing: 0.075em;
	text-transform: uppercase;

	color:
		var(--color-text-subtle);
}


.infocean-catalog-hub__eyebrow::before {
	content: "";

	flex: 0 0 56px;

	width: 56px;
	height: 3px;

	background:
		var(--gradient-brand);

	border-radius:
		var(--radius-pill);
}


.infocean-catalog-hub__hero h1 {
	grid-area: title;

	max-width: 650px;

	margin: 0;
}


.infocean-catalog-hub__lead {
	grid-area: lead;

	max-width: 620px;

	margin:
		var(--sp-4)
		0
		0;

	font-size: 18px;
	line-height: 1.55;

	color:
		var(--color-text-muted);
}


/* Search ------------------------------------------------------------- */

.infocean-catalog-search {
	display: flex;
	align-items: stretch;

	max-width: 760px;

	margin-top: var(--sp-6);
}


.infocean-catalog-search input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;

	height: 52px;

	padding:
		0
		var(--sp-4);

	font: inherit;

	color: var(--color-text);
	background: var(--color-surface);

	border:
		1px solid
		var(--color-border);

	border-right: 0;
}


.infocean-catalog-search input[type="search"]::placeholder {
	color: var(--color-text-subtle);
}


.infocean-catalog-search button {
	flex: 0 0 auto;

	min-width: 116px;
	height: 52px;

	padding:
		0
		var(--sp-5);

	font: inherit;
	font-weight: 600;

	color: #ffffff;
	background: var(--color-brand);

	border:
		1px solid
		var(--color-brand);

	cursor: pointer;
}


.infocean-catalog-search button:hover {
	background: var(--color-brand-strong);
	border-color: var(--color-brand-strong);
}


.infocean-catalog-hub__hero
.infocean-catalog-search {
	grid-area: search;

	align-self: end;

	width: 100%;
	max-width: none;

	margin: 0;
}


.infocean-catalog-hub__hero
.infocean-catalog-search
input[type="search"] {
	border-color:
		var(--color-border-strong);

	border-radius:
		var(--radius-sm)
		0
		0
		var(--radius-sm);
}


.infocean-catalog-hub__hero
.infocean-catalog-search
button {
	border-radius:
		0
		var(--radius-sm)
		var(--radius-sm)
		0;
}


/* Discovery routes --------------------------------------------------- */

.infocean-catalog-hub__anchors {
	grid-area: routes;

	display: grid;

	width: 100%;

	gap: 0;

	margin-top: var(--sp-3);

	border-top:
		1px solid
		var(--color-border);
}


.infocean-catalog-hub__anchors a {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: var(--sp-4);

	padding:
		11px
		0;

	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;

	color:
		var(--color-text-muted);

	border-bottom:
		1px solid
		var(--color-border);

	transition:
		color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-catalog-hub__anchors a::after {
	content: "→";

	flex: 0 0 auto;

	color:
		var(--color-brand);

	font-size: 15px;
}


.infocean-catalog-hub__anchors a:hover {
	color:
		var(--color-brand);
}


/* Sections ----------------------------------------------------------- */

.infocean-catalog-hub__section {
	padding-top: var(--sp-8);
}


.infocean-catalog-hub__section-header {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(320px, 0.48fr);

	column-gap: var(--sp-7);
	row-gap: var(--sp-4);

	align-items: start;

	margin-bottom: 32px;
}


.infocean-catalog-hub__section-header h2 {
	max-width: 760px;

	font-size:
		clamp(
			30px,
			2.6vw,
			37px
		);

	line-height: 1.15;
	letter-spacing: -0.018em;
}


.infocean-catalog-hub__section-meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;

	gap: 10px;

	padding-top: 3px;
}


.infocean-catalog-hub__section-meta p {
	max-width: 390px;

	margin: 0;

	font-size: 16px;
	font-weight: 500;
	line-height: 1.48;

	letter-spacing: -0.005em;

	color:
		var(--color-text-muted);
}


.infocean-catalog-hub__section-link {
	display: inline-flex;
	align-items: center;

	gap: 6px;

	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;

	color:
		var(--color-brand);

	text-decoration-line: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;

	transition:
		color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-catalog-hub__section-link:hover {
	color:
		var(--color-brand-strong);
}


/* Business tasks ----------------------------------------------------- */

#catalog-tasks {
	margin-top: 56px;

	padding:
		var(--sp-7)
		var(--sp-6);

	background:
		var(--color-panel);

	color:
		var(--color-text-on-dark);

	border:
		1px solid
		var(--color-border-dark);

	border-radius:
		var(--radius-md);
}


#catalog-tasks
.infocean-catalog-hub__section-header {
	margin-bottom:
		var(--sp-5);
}


#catalog-tasks
.infocean-catalog-hub__section-header h2 {
	color:
		var(--color-text-on-dark);
}


#catalog-tasks
.infocean-catalog-hub__section-meta p {
	color:
		var(--color-text-on-dark-muted);
}


#catalog-tasks
.infocean-catalog-hub__section-link {
	color:
		var(--color-mint);
}


#catalog-tasks
.infocean-catalog-hub__section-link:hover {
	color: #ffffff;
}


.infocean-catalog-hub__task-grid {
	display: grid;

	grid-template-columns:
		repeat(
			3,
			minmax(0, 1fr)
		);

	gap: var(--sp-4);
}


.infocean-catalog-term-card {
	min-width: 0;

	background: var(--color-surface);

	border:
		1px solid
		var(--color-border);
}


.infocean-catalog-term-card--task {
	min-height: 0;

	padding: 0;

	overflow: hidden;

	background:
		color-mix(
			in srgb,
			var(--color-panel-muted) 88%,
			transparent
		);

	border-color:
		var(--color-border-dark);

	border-radius:
		var(--radius-sm);

	transition:
		background-color
		var(--motion-fast)
		var(--ease-standard),
		border-color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-catalog-term-card--task:hover {
	background:
		color-mix(
			in srgb,
			var(--color-panel-muted) 96%,
			transparent
		);

	border-color:
		color-mix(
			in srgb,
			var(--color-mint) 40%,
			var(--color-border-dark)
		);
}


.infocean-catalog-term-card--task h3 {
	height: 100%;

	margin: 0;

	font-size:
		clamp(
			18px,
			1.8vw,
			21px
		);
}


.infocean-catalog-term-card--task h3 a {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;

	gap: var(--sp-4);

	min-height: 108px;

	padding:
		var(--sp-5);

	color:
		var(--color-text-on-dark);

	text-decoration: none;
}


.infocean-catalog-term-card--task h3 a::after {
	content: "→";

	flex: 0 0 auto;

	color:
		var(--color-mint);

	font-size: 18px;
	font-weight: 500;
}


.infocean-catalog-term-card--task h3 a:hover {
	color: #ffffff;
	text-decoration: none;
}


/* Industries --------------------------------------------------------- */

.infocean-catalog-hub__industry-grid {
	display: grid;

	grid-template-columns:
		repeat(
			auto-fit,
			minmax(
				min(100%, 300px),
				1fr
			)
		);

	gap: var(--sp-4);
}


.infocean-catalog-term-card--industry {
	min-height: 0;

	padding:
		32px
		30px;

	border-radius:
		var(--radius-sm);

	transition:
		border-color
		var(--motion-fast)
		var(--ease-standard),
		background-color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-catalog-term-card--industry:hover {
	background:
		color-mix(
			in srgb,
			var(--color-brand) 2%,
			var(--color-surface)
		);

	border-color:
		color-mix(
			in srgb,
			var(--color-brand) 40%,
			var(--color-border)
		);
}


.infocean-catalog-term-card--industry h3 {
	margin: 0;

	font-size:
		clamp(
			20px,
			1.9vw,
			25px
		);

	line-height: 1.12;
}


.infocean-catalog-term-card--industry h3 a {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;

	gap: var(--sp-4);

	text-decoration: none;
}


.infocean-catalog-term-card--industry h3 a::after {
	content: "→";

	flex: 0 0 auto;

	color:
		var(--color-brand);

	font-size: 18px;
	font-weight: 500;
}


.infocean-catalog-term-card--industry h3 a:hover {
	color:
		var(--color-brand);

	text-decoration: none;
}


.infocean-catalog-term-card--industry ul {
	margin-top: 22px;

	padding-top: 18px;

	list-style: none;

	border-top:
		1px solid
		var(--color-border);
}


.infocean-catalog-term-card--industry li + li {
	margin-top:
		var(--sp-2);
}


.infocean-catalog-term-card--industry li a {
	font-size: 13.5px;
	line-height: 1.45;

	color:
		var(--color-text-muted);

	border-bottom: 0;
}


.infocean-catalog-term-card--industry li a:hover {
	color:
		var(--color-brand);
}


/* Research topics ---------------------------------------------------- */

.infocean-catalog-hub__topic-grid {
	display: grid;

	grid-template-columns:
		repeat(
			auto-fit,
			minmax(
				min(100%, 230px),
				1fr
			)
		);

	gap: 12px;
}


.infocean-catalog-topic-chip {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: var(--sp-4);

	min-height: 60px;

	padding:
		14px
		18px;

	background:
		var(--color-surface);

	color:
		var(--color-text);

	border:
		1px solid
		var(--color-border);

	border-radius:
		var(--radius-sm);

	font-size: 14px;
	font-weight: 500;
	line-height: 1.38;

	transition:
		color
		var(--motion-fast)
		var(--ease-standard),
		border-color
		var(--motion-fast)
		var(--ease-standard),
		background-color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-catalog-topic-chip::after {
	content: "→";

	flex: 0 0 auto;

	color:
		var(--color-brand);

	font-size: 15px;
}


.infocean-catalog-topic-chip:hover {
	color:
		var(--color-brand);

	background:
		color-mix(
			in srgb,
			var(--color-brand) 3%,
			var(--color-surface)
		);

	border-color:
		var(--color-brand);
}


/* Research grid ------------------------------------------------------ */

.infocean-catalog-hub__research-grid {
	display: grid;

	grid-template-columns:
		repeat(
			2,
			minmax(0, 1fr)
		);

	gap:
		var(--sp-5);

	margin-top:
		2px;
}



/* Catalog Hub research meta + pagination --------------------------- */

.infocean-catalog-hub__research-count {
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;

	color:
		var(--color-text-subtle) !important;
}


.infocean-catalog-pagination {
	margin-top:
		var(--sp-7);

	padding-top:
		var(--sp-5);

	border-top:
		1px solid
		var(--color-border);
}


.infocean-catalog-pagination > .page-numbers {
	display: flex;
	flex-wrap: wrap;
	align-items: center;

	gap: 8px;

	margin: 0;
	padding: 0;

	list-style: none;
}


.infocean-catalog-pagination
.page-numbers
li {
	margin: 0;
}


.infocean-catalog-pagination
a.page-numbers,
.infocean-catalog-pagination
span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 40px;
	min-height: 40px;

	padding:
		0
		12px;

	font-size: 13px;
	font-weight: 600;
	line-height: 1;

	color:
		var(--color-text);

	background:
		var(--color-surface);

	border:
		1px solid
		var(--color-border);

	border-radius:
		var(--radius-sm);

	text-decoration: none;

	transition:
		color
		var(--motion-fast)
		var(--ease-standard),
		background-color
		var(--motion-fast)
		var(--ease-standard),
		border-color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-catalog-pagination
a.page-numbers:hover {
	color:
		var(--color-brand);

	border-color:
		var(--color-brand);
}


.infocean-catalog-pagination
span.page-numbers.current {
	color: #ffffff;

	background:
		var(--color-brand);

	border-color:
		var(--color-brand);
}


.infocean-catalog-pagination
span.page-numbers.dots {
	min-width: 24px;

	padding:
		0
		4px;

	background:
		transparent;

	border-color:
		transparent;
}


@media (max-width: 520px) {

	.infocean-catalog-pagination
	a.page-numbers,
	.infocean-catalog-pagination
	span.page-numbers {
		min-width: 38px;
		min-height: 38px;

		padding:
			0
			10px;
	}

	.infocean-catalog-pagination
	.prev,
	.infocean-catalog-pagination
	.next {
		flex:
			1 1 auto;
	}
}


/* Optional editorial content --------------------------------------- */

.infocean-catalog-hub__editorial {
	max-width: 820px;

	margin-top:
		var(--sp-8);

	padding-top:
		var(--sp-6);

	border-top:
		1px solid
		var(--color-border);

	color:
		var(--color-text-muted);
}


.infocean-catalog-hub__editorial > * + * {
	margin-top:
		var(--sp-3);
}


/* Catalog Hub responsive -------------------------------------------- */

@media (max-width: 960px) {

	.infocean-catalog-hub__industry-grid,
	.infocean-catalog-hub__task-grid {
		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			);
	}
}


@media (max-width: 900px) {

	.infocean-catalog-hub__hero {
		grid-template-columns:
			minmax(0, 1fr);

		grid-template-areas:
			"eyebrow"
			"title"
			"lead"
			"search"
			"routes";

		align-items: start;
	}


	.infocean-catalog-hub__hero
	.infocean-catalog-search {
		max-width: 720px;

		margin-top:
			var(--sp-5);
	}


	.infocean-catalog-hub__anchors {
		max-width: 720px;
	}


	#catalog-tasks {
		padding:
			var(--sp-6)
			var(--sp-5);
	}


	.infocean-catalog-hub__research-grid {
		grid-template-columns:
			1fr;
	}
}


@media (max-width: 720px) {

	.infocean-catalog-hub__hero {
		padding:
			var(--sp-6)
			0
			var(--sp-7);
	}


	.infocean-catalog-hub__eyebrow::before {
		flex-basis: 40px;

		width: 40px;
	}


	.infocean-catalog-search {
		flex-direction: column;

		gap: var(--sp-2);
	}


	.infocean-catalog-search input[type="search"] {
		border-right:
			1px solid
			var(--color-border);
	}


	.infocean-catalog-search button {
		width: 100%;
	}


	.infocean-catalog-hub__hero
	.infocean-catalog-search
	input[type="search"] {
		border:
			1px solid
			var(--color-border-strong);

		border-radius:
			var(--radius-sm);
	}


	.infocean-catalog-hub__hero
	.infocean-catalog-search
	button {
		border-radius:
			var(--radius-sm);
	}


	.infocean-catalog-hub__section {
		padding-top: 52px;
	}


	.infocean-catalog-hub__section-header {
		grid-template-columns: 1fr;

		gap: 14px;

		margin-bottom: 24px;
	}


	.infocean-catalog-hub__section-header h2 {
		font-size:
			clamp(
				27px,
				8vw,
				34px
			);
	}


	.infocean-catalog-hub__section-meta p {
		max-width: 520px;

		font-size: 14px;
	}


	#catalog-tasks {
		margin-top: 44px;

		padding:
			var(--sp-5)
			var(--sp-4);
	}


	.infocean-catalog-term-card--task h3 a {
		min-height: 88px;

		padding:
			var(--sp-4);
	}


	.infocean-catalog-hub__industry-grid,
	.infocean-catalog-hub__task-grid {
		grid-template-columns: 1fr;
	}


	.infocean-catalog-term-card--industry {
		padding:
			24px
			22px;
	}


	.infocean-catalog-topic-chip {
		min-height: 54px;
	}
}


@media (max-width: 520px) {

	.infocean-catalog-hub__topic-grid {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
   Research results toolbar
   -------------------------------------------------------------------------- */

.infocean-catalog-results-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: var(--sp-4);

	margin:
		var(--sp-5)
		0
		var(--sp-4);
}


.infocean-catalog-results-count {
	margin: 0;

	font-size: 14px;
	line-height: 1.4;

	color: var(--color-text-muted);
}


.infocean-catalog-results-count strong {
	margin-left: 4px;

	font-weight: 600;

	color: var(--color-text);
}


.infocean-catalog-results-toolbar
.woocommerce-ordering {
	float: none;

	margin: 0;
}


.infocean-catalog-results-toolbar
.woocommerce-ordering select {
	min-height: 38px;

	padding:
		0
		32px
		0
		12px;

	font: inherit;
	font-size: 13px;

	color: var(--color-text);

	background-color: var(--color-surface);

	border:
		1px solid
		var(--color-border);
}


/* --------------------------------------------------------------------------
   Research card
   -------------------------------------------------------------------------- */

/*
 * Research Card — единый presentation component
 * готового исследования.
 *
 * Desktop:
 * cover stage | product information.
 *
 * Stage рассчитан на вертикальные обложки, но само
 * изображение никогда не crop'ится.
 */

.infocean-catalog-card {
	display: grid;

	grid-template-columns:
		minmax(170px, 32%)
		minmax(0, 1fr);

	height: 100%;
	min-width: 0;

	overflow: hidden;

	background:
		var(--color-surface);

	border:
		1px solid
		var(--color-border);

	border-radius:
		var(--radius-md);

	transition:
		border-color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-catalog-card:hover {
	border-color:
		color-mix(
			in srgb,
			var(--color-brand) 42%,
			var(--color-border)
		);
}


/* Cover stage ------------------------------------------------------- */

.infocean-catalog-card__media {
	display: grid;
	place-items: center;

	min-width: 0;

	padding:
		var(--sp-5)
		var(--sp-4);

	background:
		var(--color-surface-muted);

	border-right:
		1px solid
		var(--color-border);
}


/*
 * Cover stage задаёт стабильную вертикальную
 * композицию, но не навязывает crop самому asset.
 *
 * Вертикальная обложка заполняет stage почти целиком.
 * Квадратный/горизонтальный временный visual
 * центрируется внутри него без обрезки.
 */
.infocean-catalog-card__cover {
	display: grid;
	place-items: center;

	width:
		min(
			100%,
			190px
		);

	aspect-ratio:
		3 / 4;
}


.infocean-catalog-card__cover img,
.infocean-catalog-card__media > img {
	display: block;

	width: auto;
	max-width: 100%;

	height: auto;
	max-height: 100%;

	object-fit: contain;

	background:
		var(--color-surface);

	box-shadow:
		var(--shadow-sm);
}


/* Content ----------------------------------------------------------- */

.infocean-catalog-card__body {
	display: flex;
	flex-direction: column;

	min-width: 0;

	padding:
		var(--sp-5);
}


/* Semantic path ----------------------------------------------------- */

.infocean-catalog-card__industry {
	display: flex;
	flex-wrap: wrap;

	gap:
		var(--sp-1)
		var(--sp-2);

	margin-bottom:
		var(--sp-3);

	font-size: 11.5px;
	line-height: 1.4;

	color:
		var(--color-text-subtle);
}


.infocean-catalog-card__industry a {
	transition:
		color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-catalog-card__industry a:hover {
	color:
		var(--color-brand);
}


/* Title ------------------------------------------------------------- */

.infocean-catalog-card__title {
	margin: 0;

	font-size:
		clamp(
			20px,
			1.55vw,
			23px
		);

	line-height: 1.14;
	letter-spacing: -0.018em;
}


.infocean-catalog-card__title a {
	transition:
		color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-catalog-card__title a:hover {
	color:
		var(--color-brand);
}


/* Short description ------------------------------------------------ */

.infocean-catalog-card__excerpt {
	display: -webkit-box;

	margin-top:
		var(--sp-3);

	overflow: hidden;

	-webkit-box-orient:
		vertical;

	-webkit-line-clamp:
		3;

	font-size: 13px;
	line-height: 1.5;

	color:
		var(--color-text-muted);
}


/* Research facts ---------------------------------------------------- */

.infocean-catalog-card__facts {
	display: grid;

	grid-template-columns:
		repeat(
			2,
			minmax(0, 1fr)
		);

	gap:
		12px
		var(--sp-4);

	margin:
		var(--sp-4)
		0
		0;

	padding-top:
		var(--sp-4);

	border-top:
		1px solid
		var(--color-border);
}


.infocean-catalog-card__fact {
	min-width: 0;
}


.infocean-catalog-card__fact dt {
	margin: 0;

	font-size: 11px;
	font-weight: 500;
	line-height: 1.35;

	color:
		var(--color-text-subtle);
}


.infocean-catalog-card__fact dd {
	margin:
		3px
		0
		0;

	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.35;

	color:
		var(--color-text);
}


/* Commerce ---------------------------------------------------------- */

.infocean-catalog-card__footer {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;

	gap:
		var(--sp-4);

	margin-top:
		auto;

	padding-top:
		var(--sp-5);
}


.infocean-catalog-card__price {
	min-width: 0;
}


.infocean-catalog-card__price-label {
	margin-bottom:
		var(--sp-1);

	font-size: 11px;
	line-height: 1.35;

	color:
		var(--color-text-subtle);
}


.infocean-catalog-card__price-value {
	font-family:
		var(--font-display);

	font-size:
		clamp(
			22px,
			1.8vw,
			26px
		);

	font-weight: 700;
	line-height: 1.05;

	color:
		var(--color-text);
}


.infocean-catalog-card__price-alt {
	margin-top:
		6px;

	font-size: 11px;
	line-height: 1.35;

	color:
		var(--color-text-muted);
}


/* Secondary navigation action -------------------------------------- */

.infocean-catalog-card__more {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 auto;

	min-height: 40px;

	padding:
		0
		var(--sp-4);

	font-size: 12.5px;
	font-weight: 600;
	line-height: 1;

	color:
		var(--color-text);

	background:
		transparent;

	border:
		1px solid
		var(--color-border-strong);

	border-radius:
		var(--radius-sm);

	transition:
		color
		var(--motion-fast)
		var(--ease-standard),
		background-color
		var(--motion-fast)
		var(--ease-standard),
		border-color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-catalog-card__more::after {
	content: "→";

	margin-left:
		7px;

	color:
		var(--color-brand);
}


.infocean-catalog-card__more:hover {
	color:
		var(--color-brand);

	background:
		color-mix(
			in srgb,
			var(--color-brand) 3%,
			var(--color-surface)
		);

	border-color:
		var(--color-brand);
}

/* Full-card navigation */

.infocean-catalog-card {
    position: relative;
}

.infocean-catalog-card__title a::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

.infocean-catalog-card__industry a,
.infocean-catalog-card__more {
    position: relative;
    z-index: 2;
}

.infocean-catalog-card__title a:focus-visible::after {
    outline: 3px solid var(--color-focus);
    outline-offset: -3px;
    border-radius: var(--radius-md);
}

/* Research card responsive ----------------------------------------- */

@media (max-width: 900px) {

	.infocean-catalog-card {
		grid-template-columns:
			minmax(180px, 30%)
			minmax(0, 1fr);
	}
}


@media (max-width: 620px) {

	.infocean-catalog-card {
		grid-template-columns:
			1fr;
	}


	.infocean-catalog-card__media {
		padding:
			var(--sp-5);

		border-right: 0;

		border-bottom:
			1px solid
			var(--color-border);
	}


	.infocean-catalog-card__cover {
		width:
			min(
				62%,
				220px
			);
	}


	.infocean-catalog-card__body {
		padding:
			var(--sp-4);
	}


	.infocean-catalog-card__footer {
		align-items:
			stretch;

		flex-direction:
			column;
	}


	.infocean-catalog-card__more {
		width: 100%;
	}
}


/* --------------------------------------------------------------------------
   Catalog classification archive header
   -------------------------------------------------------------------------- */

.infocean-catalog-archive-header {
	padding:
		0
		0
		var(--sp-7);
}


.infocean-catalog-archive-header__main {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(260px, 0.42fr);

	gap:
		var(--sp-7);

	align-items: start;
}


.infocean-catalog-archive-header__content {
	min-width: 0;
}


.infocean-catalog-archive-header__parent {
	margin-bottom:
		var(--sp-3);

	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;

	color:
		var(--color-text-subtle);
}


.infocean-catalog-archive-header__parent a {
	border-bottom:
		1px solid
		currentColor;
}


.infocean-catalog-archive-header__title {
	max-width: 900px;
}


.infocean-catalog-archive-header__description {
	max-width: 760px;

	margin-top:
		var(--sp-4);

	font-size: 17px;
	line-height: 1.55;

	color:
		var(--color-text-muted);
}


.infocean-catalog-archive-header__description > * + * {
	margin-top:
		var(--sp-3);
}


.infocean-catalog-archive-header__media {
	overflow: hidden;

	background:
		var(--color-surface-muted);
}


.infocean-catalog-archive-header__media img {
	display: block;

	width: 100%;
	height: auto;
}


/* --------------------------------------------------------------------------
   Industry children inside classification archive
   -------------------------------------------------------------------------- */

.infocean-catalog-archive-header__children {
	margin-top:
		var(--sp-6);
}


.infocean-catalog-archive-header__children-title {
	margin-bottom:
		var(--sp-4);

	font-size: 24px;
}


.infocean-catalog-archive-header__children-list {
	display: grid;

	grid-template-columns:
		repeat(
			3,
			minmax(0, 1fr)
		);

	gap:
		var(--sp-3);
}


.infocean-catalog-archive-header__child {
	display: flex;
	align-items: baseline;
	justify-content: space-between;

	gap:
		var(--sp-3);

	min-height: 72px;

	padding:
		var(--sp-4);

	background:
		var(--color-surface);

	border:
		1px solid
		var(--color-border);
}


.infocean-catalog-archive-header__child > span {
	font-weight: 600;
}


.infocean-catalog-archive-header__child small {
	flex: 0 0 auto;

	font-size: 12px;

	color:
		var(--color-text-subtle);
}


.infocean-catalog-archive-header__child:hover {
	border-color:
		var(--color-text-subtle);
}


/* --------------------------------------------------------------------------
   Classification archive results intro
   -------------------------------------------------------------------------- */

.infocean-catalog-archive-results-intro {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(260px, 0.55fr);

	gap:
		var(--sp-6);

	align-items: end;

	margin-top:
		var(--sp-2);

	padding-top:
		var(--sp-6);

	border-top:
		1px solid
		var(--color-border);
}


.infocean-catalog-archive-results-intro__text {
	max-width: 520px;

	color:
		var(--color-text-muted);
}

/* --------------------------------------------------------------------------
   Semantic archive — Materials
   -------------------------------------------------------------------------- */

.infocean-catalog-archive-materials {
	position: relative;

	margin-top:
		var(--sp-8);

	padding-top:
		var(--sp-7);

	border-top:
		1px solid
		var(--color-border);
}


.infocean-catalog-archive-materials::before {
	content: "";

	position: absolute;

	top: -1px;
	left: 0;

	width: 120px;
	height: 2px;

	background:
		var(--gradient-brand);
}


.infocean-catalog-archive-materials__header {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(280px, 0.42fr);

	column-gap:
		var(--sp-7);

	row-gap:
		var(--sp-3);

	align-items:
		end;

	margin-bottom:
		var(--sp-6);
}


.infocean-catalog-archive-materials__main {
	min-width: 0;
}


.infocean-catalog-archive-materials__eyebrow {
	margin-bottom:
		var(--sp-3);

	font-size:
		10px;

	font-weight:
		700;

	line-height:
		1.4;

	letter-spacing:
		0.09em;

	text-transform:
		uppercase;

	color:
		var(--color-text-subtle);
}


.infocean-catalog-archive-materials__title {
	max-width:
		760px;

	margin:
		0;

	font-size:
		clamp(
			30px,
			2.8vw,
			40px
		);

	line-height:
		1.1;

	letter-spacing:
		-0.02em;
}


.infocean-catalog-archive-materials__text {
	max-width:
		390px;

	margin:
		0;

	font-size:
		14px;

	line-height:
		1.55;

	color:
		var(--color-text-muted);
}


.infocean-catalog-archive-materials__grid {
	display: grid;

	grid-template-columns:
		repeat(
			2,
			minmax(0, 1fr)
		);

	gap:
		var(--sp-5);
}


@media (max-width: 900px) {

	.infocean-catalog-archive-materials__header {
		grid-template-columns:
			1fr;

		align-items:
			start;
	}


	.infocean-catalog-archive-materials__text {
		max-width:
			640px;
	}


	.infocean-catalog-archive-materials__grid {
		grid-template-columns:
			1fr;
	}
}


@media (max-width: 720px) {

	.infocean-catalog-archive-materials {
		margin-top:
			var(--sp-7);

		padding-top:
			var(--sp-6);
	}


	.infocean-catalog-archive-materials__title {
		font-size:
			clamp(
				27px,
				8vw,
				34px
			);
	}
}


/* --------------------------------------------------------------------------
   Catalog filters
   -------------------------------------------------------------------------- */

/*
 * Общая форма фильтрации.
 *
 * Один HTML используется:
 * — внутри compact disclosure taxonomy archives;
 * — как полноценная панель product search.
 */
.infocean-catalog-filters {
	margin:
		var(--sp-6)
		0;

	padding:
		var(--sp-5);

	background:
		var(--color-surface);

	border:
		1px solid
		var(--color-border);
}


.infocean-catalog-filters__groups {
	display: grid;

	grid-template-columns:
		repeat(
			2,
			minmax(0, 1fr)
		);

	gap:
		var(--sp-6);
}


.infocean-catalog-filters__group {
	min-width: 0;

	margin: 0;
	padding: 0;

	border: 0;
}


.infocean-catalog-filters__group legend {
	margin-bottom:
		var(--sp-3);

	font-family:
		var(--font-display);

	font-size: 22px;
	font-weight: 600;
	line-height: 1.1;
}


.infocean-catalog-filters__options {
	display: grid;

	gap:
		var(--sp-2);
}


.infocean-catalog-filters__option {
	display: flex;
	align-items: flex-start;

	gap:
		var(--sp-2);

	font-size: 14px;
	line-height: 1.4;

	cursor: pointer;
}


.infocean-catalog-filters__option input {
	flex: 0 0 auto;

	margin-top: 2px;
}


/* Actions ------------------------------------------------------------ */

.infocean-catalog-filters__actions {
	display: flex;
	align-items: center;

	gap:
		var(--sp-4);

	margin-top:
		var(--sp-5);

	padding-top:
		var(--sp-4);

	border-top:
		1px solid
		var(--color-border);
}


.infocean-catalog-filters__actions button {
	min-height: 42px;

	padding:
		var(--sp-2)
		var(--sp-4);

	font: inherit;
	font-weight: 600;

	color:
		#ffffff;

	background:
		var(--color-brand);

	border:
		1px solid
		var(--color-brand);

	cursor: pointer;

	transition:
		background-color
		var(--motion-fast)
		var(--ease-standard),
		border-color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-catalog-filters__actions button:hover {
	background:
		var(--color-brand-strong);

	border-color:
		var(--color-brand-strong);
}


.infocean-catalog-filters__actions a {
	font-size: 14px;
	font-weight: 600;

	color:
		var(--color-text);

	border-bottom:
		1px solid
		currentColor;
}


/* --------------------------------------------------------------------------
   Archive filter disclosure
   -------------------------------------------------------------------------- */

.infocean-catalog-filter-panel {
	overflow: hidden;

	margin:
		var(--sp-4)
		0
		var(--sp-3);

	background:
		var(--color-surface);

	border:
		1px solid
		var(--color-border);

	border-radius:
		var(--radius-sm);
}


/* Summary ------------------------------------------------------------ */

.infocean-catalog-filter-panel__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap:
		var(--sp-5);

	min-height: 60px;

	padding:
		13px
		18px;

	list-style: none;

	cursor: pointer;

	transition:
		background-color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-catalog-filter-panel__summary::-webkit-details-marker {
	display: none;
}


.infocean-catalog-filter-panel__summary:hover {
	background:
		color-mix(
			in srgb,
			var(--color-brand) 3%,
			var(--color-surface)
		);
}


.infocean-catalog-filter-panel[open]
.infocean-catalog-filter-panel__summary {
	border-bottom:
		1px solid
		var(--color-border);
}


/* Summary copy ------------------------------------------------------- */

.infocean-catalog-filter-panel__summary-copy {
	display: flex;
	flex-direction: column;

	min-width: 0;

	gap:
		2px;
}


.infocean-catalog-filter-panel__summary-copy strong {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;

	color:
		var(--color-text);
}


.infocean-catalog-filter-panel__summary-copy > span {
	font-size: 12.5px;
	line-height: 1.4;

	color:
		var(--color-text-subtle);
}


/* Summary state ------------------------------------------------------ */

.infocean-catalog-filter-panel__summary-meta {
	display: flex;
	align-items: center;

	flex: 0 0 auto;

	gap:
		var(--sp-3);
}


.infocean-catalog-filter-panel__optional {
	font-size: 12px;
	font-weight: 500;
	line-height: 1.3;

	color:
		var(--color-text-subtle);
}


.infocean-catalog-filter-panel__count {
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.3;

	color:
		var(--color-brand);
}


/* Chevron ------------------------------------------------------------ */

.infocean-catalog-filter-panel__chevron {
	width: 8px;
	height: 8px;

	border-right:
		2px solid
		var(--color-brand);

	border-bottom:
		2px solid
		var(--color-brand);

	transform:
		rotate(45deg);

	transition:
		transform
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-catalog-filter-panel[open]
.infocean-catalog-filter-panel__chevron {
	transform:
		rotate(225deg);
}


/* Expanded body ------------------------------------------------------ */

.infocean-catalog-filter-panel__body {
	padding:
		18px;
}


/*
 * Когда общая форма находится внутри disclosure,
 * внешний panel уже отвечает за surface/border.
 *
 * Не создаём panel внутри panel.
 */
.infocean-catalog-filter-panel
.infocean-catalog-filters {
	margin: 0;
	padding: 0;

	background:
		transparent;

	border: 0;
}


.infocean-catalog-filters--archive
.infocean-catalog-filters__groups {
	gap:
		var(--sp-5);
}


.infocean-catalog-filter-panel
.infocean-catalog-filters__group legend {
	margin-bottom:
		var(--sp-3);

	font-size: 18px;
}

/*
 * В раскрытом archive filter используем более
 * компактную внутреннюю сетку.
 *
 * Полный канонический справочник терминов при этом
 * остаётся доступен — меняется только presentation.
 */
.infocean-catalog-filters--archive
.infocean-catalog-filters__options {
	grid-template-columns:
		repeat(
			2,
			minmax(0, 1fr)
		);

	column-gap:
		var(--sp-4);

	row-gap:
		7px;
}


.infocean-catalog-filters--archive
.infocean-catalog-filters__option {
	font-size: 13.5px;
	line-height: 1.4;
}


.infocean-catalog-filters--archive
.infocean-catalog-filters__actions {
	margin-top:
		18px;

	padding-top:
		var(--sp-4);
}


.infocean-catalog-filters--archive
.infocean-catalog-filters__actions button {
	min-height: 40px;
}


/* --------------------------------------------------------------------------
   Search facets
   -------------------------------------------------------------------------- */

.infocean-catalog-filters--search
.infocean-catalog-filters__groups {
	grid-template-columns:
		repeat(
			3,
			minmax(0, 1fr)
		);
}


/* --------------------------------------------------------------------------
   Filter responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1100px) {

	.infocean-catalog-filters--search
	.infocean-catalog-filters__groups {
		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			);
	}
}


@media (max-width: 960px) {

	.infocean-catalog-filters--archive
	.infocean-catalog-filters__options {
		grid-template-columns:
			1fr;
	}
}


@media (max-width: 720px) {

	.infocean-catalog-filters__groups {
		grid-template-columns:
			1fr;
	}


	.infocean-catalog-archive-header__main,
	.infocean-catalog-archive-results-intro {
		grid-template-columns:
			1fr;
	}


	.infocean-catalog-archive-header__children-list {
		grid-template-columns:
			1fr;
	}


	.infocean-catalog-results-toolbar {
		align-items:
			stretch;

		flex-direction:
			column;
	}


	.infocean-catalog-results-toolbar
	.woocommerce-ordering,
	.infocean-catalog-results-toolbar
	.woocommerce-ordering select {
		width: 100%;
	}


	.infocean-catalog-filter-panel__summary {
		align-items:
			flex-start;

		min-height:
			56px;

		padding:
			12px
			14px;
	}


	.infocean-catalog-filter-panel__summary-meta {
		padding-top:
			2px;
	}


	.infocean-catalog-filter-panel__optional {
		display: none;
	}


	.infocean-catalog-filter-panel__body {
		padding:
			var(--sp-4);
	}
}


@media (max-width: 480px) {

	.infocean-catalog-filter-panel__summary {
		gap:
			var(--sp-3);
	}


	.infocean-catalog-filter-panel__summary-copy > span {
		font-size:
			11.5px;
	}


	.infocean-catalog-filter-panel__count {
		font-size:
			11.5px;
	}
}


/* --------------------------------------------------------------------------
   Research results grid
   -------------------------------------------------------------------------- */

/*
 * Research — содержательный продукт, поэтому
 * публичная выдача INFOCEAN использует максимум
 * две карточки в строке независимо от Woo columns.
 */
.woocommerce ul.products {
	display: grid;

	grid-template-columns:
		repeat(
			2,
			minmax(0, 1fr)
		);

	gap:
		var(--sp-5);

	margin: 0;
	padding: 0;

	list-style: none;
}


.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}


.woocommerce ul.products[class*="columns-"]
li.product,
.woocommerce-page ul.products[class*="columns-"]
li.product {
	float: none;

	width: 100%;
	max-width: none;
	min-width: 0;

	margin: 0;
}


@media (max-width: 900px) {

	.woocommerce ul.products {
		grid-template-columns:
			1fr;
	}
}


/* Archive hierarchy responsive ------------------------------------- */

@media (max-width: 960px) {

	.infocean-catalog-archive-header__children-list {
		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			);
	}
}


/* --------------------------------------------------------------------------
   Empty results
   -------------------------------------------------------------------------- */

.infocean-catalog-empty {
	margin-top: var(--sp-5);

	padding:
		var(--sp-6);

	background: var(--color-surface);

	border:
		1px solid
		var(--color-border);
}


.infocean-catalog-empty__title {
	max-width: 720px;
}


.infocean-catalog-empty__text {
	max-width: 760px;

	margin-top:
		var(--sp-3);

	color:
		var(--color-text-muted);
}


.infocean-catalog-empty__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;

	gap: var(--sp-3);

	margin-top:
		var(--sp-5);
}


.infocean-catalog-empty__primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 42px;

	padding:
		var(--sp-2)
		var(--sp-4);

	font-weight: 600;

	color: var(--color-panel);
	background: var(--color-brand);

	border:
		1px solid
		var(--color-brand);
}


.infocean-catalog-empty__secondary {
	font-weight: 600;

	border-bottom:
		1px solid
		currentColor;
}


/* --------------------------------------------------------------------------
   Catalog footer CTA
   -------------------------------------------------------------------------- */

.infocean-catalog-footer-cta {
	margin:
		var(--sp-8)
		0;

	padding:
		var(--sp-7)
		var(--sp-6);

	color:
		var(--color-surface);

	background:
		var(--color-panel);

	border:
		1px solid
		var(--color-border-dark);

	border-radius:
		var(--radius-md);
}

.infocean-catalog-footer-cta__content {
	max-width:
		760px;
}

.infocean-catalog-footer-cta__text {
	margin-top:
		var(--sp-3);

	color:
		var(--color-surface-muted);
}

.infocean-catalog-footer-cta__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sp-3);
	margin-top: var(--sp-5);
}

.infocean-catalog-footer-cta__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 var(--sp-5);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	transition:
		background-color var(--motion-fast) var(--ease-standard),
		border-color var(--motion-fast) var(--ease-standard),
		color var(--motion-fast) var(--ease-standard);
}

.infocean-catalog-footer-cta__button--primary {
	color: var(--color-panel);
	background: var(--color-mint);
	border-color: var(--color-mint);
}

.infocean-catalog-footer-cta__button--primary:hover {
	color: var(--color-panel);
	background: #ffffff;
	border-color: #ffffff;
}

.infocean-catalog-footer-cta__button--secondary {
	color: var(--color-surface);
	background: transparent;
	border-color:
		color-mix(
			in srgb,
			var(--color-surface) 42%,
			transparent
		);
}

.infocean-catalog-footer-cta__button--secondary:hover {
	color: #ffffff;
	background:
		color-mix(
			in srgb,
			var(--color-surface) 8%,
			transparent
		);
	border-color: var(--color-surface);
}

@media (max-width: 620px) {
	.infocean-catalog-footer-cta {
		padding: var(--sp-6) var(--sp-4);
	}

	.infocean-catalog-footer-cta__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.infocean-catalog-footer-cta__button {
		width: 100%;
	}
}


/* --------------------------------------------------------------------------
   Catalog classification index
   -------------------------------------------------------------------------- */

.infocean-classification-index {
	padding-bottom:
		var(--sp-4);
}


/* Header ------------------------------------------------------------- */

.infocean-classification-index__header {
	position: relative;

	display: grid;

	grid-template-columns:
		minmax(0, 0.95fr)
		minmax(320px, 0.65fr);

	column-gap: var(--sp-8);
	row-gap: var(--sp-3);

	align-items: start;

	padding:
		0
		0
		var(--sp-8);
}


/*
 * Signature mark.
 *
 * На index pages используем только короткий
 * редакционный вариант фирменной линии.
 */
.infocean-classification-index__header::before {
	content: "";

	grid-column: 1 / -1;

	width: 64px;
	height: 3px;

	margin-bottom:
		var(--sp-2);

	background:
		var(--gradient-brand);

	border-radius:
		var(--radius-pill);
}


.infocean-classification-index__title {
	max-width: 760px;

	margin: 0;

	font-size:
		clamp(
			40px,
			4vw,
			52px
		);

	line-height: 1.04;
	letter-spacing: -0.025em;
}


.infocean-classification-index__editorial {
	max-width: 580px;

	margin: 0;

	font-size: 16.5px;
	font-weight: 500;
	line-height: 1.6;

	color:
		var(--color-text-muted);
}


.infocean-classification-index__editorial > * + * {
	margin-top:
		var(--sp-3);
}


/* Directory ---------------------------------------------------------- */

.infocean-classification-index__directory {
	padding-top: var(--sp-8);

	border-top:
		1px solid
		var(--color-border);
}


.infocean-classification-index__section-header {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(320px, 0.48fr);

	column-gap: var(--sp-7);
	row-gap: var(--sp-4);

	align-items: start;

	margin-bottom: 32px;
}


.infocean-classification-index__section-header h2 {
	max-width: 760px;

	font-size:
		clamp(
			30px,
			2.6vw,
			37px
		);

	line-height: 1.15;
	letter-spacing: -0.018em;
}


.infocean-classification-index__section-header p {
	max-width: 390px;

	margin: 0;

	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;

	color:
		var(--color-text-muted);
}


/* Generic directory grid -------------------------------------------- */

.infocean-classification-index__grid {
	display: grid;

	grid-template-columns:
		repeat(
			auto-fit,
			minmax(
				min(100%, 280px),
				1fr
			)
		);

	gap: var(--sp-4);
}


.infocean-classification-index__card {
	display: flex;
	flex-direction: column;

	min-width: 0;
	min-height: 170px;

	padding:
		var(--sp-5);

	background:
		var(--color-surface);

	border:
		1px solid
		var(--color-border);

	border-radius:
		var(--radius-sm);

	transition:
		background-color
		var(--motion-fast)
		var(--ease-standard),
		border-color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-classification-index__card:hover {
	background:
		color-mix(
			in srgb,
			var(--color-brand) 2%,
			var(--color-surface)
		);

	border-color:
		color-mix(
			in srgb,
			var(--color-brand) 40%,
			var(--color-border)
		);
}


.infocean-classification-index__card-title {
	margin: 0;

	font-size: 20px;
	line-height: 1.18;
}


.infocean-classification-index__card-title a {
	text-decoration: none;
}


.infocean-classification-index__card-title a:hover {
	color:
		var(--color-brand);
}


/* Description -------------------------------------------------------- */

.infocean-classification-index__card-description {
	margin-top:
		var(--sp-3);

	font-size: 14px;
	line-height: 1.55;

	color:
		var(--color-text-muted);
}


.infocean-classification-index__card-description > * + * {
	margin-top:
		var(--sp-2);
}


/* Children ----------------------------------------------------------- */

.infocean-classification-index__children {
	display: flex;
	flex-wrap: wrap;

	gap:
		var(--sp-2)
		var(--sp-3);

	margin:
		var(--sp-4)
		0
		0;

	padding: 0;

	list-style: none;
}


.infocean-classification-index__children a {
	font-size: 13px;
	line-height: 1.4;

	color:
		var(--color-text-muted);

	text-decoration:
		underline;

	text-decoration-thickness:
		1px;

	text-underline-offset:
		3px;

	transition:
		color
		var(--motion-fast)
		var(--ease-standard);
}


.infocean-classification-index__children a:hover {
	color:
		var(--color-brand);
}


/* Count -------------------------------------------------------------- */

.infocean-classification-index__count {
	margin-top: auto;

	padding-top:
		var(--sp-5);

	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;

	color:
		var(--color-text-subtle);
}


/* --------------------------------------------------------------------------
   Industry index
   -------------------------------------------------------------------------- */

/*
 * Industry является иерархическим классификатором,
 * поэтому его карточка крупнее базовой:
 * parent industry → directions → research count.
 */
.infocean-classification-index--industry
.infocean-classification-index__grid {
	grid-template-columns:
		repeat(
			auto-fit,
			minmax(
				min(100%, 360px),
				1fr
			)
		);
}


.infocean-classification-index--industry
.infocean-classification-index__card {
	min-height: 210px;

	padding:
		30px;
}


.infocean-classification-index--industry
.infocean-classification-index__card-title {
	font-size:
		clamp(
			21px,
			1.9vw,
			25px
		);

	line-height: 1.12;
}


.infocean-classification-index--industry
.infocean-classification-index__card-title a {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;

	gap:
		var(--sp-4);

	width: 100%;
}


.infocean-classification-index--industry
.infocean-classification-index__card-title
a::after {
	content: "→";

	flex: 0 0 auto;

	color:
		var(--color-brand);

	font-size: 18px;
	font-weight: 500;
	line-height: 1;
}


/*
 * Дочерние направления визуально отделяем
 * от родительской отрасли.
 */
.infocean-classification-index--industry
.infocean-classification-index__children {
	margin-top:
		var(--sp-5);

	padding-top:
		var(--sp-4);

	border-top:
		1px solid
		var(--color-border);
}


/* Empty state -------------------------------------------------------- */

.infocean-classification-index__empty {
	padding:
		var(--sp-5);

	background:
		var(--color-surface);

	border:
		1px solid
		var(--color-border);

	border-radius:
		var(--radius-sm);

	color:
		var(--color-text-muted);
}


/* Responsive --------------------------------------------------------- */

@media (max-width: 900px) {

	.infocean-classification-index__header {
		grid-template-columns:
			1fr;

		row-gap:
			var(--sp-4);
	}


	.infocean-classification-index__editorial {
		max-width: 720px;
	}
}


@media (max-width: 720px) {

	.infocean-classification-index__header {
		padding:
			var(--sp-6)
			0
			var(--sp-7);
	}


	.infocean-classification-index__header::before {
		width: 44px;
	}


	.infocean-classification-index__title {
		font-size:
			clamp(
				36px,
				11vw,
				46px
			);
	}


	.infocean-classification-index__editorial {
		font-size: 15px;
	}


	.infocean-classification-index__directory {
		padding-top:
			52px;
	}


	.infocean-classification-index__section-header {
		grid-template-columns:
			1fr;

		gap: 14px;

		margin-bottom:
			24px;
	}


	.infocean-classification-index__section-header h2 {
		font-size:
			clamp(
				27px,
				8vw,
				34px
			);
	}


	.infocean-classification-index__section-header p {
		max-width: 520px;

		font-size: 14px;
	}


	.infocean-classification-index__grid {
		grid-template-columns:
			1fr;
	}


	.infocean-classification-index--industry
	.infocean-classification-index__card {
		min-height: 0;

		padding:
			24px
			22px;
	}
}

/* --------------------------------------------------------------------------
   Catalog product search
   -------------------------------------------------------------------------- */
.infocean-catalog-search-results {
	padding-top: 0;

	padding-bottom:
		var(--sp-9);
}


.infocean-catalog-search-results__header {
	margin-bottom: var(--sp-7);
}


.infocean-catalog-search-results__title {
	max-width: 900px;
}


.infocean-catalog-search-results__lead {
	max-width: 760px;

	margin-top: var(--sp-3);

	color: var(--color-text-muted);
}


.infocean-catalog-search-results__header
.infocean-catalog-search {
	max-width: 760px;

	margin-top: var(--sp-5);
}

/* =========================================================
   Task / Topic editorial content below Research catalog
   Scoped Gutenberg presentation. No catalog loop changes.
   ========================================================= */

.infocean-semantic-editorial {
    min-width: 0;
    margin-top: var(--sp-8);
    padding-top: var(--sp-7);
    border-top: 1px solid var(--color-border);
}

.infocean-semantic-editorial__body {
    min-width: 0;
    font-size: 17px;
    line-height: 1.75;
}

.infocean-semantic-editorial__body > * {
    max-width: 100%;
    margin-right: 0;
    margin-left: 0;
}

.infocean-semantic-editorial__body > * + * {
    margin-top: var(--sp-4);
}

.infocean-semantic-editorial__body > :first-child {
    margin-top: 0;
}

.infocean-semantic-editorial__body h2 {
    max-width: 100%;
    margin-top: var(--sp-8);
    margin-bottom: var(--sp-4);
    font-size: clamp(27px, 3vw, 36px);
    line-height: 1.16;
}

.infocean-semantic-editorial__body h3 {
    margin-top: var(--sp-6);
    margin-bottom: var(--sp-3);
    font-size: clamp(21px, 2vw, 25px);
    line-height: 1.25;
}

.infocean-semantic-editorial__body p,
.infocean-semantic-editorial__body li {
    max-width: 100%;
}

.infocean-semantic-editorial__body ul,
.infocean-semantic-editorial__body ol {
    padding-left: 1.4em;
}

.infocean-semantic-editorial__body li + li {
    margin-top: var(--sp-2);
}

.infocean-semantic-editorial__body a {
    color: var(--color-brand);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.infocean-semantic-editorial__body .wp-block-table {
    max-width: 100%;
    overflow-x: auto;
}

.infocean-semantic-editorial__body .wp-block-table table {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    font-size: 14px;
    line-height: 1.5;
}

.infocean-semantic-editorial__body .wp-block-table th,
.infocean-semantic-editorial__body .wp-block-table td {
    padding: 12px 14px;
    text-align: left;
    vertical-align: top;
    border: 1px solid var(--color-border);
}

@media (max-width: 650px) {
    .infocean-semantic-editorial {
        margin-top: var(--sp-7);
        padding-top: var(--sp-6);
    }

    .infocean-semantic-editorial__body {
        font-size: 16px;
    }

    .infocean-semantic-editorial__body h2 {
        font-size: 28px;
    }

    .infocean-semantic-editorial__body h3 {
        font-size: 21px;
    }
}

/* =============================================================
   INFOCEAN / Semantic editorial / TOC v2
   REPLACE the previous "INFOCEAN / Semantic editorial: table of
   contents" block in assets/css/catalog.css with this whole block.
   Presentation only. Works for Topics/Tasks/future Industries.
   ============================================================= */

/* A real visual entry point to the long reference material. */
section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc {
    display: block;
    margin: 0 0 var(--sp-7, 48px);
    padding: 0;
    overflow: hidden;
    background-color: var(--color-surface, #fff);
    border: 1px solid var(--color-border, #d6dacf);
    border-radius: 14px;
    box-shadow: 0 8px 24px rgb(20 32 28 / 5%);
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 70px;
    margin: 0;
    padding: 18px 25px;
    list-style: none;
    background-color: var(--color-surface-muted, #f3f5ef);
    color: var(--color-text, #14201c);
    font-family: inherit;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.35;
    cursor: pointer;
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc > summary::marker {
    content: "";
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc > summary::-webkit-details-marker {
    display: none;
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc > summary::after {
    content: "";
    flex: 0 0 10px;
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--color-brand, #177468);
    border-bottom: 2px solid var(--color-brand, #177468);
    transform: rotate(45deg);
    transition: transform 160ms ease;
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc[open] > summary::after {
    transform: rotate(225deg);
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc > summary:hover {
    background-color: #eaf0e8;
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc > summary:focus-visible,
section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc a:focus-visible {
    outline: 2px solid var(--color-brand, #177468);
    outline-offset: -2px;
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc > nav {
    display: block;
    margin: 0;
    padding: 20px 24px 24px;
    border-top: 1px solid var(--color-border, #d6dacf);
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 14px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: editorial-section;
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
    min-height: 52px;
    margin: 0;
    padding: 11px 13px;
    background-color: #f7f8f5;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--color-text, #14201c);
    font-size: 15px;
    line-height: 1.5;
    counter-increment: editorial-section;
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc li::before {
    content: counter(editorial-section, decimal-leading-zero);
    flex: 0 0 22px;
    color: var(--color-brand, #177468);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc li:hover {
    background-color: #eef5ef;
    border-color: #d4e6da;
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc li a {
    display: block;
    min-width: 0;
    color: inherit;
    text-decoration: none;
    text-underline-offset: 3px;
}

section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc li a:hover {
    color: var(--color-brand-strong, #0f574d);
    text-decoration: underline;
}

/* Space for the existing sticky header, including the admin bar. */
.infocean-semantic-editorial__body h2[id] {
    scroll-margin-top: calc(var(--header-h, 70px) + 24px);
}

.admin-bar .infocean-semantic-editorial__body h2[id] {
    scroll-margin-top: calc(var(--header-h, 70px) + 64px);
}

@media (max-width: 820px) {
    section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc ol {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 600px) {
    section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc > summary {
        min-height: 60px;
        padding: 15px 17px;
        font-size: 18px;
    }

    section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc > nav {
        padding: 14px;
    }

    section.infocean-semantic-editorial > details.infocean-semantic-editorial__toc li {
        min-height: 44px;
        padding: 10px 12px;
        font-size: 14px;
    }
}

/* INFOCEAN — native Gutenberg Details FAQ.
 * Add to the end of assets/css/catalog.css.
 * Scope: published editorial materials on Topic / Task archives only.
 */
 

.infocean-semantic-editorial__body
.infocean-semantic-faq > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.infocean-semantic-editorial__body .infocean-semantic-faq {
    display: grid;
    gap: 12px;
    width: 100%;
    max-width: 100%;
    margin-top: 24px;
}

.infocean-semantic-editorial__body .infocean-semantic-faq details.wp-block-details {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
}

.infocean-semantic-editorial__body .infocean-semantic-faq details.wp-block-details[open] {
    border-color: var(--color-brand);
}

.infocean-semantic-editorial__body .infocean-semantic-faq details.wp-block-details > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 22px;
    cursor: pointer;
    list-style: none;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.45;
}

.infocean-semantic-editorial__body .infocean-semantic-faq details.wp-block-details > summary::-webkit-details-marker {
    display: none;
}

.infocean-semantic-editorial__body .infocean-semantic-faq details.wp-block-details > summary::after {
    content: "+";
    flex: 0 0 auto;
    color: var(--color-brand);
    font-size: 25px;
    font-weight: 400;
    line-height: 1;
}

.infocean-semantic-editorial__body .infocean-semantic-faq details.wp-block-details[open] > summary::after {
    content: "−";
}

.infocean-semantic-editorial__body .infocean-semantic-faq details.wp-block-details > summary:focus-visible {
    outline: 2px solid var(--color-brand);
    outline-offset: -4px;
}

.infocean-semantic-editorial__body .infocean-semantic-faq details.wp-block-details > :not(summary) {
    max-width: none;
    margin: 0 22px 16px;
}

.infocean-semantic-editorial__body .infocean-semantic-faq details.wp-block-details > summary + * {
    padding-top: 6px;
}

@media (max-width: 650px) {
    .infocean-semantic-editorial__body .infocean-semantic-faq details.wp-block-details > summary {
        padding: 17px 16px;
        font-size: 16px;
    }
    .infocean-semantic-editorial__body .infocean-semantic-faq details.wp-block-details > :not(summary) {
        margin-right: 16px;
        margin-left: 16px;
    }
}

/* Full-card navigation: classification indexes */

.infocean-classification-index__card {
    position: relative;
}

.infocean-classification-index__card-title > a::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

.infocean-classification-index__children a,
.infocean-classification-index__card-description a {
    position: relative;
    z-index: 2;
}

.infocean-classification-index__card-title > a:focus-visible::before {
    outline: 2px solid var(--color-brand);
    outline-offset: -3px;
    border-radius: var(--radius-sm);
}
