/* HoRNet Design System v3.3 — catalogue and download categories. */
.catalog-page {
	--hn-black: #000;
	--hn-white: #fff;
	--hn-yellow: #ffcd43;
	--hn-magenta: #ff43cd;
	--hn-cyan: #43cdff;
	--hn-bg-page: #faf7f2;
	--hn-surface-0: #f4efe6;
	--hn-surface-1: #ece5d8;
	--hn-text: #14110e;
	--font-sans: "Exo 2", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--font-mono: "JetBrains Mono", "SF Mono", Monaco, Consolas, monospace;
	--r-card: 12px;
	--r-control: 7px;
	--r-btn: 6px;
	--hn-border-thin: 2px;
	--hn-border-base: 3px;
	--hn-border-bold: 5px;
	--card-pad-hero: 24px;
	--shadow-1: 4px 4px 0 rgba(0, 0, 0, .9);
	--shadow-2: 7px 7px 0 rgba(0, 0, 0, .92);
	--shadow-3: 8px 8px 0 #000;
	--shadow-4: 10px 10px 0 #000;
	--focus-ring: 3px solid var(--hn-cyan);
	--focus-offset: 2px;
	--space-xs: 4px;
	--space-sm: 8px;
	--space-md: 16px;
	--space-lg: 24px;
	--space-xl: 32px;
	--space-2xl: 48px;
	max-width: 1320px;
	color: var(--hn-text);
	font-family: var(--font-sans);
}
body.post-type-archive-download,
body.tax-download_category {
	background-color: #faf7f2;
	background-image: none;
	color: #14110e;
}
.catalog-page.generic-page { margin-top: 28px; }
.catalog-hero {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	gap: var(--space-lg);
	margin: 0 0 var(--space-lg);
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.catalog-hero__main {
	max-width: 760px;
}
.catalog-hero h1 {
	margin: 0 0 var(--space-sm);
	font-size: clamp(56px, 6vw, 72px);
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: .9;
}
.catalog-hero p {
	max-width: 680px;
	margin: 0;
	font-size: 18px;
	line-height: 1.42;
}
.catalog-bundle-card {
	display: flex;
	flex: 0 1 420px;
	flex-direction: column;
	align-self: center;
	align-items: flex-start;
	justify-content: center;
	gap: var(--space-sm);
	padding: var(--space-md) var(--space-lg);
	border: 3px solid var(--hn-black);
	border-radius: var(--r-control);
	background: var(--hn-white);
	box-shadow: var(--shadow-1);
}
.catalog-hero .catalog-bundle-copy {
	margin: 0;
	font-weight: 700;
}
.catalog-bundle-callout {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 12px 14px;
	border: 3px solid var(--hn-black);
	border-radius: var(--r-control);
	background: var(--hn-yellow);
	box-shadow: var(--shadow-1);
	color: var(--hn-black);
	font-family: var(--font-mono);
	font-size: 16px;
	font-weight: 800;
	letter-spacing: .06em;
	text-decoration: none;
	text-shadow: none;
	text-transform: uppercase;
}
.catalog-bundle-callout:hover,
.catalog-bundle-callout:focus {
	background: var(--hn-cyan);
	box-shadow: var(--shadow-1);
	color: var(--hn-black);
	text-decoration: none;
	text-shadow: none;
}
.catalog-page h1,
.catalog-page h2,
.catalog-page h3,
.catalog-page h4,
.catalog-page .btn,
.catalog-page input,
.catalog-page select {
	font-family: var(--font-sans);
}
.catalog-page a:focus-visible,
.catalog-page button:focus-visible,
.catalog-page input:focus-visible,
.catalog-page select:focus-visible,
.catalog-page summary:focus-visible {
	outline: var(--focus-ring);
	outline-offset: var(--focus-offset);
}
.catalog-controls {
	display: flex;
	align-items: center;
	gap: var(--space-md);
	margin: var(--space-xl) 0 var(--space-xl);
}
.catalog-tabs {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	gap: var(--space-sm);
	margin: 0;
	padding: 0;
	border: 0;
}
.catalog-tabs__tab {
	min-height: 44px;
	padding: 10px 14px;
	border: 3px solid var(--hn-black);
	border-radius: var(--r-btn);
	background: var(--hn-white);
	box-shadow: var(--shadow-1);
	color: var(--hn-black);
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-decoration: none;
	text-transform: uppercase;
}
.catalog-tabs__tab:hover,
.catalog-tabs__tab.is-active {
	background: var(--hn-yellow);
	color: var(--hn-black);
	text-shadow: none;
}
/* Keep the catalogue navigation visible above the sticky purpose list on desktop. */
body.admin-bar { --catalog-admin-offset: 32px; }
.catalog-sidebar { margin-bottom: var(--space-lg); }
@media (min-width: 992px) {
	body.post-type-archive-download > .navbar,
	body.tax-download_category > .navbar {
		position: sticky;
		top: var(--catalog-admin-offset, 0px);
		z-index: 1000;
	}
	.catalog-page .catalog-sidebar {
		position: sticky;
		top: calc(var(--catalog-admin-offset, 0px) + var(--catalog-nav-height, 73px) + var(--space-sm));
		max-height: calc(100dvh - var(--catalog-admin-offset, 0px) - var(--catalog-nav-height, 73px) - var(--space-md));
		overflow: visible; /* Do not clip the purpose card's hard shadow. */
		z-index: 2;
	}
	.catalog-page .catalog-sidebar .catalog-purpose .nav {
		max-height: calc(100dvh - var(--catalog-admin-offset, 0px) - var(--catalog-nav-height, 73px) - var(--space-md) - 63px);
		overflow-y: auto;
	}
}
@media (min-width: 1200px) {
	.catalog-page { width: calc(100% - 48px); }
}
.catalog-search { margin-bottom: var(--space-lg); }
.catalog-search--inline {
	display: flex;
	flex: 1 1 260px;
	max-width: 310px;
	min-width: 0;
	height: 44px;
	align-items: stretch;
	gap: var(--space-sm);
	margin: 0;
}
.catalog-search input[type="search"],
.catalog-sort select {
	min-height: 44px;
	border: 3px solid var(--hn-black);
	border-radius: var(--r-control);
	background: var(--hn-white);
	box-shadow: var(--shadow-1);
	color: var(--hn-black);
}
.catalog-search input[type="search"] {
	width: 100%;
	margin-bottom: var(--space-sm);
	padding: 8px 10px;
}
.catalog-search--inline input[type="search"],
.catalog-search--inline input[type="submit"] {
	box-sizing: border-box;
	height: 44px;
	min-height: 44px;
	margin: 0;
}
.catalog-search--inline input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	width: auto;
}
.catalog-search input[type="submit"] {
	min-height: 44px;
	border: 3px solid var(--hn-black);
	border-radius: var(--r-btn);
	background: var(--hn-cyan);
	box-shadow: var(--shadow-1) !important;
	color: var(--hn-black);
	font-family: var(--font-sans);
	font-weight: 800;
	text-transform: uppercase;
}
.catalog-search input[type="submit"]:hover,
.catalog-search input[type="submit"]:focus {
	box-shadow: var(--shadow-1) !important;
}
.catalog-search input:focus-visible,
.catalog-sort select:focus-visible {
	border-color: var(--hn-cyan);
}
.catalog-purpose {
	border: 3px solid var(--hn-black);
	border-radius: var(--r-card);
	background: var(--hn-surface-1);
	box-shadow: var(--shadow-2);
}
.catalog-purpose h3 {
	display: flex;
	align-items: center;
	min-height: 57px;
	margin: 0;
	padding: 0 var(--space-md);
	border-bottom: 3px solid var(--hn-black);
	background: var(--hn-cyan);
	color: var(--hn-black);
	font-size: 22px;
	font-weight: 800;
	line-height: 1;
	white-space: nowrap;
}
@media (min-width: 992px) and (max-width: 1199px) {
	.catalog-purpose h3 { font-size: 17px; }
}
.catalog-purpose__select-wrap {
	display: none;
	padding: var(--space-sm);
}
.catalog-purpose__select {
	width: 100%;
	min-height: 44px;
	padding: 8px 10px;
	border: 3px solid var(--hn-black);
	border-radius: var(--r-control);
	background: var(--hn-white);
	box-shadow: var(--shadow-1);
	color: var(--hn-black);
	font-family: var(--font-mono);
	font-size: 14px;
	font-weight: 700;
}
.catalog-purpose .nav { padding: var(--space-xs) var(--space-sm); }
.catalog-purpose .nav > li > a {
	min-height: 44px;
	padding: 8px 8px;
	line-height: 1.3;
	border-left: 3px solid transparent;
	border-radius: 0;
	color: var(--hn-black);
	font-family: var(--font-mono);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .01em;
	text-decoration: none;
	white-space: normal;
	overflow-wrap: anywhere;
}
.catalog-purpose .nav > li > a:hover,
.catalog-purpose .nav > li.active > a {
	border-color: var(--hn-black);
	background: var(--hn-yellow);
	color: var(--hn-black);
}
.catalog-purpose small { color: inherit; font-family: var(--font-mono); }
.catalog-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-md);
	min-height: 60px;
	margin-bottom: var(--space-md);
}
.catalog-toolbar__leading {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	gap: var(--space-md);
	min-width: 0;
}
.catalog-toolbar__count {
	margin: 0;
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.catalog-sort {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: var(--space-sm);
	margin: 0;
}
.catalog-sort label {
	margin: 0;
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
}
.catalog-sort select { max-width: 180px; padding: 0 8px; }
.catalog-pagination {
	margin-top: var(--space-xl);
	padding: var(--space-lg) 0 var(--space-sm);
	border-top: 3px solid var(--hn-black);
}
.catalog-pagination .pagination {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-sm);
	margin: 0;
	padding: 0;
	list-style: none;
}
.catalog-pagination .pagination > li {
	display: flex;
	align-items: center;
	min-height: 44px;
	color: var(--hn-black);
	font-family: var(--font-mono);
	font-size: 14px;
	font-weight: 700;
}
.catalog-pagination .pagination > li > a {
	display: inline-flex;
	float: none;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	margin: 0;
	padding: 8px 12px;
	border: 3px solid var(--hn-black);
	border-radius: var(--r-btn);
	background: var(--hn-white);
	box-shadow: var(--shadow-1);
	color: var(--hn-black);
	font: inherit;
	text-decoration: none;
}
.catalog-pagination .pagination > li > a:hover,
.catalog-pagination .pagination > li > a:focus {
	border-color: var(--hn-black);
	background: var(--hn-cyan);
	color: var(--hn-black);
}
.catalog-pagination .pagination > li.active > a,
.catalog-pagination .pagination > li.active > a:hover,
.catalog-pagination .pagination > li.active > a:focus {
	border-color: var(--hn-black);
	background: var(--hn-yellow);
	color: var(--hn-black);
}
.catalog-pagination .pagination > li > a:focus-visible {
	outline: var(--focus-ring);
	outline-offset: var(--focus-offset);
}
.catalog-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-xl) var(--space-lg);
	margin: 0;
}
/* Bootstrap's .row clearfix pseudo-elements would occupy grid cells. */
.catalog-grid::before,
.catalog-grid::after { content: none; display: none; }
/* Divi wraps the main loop in two containers; flatten them so the pinned
   spotlight and ordinary cards participate in the same grid rows. */
