/**
 * MOD Dynamic Content Grid and Filter.
 */

.mod-dynamic-grid-host {
	position: relative;
}

.mod-dynamic-grid-host.is-loading {
	min-height: 80px;
}

.mod-dynamic-grid-host.is-loading [data-mod-dynamic-items] {
	opacity: .45;
	pointer-events: none;
}

.mod-dynamic-grid-status {
	position: absolute;
	inset: 0;
	display: none;
	align-items: center;
	justify-content: center;
	z-index: 20;
	pointer-events: none;
}

.mod-dynamic-grid-host.is-loading .mod-dynamic-grid-status {
	display: flex;
}

.mod-dynamic-grid-host.is-loading .mod-dynamic-grid-status::before {
	content: "";
	width: 30px;
	height: 30px;
	border: 3px solid rgba(0,0,0,.16);
	border-top-color: currentColor;
	border-radius: 50%;
	animation: mod-dynamic-spin .7s linear infinite;
}

@keyframes mod-dynamic-spin {
	to { transform: rotate(360deg); }
}

.mod-dynamic-grid {
	--mod-dynamic-columns: 4;
	display: grid;
	grid-template-columns: repeat(var(--mod-dynamic-columns), minmax(0, 1fr));
	gap: 24px;
}

.mod-dynamic-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	background: #fff;
	border: 1px solid rgba(15, 23, 42, .1);
	border-radius: 14px;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background-color .22s ease;
}

.mod-dynamic-card__image {
	--mod-dynamic-image-height: 260px;
	--mod-dynamic-image-ratio: 1 / 1;
	position: relative;
	display: block;
	overflow: hidden;
	width: 100%;
	background: #f3f4f6;
}

.mod-dynamic-grid--image-fixed .mod-dynamic-card__image {
	height: var(--mod-dynamic-image-height);
}

.mod-dynamic-grid--image-ratio .mod-dynamic-card__image {
	aspect-ratio: var(--mod-dynamic-image-ratio);
}

.mod-dynamic-grid--image-auto .mod-dynamic-card__image {
	height: auto;
}

.mod-dynamic-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mod-dynamic-grid--image-auto .mod-dynamic-card__image img {
	height: auto;
}

.mod-dynamic-card__image-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 140px;
	background: linear-gradient(135deg, rgba(148,163,184,.18), rgba(148,163,184,.06));
}

.mod-dynamic-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 20px;
	min-width: 0;
}

.mod-dynamic-card__taxonomy,
.mod-dynamic-card__meta,
.mod-dynamic-card__excerpt,
.mod-dynamic-card__fields {
	margin-bottom: 12px;
}

.mod-dynamic-card__taxonomy {
	font-size: .82em;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: #64748b;
}

.mod-dynamic-card__title {
	margin: 0 0 12px;
	font-size: 1.18rem;
	line-height: 1.35;
}

.mod-dynamic-card__title a {
	color: inherit;
	text-decoration: none;
}

.mod-dynamic-card__excerpt {
	color: #475569;
}

.mod-dynamic-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	font-size: .86em;
	color: #64748b;
}

.mod-dynamic-card__fields {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.mod-dynamic-card__field {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px;
}

.mod-dynamic-card__field-label {
	font-weight: 600;
}

.mod-dynamic-card__field-value {
	color: inherit;
	text-decoration: none;
}

.mod-dynamic-card__button-wrap {
	margin-top: auto;
	padding-top: 10px;
}

.mod-dynamic-grid--equal-buttons .mod-dynamic-card__button-wrap {
	margin-top: auto;
}

.mod-dynamic-grid--preset-compact-grid .mod-dynamic-card {
	flex-direction: row;
}

.mod-dynamic-grid--preset-compact-grid .mod-dynamic-card__image {
	width: 150px;
	min-width: 150px;
	height: auto;
	align-self: stretch;
}

.mod-dynamic-grid--preset-compact-grid .mod-dynamic-card__image img {
	height: 100%;
}

.mod-dynamic-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	z-index: 4;
}

.mod-dynamic-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 5px 9px;
	border-radius: 999px;
	background: #0f172a;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

