/**
 * Directorist overrides — loads after plugin CSS on festival pages.
 * WCAG 2.2 AA contrast on parchment surfaces; no white plugin chrome.
 */

:is(.wf-directorist-embed, body.wf-directorist-skin) {
	/* Warm parchment — not plugin/base off-white (#fffdf8), which reads as white on-page. */
	--wf-directorist-surface: var(--wp--preset--color--parchment, #f2e5c4);
	--wf-directorist-surface-alt: var(--wp--preset--color--parchment, #f2e5c4);
	--wf-directorist-border: rgba(42, 32, 27, 0.18);
	--wf-directorist-muted: var(--wp--preset--color--earth-ink, #4a3b35);
	--wf-directorist-heading: var(--wp--preset--color--deep-aubergine, #5b234f);
	--wf-directorist-text: var(--wp--preset--color--night-ink, #21151f);
	--wf-directorist-link: var(--wp--preset--color--harvest-accessible, #a34e1c);
	--wf-directorist-btn-bg: var(--wp--preset--color--harvest-button, #a84815);
	--wf-directorist-btn-text: var(--wp--preset--color--parchment, #f2e5c4);
	--wf-directorist-placeholder: #5a4a42;
	--wf-directorist-media-ratio: 16 / 10;
	--wf-directorist-media-inset: var(--wp--preset--color--parchment, #f2e5c4);
	color: var(--wf-directorist-text);
	color-scheme: light;
	font-family: var(--wp--preset--font-family--body);
}

/* Surfaces — override plugin white cards, sidebars, modals, and dropdowns. */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(
	.directorist-archive-contents,
	.directorist-contents-wrap,
	.directorist-container-fluid,
	.directorist-search-form-wrap,
	.directorist-search-form,
	.directorist-search-form__box,
	.directorist-search-form__top,
	.directorist-search-top,
	.directorist-search-contents,
	.directorist-search-adv-filter,
	.directorist-advanced-filter,
	.directorist-advanced-filter__form,
	.directorist-search-modal__contents,
	.directorist-search-modal__contents__header,
	.directorist-search-basic-dropdown-content,
	.directorist-listing-type-selection,
	.directorist-listing-card,
	.directorist-listing-single,
	.directorist-listing-single--bg,
	.directorist-listing-with-preview,
	.directorist-listings-header,
	.directorist-listings-header__left,
	.directorist-listings-header__right,
	.listing-with-sidebar__sidebar,
	.directorist-type-nav,
	.directorist-type-nav__list,
	.directorist-notfound,
	.directorist-pagination,
	.directorist-card,
	.directorist-card-general-section,
	.directorist-social-share-links,
	.directorist-modal__content
) {
	background-color: var(--wf-directorist-surface) !important;
	border-color: var(--wf-directorist-border) !important;
	color: var(--wf-directorist-text) !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-card, .directorist-listing-single, .directorist-listing-single--bg) {
	border: 1px solid var(--wf-directorist-border) !important;
	border-radius: 0.5rem !important;
	box-shadow: none !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-search-form-wrap, .directorist-search-form, .directorist-advanced-filter__form, .directorist-listing-type-selection, .directorist-search-form__box) {
	border: 1px solid var(--wf-directorist-border) !important;
	border-radius: 0.5rem !important;
	box-shadow: none !important;
}

/* Typography */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-search-top__title, .directorist-search-form__top h2, .directorist-search-form__top h3, .directorist-search-modal__contents__header h2, .directorist-search-modal__contents__header h3) {
	color: var(--wf-directorist-heading) !important;
	font-family: var(--wp--preset--font-family--heading) !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(
	.directorist-search-top__subtitle,
	.directorist-search-form__top p,
	.directorist-listing-single__info,
	.directorist-listing-card__info,
	.directorist-listing-single__meta,
	.directorist-listing-card__meta,
	label,
	.directorist-search-field__label
) {
	color: var(--wf-directorist-muted) !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-title, .directorist-listing-title a, .directorist-listing-single .directorist-listing-title, .directorist-listing-card .directorist-listing-title a) {
	color: var(--wf-directorist-heading) !important;
	font-family: var(--wp--preset--font-family--heading) !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-title a:hover, .directorist-listing-title a:focus-visible) {
	color: var(--wf-directorist-link) !important;
	text-decoration: underline;
}

/* Form controls */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(
	.directorist-search-field input,
	.directorist-search-field select,
	.directorist-search-field textarea,
	.directorist-form-control,
	.directorist-search-top__input,
	.directorist-select select
) {
	background-color: var(--wf-directorist-surface-alt) !important;
	border: 1px solid var(--wf-directorist-border) !important;
	border-radius: 0.35rem !important;
	color: var(--wf-directorist-text) !important;
	font-family: var(--wp--preset--font-family--body) !important;
	min-height: 2.5rem;
}

/* Select2 category picker — plugin leaves these transparent by default. */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.select2-container--default .select2-selection--single) {
	align-items: center;
	background-color: var(--wf-directorist-surface-alt) !important;
	border: 1px solid var(--wf-directorist-border) !important;
	border-radius: 0.35rem !important;
	display: flex;
	min-height: 2.5rem;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.select2-container--default .select2-selection--single .select2-selection__rendered) {
	color: var(--wf-directorist-text) !important;
	line-height: 1.4;
	padding: 0.45rem 2rem 0.45rem 0.65rem;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.select2-container--default .select2-selection--single .select2-selection__arrow) {
	height: 100%;
	top: 0;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.select2-container--default .select2-selection--single .select2-selection__arrow b) {
	border-color: var(--wf-directorist-heading) transparent transparent transparent;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b) {
	border-color: transparent transparent var(--wf-directorist-heading) transparent;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.select2-dropdown, .select2-container--default .select2-results > .select2-results__options) {
	background-color: var(--wf-directorist-surface) !important;
	border: 1px solid var(--wf-directorist-border) !important;
	color: var(--wf-directorist-text) !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.select2-container--default .select2-results__option) {
	color: var(--wf-directorist-text) !important;
	padding: 0.45rem 0.65rem;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable) {
	background-color: var(--wf-directorist-heading) !important;
	color: var(--wf-directorist-btn-text) !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.select2-container--default .select2-search--dropdown .select2-search__field) {
	background-color: var(--wf-directorist-surface-alt) !important;
	border: 1px solid var(--wf-directorist-border) !important;
	border-radius: 0.35rem !important;
	color: var(--wf-directorist-text) !important;
}

/* Search row layout */
:is(.wf-directorist-embed__search, body.wf-directorist-skin) :where(.directorist-search-form__box, .directorist-search-contents) {
	display: grid;
	gap: 0.75rem;
}

:is(.wf-directorist-embed__search, body.wf-directorist-skin) :where(.directorist-search-form__top, .directorist-search-form-fields) {
	align-items: end;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
}

:is(.wf-directorist-embed__search, body.wf-directorist-skin) :where(.directorist-search-field) {
	margin: 0;
	min-width: 0;
}

:is(.wf-directorist-embed__search, body.wf-directorist-skin) :where(.directorist-btn-search, .directorist-search-form__submit) {
	justify-self: start;
	min-height: 2.5rem;
}

/* Hide fields removed via shortcode attrs when Directorist settings still output them. */
:is(.wf-directorist-embed__search, body.wf-directorist-skin) :where(
	.directorist-search-location,
	input.directorist-location-js,
	input.location-name[name="address"],
	.directorist-search-field-review,
	.directorist-search-field-pricing,
	.directorist-search-pricing,
	.directorist-pricing-search,
	.pricing-slider-range,
	.directorist-search-field-radius_search,
	.directorist-filter-btn,
	.directorist-modal-btn,
	.directorist-search-adv-filter,
	.listing-with-sidebar__sidebar,
	.directorist-sidebar-filter,
	.directorist-advanced-filter,
	.directorist-sidebar-filter-toggle,
	.directorist-listings-sidebar-toggle,
	.listing-with-sidebar__toggle
) {
	display: none !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(input, textarea)::placeholder {
	color: var(--wf-directorist-placeholder) !important;
	opacity: 1;
}

/* Primary actions */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-btn-primary, .directorist-btn-search, .directorist-search-form__submit) {
	background-color: var(--wf-directorist-btn-bg) !important;
	border-color: var(--wf-directorist-btn-bg) !important;
	color: var(--wf-directorist-btn-text) !important;
	font-weight: 600;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-btn-primary:hover, .directorist-btn-search:hover, .directorist-search-form__submit:hover) {
	background-color: var(--wp--preset--color--harvest-accessible, #a34e1c) !important;
	border-color: var(--wp--preset--color--harvest-accessible, #a34e1c) !important;
	color: var(--wf-directorist-btn-text) !important;
}

/* Secondary / filter buttons — parchment, not inverted white/black */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(
	.directorist-btn:not(.directorist-btn-primary):not(.directorist-btn-search):not(.directorist-search-form__submit),
	.directorist-btn-reset-js,
	.directorist-advanced-filter__close,
	.directorist-filter-btn,
	.directorist-modal-btn
) {
	background-color: var(--wf-directorist-surface-alt) !important;
	border: 1px solid var(--wf-directorist-border) !important;
	border-radius: 0.35rem;
	color: var(--wf-directorist-heading) !important;
	font-family: var(--wp--preset--font-family--body);
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(
	.directorist-btn:not(.directorist-btn-primary):not(.directorist-btn-search):hover,
	.directorist-filter-btn:hover,
	.directorist-modal-btn:hover
) {
	background-color: var(--wf-directorist-surface) !important;
	border-color: var(--wf-directorist-heading) !important;
	color: var(--wf-directorist-heading) !important;
}

/* Links and nav */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-category a, .directorist-listing-tag a, .directorist-categories a, .directorist-type-nav a) {
	color: var(--wf-directorist-link) !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-category a:hover, .directorist-listing-tag a:hover, .directorist-categories a:hover, .directorist-type-nav a:hover, .directorist-type-nav a:focus-visible) {
	color: var(--wf-directorist-heading) !important;
	text-decoration: underline;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-type-selection__link--current, .directorist-type-nav__link.active) {
	background: rgba(91, 35, 79, 0.1) !important;
	color: var(--wf-directorist-heading) !important;
}

/* Pagination */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-pagination .page-numbers, .directorist-pagination a) {
	background-color: var(--wf-directorist-surface) !important;
	border-color: var(--wf-directorist-border) !important;
	color: var(--wf-directorist-heading) !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-pagination .page-numbers.current) {
	background-color: var(--wf-directorist-heading) !important;
	border-color: var(--wf-directorist-heading) !important;
	color: var(--wf-directorist-btn-text) !important;
}

/* Badges and icons */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-badge, .directorist-badge-new, .directorist-mark-as-favorite__btn) {
	background-color: var(--wf-directorist-heading) !important;
	color: var(--wf-directorist-btn-text) !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-icon-mask::after, .directorist-icon-mask::before) {
	background-color: var(--wf-directorist-heading) !important;
}

/* Focus — match theme WCAG focus ring */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(a, button, input, select, textarea, [role="button"], [tabindex]:not([tabindex="-1"])):focus-visible {
	outline: 2px solid var(--wp--preset--color--candle-gold, #f2a63b) !important;
	outline-offset: 2px;
}

/* Vendor embed — hide price/rating filters if plugin settings still output them. */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(
	.directorist-price-ranges,
	.directorist-search-price,
	.directorist-search-rating,
	.directorist-review,
	.directorist-listing-price,
	.directorist-listing-price-range,
	.directorist-rating-meta
) {
	display: none !important;
}

/* Popular category chips under the search bar. */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-category-top, .directorist-top-cats) {
	margin-top: 1rem;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-category-top__title, .directorist-top-cats__title) {
	color: var(--wf-directorist-heading) !important;
	font-family: var(--wp--preset--font-family--heading) !important;
	font-size: 1rem;
	margin-bottom: 0.65rem;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-category-top ul, .directorist-top-cats ul) {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-category-top li, .directorist-top-cats li) {
	margin: 0;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-category-top a, .directorist-top-cats a) {
	background: var(--wf-directorist-surface) !important;
	border: 1px solid rgba(42, 32, 27, 0.32) !important;
	border-radius: 999px;
	color: var(--wf-directorist-text) !important;
	display: inline-block;
	font-size: 0.85rem;
	font-weight: 600;
	padding: 0.35rem 0.85rem;
	text-decoration: none;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-category-top a:hover, .directorist-top-cats a:hover, .directorist-listing-category-top a:focus-visible, .directorist-top-cats a:focus-visible) {
	background: var(--wf-directorist-heading) !important;
	border-color: var(--wf-directorist-heading) !important;
	color: var(--wf-directorist-btn-text) !important;
}

/* Category badges on listing cards. */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-category) {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin-top: 0.5rem;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-category a) {
	background: var(--wf-directorist-surface) !important;
	border: 1px solid rgba(42, 32, 27, 0.32) !important;
	border-radius: 999px;
	color: var(--wf-directorist-text) !important;
	display: inline-block;
	font-size: 0.8rem;
	font-weight: 600;
	padding: 0.2rem 0.65rem;
	text-decoration: none;
}

/* “+N” overflow control when many categories are assigned (not the Report action). */
:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-category__popup, .directorist-listing-category__popup__btn) {
	background: var(--wf-directorist-surface) !important;
	border: 1px solid rgba(42, 32, 27, 0.32) !important;
	border-radius: 999px;
	color: var(--wf-directorist-text) !important;
	font-size: 0.8rem;
	font-weight: 600;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) .directorist-listing-category__popup__content {
	background-color: var(--wf-directorist-surface) !important;
	border: 1px solid var(--wf-directorist-border) !important;
	border-radius: 0.35rem;
	color: var(--wf-directorist-text) !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) :where(.directorist-listing-category a:hover, .directorist-listing-category a:focus-visible) {
	background: var(--wf-directorist-heading) !important;
	border-color: var(--wf-directorist-heading) !important;
	color: var(--wf-directorist-btn-text) !important;
}

/* -------------------------------------------------------------------------
   Single listing (e.g. /directory/business/{slug}/) — column, type, gallery
   ------------------------------------------------------------------------- */

body.wf-directorist-skin :where(.directorist-single-wrapper, .directorist-single-contents-area) {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: 72rem;
	padding-inline: var(--wf-content-gutter, clamp(1.5rem, 4vw, 3rem));
	width: 100%;
}

body.wf-directorist-skin .directorist-container-fluid {
	padding-inline: var(--wf-content-gutter, clamp(1.5rem, 4vw, 3rem));
}

body.wf-directorist-skin .directorist-single-listing-header h1 {
	color: var(--wf-directorist-heading) !important;
	font-family: var(--wp--preset--font-family--heading) !important;
	font-size: clamp(1.75rem, 3.2vw, 2.35rem) !important;
	font-weight: 600;
	line-height: 1.2;
	margin: 0.35rem 0 1rem;
}

body.wf-directorist-skin :where(.directorist-listing-single__info, .directorist-listing-single-quickinfo .directorist-listing-single__info) {
	align-items: flex-start !important;
	flex-wrap: wrap !important;
	gap: 0.5rem 0.75rem;
	height: auto !important;
	margin-bottom: 1rem;
	min-height: 0;
	padding: 0.85rem 1rem;
	background: var(--wf-directorist-surface-alt) !important;
	border: 1px solid var(--wf-directorist-border) !important;
	border-radius: 0.5rem;
}

body.wf-directorist-skin .directorist-info-item {
	flex: 0 1 auto;
	margin: 0;
}

body.wf-directorist-skin .directorist-info-item-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

body.wf-directorist-skin .directorist-info-item.directorist-listing-category {
	align-items: flex-start;
	display: flex;
	flex: 1 1 16rem;
	flex-wrap: wrap;
	font-size: 0;
	gap: 0.35rem;
	line-height: 0;
}

/* Directorist prints comma text nodes between category links — do not use display:contents. */
body.wf-directorist-skin .directorist-info-item.directorist-listing-category :where(span) {
	display: flex;
	flex-wrap: wrap;
	font-size: 0;
	gap: 0.35rem;
	line-height: 0;
}

body.wf-directorist-skin .directorist-info-item.directorist-listing-category :where(a, .directorist-badge) {
	font-size: 0.8rem;
	line-height: 1.35;
}

body.wf-directorist-skin .directorist-badge {
	--directorist-badge-bg: var(--wf-directorist-heading) !important;
	--directorist-badge-border: var(--wf-directorist-heading) !important;
	--directorist-badge-color: var(--wf-directorist-btn-text) !important;
	--directorist-badge-icon-color: var(--wf-directorist-btn-text) !important;
	font-size: 0.75rem !important;
	font-weight: 600;
}

/* Directorist “Report abuse” modal (opened from top Report button). */
body.wf-directorist-skin :where(.directorist-modal__content, .directorist-modal .directorist-modal__contents) {
	background-color: var(--wf-directorist-surface) !important;
	border: 1px solid var(--wf-directorist-border) !important;
	border-radius: 0.5rem !important;
	color: var(--wf-directorist-text) !important;
}

body.wf-directorist-skin :where(.directorist-modal__title, .directorist-modal__header h2, .directorist-modal__header h3) {
	color: var(--wf-directorist-heading) !important;
	font-family: var(--wp--preset--font-family--heading) !important;
}

body.wf-directorist-skin .directorist-modal :where(textarea, input, label) {
	color: var(--wf-directorist-text) !important;
}

/* Single listing gallery — framed like wf-spotlight-card media (not a floating narrow slider). */
body.wf-directorist-skin .directorist-single-listing-slider-wrap {
	background: var(--wf-directorist-surface-alt) !important;
	background-image: none !important;
	border: 1px solid var(--wf-directorist-border);
	border-radius: 0.5rem;
	box-shadow: 0 1px 0 rgba(42, 32, 27, 0.04);
	margin-bottom: 1.25rem;
	overflow: hidden;
	padding: 1rem;
}

body.wf-directorist-skin .directorist-single-listing-slider-wrap.background-cover {
	background-size: unset !important;
}

body.wf-directorist-skin .directorist-single-listing-slider {
	aspect-ratio: var(--wf-directorist-media-ratio);
	background: var(--wf-directorist-surface-alt) !important;
	border: 0 !important;
	border-radius: 0.35rem;
	height: auto !important;
	margin: 0 !important;
	max-height: min(28rem, 72vw);
	max-width: 100% !important;
	overflow: hidden;
	width: 100% !important;
}

body.wf-directorist-skin .directorist-single-listing-slider :where(.swiper-wrapper, .swiper-slide) {
	height: 100% !important;
	min-height: 0 !important;
}

body.wf-directorist-skin .directorist-single-listing-slider .swiper-slide {
	align-items: center;
	background: transparent !important;
	box-sizing: border-box;
	display: flex !important;
	justify-content: center;
	padding: clamp(0.65rem, 2vw, 1rem);
}

body.wf-directorist-skin .directorist-single-listing-slider .swiper-slide :is(a, figure) {
	align-items: center;
	background: transparent !important;
	display: flex;
	height: 100%;
	justify-content: center;
	margin: 0;
	max-height: 100%;
	max-width: 100%;
	width: 100%;
}

body.wf-directorist-skin .directorist-single-listing-slider .swiper-slide img {
	border-radius: 0.35rem;
	display: block;
	height: auto !important;
	max-height: 100%;
	max-width: 100% !important;
	object-fit: contain !important;
	object-position: center center;
	width: auto !important;
}

body.wf-directorist-skin .directorist-single-listing-slider .swiper-pagination-bullet {
	background: var(--wp--preset--color--night-ink, #21151f) !important;
	opacity: 0.35;
}

body.wf-directorist-skin .directorist-single-listing-slider .swiper-pagination-bullet-active {
	background: var(--wp--preset--color--night-ink, #21151f) !important;
	opacity: 1;
}

body.wf-directorist-skin .directorist-single-listing-slider-thumb {
	border-top: 1px solid var(--wf-directorist-border);
	margin: 0.85rem 0 0 !important;
	max-width: 100% !important;
	padding-top: 0.85rem;
	width: 100% !important;
}

body.wf-directorist-skin .directorist-single-listing-slider-thumb .swiper-slide {
	border: 1px solid var(--wf-directorist-border);
	border-radius: 0.35rem;
	box-sizing: border-box;
	height: 4.5rem !important;
	opacity: 0.78;
	overflow: hidden;
	width: 4.5rem !important;
}

body.wf-directorist-skin .directorist-single-listing-slider-thumb .swiper-slide-thumb-active {
	border-color: var(--wp--preset--color--candle-gold, #f2a63b);
	box-shadow: 0 0 0 1px var(--wp--preset--color--candle-gold, #f2a63b);
	opacity: 1;
}

body.wf-directorist-skin .directorist-single-listing-slider-thumb .swiper-slide img {
	height: 100% !important;
	object-fit: cover !important;
	object-position: center center;
	width: 100% !important;
}

/* Detail cards (Description, Features, Location). */
body.wf-directorist-skin .directorist-card {
	background-color: var(--wf-directorist-surface) !important;
	border: 1px solid var(--wf-directorist-border) !important;
	border-radius: 0.5rem !important;
	margin-bottom: 1rem;
	overflow: hidden;
}

body.wf-directorist-skin :where(.directorist-card__body, .directorist-card-general-section .directorist-card__body) {
	background-color: var(--wf-directorist-surface) !important;
	padding: 1rem 1rem 1.1rem;
}

body.wf-directorist-skin .directorist-card__header {
	background: var(--wf-directorist-surface-alt) !important;
	border-bottom: 1px solid var(--wf-directorist-border) !important;
	padding: 0.75rem 1rem;
}

body.wf-directorist-skin .directorist-card__header__title {
	color: var(--wf-directorist-heading) !important;
	font-family: var(--wp--preset--font-family--heading) !important;
	font-size: 1.125rem !important;
	font-weight: 600;
	margin: 0;
}

body.wf-directorist-skin :where(.directorist-card__body, .directorist-listing-details__text, .directorist-listing-single__contents) {
	color: var(--wf-directorist-text) !important;
	font-size: 1.05rem !important;
	line-height: 1.65;
}

body.wf-directorist-skin .directorist-card__body p {
	color: var(--wf-directorist-text) !important;
	font-size: 1.05rem !important;
	margin: 0 0 0.75rem;
}

body.wf-directorist-skin :where(.directorist-single-listing-top, .directorist-single-listing-quick-action) {
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}

body.wf-directorist-skin :where(.directorist-single-listing-top, .directorist-single-listing-quick-action) :where(
	.directorist-btn,
	.directorist-single-listing-action,
	a.directorist-btn-light,
	button.directorist-btn-light
) {
	background-color: var(--wf-directorist-surface-alt) !important;
	border: 1px solid rgba(42, 32, 27, 0.28) !important;
	border-radius: 0.35rem !important;
	color: var(--wf-directorist-text) !important;
	font-size: 0.875rem;
	font-weight: 600;
	min-height: 2.25rem;
	padding-inline: 0.85rem;
}

body.wf-directorist-skin :where(.directorist-single-listing-top, .directorist-single-listing-quick-action) :where(
	.directorist-btn,
	.directorist-single-listing-action
) :where(.directorist-icon-mask::after, .directorist-icon-mask::before) {
	background-color: var(--wf-directorist-text) !important;
}

body.wf-directorist-skin :where(.directorist-single-listing-top, .directorist-single-listing-quick-action) :where(
	.directorist-btn:hover,
	.directorist-btn:focus-visible,
	.directorist-single-listing-action:hover,
	.directorist-single-listing-action:focus-visible
) {
	background-color: var(--wf-directorist-surface) !important;
	border-color: var(--wf-directorist-heading) !important;
	color: var(--wf-directorist-text) !important;
}

body.wf-directorist-skin .directorist-social-share-links {
	background-color: var(--wf-directorist-surface) !important;
	border: 1px solid var(--wf-directorist-border) !important;
	border-radius: 0.35rem !important;
	box-shadow: 0 2px 8px rgba(33, 21, 31, 0.12);
	padding: 0.35rem 0.5rem !important;
}

body.wf-directorist-skin .directorist-social-share-links :where(a, button) {
	color: var(--wf-directorist-text) !important;
	font-weight: 600;
}

body.wf-directorist-skin .directorist-social-share-links .directorist-icon-mask::after {
	background-color: var(--wf-directorist-text) !important;
}

body.wf-directorist-skin .directorist-btn-light {
	background: var(--wf-directorist-surface-alt) !important;
	border-color: rgba(42, 32, 27, 0.28) !important;
	color: var(--wf-directorist-text) !important;
	font-size: 0.875rem;
	font-weight: 600;
}

/* -------------------------------------------------------------------------
   Listing cards (Vendors page embed + archive grids)
   ------------------------------------------------------------------------- */

.wf-directorist-embed__listings :where(.directorist-listings-grid, .directorist-items-grid) {
	gap: 1.25rem;
}

:is(.wf-directorist-embed:not(.wf-directorist-embed--vendor), body.wf-directorist-skin) .directorist-listing-card {
	border-radius: 0.5rem !important;
	overflow: hidden !important;
	padding: 0 !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) .directorist-listing-card :where(.directorist-listing-title, .directorist-listing-title a) {
	font-size: clamp(1.05rem, 2vw, 1.25rem) !important;
	line-height: 1.35;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) .directorist-listing-card :where(.directorist-listing-card__info, .directorist-listing-card__content) {
	font-size: 0.95rem !important;
	line-height: 1.5;
}

/* Media slot (Directorist card swiper + thumbnail markup). */
:is(.wf-directorist-embed, body.wf-directorist-skin) .directorist-listing-card :where(
	.directorist-thumnail-card,
	.directorist-card-cover,
	.directorist-thumnail-card-front-wrap,
	.directorist-thumb-listing,
	.directorist-listing-card__figure
) {
	aspect-ratio: var(--wf-directorist-media-ratio);
	background: var(--wf-directorist-media-inset);
	border-bottom: 1px solid var(--wf-directorist-border);
	height: auto !important;
	margin: 0;
	max-height: none !important;
	min-height: 0 !important;
	overflow: hidden;
	position: relative;
	width: 100%;
}

/* Directorist sets inline height: 260px on card cover — overrides for embed letterboxing (not vendor grid). */
.wf-directorist-embed:not(.wf-directorist-embed--vendor) .directorist-listing-card :where(
	.directorist-thumnail-card,
	.directorist-thumnail-card.directorist-card-cover
) {
	aspect-ratio: var(--wf-directorist-media-ratio) !important;
	height: auto !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) .directorist-listing-card :where(
	.directorist-swiper-listing,
	.directorist-swiper.directorist-swiper-listing
) {
	height: 100% !important;
	margin: 0 !important;
	max-height: none !important;
	width: 100% !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) .directorist-listing-card :where(
	.directorist-swiper-listing .swiper-wrapper,
	.directorist-swiper-listing .swiper-slide
) {
	height: 100% !important;
	min-height: 0 !important;
}

/* Non-vendor embeds: letterbox in the media band. */
.wf-directorist-embed:not(.wf-directorist-embed--vendor) .directorist-listing-card :where(
	.directorist-thumnail-card-front-wrap,
	.directorist-swiper-listing,
	.directorist-swiper-listing .swiper-slide
) {
	align-items: center;
	box-sizing: border-box;
	display: flex !important;
	height: 100% !important;
	justify-content: center;
	min-height: 0 !important;
}

.wf-directorist-embed:not(.wf-directorist-embed--vendor) .directorist-listing-card .directorist-swiper-listing .swiper-slide :where(a, figure) {
	align-items: stretch;
	display: flex;
	height: 100%;
	justify-content: stretch;
	margin: 0;
	padding: 0;
	width: 100%;
}

.wf-directorist-embed:not(.wf-directorist-embed--vendor) .directorist-listing-card .directorist-swiper-listing .swiper-slide figure {
	background-color: var(--wf-directorist-media-inset) !important;
	box-sizing: border-box;
}

.wf-directorist-embed:not(.wf-directorist-embed--vendor) .directorist-listing-card :where(
	.directorist-thumnail-card,
	.directorist-thumnail-card-front-wrap,
	.directorist-swiper-listing,
	.directorist-swiper-listing .swiper-slide,
	.directorist-swiper-listing .swiper-slide figure
) {
	background-color: var(--wf-directorist-media-inset) !important;
	background-image: none !important;
}

/* Embed listing photos: fill the media band (not vendor — see .wf-directorist-embed--vendor). */
body.wf-directorist-skin .wf-directorist-embed:not(.wf-directorist-embed--vendor) .directorist-listing-card :where(
	.directorist-thumnail-card-front-img,
	.directorist-thumb-listing img,
	.directorist-listing-card__figure img,
	.directorist-swiper-listing img
),
.wf-directorist-embed:not(.wf-directorist-embed--vendor) .directorist-listing-card :where(
	.directorist-thumnail-card-front-img,
	.directorist-thumb-listing img,
	.directorist-listing-card__figure img,
	.directorist-swiper-listing img
) {
	background-color: transparent !important;
	border-radius: 0 !important;
	display: block !important;
	height: 100% !important;
	max-height: 100% !important;
	max-width: 100% !important;
	object-fit: contain !important;
	object-position: center center !important;
	width: 100% !important;
}

body.wf-directorist-skin .wf-directorist-embed:not(.wf-directorist-embed--vendor) .directorist-listing-card img.wf-dir-media-fit-fill,
.wf-directorist-embed:not(.wf-directorist-embed--vendor) .directorist-listing-card img.wf-dir-media-fit-fill {
	object-fit: cover !important;
}

/* Native Directorist grids only — not on /vendors/ (embed is in the DOM). */
body.wf-directorist-skin:not(:has(.wf-directorist-embed)) .directorist-listing-card :where(
	.directorist-thumnail-card-front-img,
	.directorist-thumb-listing img,
	.directorist-listing-card__figure img,
	.directorist-swiper-listing img
) {
	border-radius: 0 !important;
	display: block;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center center;
	width: 100% !important;
}

/* Defeat Directorist inline height: 260px on card cover (non-vendor embeds). */
body.wf-directorist-skin .wf-directorist-embed:not(.wf-directorist-embed--vendor) .directorist-listing-card .directorist-thumnail-card.directorist-card-cover,
.wf-directorist-embed:not(.wf-directorist-embed--vendor) .directorist-listing-card .directorist-thumnail-card.directorist-card-cover {
	aspect-ratio: var(--wf-directorist-media-ratio) !important;
	height: auto !important;
	max-height: none !important;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) .directorist-listing-card .directorist-listing-card__body,
:is(.wf-directorist-embed, body.wf-directorist-skin) .directorist-listing-card .directorist-listing-card__content {
	padding: 1rem 1.1rem 1.15rem;
}

:is(.wf-directorist-embed, body.wf-directorist-skin) .directorist-listing-card .directorist-listing-category {
	margin-top: 0.35rem;
}

/* Vendor directory embed — match wf-activity-card (Featured Categories row). */
.wf-directorist-embed--vendor {
	--wf-directorist-media-ratio: 4 / 3;
}

.wf-directorist-embed--vendor .directorist-container-fluid {
	padding-inline: 0 !important;
}

.wf-directorist-embed--vendor :where(
	.directorist-search-location,
	.directorist-search-field-pricing,
	.directorist-search-field-tag,
	.directorist-search-field-rating,
	.directorist-search-adv-filter
) {
	display: none !important;
}

.wf-directorist-embed--vendor.wf-vendor-directory-grid .directorist-archive-items .directorist-row.directorist-row {
	display: grid !important;
	flex-wrap: unset !important;
	gap: 1.25rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	justify-items: stretch;
	margin-inline: 0 !important;
	width: 100% !important;
}

.wf-directorist-embed--vendor.wf-vendor-directory-grid .directorist-archive-items .directorist-row > [class*="directorist-col"] {
	flex: none !important;
	margin: 0 !important;
	max-width: 100% !important;
	padding-inline: 0 !important;
	width: 100% !important;
}

.wf-directorist-embed--vendor .wf-vendor-card-excerpt,
.wf-directorist-embed--vendor .directorist-listing-card-excerpt {
	color: var(--wf-directorist-muted);
	font-size: 0.95rem;
	line-height: 1.5;
	margin: 0.35rem 0 0.5rem;
}

@media (max-width: 900px) and (min-width: 782px) {
	.wf-directorist-embed--vendor.wf-vendor-directory-grid .directorist-archive-items .directorist-row.directorist-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.wf-directorist-embed--vendor.wf-vendor-directory-grid .directorist-archive-items .directorist-row.directorist-row {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Single listing — one gutter (main.wf-main--page); Directorist nests 3–4 padded wrappers. */
	body.wf-directorist-skin :where(
		.directorist-single-contents-area,
		.directorist-container-fluid,
		.directorist-single-wrapper
	) {
		padding-inline: 0 !important;
	}

	body.wf-directorist-skin .directorist-single-wrapper :where(.directorist-row > [class*="directorist-col"]) {
		padding-inline: 0 !important;
	}

	body.wf-directorist-skin .directorist-single-listing-header h1 {
		font-size: clamp(1.4rem, 6.2vw, 1.85rem) !important;
		margin-bottom: 0.75rem;
		text-align: center;
	}

	body.wf-directorist-skin :where(.directorist-listing-single__info, .directorist-listing-single-quickinfo .directorist-listing-single__info) {
		flex-direction: column;
		gap: 0.65rem;
		padding: 0.75rem 0.85rem;
	}

	body.wf-directorist-skin .directorist-info-item.directorist-listing-category,
	body.wf-directorist-skin .directorist-info-item-badges {
		flex: 1 1 100%;
		width: 100%;
	}

	body.wf-directorist-skin .directorist-single-listing-slider-wrap {
		margin-bottom: 1rem;
		padding: 0.65rem;
	}

	body.wf-directorist-skin .directorist-single-listing-slider {
		max-height: min(20rem, 62vw);
	}

	body.wf-directorist-skin .directorist-single-listing-slider-thumb {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
	}

	body.wf-directorist-skin .directorist-single-listing-slider-thumb .swiper-wrapper {
		flex-wrap: nowrap;
	}

	body.wf-directorist-skin :where(.directorist-single-listing-top, .directorist-single-listing-quick-action) {
		flex-wrap: wrap;
		justify-content: center;
	}
}

.wf-directorist-embed.wf-directorist-embed--vendor .directorist-listing-card.directorist-listing-single {
	background: var(--wf-directorist-surface) !important;
	border: 1px solid rgba(42, 32, 27, 0.12) !important;
	border-radius: 0.5rem !important;
	box-shadow: none !important;
	box-sizing: border-box;
	overflow: hidden !important;
	padding: 1rem !important;
}

.wf-directorist-embed--vendor .directorist-listing-card :where(
	.directorist-listing-card__body,
	.directorist-listing-card__content,
	.directorist-listing-single__info,
	.directorist-listing-single__footer
) {
	background: transparent !important;
}

.wf-directorist-embed--vendor .directorist-listing-single__info__list,
.wf-directorist-embed--vendor .directorist-listing-single__info :where(
	.directorist-listing-card-address,
	.directorist-listing-card-phone,
	.directorist-listing-card-date,
	.directorist-listing-card-posted-on,
	.directorist-listing-card__timelabel
) {
	display: none !important;
}

.wf-directorist-embed--vendor .directorist-listing-single__thumb {
	aspect-ratio: 4 / 3;
	background: transparent !important;
	border-radius: 0.35rem;
	contain: layout;
	margin: 0 0 0.75rem;
	max-width: 100%;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.wf-directorist-embed--vendor .directorist-listing-single__thumb > .directorist-thumnail-card.directorist-card-cover {
	background: transparent !important;
	border: 0 !important;
	height: 100% !important;
	inset: 0 !important;
	margin: 0 !important;
	min-height: 0 !important;
	position: absolute !important;
	width: 100% !important;
}

.wf-directorist-embed--vendor .directorist-thumnail-card-front-wrap {
	display: block !important;
	height: 100% !important;
	width: 100% !important;
}

.wf-directorist-embed--vendor .directorist-swiper-listing {
	height: 100% !important;
	overflow: hidden !important;
	width: 100% !important;
}

.wf-directorist-embed--vendor .directorist-swiper-listing .swiper-wrapper {
	height: 100% !important;
}

.wf-directorist-embed--vendor .directorist-swiper-listing .swiper-slide {
	align-items: center !important;
	box-sizing: border-box !important;
	display: flex !important;
	flex-shrink: 0 !important;
	height: 100% !important;
	justify-content: center !important;
	padding: 0.65rem !important;
	width: 100% !important;
}

.wf-directorist-embed--vendor .directorist-swiper-listing:not(.swiper-initialized) .swiper-slide:not(:first-child) {
	display: none !important;
}

.wf-directorist-embed--vendor .directorist-swiper-listing .swiper-slide :is(a, figure) {
	align-items: center !important;
	background: transparent !important;
	background-color: transparent !important;
	display: flex !important;
	height: 100% !important;
	justify-content: center !important;
	margin: 0 !important;
	max-height: 100% !important;
	max-width: 100% !important;
	padding: 0 !important;
	width: 100% !important;
}

.wf-directorist-embed--vendor .directorist-listing-single__thumb :is(
	.directorist-thumnail-card-front-wrap,
	.directorist-swiper-listing,
	.directorist-swiper-listing .swiper-wrapper,
	.directorist-swiper-listing .swiper-slide
) {
	background: transparent !important;
	background-color: transparent !important;
}

.wf-directorist-embed.wf-directorist-embed--vendor .directorist-listing-card img.directorist-thumnail-card-front-img {
	border-radius: 0.35rem !important;
	display: block !important;
	flex: 0 1 auto;
	height: auto !important;
	max-height: 100% !important;
	max-width: 100% !important;
	object-fit: contain !important;
	object-position: center center !important;
	width: auto !important;
}

.wf-directorist-embed--vendor .directorist-listing-card .directorist-listing-card__body,
.wf-directorist-embed--vendor .directorist-listing-card .directorist-listing-card__content,
.wf-directorist-embed--vendor .directorist-listing-card .directorist-listing-single__info {
	padding: 0 !important;
}

.wf-directorist-embed--vendor .directorist-listing-card img.wf-dir-media-fit-fill {
	object-fit: cover !important;
}

.wf-directorist-embed--vendor :where(.directorist-badge, .directorist-badge-new) {
	--directorist-badge-bg: var(--wf-directorist-heading) !important;
	--directorist-badge-border: var(--wf-directorist-heading) !important;
	--directorist-badge-color: var(--wf-directorist-btn-text) !important;
	--directorist-badge-icon-color: var(--wf-directorist-btn-text) !important;
}

.wf-directorist-embed--vendor :where(.directorist-listing-single__info, .directorist-listing-card__info) {
	color: var(--wf-directorist-muted) !important;
}

.wf-directorist-embed--vendor .directorist-swiper-listing :is(.swiper-button-prev, .swiper-button-next) {
	color: var(--wp--preset--color--deep-aubergine, #5b234f) !important;
	height: 2.25rem;
	margin-top: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 2.25rem;
}

.wf-directorist-embed--vendor .directorist-swiper-listing .swiper-pagination {
	bottom: 0.4rem !important;
	line-height: 1;
	position: absolute;
	z-index: 2;
}

.wf-directorist-embed--vendor .directorist-swiper-listing .swiper-pagination-bullet {
	background: var(--wp--preset--color--night-ink, #21151f) !important;
	margin: 0 0.35rem !important;
	min-height: 0.65rem;
	min-width: 0.65rem;
	opacity: 0.35;
}

.wf-directorist-embed--vendor .directorist-swiper-listing .swiper-pagination-bullet-active {
	background: var(--wp--preset--color--night-ink, #21151f) !important;
	opacity: 1;
}

/* Single listing — map + related carousel (no horizontal page scroll, activity-style cards). */
body.wf-directorist-skin .directorist-card__body :where(.directorist-single-map, .directorist-listing-map) {
	max-width: 100%;
	overflow: hidden;
}

body.wf-directorist-skin .directorist-single-map :where(.leaflet-container, .leaflet-map-pane) {
	max-width: 100% !important;
}

body.wf-directorist-skin .directorist-related-listing {
	box-sizing: border-box;
	margin-top: 2rem;
	max-width: 100%;
	overflow: hidden;
	overflow-x: clip;
	width: 100%;
}

body.wf-directorist-skin .directorist-related-listing-header__title {
	color: var(--wf-directorist-heading) !important;
	font-family: var(--wp--preset--font-family--heading) !important;
	font-size: 1.25rem !important;
	font-weight: 600;
	margin: 0 0 1rem;
}

body.wf-directorist-skin .directorist-related-listing :where(.directorist-swiper-related-listing, .directorist-swiper-listing) {
	max-width: 100% !important;
	overflow: hidden !important;
	width: 100% !important;
}

body.wf-directorist-skin .directorist-related-listing .directorist-listing-card.directorist-listing-single {
	background: var(--wp--preset--color--base, #f2e5c4) !important;
	border: 1px solid rgba(42, 32, 27, 0.12) !important;
	border-radius: 0.5rem !important;
	box-sizing: border-box;
	overflow: hidden;
	padding: 1rem !important;
}

body.wf-directorist-skin .directorist-related-listing .directorist-listing-single__thumb {
	aspect-ratio: 4 / 3;
	background: transparent !important;
	border-radius: 0.35rem;
	margin: 0 0 0.75rem;
	overflow: hidden;
	position: relative;
	width: 100%;
}

body.wf-directorist-skin .directorist-related-listing .directorist-listing-single__thumb > .directorist-thumnail-card.directorist-card-cover {
	background: transparent !important;
	height: 100% !important;
	inset: 0;
	margin: 0 !important;
	position: absolute !important;
	width: 100% !important;
}

body.wf-directorist-skin .directorist-related-listing .directorist-swiper-listing .swiper-slide {
	align-items: center !important;
	box-sizing: border-box !important;
	display: flex !important;
	flex-shrink: 0 !important;
	height: 100% !important;
	justify-content: center !important;
	padding: 0.5rem !important;
	width: 100% !important;
}

body.wf-directorist-skin .directorist-related-listing .directorist-swiper-listing .swiper-slide :is(a, figure) {
	align-items: center !important;
	background: transparent !important;
	display: flex !important;
	height: 100% !important;
	justify-content: center !important;
	margin: 0 !important;
	max-height: 100% !important;
	max-width: 100% !important;
	width: 100% !important;
}

body.wf-directorist-skin .directorist-related-listing .directorist-listing-card img.directorist-thumnail-card-front-img {
	display: block !important;
	height: auto !important;
	max-height: 100% !important;
	max-width: 100% !important;
	object-fit: contain !important;
	object-position: center center !important;
	width: auto !important;
}

body.wf-directorist-skin .directorist-related-listing .directorist-listing-card .directorist-thumnail-card.directorist-card-cover[style] {
	height: 100% !important;
}

body.wf-directorist-skin .directorist-related-listing .directorist-swiper-listing .swiper-pagination-bullet {
	background: var(--wp--preset--color--night-ink, #21151f) !important;
	opacity: 0.35;
}

body.wf-directorist-skin .directorist-related-listing .directorist-swiper-listing .swiper-pagination-bullet-active {
	background: var(--wp--preset--color--night-ink, #21151f) !important;
	opacity: 1;
}

body.wf-directorist-skin .directorist-related-listing .directorist-listing-single__info__list {
	display: none !important;
}
