.epc {
	--epc-ink: #303b36;
	--epc-muted: #869087;
	--epc-line: #e7e5e2;
	--epc-progress-height: 3px;
	--epc-progress-track-color: var(--epc-line);
	--epc-progress-active-color: var(--epc-ink);
	--epc-tile: #f0eeeb;
	--epc-gap: clamp(16px, 2vw, 24px);
	--epc-edge: clamp(18px, 4.2vw, 52px);
	box-sizing: border-box;
	color: var(--epc-ink);
	font-family: inherit;
	margin: clamp(34px, 5vw, 72px) auto;
	max-width: none;
	overflow: hidden;
	width: 100%;
}

.epc *,
.epc *::before,
.epc *::after {
	box-sizing: border-box;
}

.epc__header {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin: 0 0 clamp(25px, 4vw, 42px);
	padding: 0 var(--epc-edge);
}

.epc__heading {
	color: #303a35;
	font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Baskerville, Georgia, serif;
	font-size: clamp(25px, 2.3vw, 34px);
	font-weight: 400;
	letter-spacing: -0.035em;
	line-height: 1.12;
	margin: 0;
}

.epc__view-all {
	align-items: center;
	color: var(--epc-ink);
	display: inline-flex;
	font-size: clamp(13px, 1.05vw, 15px);
	gap: 10px;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
}

.epc__view-all span {
	align-items: center;
	background: #f5f4f2;
	border-radius: 50%;
	display: inline-flex;
	font-size: 17px;
	height: 18px;
	justify-content: center;
	width: 18px;
}

.epc__viewport {
	overflow: hidden;
	padding-left: var(--epc-edge);
}

.epc__track {
	display: flex;
	gap: var(--epc-gap);
	list-style: none;
	margin: 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	padding: 0 var(--epc-edge) 2px 0;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	touch-action: pan-x;
}

.epc__track::-webkit-scrollbar {
	display: none;
}

.epc__slide {
	flex: 0 0 clamp(278px, 45%, 574px);
	margin: 0;
	scroll-snap-align: start;
}

.epc__card {
	color: inherit;
	display: block;
	text-decoration: none;
}

.epc__media {
	align-items: center;
	aspect-ratio: 1 / 1;
	background: var(--epc-tile);
	display: flex;
	justify-content: center;
	margin: 0 0 clamp(12px, 1.4vw, 17px);
	padding: clamp(27px, 7.5%, 54px);
	width: 100%;
}

.epc__image {
	box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.82), 0 1px 5px rgba(46, 51, 46, 0.05);
	display: block;
	height: auto;
	max-height: 100%;
	max-width: 100%;
	object-fit: contain;
	width: auto;
}

.epc__image-placeholder {
	background: #e7e4df;
	display: block;
	height: 74%;
	width: 74%;
}

.epc__name,
.epc__subtitle {
	display: block;
	font-size: clamp(14px, 1.12vw, 16px);
	line-height: 1.45;
}

.epc__name {
	font-weight: 400;
}

.epc__subtitle {
	color: var(--epc-muted);
	margin-top: 1px;
}

.epc__footer {
	align-items: center;
	display: flex;
	gap: clamp(22px, 3vw, 36px);
	margin: clamp(30px, 5vw, 50px) var(--epc-edge) 0;
}

.epc__progress {
	background: var(--epc-progress-track-color);
	height: var(--epc-progress-height);
	position: relative;
	width: 100%;
}

.epc__progress-bar {
	background: var(--epc-progress-active-color);
	height: var(--epc-progress-height);
	left: 0;
	position: absolute;
	top: 0;
	transition: left 260ms ease;
	width: var(--epc-progress-size, 22%);
}

.epc__buttons {
	display: flex;
	flex-shrink: 0;
	gap: 10px;
}

.epc__button {
	align-items: center;
	background: transparent;
	border: 1px solid var(--epc-line);
	border-radius: 50%;
	color: var(--epc-ink);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 23px;
	height: clamp(40px, 3.5vw, 44px);
	justify-content: center;
	padding: 0 0 2px;
	transition: border-color 180ms ease, opacity 180ms ease;
	width: clamp(40px, 3.5vw, 44px);
}