.catalog-grid > .et-boc,
.catalog-grid > .et-boc > .et_builder_outer_content { display: contents; }
.catalog-grid > .col-md-6,
.catalog-grid > .et-boc > .et_builder_outer_content > .col-md-6 {
	float: none;
	width: auto;
	min-width: 0;
	padding: 0;
}
.catalog-grid__break,
.catalog-grid .et-l.dm-base-context:empty { display: none; }
@media (min-width: 1200px) {
	.catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.catalog-grid { grid-template-columns: minmax(0, 1fr); }
}
.catalog-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
	border: 3px solid var(--hn-black);
	border-radius: var(--r-card);
	background: var(--hn-white);
	box-shadow: var(--shadow-3);
	color: var(--hn-black);
	overflow: hidden;
}
.catalog-card__image {
	display: block;
	position: relative;
	border-bottom: 3px solid var(--hn-black);
	background: var(--hn-black);
}
.catalog-card__image:hover { background: var(--hn-black); }
.catalog-card__image img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
.catalog-card .img-overlay { display: none; }
.catalog-card__badge {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	margin-bottom: 2px;
	padding: 4px var(--space-sm);
	border: 2px solid var(--hn-black);
	border-radius: 4px;
	background: var(--hn-magenta);
	box-shadow: var(--shadow-1);
	color: var(--hn-black);
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.catalog-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: var(--space-md);
}
.catalog-card__body h3 {
	min-height: 42px;
	margin: 0 0 var(--space-sm);
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: .96;
}
.catalog-card__body h3 a { color: var(--hn-black); text-decoration: none; }
.catalog-card__body h3 a:hover { color: var(--hn-black); text-decoration: underline; text-shadow: none; }
.catalog-card__body .list-group-item-text {
	flex: 1;
	min-height: 42px;
	margin: 0 0 var(--space-md);
	color: var(--hn-text);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.45;
}
.catalog-card__price {
	display: flex;
	align-items: stretch;
	margin: 0 0 var(--space-md);
	color: var(--hn-text);
}
.catalog-card__price-signal {
	flex: 0 0 6px;
	margin-right: var(--space-sm);
	background: var(--hn-yellow);
}
.catalog-card__price-readout { display: block; min-width: 0; }
.catalog-card__price-line {
	display: flex;
	align-items: flex-end;
	gap: var(--space-sm);
}
.catalog-card__regular {
	display: block;
	margin: 0 0 2px;
	font-family: var(--font-mono);
	font-size: 12px;
	text-decoration: line-through;
}
.catalog-card .edd_price {
	display: block;
	color: var(--hn-black);
	font-family: var(--font-mono);
	font-size: 30px;
	font-weight: 700;
	letter-spacing: -.04em;
	line-height: 1;
}
.catalog-card__price-label {
	display: block;
	margin: 0 0 3px;
	font-family: var(--font-mono);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.catalog-card__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: var(--space-sm);
	margin-top: auto;
	padding: var(--space-sm) 10px 10px 0;
}
.catalog-card__quick-buy,
.catalog-card__view {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	margin: 0;
	padding: 8px 12px;
	font-size: 13px;
	text-align: center;
	white-space: nowrap;
}
.catalog-card__quick-buy[disabled] { cursor: wait; }
.catalog-grid__spotlight--pending { visibility: hidden; }
.catalog-spotlight-card { background: var(--hn-cyan); }
.catalog-spotlight-card .catalog-card__body,
.catalog-spotlight-card .list-group-item-text { color: var(--hn-black); }
.catalog-spotlight-card .catalog-card__price-signal { background: var(--hn-black); }
.catalog-spotlight-card__label {
	position: absolute;
	top: var(--space-md);
	left: var(--space-md);
	padding: 6px 12px;
	border: 3px solid var(--hn-black);
	border-radius: 4px;
	background: var(--hn-magenta);
	box-shadow: var(--shadow-1);
	color: var(--hn-black);
	font-family: var(--font-mono);
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.catalog-toast {
	position: fixed;
	z-index: 99999;
	right: var(--space-lg);
	bottom: var(--space-lg);
	padding: var(--space-md);
	border: 3px solid var(--hn-black);
	border-radius: var(--r-control);
	background: #43ffa1;
	box-shadow: var(--shadow-3);
	color: var(--hn-black);
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.catalog-empty {
	padding: var(--space-lg);
	border: 3px solid var(--hn-black);
	background: var(--hn-surface-1);
	font-size: 18px;
}
.catalog-seo-content {
	max-width: 1320px;
	margin: var(--space-2xl, 48px) auto 0;
	padding: 0 15px;
	border: 0;
	background: transparent;
	box-shadow: none;
}
@media (min-width: 1200px) {
	.catalog-seo-content { width: calc(100% - 48px); }
}
.catalog-seo-content h2 { margin-top: 0; font-size: 36px; font-weight: 800; letter-spacing: -.02em; }
@media (max-width: 991px) {
	.catalog-purpose .nav { display: none; }
	.catalog-purpose__select-wrap { display: block; }
}
@media (prefers-reduced-motion: reduce) {
	.catalog-page *, .catalog-page *::before, .catalog-page *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}
@media (max-width: 767px) {
	.catalog-hero { flex-direction: column; padding: 0; }
	.catalog-hero h1 { font-size: 46px; }
	.catalog-hero p { font-size: 16px; }
	.catalog-bundle-card { flex-basis: auto; width: 100%; }
	.catalog-bundle-callout { width: 100%; }
	.catalog-controls { align-items: stretch; flex-direction: column; margin-right: 0; }
	.catalog-tabs { flex-wrap: nowrap; margin-right: -15px; overflow-x: auto; padding: 0 15px 8px 0; }
	.catalog-tabs__tab { flex: 0 0 auto; }
	.catalog-search--inline { flex-basis: auto; width: 100%; }
	.catalog-toolbar { align-items: stretch; flex-direction: column; gap: var(--space-sm); min-height: 0; padding-bottom: var(--space-sm); }
	.catalog-toolbar__leading { flex-wrap: wrap; }
	.catalog-search--inline { flex-basis: 220px; max-width: none; }
	.catalog-sort { align-self: flex-end; }
	.catalog-card__body h3 { min-height: 0; }
}