.mod-dynamic-badge--new { background: #16a34a; }
.mod-dynamic-badge--sticky { background: #7c3aed; }
.mod-dynamic-badge--custom { background: #0284c7; }

.mod-dynamic-badges--image-top-left,
.mod-dynamic-badges--image-top-center,
.mod-dynamic-badges--image-top-right,
.mod-dynamic-badges--image-bottom-left,
.mod-dynamic-badges--image-bottom-center,
.mod-dynamic-badges--image-bottom-right {
	position: absolute;
	left: 12px;
	right: 12px;
}

.mod-dynamic-badges--image-top-left,
.mod-dynamic-badges--image-top-center,
.mod-dynamic-badges--image-top-right { top: 12px; }
.mod-dynamic-badges--image-bottom-left,
.mod-dynamic-badges--image-bottom-center,
.mod-dynamic-badges--image-bottom-right { bottom: 12px; }
.mod-dynamic-badges--image-top-left,
.mod-dynamic-badges--image-bottom-left { justify-content: flex-start; }
.mod-dynamic-badges--image-top-center,
.mod-dynamic-badges--image-bottom-center { justify-content: center; }
.mod-dynamic-badges--image-top-right,
.mod-dynamic-badges--image-bottom-right { justify-content: flex-end; }

.mod-dynamic-badges--outside-top-left,
.mod-dynamic-badges--outside-top-center,
.mod-dynamic-badges--outside-top-right {
	padding: 10px 12px 0;
}
.mod-dynamic-badges--outside-top-left { justify-content: flex-start; }
.mod-dynamic-badges--outside-top-center { justify-content: center; }
.mod-dynamic-badges--outside-top-right { justify-content: flex-end; }

.mod-dynamic-empty {
	grid-column: 1 / -1;
	padding: 28px;
	text-align: center;
	border: 1px dashed rgba(100,116,139,.35);
	border-radius: 12px;
	color: #64748b;
}

.mod-dynamic-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 28px;
}

.mod-dynamic-pagination__number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid rgba(15,23,42,.14);
	border-radius: 8px;
	background: #fff;
	color: #0f172a;
	cursor: pointer;
	font: inherit;
	transition: .18s ease;
}

.mod-dynamic-pagination__number:hover,
.mod-dynamic-pagination__number.is-active {
	background: #0f172a;
	color: #fff;
}

.mod-dynamic-pagination__ellipsis {
	padding: 0 4px;
}

.mod-dynamic-load-more {
	cursor: pointer;
}

.mod-dynamic-filter {
	--mod-filter-panel-columns: 3;
	--mod-filter-choice-columns: 3;
	--mod-filter-panel-columns-desktop: var(--mod-filter-panel-columns, 3);
	--mod-filter-panel-columns-tablet: var(--mod-filter-panel-columns, 2);
	--mod-filter-panel-columns-mobile: var(--mod-filter-panel-columns, 1);
	--mod-filter-choice-columns-desktop: var(--mod-filter-choice-columns, 3);
	--mod-filter-choice-columns-tablet: var(--mod-filter-choice-columns, 2);
	--mod-filter-choice-columns-mobile: var(--mod-filter-choice-columns, 1);
	--mod-filter-root-gap: 0px;
	--mod-filter-child-indent: 14px;
	position: relative;
	background: #fff;
	border: 1px solid rgba(15,23,42,.1);
	border-radius: 14px;
	padding: 18px;
}

.mod-dynamic-filter__mobile-toggle {
	display: none;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	border: 0;
	background: transparent;
	padding: 0;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.mod-dynamic-filter__fields {
	gap: 16px;
	align-items: flex-start;
}

.mod-dynamic-filter__fields--desktop-horizontal {
	display: flex;
	flex-flow: row nowrap;
}

.mod-dynamic-filter__fields--desktop-wrap {
	display: flex;
	flex-flow: row wrap;
}

.mod-dynamic-filter__fields--desktop-vertical {
	display: flex;
	flex-direction: column;
}

.mod-dynamic-filter__fields--desktop-grid {
	display: grid;
	grid-template-columns: repeat(var(--mod-filter-panel-columns-desktop, 3), minmax(0, 1fr));
}

.mod-dynamic-filter__group {
	min-width: 180px;
	min-inline-size: 0;
}

.mod-dynamic-filter__fields--desktop-grid > .mod-dynamic-filter__group,
.mod-dynamic-filter__fields--desktop-vertical > .mod-dynamic-filter__group {
	width: 100%;
	min-width: 0;
}

.mod-dynamic-filter__label {
	display: block;
	margin-bottom: 7px;
	font-weight: 700;
	color: #0f172a;
}

.mod-dynamic-filter input:not([type="range"]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.mod-dynamic-filter select {
	width: 100%;
	min-height: 42px;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	background: #fff;
	color: #0f172a;
	padding: 9px 12px;
	font: inherit;
	outline: 0;
}

.mod-dynamic-filter input:not([type="range"]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):focus,
.mod-dynamic-filter select:focus {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}

.mod-dynamic-filter__choices,
.mod-dynamic-filter__checks {
	gap: 8px;
	align-items: stretch;
}

.mod-dynamic-filter__choices--desktop-wrap,
.mod-dynamic-filter__checks--desktop-wrap {
	display: flex;
	flex-wrap: wrap;
}

.mod-dynamic-filter__choices--desktop-grid,
.mod-dynamic-filter__checks--desktop-grid {
	display: grid;
	grid-template-columns: repeat(var(--mod-filter-choice-columns-desktop, 3), minmax(0, 1fr));
}

.mod-dynamic-filter__choices--desktop-vertical,
.mod-dynamic-filter__checks--desktop-vertical {
	display: flex;
	flex-direction: column;
}

.mod-dynamic-filter__choices--desktop-scroll,
.mod-dynamic-filter__checks--desktop-scroll {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	overflow-y: hidden;
	padding-bottom: 4px;
	scrollbar-width: thin;
}

.mod-dynamic-filter__choice {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	column-gap: 7px;
	min-width: 0;
	border: 1px solid #cbd5e1;
	border-radius: 999px;
	background: #fff;
	color: #334155;
	padding: 8px 14px;
	font: inherit;
	cursor: pointer;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.mod-dynamic-filter__choices--desktop-grid .mod-dynamic-filter__choice,
.mod-dynamic-filter__choices--desktop-vertical .mod-dynamic-filter__choice {
	width: 100%;
}

.mod-dynamic-filter__choices--desktop-scroll .mod-dynamic-filter__choice {
	flex: 0 0 auto;
}

.mod-dynamic-filter__choice:hover,
.mod-dynamic-filter__choice.is-active {
	border-color: #0f172a;
	background: #0f172a;
	color: #fff;
}

.mod-dynamic-filter__choice.is-child,
.mod-dynamic-filter__check.is-child {
	margin-inline-start: calc(var(--mod-filter-child-indent, 14px) * var(--mod-filter-term-depth, 1));
}

.mod-dynamic-filter__choice-label,
.mod-dynamic-filter__check-label {
	min-width: 0;
}

.mod-dynamic-filter__item-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-width: 1.65em;
	padding: .12em .42em;
	border: 1px solid currentColor;
	border-radius: 999px;
	background: rgba(15,23,42,.08);
	color: inherit;
	font-size: .78em;
	line-height: 1.2;
	transition: inherit;
}

.mod-dynamic-filter__choice.is-active .mod-dynamic-filter__item-count,
.mod-dynamic-filter__choice:hover .mod-dynamic-filter__item-count {
	background: rgba(255,255,255,.18);
}

.mod-dynamic-filter__check {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-width: 0;
	cursor: pointer;
}

.mod-dynamic-filter__checks--desktop-grid .mod-dynamic-filter__check,
.mod-dynamic-filter__checks--desktop-vertical .mod-dynamic-filter__check {
	width: 100%;
}

.mod-dynamic-filter__checks--desktop-scroll .mod-dynamic-filter__check {
	flex: 0 0 auto;
}

.mod-dynamic-filter__check input[type="checkbox"] {
	width: 18px;
	height: 18px;
	min-height: 0;
	padding: 0;
	flex: 0 0 auto;
}

.mod-dynamic-filter__check-label {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	column-gap: 7px;
	flex: 1 1 auto;
}

.mod-dynamic-filter__range {
	display: grid;
	grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
	align-items: center;
	gap: 8px;
}

.mod-dynamic-filter__range--hidden-inputs {
	display: none;
}

.mod-dynamic-filter__price-range {
	display: grid;
	gap: 10px;
	min-width: 0;
}

.mod-dynamic-filter__range-values {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font-weight: 600;
	color: #334155;
}

.mod-dynamic-filter__range-track {
	--mod-range-track-height: 6px;
	--mod-range-handle-size: 20px;
	--mod-range-handle-background: #fff;
	--mod-range-handle-border-color: #0f172a;
	--mod-range-handle-border-width: 2px;
	--mod-range-handle-radius: 50%;
	--mod-range-start: 0%;
	--mod-range-end: 100%;
	position: relative;
	height: max(var(--mod-range-handle-size), 26px);
}

.mod-dynamic-filter__range-track-rail,
.mod-dynamic-filter__range-track-fill {
	position: absolute;
	top: 50%;
	height: var(--mod-range-track-height);
	border-radius: 999px;
	transform: translateY(-50%);
	pointer-events: none;
}

.mod-dynamic-filter__range-track-rail {
	inset-inline: 0;
	background: #dbe2ea;
}

.mod-dynamic-filter__range-track-fill {
	inset-inline-start: var(--mod-range-start);
	inset-inline-end: calc(100% - var(--mod-range-end));
	background: #0f172a;
}

.mod-dynamic-filter__range-handle {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	appearance: none;
	pointer-events: none;
	outline: 0;
}

.mod-dynamic-filter__range-handle::-webkit-slider-runnable-track {
	height: 100%;
	background: transparent;
	border: 0;
}

.mod-dynamic-filter__range-handle::-moz-range-track {
	height: 100%;
	background: transparent;
	border: 0;
}

.mod-dynamic-filter__range-handle::-webkit-slider-thumb {
	width: var(--mod-range-handle-size);
	height: var(--mod-range-handle-size);
	border: var(--mod-range-handle-border-width) solid var(--mod-range-handle-border-color);
	border-radius: var(--mod-range-handle-radius);
	background: var(--mod-range-handle-background);
	appearance: none;
	pointer-events: auto;
	cursor: grab;
}

.mod-dynamic-filter__range-handle::-moz-range-thumb {
	width: var(--mod-range-handle-size);
	height: var(--mod-range-handle-size);
	border: var(--mod-range-handle-border-width) solid var(--mod-range-handle-border-color);
	border-radius: var(--mod-range-handle-radius);
	background: var(--mod-range-handle-background);
	pointer-events: auto;
	cursor: grab;
}

.mod-dynamic-filter__range-handle:focus-visible::-webkit-slider-thumb {
	box-shadow: 0 0 0 4px rgba(37,99,235,.2);
}

.mod-dynamic-filter__range-handle:focus-visible::-moz-range-thumb {
	box-shadow: 0 0 0 4px rgba(37,99,235,.2);
}

.mod-dynamic-filter__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 16px;
}

.mod-dynamic-filter__apply,
.mod-dynamic-filter__reset {
	border: 0;
	cursor: pointer;
}

.mod-dynamic-filter__summary {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 14px;
}

.mod-dynamic-filter__count {
	font-weight: 600;
	color: #475569;
}

.mod-dynamic-filter__active {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.mod-dynamic-filter__chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	border: 0;
	border-radius: 999px;
	background: #e2e8f0;
	color: #0f172a;
	padding: 6px 10px;
	font: inherit;
	font-size: .88em;
	cursor: pointer;
}

.mod-dynamic-filter__chip::after {
	content: "×";
	font-weight: 700;
}

.mod-dynamic-filter__message {
	margin-top: 10px;
	color: #b91c1c;
}

.mod-dynamic-filter.is-loading {
	pointer-events: none;
	opacity: .72;
}

@media (max-width: 1024px) {
	.mod-dynamic-grid {
		--mod-dynamic-columns: 2;
	}

	.mod-dynamic-filter__fields--tablet-horizontal {
		display: flex;
		flex-flow: row nowrap;
	}

	.mod-dynamic-filter__fields--tablet-wrap {
		display: flex;
		flex-flow: row wrap;
	}

	.mod-dynamic-filter__fields--tablet-vertical {
		display: flex;
		flex-direction: column;
	}

	.mod-dynamic-filter__fields--tablet-grid {
		display: grid;
		grid-template-columns: repeat(var(--mod-filter-panel-columns-tablet, 2), minmax(0, 1fr));
	}

	.mod-dynamic-filter__fields--tablet-grid > .mod-dynamic-filter__group,
	.mod-dynamic-filter__fields--tablet-vertical > .mod-dynamic-filter__group {
		width: 100%;
		min-width: 0;
	}

	.mod-dynamic-filter__choices--tablet-wrap,
	.mod-dynamic-filter__checks--tablet-wrap {
		display: flex;
		flex-flow: row wrap;
		overflow: visible;
	}

	.mod-dynamic-filter__choices--tablet-grid,
	.mod-dynamic-filter__checks--tablet-grid {
		display: grid;
		grid-template-columns: repeat(var(--mod-filter-choice-columns-tablet, 2), minmax(0, 1fr));
		overflow: visible;
	}

	.mod-dynamic-filter__choices--tablet-vertical,
	.mod-dynamic-filter__checks--tablet-vertical {
		display: flex;
		flex-direction: column;
		overflow: visible;
	}

	.mod-dynamic-filter__choices--tablet-scroll,
	.mod-dynamic-filter__checks--tablet-scroll {
		display: flex;
		flex-flow: row nowrap;
		overflow-x: auto;
	}

	.mod-dynamic-filter__choices--tablet-grid .mod-dynamic-filter__choice,
	.mod-dynamic-filter__choices--tablet-vertical .mod-dynamic-filter__choice,
	.mod-dynamic-filter__checks--tablet-grid .mod-dynamic-filter__check,
	.mod-dynamic-filter__checks--tablet-vertical .mod-dynamic-filter__check {
		width: 100%;
	}
}

@media (max-width: 767px) {
	.mod-dynamic-grid {
		--mod-dynamic-columns: 1;
	}

	.mod-dynamic-grid--preset-compact-grid .mod-dynamic-card {
		flex-direction: column;
	}

	.mod-dynamic-grid--preset-compact-grid .mod-dynamic-card__image {
		width: 100%;
		min-width: 0;
	}

	.mod-dynamic-filter--mobile-toggle .mod-dynamic-filter__mobile-toggle {
		display: flex;
	}

	.mod-dynamic-filter--mobile-toggle .mod-dynamic-filter__form,
	.mod-dynamic-filter--mobile-toggle .mod-dynamic-filter__summary {
		display: none;
	}

	.mod-dynamic-filter--mobile-toggle.is-mobile-open .mod-dynamic-filter__form {
		display: block;
		margin-top: 16px;
	}

	.mod-dynamic-filter--mobile-toggle.is-mobile-open .mod-dynamic-filter__summary {
		display: flex;
	}

	.mod-dynamic-filter__fields--mobile-horizontal {
		display: flex;
		flex-flow: row nowrap;
	}

	.mod-dynamic-filter__fields--mobile-wrap {
		display: flex;
		flex-flow: row wrap;
	}

	.mod-dynamic-filter__fields--mobile-vertical {
		display: flex;
		flex-direction: column;
	}

	.mod-dynamic-filter__fields--mobile-grid {
		display: grid;
		grid-template-columns: repeat(var(--mod-filter-panel-columns-mobile, 1), minmax(0, 1fr));
	}

	.mod-dynamic-filter__fields--mobile-grid > .mod-dynamic-filter__group,
	.mod-dynamic-filter__fields--mobile-vertical > .mod-dynamic-filter__group {
		width: 100%;
		min-width: 0;
	}

	.mod-dynamic-filter__choices--mobile-wrap,
	.mod-dynamic-filter__checks--mobile-wrap {
		display: flex;
		flex-flow: row wrap;
		overflow: visible;
	}

	.mod-dynamic-filter__choices--mobile-grid,
	.mod-dynamic-filter__checks--mobile-grid {
		display: grid;
		grid-template-columns: repeat(var(--mod-filter-choice-columns-mobile, 1), minmax(0, 1fr));
		overflow: visible;
	}

	.mod-dynamic-filter__choices--mobile-vertical,
	.mod-dynamic-filter__checks--mobile-vertical {
		display: flex;
		flex-direction: column;
		overflow: visible;
	}

	.mod-dynamic-filter__choices--mobile-scroll,
	.mod-dynamic-filter__checks--mobile-scroll {
		display: flex;
		flex-flow: row nowrap;
		overflow-x: auto;
	}

	.mod-dynamic-filter__choices--mobile-grid .mod-dynamic-filter__choice,
	.mod-dynamic-filter__choices--mobile-vertical .mod-dynamic-filter__choice,
	.mod-dynamic-filter__checks--mobile-grid .mod-dynamic-filter__check,
	.mod-dynamic-filter__checks--mobile-vertical .mod-dynamic-filter__check {
		width: 100%;
	}

	.mod-dynamic-filter__range {
		grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.mod-dynamic-card,
	.mod-dynamic-pagination__number,
	.mod-dynamic-filter__choice {
		transition: none !important;
	}
	.mod-dynamic-grid-host.is-loading .mod-dynamic-grid-status::before {
		animation-duration: 1.4s;
	}
}


/* v0.4.6: MOD Filter hierarchy, sizing, checkbox, and dual-range stabilization. */
.mod-dynamic-filter {
	--mod-filter-field-custom-width: 280px;
	--mod-filter-choice-custom-width: 180px;
	--mod-filter-choice-gap: 8px;
	--mod-filter-tree-color: #cbd5e1;
	--mod-filter-tree-width: 2px;
	--mod-filter-tree-length: 16px;
	--mod-filter-tree-style: solid;
	--mod-filter-checkbox-size: 18px;
	--mod-filter-checkbox-background: #fff;
	--mod-filter-checkbox-border-color: #94a3b8;
	--mod-filter-checkbox-border-width: 1px;
	--mod-filter-checkbox-radius: 3px;
	--mod-filter-checkbox-checked-background: #0f172a;
	--mod-filter-checkbox-check-color: #fff;
	box-sizing: border-box;
}

.mod-dynamic-filter *,
.mod-dynamic-filter *::before,
.mod-dynamic-filter *::after {
	box-sizing: border-box;
}

/* Filter group width controls. */
.mod-dynamic-filter.mod-dynamic-filter__field-width--desktop-full .mod-dynamic-filter__group {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	flex: 0 0 100%;
}

.mod-dynamic-filter.mod-dynamic-filter__field-width--desktop-custom .mod-dynamic-filter__group {
	width: min(100%, var(--mod-filter-field-custom-width));
	max-width: 100%;
	flex: 0 0 min(100%, var(--mod-filter-field-custom-width));
}

/* Choice/checkbox item width controls. */
.mod-dynamic-filter.mod-dynamic-filter__choice-width--desktop-full .mod-dynamic-filter__choice,
.mod-dynamic-filter.mod-dynamic-filter__choice-width--desktop-full .mod-dynamic-filter__check {
	width: 100%;
	max-width: 100%;
}

.mod-dynamic-filter.mod-dynamic-filter__choice-width--desktop-custom .mod-dynamic-filter__choice,
.mod-dynamic-filter.mod-dynamic-filter__choice-width--desktop-custom .mod-dynamic-filter__check {
	width: min(100%, var(--mod-filter-choice-custom-width));
	max-width: 100%;
}

/* Child items keep their indentation without overflowing full-width layouts. */
.mod-dynamic-filter .mod-dynamic-filter__choice.is-child,
.mod-dynamic-filter .mod-dynamic-filter__check.is-child {
	position: relative;
	margin-inline-start: var(--mod-filter-child-offset, var(--mod-filter-child-indent, 14px));
	width: calc(100% - var(--mod-filter-child-offset, var(--mod-filter-child-indent, 14px)));
	max-width: calc(100% - var(--mod-filter-child-offset, var(--mod-filter-child-indent, 14px)));
	justify-self: stretch;
	align-self: stretch;
}

/* Optional taxonomy hierarchy connector. */
.mod-dynamic-filter--hierarchy-lines .mod-dynamic-filter__choice.is-child::before,
.mod-dynamic-filter--hierarchy-lines .mod-dynamic-filter__check.is-child::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset-inline-start: calc(-1 * var(--mod-filter-tree-length));
	top: 50%;
	width: var(--mod-filter-tree-length);
	border-top-width: var(--mod-filter-tree-width);
	border-top-style: var(--mod-filter-tree-style);
	border-top-color: var(--mod-filter-tree-color);
	pointer-events: none;
}

.mod-dynamic-filter--hierarchy-lines .mod-dynamic-filter__choice.is-child::after,
.mod-dynamic-filter--hierarchy-lines .mod-dynamic-filter__check.is-child::after {
	content: "";
	position: absolute;
	z-index: 0;
	inset-inline-start: calc(-1 * var(--mod-filter-tree-length));
	top: calc(-0.5 * var(--mod-filter-choice-gap, 8px));
	bottom: calc(-0.5 * var(--mod-filter-choice-gap, 8px));
	border-inline-start-width: var(--mod-filter-tree-width);
	border-inline-start-style: var(--mod-filter-tree-style);
	border-inline-start-color: var(--mod-filter-tree-color);
	pointer-events: none;
}

.mod-dynamic-filter--hierarchy-lines .mod-dynamic-filter__choice.is-child.is-last-sibling::after,
.mod-dynamic-filter--hierarchy-lines .mod-dynamic-filter__check.is-child.is-last-sibling::after {
	bottom: 50%;
}

.mod-dynamic-filter--hierarchy-lines .mod-dynamic-filter__choice.is-child > *,
.mod-dynamic-filter--hierarchy-lines .mod-dynamic-filter__check.is-child > * {
	position: relative;
	z-index: 1;
}

/* Accessible custom checkbox, isolated from global input CSS. */
.mod-dynamic-filter .mod-dynamic-filter__check {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	min-width: 0;
	line-height: 1.35;
}

.mod-dynamic-filter .mod-dynamic-filter__check > input[type="checkbox"] {
	position: absolute !important;
	inline-size: 1px !important;
	block-size: 1px !important;
	min-inline-size: 0 !important;
	min-block-size: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	opacity: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
}

.mod-dynamic-filter__checkbox-visual {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	inline-size: var(--mod-filter-checkbox-size);
	block-size: var(--mod-filter-checkbox-size);
	flex: 0 0 var(--mod-filter-checkbox-size);
	border: var(--mod-filter-checkbox-border-width) solid var(--mod-filter-checkbox-border-color);
	border-radius: var(--mod-filter-checkbox-radius);
	background: var(--mod-filter-checkbox-background);
	transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.mod-dynamic-filter__checkbox-visual::after {
	content: "";
	inline-size: 42%;
	block-size: 24%;
	border-inline-start: max(2px, calc(var(--mod-filter-checkbox-size) * .1)) solid var(--mod-filter-checkbox-check-color);
	border-bottom: max(2px, calc(var(--mod-filter-checkbox-size) * .1)) solid var(--mod-filter-checkbox-check-color);
	transform: translateY(-8%) rotate(-45deg) scale(0);
	transform-origin: center;
	transition: transform .16s ease;
}

.mod-dynamic-filter__check > input[type="checkbox"]:checked + .mod-dynamic-filter__checkbox-visual {
	border-color: var(--mod-filter-checkbox-checked-background);
	background: var(--mod-filter-checkbox-checked-background);
}

.mod-dynamic-filter__check > input[type="checkbox"]:checked + .mod-dynamic-filter__checkbox-visual::after {
	transform: translateY(-8%) rotate(-45deg) scale(1);
}

.mod-dynamic-filter__check > input[type="checkbox"]:focus-visible + .mod-dynamic-filter__checkbox-visual {
	box-shadow: 0 0 0 3px rgba(37, 99, 235, .2);
}

.mod-dynamic-filter__check-label {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 7px;
	min-width: 0;
	flex: 1 1 auto;
	white-space: normal;
	word-break: normal;
	overflow-wrap: anywhere;
}

/* Stable dual-handle range that global theme input styles cannot reshape. */
.mod-dynamic-filter__price-range,
.mod-dynamic-filter__range-track,
.mod-dynamic-filter__range {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.mod-dynamic-filter__range > input[type="number"] {
	min-width: 0;
	width: 100%;
}

.mod-dynamic-filter__range-track {
	--mod-range-track-border-color: transparent;
	--mod-range-track-border-width: 0px;
	--mod-range-track-radius: 999px;
	--mod-range-handle-hover-background: var(--mod-range-handle-background);
	--mod-range-handle-hover-border-color: var(--mod-range-handle-border-color);
	--mod-range-handle-hover-scale: 1.1;
	position: relative;
	isolation: isolate;
	width: 100%;
	min-width: 0;
	height: max(var(--mod-range-handle-size), calc(var(--mod-range-track-height) + 12px));
}

.mod-dynamic-filter__range-track-rail,
.mod-dynamic-filter__range-track-fill {
	border-radius: var(--mod-range-track-radius);
}

.mod-dynamic-filter__range-track-rail {
	border: var(--mod-range-track-border-width) solid var(--mod-range-track-border-color);
}

.mod-dynamic-filter input.mod-dynamic-filter__range-handle[type="range"] {
	position: absolute !important;
	z-index: 3;
	inset-inline: 0 !important;
	top: 50% !important;
	bottom: auto !important;
	width: 100% !important;
	max-width: none !important;
	height: var(--mod-range-handle-size) !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	transform: translateY(-50%) !important;
	pointer-events: none !important;
	outline: 0 !important;
	font-size: initial !important;
	line-height: normal !important;
}

.mod-dynamic-filter input.mod-dynamic-filter__range-handle[type="range"]::-webkit-slider-runnable-track {
	width: 100% !important;
	height: 2px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.mod-dynamic-filter input.mod-dynamic-filter__range-handle[type="range"]::-moz-range-track {
	width: 100% !important;
	height: 2px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.mod-dynamic-filter input.mod-dynamic-filter__range-handle[type="range"]::-webkit-slider-thumb {
	width: var(--mod-range-handle-size) !important;
	height: var(--mod-range-handle-size) !important;
	margin-top: calc((2px - var(--mod-range-handle-size)) / 2) !important;
	padding: 0 !important;
	border: var(--mod-range-handle-border-width) solid var(--mod-range-handle-border-color) !important;
	border-radius: var(--mod-range-handle-radius) !important;
	background: var(--mod-range-handle-background) !important;
	box-shadow: none;
	-webkit-appearance: none !important;
	appearance: none !important;
	pointer-events: auto !important;
	cursor: grab;
	transform: scale(1);
	transition: transform .16s ease, background-color .16s ease, border-color .16s ease;
}

.mod-dynamic-filter input.mod-dynamic-filter__range-handle[type="range"]::-moz-range-thumb {
	width: var(--mod-range-handle-size) !important;
	height: var(--mod-range-handle-size) !important;
	padding: 0 !important;
	border: var(--mod-range-handle-border-width) solid var(--mod-range-handle-border-color) !important;
	border-radius: var(--mod-range-handle-radius) !important;
	background: var(--mod-range-handle-background) !important;
	box-shadow: none;
	pointer-events: auto !important;
	cursor: grab;
	transform: scale(1);
	transition: transform .16s ease, background-color .16s ease, border-color .16s ease;
}

.mod-dynamic-filter input.mod-dynamic-filter__range-handle[type="range"]::-webkit-slider-thumb:hover {
	background: var(--mod-range-handle-hover-background) !important;
	border-color: var(--mod-range-handle-hover-border-color) !important;
	transform: scale(var(--mod-range-handle-hover-scale));
}

.mod-dynamic-filter input.mod-dynamic-filter__range-handle[type="range"]::-moz-range-thumb:hover {
	background: var(--mod-range-handle-hover-background) !important;
	border-color: var(--mod-range-handle-hover-border-color) !important;
	transform: scale(var(--mod-range-handle-hover-scale));
}

.mod-dynamic-filter__range-values > span:first-child,
.mod-dynamic-filter__range-values > span:last-child {
	min-width: 0;
	white-space: nowrap;
}

@media (max-width: 1024px) {
	.mod-dynamic-filter.mod-dynamic-filter__field-width--tablet-auto .mod-dynamic-filter__group {
		width: auto;
		max-width: 100%;
		flex: 0 1 auto;
	}
	.mod-dynamic-filter.mod-dynamic-filter__field-width--tablet-full .mod-dynamic-filter__group {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		flex: 0 0 100%;
	}
	.mod-dynamic-filter.mod-dynamic-filter__field-width--tablet-custom .mod-dynamic-filter__group {
		width: min(100%, var(--mod-filter-field-custom-width));
		max-width: 100%;
		flex: 0 0 min(100%, var(--mod-filter-field-custom-width));
	}
	.mod-dynamic-filter.mod-dynamic-filter__choice-width--tablet-auto .mod-dynamic-filter__choice,
	.mod-dynamic-filter.mod-dynamic-filter__choice-width--tablet-auto .mod-dynamic-filter__check {
		width: auto;
	}
	.mod-dynamic-filter.mod-dynamic-filter__choice-width--tablet-full .mod-dynamic-filter__choice,
	.mod-dynamic-filter.mod-dynamic-filter__choice-width--tablet-full .mod-dynamic-filter__check {
		width: 100%;
		max-width: 100%;
	}
	.mod-dynamic-filter.mod-dynamic-filter__choice-width--tablet-custom .mod-dynamic-filter__choice,
	.mod-dynamic-filter.mod-dynamic-filter__choice-width--tablet-custom .mod-dynamic-filter__check {
		width: min(100%, var(--mod-filter-choice-custom-width));
		max-width: 100%;
	}
}

@media (max-width: 767px) {
	.mod-dynamic-filter.mod-dynamic-filter__field-width--mobile-auto .mod-dynamic-filter__group {
		width: auto;
		max-width: 100%;
		flex: 0 1 auto;
	}
	.mod-dynamic-filter.mod-dynamic-filter__field-width--mobile-full .mod-dynamic-filter__group {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		flex: 0 0 100%;
	}
	.mod-dynamic-filter.mod-dynamic-filter__field-width--mobile-custom .mod-dynamic-filter__group {
		width: min(100%, var(--mod-filter-field-custom-width));
		max-width: 100%;
		flex: 0 0 min(100%, var(--mod-filter-field-custom-width));
	}
	.mod-dynamic-filter.mod-dynamic-filter__choice-width--mobile-auto .mod-dynamic-filter__choice,
	.mod-dynamic-filter.mod-dynamic-filter__choice-width--mobile-auto .mod-dynamic-filter__check {
		width: auto;
	}
	.mod-dynamic-filter.mod-dynamic-filter__choice-width--mobile-full .mod-dynamic-filter__choice,
	.mod-dynamic-filter.mod-dynamic-filter__choice-width--mobile-full .mod-dynamic-filter__check {
		width: 100%;
		max-width: 100%;
	}
	.mod-dynamic-filter.mod-dynamic-filter__choice-width--mobile-custom .mod-dynamic-filter__choice,
	.mod-dynamic-filter.mod-dynamic-filter__choice-width--mobile-custom .mod-dynamic-filter__check {
		width: min(100%, var(--mod-filter-choice-custom-width));
		max-width: 100%;
	}
}


/* v0.4.7: taxonomy visibility, reliable option columns, and root-group spacing. */
.mod-dynamic-filter__choice.is-root-term:not(.is-first-root),
.mod-dynamic-filter__check.is-root-term:not(.is-first-root) {
	margin-block-start: var(--mod-filter-root-gap, 0px);
}

/* Runtime responsive column variables are rendered by PHP so Elementor Editor
 * previews cannot fall back to stale generated CSS after a widget update. */
.mod-dynamic-filter__choices--desktop-grid,
.mod-dynamic-filter__checks--desktop-grid {
	grid-template-columns: repeat(var(--mod-filter-choice-columns-desktop, 3), minmax(0, 1fr));
}

.mod-dynamic-filter__fields--desktop-grid {
	grid-template-columns: repeat(var(--mod-filter-panel-columns-desktop, 3), minmax(0, 1fr));
}

@media (max-width: 1024px) {
	.mod-dynamic-filter__choices--tablet-grid,
	.mod-dynamic-filter__checks--tablet-grid {
		grid-template-columns: repeat(var(--mod-filter-choice-columns-tablet, 2), minmax(0, 1fr));
	}

	.mod-dynamic-filter__fields--tablet-grid {
		grid-template-columns: repeat(var(--mod-filter-panel-columns-tablet, 2), minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.mod-dynamic-filter__choices--mobile-grid,
	.mod-dynamic-filter__checks--mobile-grid {
		grid-template-columns: repeat(var(--mod-filter-choice-columns-mobile, 1), minmax(0, 1fr));
	}

	.mod-dynamic-filter__fields--mobile-grid {
		grid-template-columns: repeat(var(--mod-filter-panel-columns-mobile, 1), minmax(0, 1fr));
	}
}


/* v0.4.8: filter grid isolation, deterministic responsive columns, and term-selection stability. */
.mod-dynamic-filter__fields--desktop-grid {
	grid-auto-flow: row;
	grid-auto-rows: max-content;
	align-content: start;
	align-items: start;
}

.mod-dynamic-filter__fields--desktop-grid > .mod-dynamic-filter__group {
	position: relative;
	inline-size: 100% !important;
	width: 100% !important;
	min-inline-size: 0 !important;
	min-width: 0 !important;
	max-inline-size: 100%;
	max-width: 100%;
	flex: none !important;
	align-self: start;
	isolation: isolate;
}

.mod-dynamic-filter__group,
.mod-dynamic-filter__choices,
.mod-dynamic-filter__checks {
	min-inline-size: 0;
	max-inline-size: 100%;
}

.mod-dynamic-filter__choices--desktop-grid,
.mod-dynamic-filter__checks--desktop-grid {
	grid-auto-flow: row;
	grid-auto-rows: max-content;
	align-content: start;
	grid-template-columns: repeat(var(--mod-filter-choice-columns-desktop, 3), minmax(0, 1fr)) !important;
}

.mod-dynamic-filter__choices--desktop-grid > .mod-dynamic-filter__choice,
.mod-dynamic-filter__checks--desktop-grid > .mod-dynamic-filter__check {
	min-inline-size: 0;
	max-inline-size: 100%;
	margin-inline-end: 0;
}

.mod-dynamic-filter__choice-label,
.mod-dynamic-filter__check-label {
	min-inline-size: 0;
	overflow-wrap: anywhere;
}

.mod-dynamic-filter__field-width--desktop-full .mod-dynamic-filter__fields--desktop-grid > .mod-dynamic-filter__group,
.mod-dynamic-filter__field-width--desktop-custom .mod-dynamic-filter__fields--desktop-grid > .mod-dynamic-filter__group {
	inline-size: 100% !important;
	width: 100% !important;
	max-inline-size: 100% !important;
	max-width: 100% !important;
}

.mod-dynamic-filter__choices--desktop-columns-1,
.mod-dynamic-filter__checks--desktop-columns-1 { --mod-filter-choice-columns-desktop: 1 !important; }
.mod-dynamic-filter__fields--desktop-columns-1 { --mod-filter-panel-columns-desktop: 1 !important; }

.mod-dynamic-filter__choices--desktop-columns-2,
.mod-dynamic-filter__checks--desktop-columns-2 { --mod-filter-choice-columns-desktop: 2 !important; }
.mod-dynamic-filter__fields--desktop-columns-2 { --mod-filter-panel-columns-desktop: 2 !important; }

.mod-dynamic-filter__choices--desktop-columns-3,
.mod-dynamic-filter__checks--desktop-columns-3 { --mod-filter-choice-columns-desktop: 3 !important; }
.mod-dynamic-filter__fields--desktop-columns-3 { --mod-filter-panel-columns-desktop: 3 !important; }

.mod-dynamic-filter__choices--desktop-columns-4,
.mod-dynamic-filter__checks--desktop-columns-4 { --mod-filter-choice-columns-desktop: 4 !important; }
.mod-dynamic-filter__fields--desktop-columns-4 { --mod-filter-panel-columns-desktop: 4 !important; }

.mod-dynamic-filter__choices--desktop-columns-5,
.mod-dynamic-filter__checks--desktop-columns-5 { --mod-filter-choice-columns-desktop: 5 !important; }
.mod-dynamic-filter__fields--desktop-columns-5 { --mod-filter-panel-columns-desktop: 5 !important; }

.mod-dynamic-filter__choices--desktop-columns-6,
.mod-dynamic-filter__checks--desktop-columns-6 { --mod-filter-choice-columns-desktop: 6 !important; }
.mod-dynamic-filter__fields--desktop-columns-6 { --mod-filter-panel-columns-desktop: 6 !important; }

.mod-dynamic-filter__choices--desktop-columns-7,
.mod-dynamic-filter__checks--desktop-columns-7 { --mod-filter-choice-columns-desktop: 7 !important; }
.mod-dynamic-filter__fields--desktop-columns-7 { --mod-filter-panel-columns-desktop: 7 !important; }

.mod-dynamic-filter__choices--desktop-columns-8,
.mod-dynamic-filter__checks--desktop-columns-8 { --mod-filter-choice-columns-desktop: 8 !important; }
.mod-dynamic-filter__fields--desktop-columns-8 { --mod-filter-panel-columns-desktop: 8 !important; }

.mod-dynamic-filter__choices--desktop-columns-9,
.mod-dynamic-filter__checks--desktop-columns-9 { --mod-filter-choice-columns-desktop: 9 !important; }
.mod-dynamic-filter__fields--desktop-columns-9 { --mod-filter-panel-columns-desktop: 9 !important; }

.mod-dynamic-filter__choices--desktop-columns-10,
.mod-dynamic-filter__checks--desktop-columns-10 { --mod-filter-choice-columns-desktop: 10 !important; }
.mod-dynamic-filter__fields--desktop-columns-10 { --mod-filter-panel-columns-desktop: 10 !important; }

.mod-dynamic-filter__choices--desktop-columns-11,
.mod-dynamic-filter__checks--desktop-columns-11 { --mod-filter-choice-columns-desktop: 11 !important; }
.mod-dynamic-filter__fields--desktop-columns-11 { --mod-filter-panel-columns-desktop: 11 !important; }

.mod-dynamic-filter__choices--desktop-columns-12,
.mod-dynamic-filter__checks--desktop-columns-12 { --mod-filter-choice-columns-desktop: 12 !important; }
.mod-dynamic-filter__fields--desktop-columns-12 { --mod-filter-panel-columns-desktop: 12 !important; }

@media (max-width: 1024px) {
	.mod-dynamic-filter__fields--tablet-grid {
		grid-auto-flow: row;
		grid-auto-rows: max-content;
		align-content: start;
		align-items: start;
	}
	.mod-dynamic-filter__fields--tablet-grid > .mod-dynamic-filter__group {
		inline-size: 100% !important;
		width: 100% !important;
		min-inline-size: 0 !important;
		min-width: 0 !important;
		max-inline-size: 100%;
		max-width: 100%;
		flex: none !important;
		align-self: start;
	}
	.mod-dynamic-filter__choices--tablet-grid,
	.mod-dynamic-filter__checks--tablet-grid {
		grid-auto-flow: row;
		grid-auto-rows: max-content;
		grid-template-columns: repeat(var(--mod-filter-choice-columns-tablet, 2), minmax(0, 1fr)) !important;
	}
	.mod-dynamic-filter__choices--tablet-columns-1,
	.mod-dynamic-filter__checks--tablet-columns-1 { --mod-filter-choice-columns-tablet: 1 !important; }
	.mod-dynamic-filter__fields--tablet-columns-1 { --mod-filter-panel-columns-tablet: 1 !important; }
	.mod-dynamic-filter__choices--tablet-columns-2,
	.mod-dynamic-filter__checks--tablet-columns-2 { --mod-filter-choice-columns-tablet: 2 !important; }
	.mod-dynamic-filter__fields--tablet-columns-2 { --mod-filter-panel-columns-tablet: 2 !important; }
	.mod-dynamic-filter__choices--tablet-columns-3,
	.mod-dynamic-filter__checks--tablet-columns-3 { --mod-filter-choice-columns-tablet: 3 !important; }
	.mod-dynamic-filter__fields--tablet-columns-3 { --mod-filter-panel-columns-tablet: 3 !important; }
	.mod-dynamic-filter__choices--tablet-columns-4,
	.mod-dynamic-filter__checks--tablet-columns-4 { --mod-filter-choice-columns-tablet: 4 !important; }
	.mod-dynamic-filter__fields--tablet-columns-4 { --mod-filter-panel-columns-tablet: 4 !important; }
	.mod-dynamic-filter__choices--tablet-columns-5,
	.mod-dynamic-filter__checks--tablet-columns-5 { --mod-filter-choice-columns-tablet: 5 !important; }
	.mod-dynamic-filter__fields--tablet-columns-5 { --mod-filter-panel-columns-tablet: 5 !important; }
	.mod-dynamic-filter__choices--tablet-columns-6,
	.mod-dynamic-filter__checks--tablet-columns-6 { --mod-filter-choice-columns-tablet: 6 !important; }
	.mod-dynamic-filter__fields--tablet-columns-6 { --mod-filter-panel-columns-tablet: 6 !important; }
	.mod-dynamic-filter__choices--tablet-columns-7,
	.mod-dynamic-filter__checks--tablet-columns-7 { --mod-filter-choice-columns-tablet: 7 !important; }
	.mod-dynamic-filter__fields--tablet-columns-7 { --mod-filter-panel-columns-tablet: 7 !important; }
	.mod-dynamic-filter__choices--tablet-columns-8,
	.mod-dynamic-filter__checks--tablet-columns-8 { --mod-filter-choice-columns-tablet: 8 !important; }
	.mod-dynamic-filter__fields--tablet-columns-8 { --mod-filter-panel-columns-tablet: 8 !important; }
	.mod-dynamic-filter__choices--tablet-columns-9,
	.mod-dynamic-filter__checks--tablet-columns-9 { --mod-filter-choice-columns-tablet: 9 !important; }
	.mod-dynamic-filter__fields--tablet-columns-9 { --mod-filter-panel-columns-tablet: 9 !important; }
	.mod-dynamic-filter__choices--tablet-columns-10,
	.mod-dynamic-filter__checks--tablet-columns-10 { --mod-filter-choice-columns-tablet: 10 !important; }
	.mod-dynamic-filter__fields--tablet-columns-10 { --mod-filter-panel-columns-tablet: 10 !important; }
	.mod-dynamic-filter__choices--tablet-columns-11,
	.mod-dynamic-filter__checks--tablet-columns-11 { --mod-filter-choice-columns-tablet: 11 !important; }
	.mod-dynamic-filter__fields--tablet-columns-11 { --mod-filter-panel-columns-tablet: 11 !important; }
	.mod-dynamic-filter__choices--tablet-columns-12,
	.mod-dynamic-filter__checks--tablet-columns-12 { --mod-filter-choice-columns-tablet: 12 !important; }
	.mod-dynamic-filter__fields--tablet-columns-12 { --mod-filter-panel-columns-tablet: 12 !important; }
}

@media (max-width: 767px) {
	.mod-dynamic-filter__fields--mobile-grid {
		grid-auto-flow: row;
		grid-auto-rows: max-content;
		align-content: start;
		align-items: start;
	}
	.mod-dynamic-filter__fields--mobile-grid > .mod-dynamic-filter__group {
		inline-size: 100% !important;
		width: 100% !important;
		min-inline-size: 0 !important;
		min-width: 0 !important;
		max-inline-size: 100%;
		max-width: 100%;
		flex: none !important;
		align-self: start;
	}
	.mod-dynamic-filter__choices--mobile-grid,
	.mod-dynamic-filter__checks--mobile-grid {
		grid-auto-flow: row;
		grid-auto-rows: max-content;
		grid-template-columns: repeat(var(--mod-filter-choice-columns-mobile, 1), minmax(0, 1fr)) !important;
	}
	.mod-dynamic-filter__choices--mobile-columns-1,
	.mod-dynamic-filter__checks--mobile-columns-1 { --mod-filter-choice-columns-mobile: 1 !important; }
	.mod-dynamic-filter__fields--mobile-columns-1 { --mod-filter-panel-columns-mobile: 1 !important; }
	.mod-dynamic-filter__choices--mobile-columns-2,
	.mod-dynamic-filter__checks--mobile-columns-2 { --mod-filter-choice-columns-mobile: 2 !important; }
	.mod-dynamic-filter__fields--mobile-columns-2 { --mod-filter-panel-columns-mobile: 2 !important; }
	.mod-dynamic-filter__choices--mobile-columns-3,
	.mod-dynamic-filter__checks--mobile-columns-3 { --mod-filter-choice-columns-mobile: 3 !important; }
	.mod-dynamic-filter__fields--mobile-columns-3 { --mod-filter-panel-columns-mobile: 3 !important; }
	.mod-dynamic-filter__choices--mobile-columns-4,
	.mod-dynamic-filter__checks--mobile-columns-4 { --mod-filter-choice-columns-mobile: 4 !important; }
	.mod-dynamic-filter__fields--mobile-columns-4 { --mod-filter-panel-columns-mobile: 4 !important; }
	.mod-dynamic-filter__choices--mobile-columns-5,
	.mod-dynamic-filter__checks--mobile-columns-5 { --mod-filter-choice-columns-mobile: 5 !important; }
	.mod-dynamic-filter__fields--mobile-columns-5 { --mod-filter-panel-columns-mobile: 5 !important; }
	.mod-dynamic-filter__choices--mobile-columns-6,
	.mod-dynamic-filter__checks--mobile-columns-6 { --mod-filter-choice-columns-mobile: 6 !important; }
	.mod-dynamic-filter__fields--mobile-columns-6 { --mod-filter-panel-columns-mobile: 6 !important; }
	.mod-dynamic-filter__choices--mobile-columns-7,
	.mod-dynamic-filter__checks--mobile-columns-7 { --mod-filter-choice-columns-mobile: 7 !important; }
	.mod-dynamic-filter__fields--mobile-columns-7 { --mod-filter-panel-columns-mobile: 7 !important; }
	.mod-dynamic-filter__choices--mobile-columns-8,
	.mod-dynamic-filter__checks--mobile-columns-8 { --mod-filter-choice-columns-mobile: 8 !important; }
	.mod-dynamic-filter__fields--mobile-columns-8 { --mod-filter-panel-columns-mobile: 8 !important; }
	.mod-dynamic-filter__choices--mobile-columns-9,
	.mod-dynamic-filter__checks--mobile-columns-9 { --mod-filter-choice-columns-mobile: 9 !important; }
	.mod-dynamic-filter__fields--mobile-columns-9 { --mod-filter-panel-columns-mobile: 9 !important; }
	.mod-dynamic-filter__choices--mobile-columns-10,
	.mod-dynamic-filter__checks--mobile-columns-10 { --mod-filter-choice-columns-mobile: 10 !important; }
	.mod-dynamic-filter__fields--mobile-columns-10 { --mod-filter-panel-columns-mobile: 10 !important; }
	.mod-dynamic-filter__choices--mobile-columns-11,
	.mod-dynamic-filter__checks--mobile-columns-11 { --mod-filter-choice-columns-mobile: 11 !important; }
	.mod-dynamic-filter__fields--mobile-columns-11 { --mod-filter-panel-columns-mobile: 11 !important; }
	.mod-dynamic-filter__choices--mobile-columns-12,
	.mod-dynamic-filter__checks--mobile-columns-12 { --mod-filter-choice-columns-mobile: 12 !important; }
	.mod-dynamic-filter__fields--mobile-columns-12 { --mod-filter-panel-columns-mobile: 12 !important; }
}

/* 0.4.10: independent responsive columns for taxonomy Button / Pill filters. */
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-1,
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-2,
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-3,
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-4,
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-5,
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-6,
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-7,
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-8,
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-9,
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-10,
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-11,
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-12 {
	display: grid !important;
	flex-wrap: unset !important;
	align-items: stretch;
}
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-1 { grid-template-columns: repeat(1, minmax(0, 1fr)) !important; }
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-5 { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-6 { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-7 { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; }
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-8 { grid-template-columns: repeat(8, minmax(0, 1fr)) !important; }
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-9 { grid-template-columns: repeat(9, minmax(0, 1fr)) !important; }
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-10 { grid-template-columns: repeat(10, minmax(0, 1fr)) !important; }
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-11 { grid-template-columns: repeat(11, minmax(0, 1fr)) !important; }
.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--desktop-12 { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; }
.mod-dynamic-filter__choices[class*="mod-dynamic-filter__button-columns--desktop-"]:not(.mod-dynamic-filter__button-columns--desktop-auto) > .mod-dynamic-filter__choice {
	box-sizing: border-box;
	inline-size: 100% !important;
	min-inline-size: 0 !important;
	max-inline-size: 100% !important;
}

@media (max-width: 1024px) {
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-1,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-2,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-3,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-4,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-5,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-6,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-7,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-8,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-9,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-10,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-11,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-12 {
		display: grid !important;
		flex-wrap: unset !important;
		align-items: stretch;
	}
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-1 { grid-template-columns: repeat(1, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-5 { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-6 { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-7 { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-8 { grid-template-columns: repeat(8, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-9 { grid-template-columns: repeat(9, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-10 { grid-template-columns: repeat(10, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-11 { grid-template-columns: repeat(11, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-12 { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices[class*="mod-dynamic-filter__button-columns--tablet-"]:not(.mod-dynamic-filter__button-columns--tablet-auto) > .mod-dynamic-filter__choice {
		box-sizing: border-box;
		inline-size: 100% !important;
		min-inline-size: 0 !important;
		max-inline-size: 100% !important;
	}
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-auto.mod-dynamic-filter__choices--tablet-wrap { display: flex !important; flex-wrap: wrap !important; grid-template-columns: none !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-auto.mod-dynamic-filter__choices--tablet-grid { display: grid !important; flex-wrap: unset !important; grid-template-columns: repeat(var(--mod-filter-choice-columns-tablet, 2), minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-auto.mod-dynamic-filter__choices--tablet-vertical { display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important; grid-template-columns: none !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--tablet-auto.mod-dynamic-filter__choices--tablet-scroll { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto !important; grid-template-columns: none !important; }
}

@media (max-width: 767px) {
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-1,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-2,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-3,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-4,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-5,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-6,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-7,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-8,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-9,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-10,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-11,
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-12 {
		display: grid !important;
		flex-wrap: unset !important;
		align-items: stretch;
	}
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-1 { grid-template-columns: repeat(1, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-5 { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-6 { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-7 { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-8 { grid-template-columns: repeat(8, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-9 { grid-template-columns: repeat(9, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-10 { grid-template-columns: repeat(10, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-11 { grid-template-columns: repeat(11, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-12 { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices[class*="mod-dynamic-filter__button-columns--mobile-"]:not(.mod-dynamic-filter__button-columns--mobile-auto) > .mod-dynamic-filter__choice {
		box-sizing: border-box;
		inline-size: 100% !important;
		min-inline-size: 0 !important;
		max-inline-size: 100% !important;
	}
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-auto.mod-dynamic-filter__choices--mobile-wrap { display: flex !important; flex-wrap: wrap !important; grid-template-columns: none !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-auto.mod-dynamic-filter__choices--mobile-grid { display: grid !important; flex-wrap: unset !important; grid-template-columns: repeat(var(--mod-filter-choice-columns-mobile, 1), minmax(0, 1fr)) !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-auto.mod-dynamic-filter__choices--mobile-vertical { display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important; grid-template-columns: none !important; }
	.mod-dynamic-filter__choices.mod-dynamic-filter__button-columns--mobile-auto.mod-dynamic-filter__choices--mobile-scroll { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto !important; grid-template-columns: none !important; }
}

/* 0.4.12: taxonomy child-width containment and parent-edge alignment. */
.mod-dynamic-filter .mod-dynamic-filter__choices > .mod-dynamic-filter__choice.is-child,
.mod-dynamic-filter .mod-dynamic-filter__checks > .mod-dynamic-filter__check.is-child {
	box-sizing: border-box !important;
	margin-inline-start: var(--mod-filter-child-offset, var(--mod-filter-child-indent, 14px)) !important;
	margin-inline-end: 0 !important;
	inline-size: min(
		calc(100% - var(--mod-filter-child-offset, var(--mod-filter-child-indent, 14px))),
		var(--mod-filter-child-parent-inline-size, calc(100% - var(--mod-filter-child-offset, var(--mod-filter-child-indent, 14px))))
	) !important;
	width: min(
		calc(100% - var(--mod-filter-child-offset, var(--mod-filter-child-indent, 14px))),
		var(--mod-filter-child-parent-inline-size, calc(100% - var(--mod-filter-child-offset, var(--mod-filter-child-indent, 14px))))
	) !important;
	max-inline-size: min(
		calc(100% - var(--mod-filter-child-offset, var(--mod-filter-child-indent, 14px))),
		var(--mod-filter-child-parent-inline-size, calc(100% - var(--mod-filter-child-offset, var(--mod-filter-child-indent, 14px))))
	) !important;
	max-width: min(
		calc(100% - var(--mod-filter-child-offset, var(--mod-filter-child-indent, 14px))),
		var(--mod-filter-child-parent-inline-size, calc(100% - var(--mod-filter-child-offset, var(--mod-filter-child-indent, 14px))))
	) !important;
	min-inline-size: 0 !important;
	justify-self: start !important;
}

/* 0.5.28 — Dynamic Content companion widgets. */
.mod-dynamic-companion[hidden],
.mod-dynamic-grid-host [data-mod-dynamic-pagination][hidden] {
	display: none !important;
}
.mod-dynamic-companion {
	box-sizing: border-box;
	width: 100%;
}
.mod-dynamic-companion__message {
	display: block;
	font-size: 12px;
	line-height: 1.4;
	color: #b42318;
}
.mod-dynamic-companion__message:empty {
	display: none;
}
.mod-dynamic-sort {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}
.mod-dynamic-sort__label {
	margin: 0;
}
.mod-dynamic-sort__select {
	box-sizing: border-box;
	min-width: 160px;
	max-width: 100%;
	padding: 9px 34px 9px 12px;
	border: 1px solid #d0d5dd;
	border-radius: 6px;
	background-color: #fff;
}
.mod-dynamic-result-count__value {
	display: inline-block;
}
.mod-dynamic-active-filters__chips {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}
.mod-dynamic-active-filters__chip,
.mod-dynamic-active-filters__clear {
	appearance: none;
	-webkit-appearance: none;
	font: inherit;
	cursor: pointer;
}
.mod-dynamic-active-filters__chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 11px;
	border: 1px solid #d0d5dd;
	border-radius: 999px;
	background: #fff;
	color: #344054;
	transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}
.mod-dynamic-active-filters__chip:hover {
	border-color: #98a2b3;
	background: #f9fafb;
}
.mod-dynamic-active-filters__chip-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}
.mod-dynamic-active-filters__clear {
	padding: 4px 2px;
	border: 0;
	background: transparent;
	color: #475467;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.mod-dynamic-active-filters__empty {
	color: #667085;
}
.mod-dynamic-pagination-widget__buttons {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}
.mod-dynamic-pagination-widget__button {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	min-height: 38px;
	padding: 7px 11px;
	border: 1px solid #d0d5dd;
	border-radius: 6px;
	background: #fff;
	color: #344054;
	font: inherit;
	cursor: pointer;
	transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}
.mod-dynamic-pagination-widget__button:hover {
	border-color: #98a2b3;
	background: #f9fafb;
}
.mod-dynamic-pagination-widget__button.is-active {
	border-color: #101828;
	background: #101828;
	color: #fff;
	cursor: default;
}
.mod-dynamic-pagination-widget__ellipsis {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	color: #667085;
}
.mod-dynamic-load-more__wrap {
	display: flex;
	justify-content: center;
}
.mod-dynamic-load-more__button.is-loading {
	cursor: wait;
	opacity: .72;
}
@media (max-width: 767px) {
	.mod-dynamic-sort {
		align-items: stretch;
	}
	.mod-dynamic-sort__select {
		width: 100%;
	}
}

/* v0.5.33: MOD Post Carousel uses the Woo Product Carousel interaction and navigator contract. */
.mod-dynamic-post-carousel-shell {
	--mod-dynamic-carousel-columns: 4;
	--mod-dynamic-carousel-gap: 24px;
	--mod-dynamic-carousel-dot-size: 9px;
	--mod-dynamic-carousel-dot-active-width: 24px;
	position: relative;
}

.mod-dynamic-post-carousel-shell [data-mod-dynamic-items] {
	min-width: 0;
}

.mod-dynamic-post-carousel-track {
	display: grid;
	grid-template-columns: none;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - ((var(--mod-dynamic-carousel-columns, 4) - 1) * var(--mod-dynamic-carousel-gap, 24px))) / var(--mod-dynamic-carousel-columns, 4));
	gap: var(--mod-dynamic-carousel-gap, 24px);
	overflow-x: auto;
	overflow-y: hidden;
	width: 100%;
	padding: 0;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-ms-overflow-style: none;
	overscroll-behavior-inline: contain;
}

.mod-dynamic-post-carousel-track::-webkit-scrollbar {
	display: none;
	width: 0;
	height: 0;
}

.mod-dynamic-post-carousel-track > * {
	min-width: 0;
	width: 100%;
	scroll-snap-align: start;
	scroll-snap-stop: normal;
}

.mod-dynamic-post-carousel-track > .mod-dynamic-empty {
	grid-column: 1 / -1;
	width: 100%;
}

.mod-dynamic-post-carousel-dots {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 18px 0 0 !important;
	padding: 0 !important;
}

.mod-dynamic-post-carousel-shell .mod-dynamic-post-carousel-dot {
	display: block;
	flex: 0 0 auto;
	width: var(--mod-dynamic-carousel-dot-size) !important;
	height: var(--mod-dynamic-carousel-dot-size) !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 999px;
	background: #d1d5db;
	box-shadow: none !important;
	font-size: 0 !important;
	line-height: 0 !important;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	transition: width .2s ease, background-color .2s ease, opacity .2s ease;
}

.mod-dynamic-post-carousel-shell .mod-dynamic-post-carousel-dot.is-active {
	width: var(--mod-dynamic-carousel-dot-active-width) !important;
	background: var(--mod-ct-primary, #c1121f);
}

@media (max-width: 767px) {
	.mod-dynamic-post-carousel-shell--nav-outside .mod-shared-arrow--prev {
		left: 6px !important;
	}
	.mod-dynamic-post-carousel-shell--nav-outside .mod-shared-arrow--next {
		right: 6px !important;
	}
}