.epc__button:hover:not(:disabled),
.epc__button:focus-visible {
	border-color: #9b9b98;
}

.epc__button:focus-visible {
	outline: 2px solid var(--epc-ink);
	outline-offset: 2px;
}

.epc__button:disabled {
	cursor: default;
	opacity: 0.4;
}

.epc[data-epc-static] .epc__footer {
	display: none;
}

@media (max-width: 1024px) {
	.epc {
		--epc-edge: clamp(22px, 4vw, 38px);
		--epc-gap: clamp(15px, 2.4vw, 20px);
		margin: clamp(28px, 4.5vw, 48px) auto;
	}

	.epc__header {
		margin-bottom: clamp(22px, 3.8vw, 31px);
	}

	.epc__slide {
		flex-basis: calc((100% - var(--epc-gap) - var(--epc-edge)) / 2);
		min-width: 250px;
	}

	.epc__media {
		padding: clamp(24px, 7%, 38px);
	}

	.epc__footer {
		margin-top: clamp(25px, 4vw, 34px);
	}

	.epc__button {
		height: 44px;
		width: 44px;
	}
}

@media (max-width: 680px) {
	.epc {
		--epc-edge: clamp(16px, 5vw, 22px);
		--epc-gap: 14px;
		margin: clamp(22px, 6vw, 30px) auto;
	}

	.epc__header {
		margin-bottom: clamp(18px, 6vw, 24px);
	}

	.epc__heading {
		font-size: clamp(23px, 7vw, 27px);
	}

	.epc__view-all {
		font-size: 13px;
		gap: 7px;
	}

	.epc__slide {
		flex-basis: calc(100% - clamp(46px, 16vw, 66px));
		min-width: 0;
	}

	.epc__media {
		margin-bottom: 12px;
		padding: clamp(22px, 7vw, 30px);
	}

	.epc__name,
	.epc__subtitle {
		font-size: 14px;
	}

	.epc__footer {
		gap: clamp(15px, 4vw, 21px);
		margin-top: clamp(22px, 6.5vw, 28px);
	}

	.epc__buttons {
		gap: 7px;
	}

	.epc__button {
		font-size: 22px;
		height: 44px;
		width: 44px;
	}
}

@media (max-width: 380px) {
	.epc__header {
		align-items: flex-start;
		gap: 14px;
	}

	.epc__heading {
		font-size: 22px;
	}

	.epc__footer {
		align-items: flex-end;
		flex-direction: column;
		gap: 17px;
	}

	.epc__progress {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.epc__track {
		scroll-behavior: auto;
	}

	.epc__progress-bar {
		transition: none;
	}
}

/* Editable Site Editor / Query Loop carousel variation. */
.epc-query-carousel {
	--epc-ink: #303b36;
	--epc-muted: #869087;
	--epc-line: #e7e5e2;
	--epc-progress-height: 3px;
	--epc-progress-track-color: var(--epc-line);
	--epc-progress-active-color: var(--epc-ink);
	--epc-tile: #f0eeeb;
	--epc-gap: clamp(16px, 2vw, 24px);
	--epc-edge: clamp(18px, 4.2vw, 52px);
	color: var(--epc-ink);
	margin-block: clamp(34px, 5vw, 72px);
	max-width: none;
	overflow: hidden;
	width: 100%;
}

.epc-query-carousel.alignfull {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: none;
	width: 100vw;
}

.epc-query-carousel *,
.epc-query-carousel *::before,
.epc-query-carousel *::after {
	box-sizing: border-box;
}

.epc-query-carousel__header {
	margin-bottom: clamp(25px, 4vw, 42px) !important;
	padding-inline: var(--epc-edge);
}

.epc-query-carousel__header h2 {
	font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Baskerville, Georgia, serif;
	font-size: clamp(25px, 2.3vw, 34px);
	font-weight: 400;
	letter-spacing: -0.035em;
	line-height: 1.12;
}

.epc-query-carousel__header .wp-block-button__link {
	background: transparent;
	border: 0;
	color: currentColor;
	font-size: clamp(13px, 1.05vw, 15px);
	padding: 8px 0;
}

.epc-query-carousel__query {
	padding-left: var(--epc-edge);
}

.epc-query-carousel__track {
	display: flex !important;
	gap: var(--epc-gap) !important;
	margin: 0 !important;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	padding: 0 var(--epc-edge) 2px 0 !important;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	touch-action: pan-x;
}

.epc-query-carousel__track::-webkit-scrollbar {
	display: none;
}

.epc-query-carousel__track > li {
	flex: 0 0 clamp(278px, 45%, 574px);
	margin: 0;
	scroll-snap-align: start;
}

.epc-query-carousel__media {
	align-items: center;
	aspect-ratio: 1 / 1;
	background: var(--epc-tile);
	display: flex;
	justify-content: center;
	margin: 0 0 clamp(12px, 1.4vw, 17px) !important;
	padding: clamp(27px, 7.5%, 54px);
}

.epc-query-carousel__media img {
	box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.82), 0 1px 5px rgba(46, 51, 46, 0.05);
	height: auto !important;
	max-height: 100%;
	max-width: 100%;
	object-fit: contain;
	width: auto !important;
}

