.listing-page {
	--listing-green: rgb(var(--main-green));
	--listing-dark-green: #173f23;
	--listing-light-green: #eff4ef;
	--listing-text: #182019;
	--listing-muted: #657067;
	--listing-line: #dbe2dc;
	color: var(--listing-text);
	overflow: hidden;
}

.listing-breadcrumbs {
	padding-top: 30px;
	padding-bottom: 24px;
}

.listing-hero {
	position: relative;
	overflow: hidden;
	background: var(--listing-light-green);
}

.listing-hero-content {
	position: relative;
	z-index: 1;
	padding-top: 72px;
	padding-bottom: 76px;
}

.listing-eyebrow {
	margin: 0 0 12px;
	color: var(--listing-green);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.listing-hero h1 {
	max-width: 850px;
	margin: 0;
	font-size: clamp(42px, 5vw, 68px);
	font-weight: 700;
	line-height: 1.03;
}

.listing-hero h1 span {
	position: relative;
	isolation: isolate;
	display: inline-block;
	margin-left: -0.12em;
	padding: 0 0.14em 0.05em;
	color: #fff;
}

.listing-hero h1 span::before {
	position: absolute;
	z-index: -1;
	inset: 10% -1% 1%;
	background: var(--listing-green);
	clip-path: polygon(1% 10%, 99% 0, 100% 87%, 3% 100%, 0 72%);
	content: "";
	transform: rotate(-1deg);
}

.listing-search-form {
	display: flex;
	width: min(100%, 600px);
	height: 58px;
	margin-top: 34px;
	background: #fff;
	border: 1px solid #c8d3c9;
}

.listing-search-form input {
	min-width: 0;
	flex: 1;
	padding: 0 20px;
	border: 0;
	border-radius: 0;
	outline: 0;
}

.listing-search-form input:focus {
	box-shadow: inset 0 0 0 2px var(--listing-green);
}

.listing-search-form button {
	flex: 0 0 auto;
	padding: 0 32px;
	background: var(--listing-green);
	border: 0;
	color: #fff;
	font-weight: 700;
}

.listing-search-form button:hover,
.listing-search-form button:focus-visible {
	background: var(--listing-dark-green);
}

.listing-content {
	padding-top: 70px;
	padding-bottom: 90px;
}

.listing-section + .listing-section {
	margin-top: 84px;
}

.listing-section-title {
	display: flex;
	align-items: center;
	gap: 15px;
	margin: 0 0 30px;
	font-size: clamp(30px, 3vw, 42px);
}

.listing-section-title > span {
	display: grid;
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	place-items: center;
	background: var(--listing-green);
	border-radius: 50%;
	color: #fff;
	font-size: 11px;
	letter-spacing: 0.04em;
}

.brush-link-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.brush-link-grid > a {
	position: relative;
	display: flex;
	min-height: 94px;
	align-items: center;
	overflow: hidden;
	padding: 22px 34px;
	background: var(--listing-green);
	color: #fff;
	font-size: clamp(18px, 2vw, 23px);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
}

.brush-link-grid > a::before,
.brush-link-grid > a::after {
	position: absolute;
	right: -38px;
	width: 105px;
	height: 130%;
	background: #fff;
	content: "";
	opacity: 0.1;
	transform: rotate(14deg);
}

.brush-link-grid > a::after {
	right: -62px;
	opacity: 0.07;
	transform: rotate(-9deg);
}

.brush-link-grid > a span,
.brush-link-grid > a svg {
	position: relative;
	z-index: 1;
}

.brush-link-copy {
	display: flex;
	min-width: 0;
	flex: 1;
	flex-direction: column;
	gap: 7px;
}

.brush-link-copy strong {
	font: inherit;
}

.brush-link-copy small {
	display: -webkit-box;
	overflow: hidden;
	color: rgb(255 255 255 / 0.78);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.35;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.brush-link-grid > a svg {
	width: 25px;
	flex: 0 0 25px;
	margin-left: auto;
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
	transition: transform 180ms ease;
}

.brush-link-grid > a:hover,
.brush-link-grid > a:focus-visible {
	background: var(--listing-dark-green);
	color: #fff;
}

.brush-link-grid > a:hover svg,
.brush-link-grid > a:focus-visible svg {
	transform: translateX(5px);
}

.brush-article-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
}

.brush-article-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.brush-article-image {
	position: relative;
	display: block;
	overflow: hidden;
	padding: 8px 8px 13px;
	background: var(--listing-green);
	clip-path: polygon(1% 4%, 98% 0, 100% 93%, 94% 100%, 3% 96%);
}

.brush-article-image::before {
	position: absolute;
	inset: 8px 8px 13px;
	background: var(--listing-light-green);
	clip-path: polygon(0 0, 100% 3%, 97% 100%, 2% 97%);
	content: "";
}

.brush-article-image img {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	clip-path: polygon(0 0, 100% 3%, 97% 100%, 2% 97%);
	transition: transform 240ms ease;
}

.brush-article-image:hover img,
.brush-article-image:focus-visible img {
	transform: scale(1.025);
}

.brush-article-image.is-placeholder {
	display: grid;
	aspect-ratio: 4 / 3;
	place-items: center;
	background: var(--listing-light-green);
}

.brush-article-image.is-placeholder .brush-placeholder-icon {
	width: 38%;
	height: auto;
	aspect-ratio: 1;
	clip-path: none;
	object-fit: contain;
	opacity: 0.82;
}

.brush-article-meta {
	margin: 20px 0 0;
	color: var(--listing-green);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.brush-article-card h3 {
	margin: 9px 0 12px;
	font-size: clamp(21px, 2.2vw, 28px);
	line-height: 1.15;
}

.brush-article-card h3 a,
.brush-blog-copy h2 a {
	color: var(--listing-text);
	text-decoration: none;
}

.brush-article-card h3 a:hover,
.brush-article-card h3 a:focus-visible,
.brush-blog-copy h2 a:hover,
.brush-blog-copy h2 a:focus-visible {
	color: var(--listing-green);
}

.brush-article-excerpt {
	display: -webkit-box;
	overflow: hidden;
	margin: 0 0 19px;
	color: var(--listing-muted);
	line-height: 1.55;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.search-match {
	padding: 0 0.08em;
	background: #dff0a8;
	box-decoration-break: clone;
	color: inherit;
	-webkit-box-decoration-break: clone;
}

.brush-link-grid .search-match {
	background: rgb(255 255 255 / 0.24);
	color: #fff;
}

.brush-search-context {
	color: #4f5b51;
}

.brush-read-more {
	width: fit-content;
	margin-top: auto;
	color: var(--listing-green);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}

.brush-read-more span {
	display: inline-block;
	margin-left: 5px;
	transition: transform 180ms ease;
}

.brush-read-more:hover span,
.brush-read-more:focus-visible span {
	transform: translateX(5px);
}

.brush-blog-list {
	border-top: 1px solid var(--listing-line);
}

.brush-blog-row {
	display: grid;
	grid-template-columns: 45px minmax(260px, 34%) minmax(0, 1fr);
	gap: clamp(20px, 3vw, 42px);
	align-items: center;
	padding: 36px 0;
	border-bottom: 1px solid var(--listing-line);
}

.brush-blog-number {
	align-self: start;
	margin: 0;
	color: var(--listing-green);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.brush-blog-row .brush-article-image img {
	aspect-ratio: 16 / 10;
}

.brush-blog-row .brush-article-image.is-placeholder {
	aspect-ratio: 16 / 10;
}

.brush-blog-copy h2 {
	margin: 0 0 12px;
	font-size: clamp(25px, 3vw, 38px);
	line-height: 1.1;
}

.brush-blog-copy .brush-article-excerpt {
	-webkit-line-clamp: 2;
}

.listing-empty {
	max-width: 760px;
	padding: 52px;
	background: var(--listing-light-green);
	border-left: 10px solid var(--listing-green);
}

.listing-empty h2 {
	margin: 0 0 15px;
	font-size: clamp(30px, 4vw, 46px);
}

.listing-empty > p:not(.listing-eyebrow) {
	color: var(--listing-muted);
	font-size: 18px;
	line-height: 1.5;
}

.listing-empty > div {
	display: flex;
	align-items: center;
	gap: 25px;
	margin-top: 30px;
}

.listing-empty .button-main {
	display: inline-block;
}

@media (max-width: 991px) {
	.brush-article-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.brush-blog-row {
		grid-template-columns: 34px minmax(220px, 35%) minmax(0, 1fr);
		gap: 22px;
	}

	.brush-blog-copy .brush-article-excerpt {
		-webkit-line-clamp: 3;
	}
}

@media (max-width: 767px) {
	.listing-breadcrumbs {
		padding-top: 22px;
		padding-bottom: 18px;
	}

	.listing-hero-content {
		padding-top: 54px;
		padding-bottom: 58px;
	}

	.listing-hero h1 {
		font-size: clamp(37px, 10vw, 52px);
	}

	.listing-content {
		padding-top: 54px;
		padding-bottom: 65px;
	}

	.listing-section + .listing-section {
		margin-top: 65px;
	}

	.brush-link-grid {
		grid-template-columns: 1fr;
	}

	.brush-article-grid {
		gap: 38px 20px;
	}

	.brush-blog-row {
		grid-template-columns: 30px minmax(0, 1fr);
		align-items: start;
	}

	.brush-blog-row .brush-article-image {
		grid-column: 2;
	}

	.brush-blog-copy {
		grid-column: 2;
	}

	.brush-blog-copy h2 {
		font-size: clamp(25px, 6vw, 33px);
	}
}

@media (max-width: 575px) {
	.listing-search-form {
		height: 54px;
	}

	.listing-search-form button {
		padding: 0 22px;
	}

	.listing-section-title {
		font-size: 30px;
	}

	.brush-link-grid > a {
		min-height: 80px;
		padding: 18px 24px;
		font-size: 19px;
	}

	.brush-article-grid {
		grid-template-columns: 1fr;
	}

	.brush-article-card h3 {
		font-size: 25px;
	}

	.listing-empty {
		padding: 38px 28px;
	}

	.listing-empty > div {
		align-items: flex-start;
		flex-direction: column;
		gap: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.brush-link-grid > a svg,
	.brush-article-image img,
	.brush-read-more span {
		transition: none;
	}
}