.epc-query-carousel__track .wp-block-post-title,
.epc-query-carousel__track .wp-block-post-excerpt {
	margin-block: 0 2px;
}

.epc-query-carousel__track .wp-block-post-excerpt {
	color: var(--epc-muted);
}

.epc-query-carousel__footer {
	gap: clamp(22px, 3vw, 36px);
	margin: clamp(30px, 5vw, 50px) var(--epc-edge) 0 !important;
}

.epc-query-carousel__progress {
	background: var(--epc-progress-track-color);
	border: 0 !important;
	flex: 1 1 auto;
	height: var(--epc-progress-height);
	margin: 0 !important;
	max-width: none !important;
	position: relative;
	width: auto !important;
}

.epc-query-carousel__progress::before {
	background: var(--epc-progress-active-color);
	content: "";
	height: var(--epc-progress-height);
	left: var(--epc-progress-left, 0%);
	position: absolute;
	top: 0;
	width: var(--epc-progress-size, 24%);
}

.epc-query-carousel__progress--editable::before {
	display: none;
}

.epc-query-carousel__progress-bar {
	background: var(--epc-progress-active-color);
	display: block;
	height: var(--epc-progress-height);
	left: var(--epc-progress-left, 0%);
	position: absolute;
	top: 0;
	transition: left 260ms ease;
	width: var(--epc-progress-size, 24%);
}

.epc-query-carousel__nav {
	flex-shrink: 0;
	gap: 10px !important;
}

.epc-query-carousel__nav .wp-block-button__link {
	align-items: center;
	background: transparent;
	border: 1px solid var(--epc-line);
	border-radius: 50%;
	color: var(--epc-ink);
	display: inline-flex;
	font-size: 23px;
	height: 44px;
	justify-content: center;
	padding: 0 0 2px;
	width: 44px;
}

.epc-query-carousel__nav a[aria-disabled="true"] {
	opacity: 0.4;
}

.epc-query-carousel--static .epc-query-carousel__footer {
	display: none;
}

@media (max-width: 1024px) {
	.epc-query-carousel {
		--epc-edge: clamp(22px, 4vw, 38px);
		--epc-gap: clamp(15px, 2.4vw, 20px);
	}

	.epc-query-carousel__track > li {
		flex-basis: calc((100% - var(--epc-gap) - var(--epc-edge)) / 2);
		min-width: 250px;
	}
}

@media (max-width: 680px) {
	.epc-query-carousel {
		--epc-edge: clamp(16px, 5vw, 22px);
		--epc-gap: 14px;
	}

	.epc-query-carousel__track > li {
		flex-basis: calc(100% - clamp(46px, 16vw, 66px));
		min-width: 0;
	}

	.epc-query-carousel__footer {
		gap: clamp(15px, 4vw, 21px);
		margin-top: clamp(22px, 6.5vw, 28px) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.epc-query-carousel__track {
		scroll-behavior: auto;
	}

	.epc-query-carousel__progress-bar {
		transition: none;
	}
}
