/*
 * WMI Business Directory Theme -- assets/style.css
 *
 * Loaded ONLY on Business Directory Plugin pages (the plugin's own Themes
 * system guarantees this; see theme.json). Every rule below is scoped
 * under .wmi-proto-wrap, which only exists inside this plugin's own
 * category template, so nothing here can affect the header, footer,
 * navigation, articles, Events, or any other part of the site.
 */

.wmi-proto-wrap {
	max-width: 1100px;
	margin: 0 auto;
	padding: 16px 20px 40px;
	box-sizing: border-box;
}
.wmi-proto-wrap * {
	box-sizing: border-box;
}

/* WPBDP/Astra can print the taxonomy title above the custom category
   template. The template already contains the approved category header,
   so suppress only that duplicate archive title. */
.tax-wpbdp_category .entry-header,
.tax-wpbdp_category .page-header {
	display: none !important;
}

/* Category archives are listing-post archives, so Astra's blog grid tries
   to place the entire directory interface inside a one-third-width article.
   Restore a single full-width results page and remove WPBDP's global search
   panel from this level of the three-step directory flow. */
.tax-wpbdp_category #wpbdp-main-box {
	display: none !important;
}
.tax-wpbdp_category .site-main > .ast-row {
	display: block !important;
}
.tax-wpbdp_category article.wpbdp_listing,
.tax-wpbdp_category .entry-content,
.tax-wpbdp_category #wpbdp-page-category {
	width: 100% !important;
	max-width: 100% !important;
	flex: 0 0 100% !important;
}

.wmi-cat-header {
	background: #eef3ea;
	border-radius: 8px;
	padding: 20px 24px;
	margin-bottom: 20px;
}
.wmi-cat-breadcrumb {
	font-size: 13px;
	color: #6b7d63;
	margin-bottom: 6px;
}
.wmi-cat-title {
	font-size: 26px;
	margin: 0 0 6px;
	color: #2f3b2b;
}
.wmi-cat-subline {
	margin: 0 0 8px;
	color: #55624e;
	font-size: 14px;
}
.wmi-cat-count {
	margin: 0;
	font-size: 13px;
	color: #6b7d63;
	font-weight: 600;
}

.wmi-section-heading {
	font-size: 18px;
	margin: 24px 0 12px;
}
.wmi-featured-heading {
	color: #2f6d3c;
}
.wmi-all-heading {
	color: #585858;
}

.wmi-featured-grid,
.wmi-results-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}

.wmi-card {
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 14px;
	background: #fff;
	display: flex;
	gap: 12px;
	min-height: 100px;
}
.wmi-card-featured-section {
	border: 2px solid #2f6d3c;
	background: #f6faf4;
	flex-direction: column;
	min-height: 200px;
}
.wmi-card-basic {
	background: #f7f7f7;
}
.wmi-card-tile {
	flex: 0 0 60px;
	width: 60px;
	height: 60px;
	border-radius: 6px;
}
/* Light-gray tile with the business's first initial: used whenever a
   listing has no real image, and always for Basic tier (Basic is never
   allowed a business-supplied logo/image, per the approved tier rules). */
.wmi-card-tile-initial {
	background: #ececec;
	color: #9a9a9a;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 22px;
}
/* A real uploaded image (Enhanced/Featured only, when present). */
.wmi-card-tile-image {
	overflow: hidden;
}
.wmi-card-tile-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.wmi-card-featured-section .wmi-card-tile {
	width: 100%;
	height: 100px;
	flex: none;
}
.wmi-card-body {
	flex: 1;
	min-width: 0;
}
.wmi-featured-tag {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	color: #2f6d3c;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 4px;
}
.wmi-card-title {
	margin: 0 0 4px;
	font-size: 16px;
}
.wmi-card-title a {
	color: #2b2b2b;
	text-decoration: none;
}
.wmi-card-town {
	margin: 0 0 6px;
	font-size: 13px;
	color: #777;
}
.wmi-card-desc {
	margin: 0 0 8px;
	font-size: 13px;
	color: #444;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.wmi-card-meta {
	display: flex;
	gap: 12px;
	font-size: 13px;
}
.wmi-card-meta a {
	color: #2f6d3c;
	text-decoration: none;
}

.wmi-no-listings {
	color: #777;
	font-size: 14px;
}

.wmi-load-more {
	text-align: center;
	margin-top: 24px;
}
.wmi-load-more-link {
	display: inline-block;
	padding: 10px 22px;
	border-radius: 6px;
	background: #2f6d3c;
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	border: none;
	cursor: pointer;
	font-family: inherit;
	line-height: normal;
}
.wmi-load-more-link:disabled,
.wmi-load-more-link[aria-disabled="true"] {
	opacity: 0.7;
	cursor: default;
}
.wmi-load-more-status {
	margin: 10px 0 0;
	font-size: 13px;
	color: #666;
	min-height: 1em;
}
.wmi-load-more.wmi-load-more-error .wmi-load-more-status {
	color: #a33b2f;
}

/* ==========================================================================
   Directory homepage (main_page.tpl.php) -- hero banner
   ==========================================================================
   Scoped entirely to the directory homepage via the WordPress-assigned
   "page-id-1338" body class (the Business Directory base page). This does
   not touch Astra, any other page, or any plugin core file: it only
   restyles three elements WordPress/WPBDP already render on this one page
   -- the page's own title (H1) and first paragraph (both real page
   content, unchanged here), and WPBDP's own search box (#wpbdp-main-box,
   markup untouched, only recolored/reboxed) -- so they read as one
   continuous branded hero band, with the "Browse by Category" section
   (this theme's own .wmi-home-wrap) flowing directly beneath it on a
   cream card that overlaps the hero by a few pixels for a soft transition,
   avoiding the need for an SVG/clip-path wave shape. */

/* ==========================================================================
   Directory homepage (main_page.tpl.php) -- header-to-banner gap
   ==========================================================================
   Astra's core theme applies a fixed 4em top margin to #primary
   (.type-page/assets/css/minified/main.min.css) on every page, which left
   a large blank band between the site header and this page's green hero
   banner. Scoped to #primary specifically ON the Directory base page
   (page-id-1338 body class) so it overrides only Astra's spacing on this
   one page -- it does not touch the global header, the Customizer's site
   spacing settings, any other directory level (category/listing pages use
   a different template and never carry this body class), or any regular
   WMI page. The !important is required because Astra's own more specific
   ".ast-plain-container.ast-no-sidebar #primary" rule (present but not
   applying at 0px here) otherwise continues to lose to its own 4em rule;
   this is a two-class override of a single-class Astra core rule, not a
   large negative margin. */
.page-id-1338 #primary {
	margin-top: 24px !important;
}

.page-id-1338 article.type-page {
	background-color: #7d9b76;
	background-image: radial-gradient( rgba( 255, 255, 255, 0.12 ) 1.5px, transparent 1.5px );
	background-size: 22px 22px;
	padding: 44px 24px 0;
	border-radius: 16px 16px 0 0;
	overflow: hidden;
}
.page-id-1338 .entry-header {
	margin: 0 0 14px;
	text-align: center;
}
.page-id-1338 .entry-header .entry-title {
	color: #fff;
	font-size: 34px;
	line-height: 1.2;
	font-weight: 800;
	margin: 0;
	text-shadow: 0 1px 3px rgba( 0, 0, 0, 0.18 );
}
.page-id-1338 .entry-header .entry-title::after {
	content: '';
	display: block;
	width: 56px;
	height: 3px;
	background: #d4a843;
	margin: 14px auto 0;
	border-radius: 2px;
}
.page-id-1338 .entry-content > p:first-of-type {
	color: #f3f7f0;
	text-align: center;
	font-size: 16px;
	max-width: 560px;
	margin: 0 auto 30px;
}
.page-id-1338 .wpbdp-main-box.wpbdp-main-box-large {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 8px 22px rgba( 0, 0, 0, 0.14 );
	max-width: 720px;
	margin: 0 auto 44px;
	padding: 20px 22px;
}

.wmi-home-wrap {
	max-width: none;
	background: #fdfbf5;
	border-radius: 20px 20px 0 0;
	margin: -20px -24px 0;
	padding: 32px 24px 28px;
	position: relative;
}

@media ( max-width: 680px ) {
	.page-id-1338 article.type-page {
		padding: 32px 16px 0;
	}
	.page-id-1338 .entry-header .entry-title {
		font-size: 26px;
	}
	.page-id-1338 .wpbdp-main-box.wpbdp-main-box-large {
		margin-bottom: 32px;
		padding: 16px;
	}
	.wmi-home-wrap {
		margin: -20px -16px 0;
		padding: 24px 16px 24px;
	}
}

/* ==========================================================================
   Subcategory grid (category.tpl.php -- e.g. Home Services' own subcategory
   tiles such as General Contractors, Custom Home Builders). Left exactly as
   originally shipped: the Browse by Category redesign below targets ONLY
   the top-level grid on the Directory homepage via its own dedicated
   .wmi-home-category-* classes, so this ruleset -- and the category
   results/subcategory pages that use it -- are untouched.
   ========================================================================== */
.wmi-subcategory-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}
.wmi-subcategory-card {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 110px;
	padding: 20px 22px;
	border: 1px solid #dce5d8;
	border-radius: 8px;
	background: #eef3ea;
	color: #2f3b2b;
	text-decoration: none;
}
.wmi-subcategory-card strong {
	font-size: 18px;
}
.wmi-subcategory-card span {
	margin-top: 6px;
	font-size: 13px;
	line-height: 1.45;
	color: #687563;
}
.wmi-subcategory-card:hover,
.wmi-subcategory-card:focus {
	border-color: #7f9d79;
	background: #e6eee2;
}
.wmi-category-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	margin-bottom: 10px;
	color: #7d9b76;
}
.wmi-category-icon svg {
	width: 24px;
	height: 24px;
}

/* ==========================================================================
   Browse by Category -- top-level grid (main_page.tpl.php, /directory/ only)
   ==========================================================================
   Dedicated classes (wmi-home-category-*) so this redesign cannot affect
   the subcategory grid above, which keeps its original wmi-subcategory-*
   rules untouched. Heading is now centered with a subheading; cards are
   condensed (~120-140px tall) with icon, name, live count and a chevron,
   laid out 4-across on desktop, 2-across on tablet, 1-across on small
   mobile. */
.wmi-home-categories-heading {
	text-align: center;
	text-transform: none;
	letter-spacing: normal;
	font-size: 28px;
	font-weight: 800;
	color: #1a1a18;
	margin: 0 0 8px;
}
.wmi-home-categories-subheading {
	text-align: center;
	text-transform: none;
	letter-spacing: normal;
	font-size: 15px;
	color: #56604f;
	margin: 0 0 24px;
}
.wmi-home-category-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}
.wmi-home-category-card {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 120px;
	max-height: 140px;
	padding: 16px 18px;
	border: 1px solid #dce5d8;
	border-radius: 10px;
	background: #fff;
	color: #2f3b2b;
	text-decoration: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.wmi-home-category-card:hover,
.wmi-home-category-card:focus {
	border-color: #7f9d79;
	box-shadow: 0 4px 14px rgba( 0, 0, 0, 0.08 );
}
.wmi-home-category-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 8px;
	background: #eef3ea;
	color: #7d9b76;
}
.wmi-home-category-icon svg {
	width: 20px;
	height: 20px;
}
.wmi-home-category-info {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.wmi-home-category-name {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	color: #1a1a18;
}
.wmi-home-category-count {
	font-size: 13px;
	color: #687563;
}
.wmi-home-category-chevron {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #9aa894;
}
.wmi-home-category-chevron svg {
	width: 18px;
	height: 18px;
}

@media ( max-width: 1024px ) {
	.wmi-home-category-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media ( max-width: 680px ) {
	.wmi-home-categories-heading {
		font-size: 22px;
	}
	.wmi-home-categories-subheading {
		font-size: 14px;
		margin-bottom: 18px;
	}
	.wmi-home-category-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}
	.wmi-home-category-card {
		min-height: 100px;
		max-height: none;
	}
}

.wmi-promote-section {
	margin-top: 34px;
	padding: 30px 24px;
	background: #f3ede0;
	border: 1px solid #e4d9bf;
	border-radius: 12px;
	text-align: center;
}
.wmi-promote-heading {
	margin: 0 0 8px;
	font-size: 22px;
	color: #2f3b2b;
}
.wmi-promote-copy {
	margin: 0 0 18px;
	font-size: 15px;
	color: #56604f;
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
}
a.wmi-promote-button,
.wmi-promote-section a.wmi-promote-button {
	display: inline-block;
	padding: 12px 28px;
	background: #d4a843;
	color: #2a2408 !important;
	font-weight: 700;
	text-decoration: none;
	border-radius: 999px;
}
a.wmi-promote-button:hover,
a.wmi-promote-button:focus {
	background: #c49a38;
	color: #2a2408 !important;
}

.wmi-newsletter-cross-promo {
	margin-top: 20px;
	padding: 22px 24px;
	background: #eef3ea;
	border: 1px solid #dce5d8;
	border-radius: 12px;
	text-align: center;
}
.wmi-newsletter-heading {
	margin: 0 0 6px;
	font-size: 17px;
	color: #2f3b2b;
}
.wmi-newsletter-copy {
	margin: 0 0 14px;
	font-size: 14px;
	color: #56604f;
}
a.wmi-newsletter-button,
.wmi-newsletter-cross-promo a.wmi-newsletter-button {
	display: inline-block;
	padding: 9px 22px;
	background: #7d9b76;
	color: #fff !important;
	font-weight: 700;
	text-decoration: none;
	border-radius: 999px;
}
a.wmi-newsletter-button:hover,
a.wmi-newsletter-button:focus {
	background: #6d8a67;
	color: #fff !important;
}
@media ( max-width: 680px ) {
	.wmi-promote-section,
	.wmi-newsletter-cross-promo {
		padding: 22px 16px;
	}
	.wmi-promote-heading {
		font-size: 19px;
	}
}
#wpbdp-categories ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
#wpbdp-categories > .wpbdp-categories > li {
	margin: 0 0 24px;
	font-size: 0;
}
#wpbdp-categories > .wpbdp-categories > li > a {
	display: block;
	padding: 0;
	margin: 0 0 12px;
	background: transparent;
	color: #585858;
	text-decoration: none;
	font-size: 18px;
	font-weight: 700;
}
#wpbdp-categories ul.children {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
}
#wpbdp-categories ul.children > li {
	display: block;
	margin: 0;
	font-size: 0;
}
#wpbdp-categories ul.children > li > a {
	display: flex;
	align-items: center;
	min-height: 74px;
	width: 100%;
	padding: 16px 20px;
	border: 1px solid #dce5d8;
	border-radius: 8px;
	background: #eef3ea;
	color: #2f3b2b;
	text-decoration: none;
	font-size: 16px;
	font-weight: 700;
}
#wpbdp-categories ul.children > li > a:hover,
#wpbdp-categories ul.children > li > a:focus {
	border-color: #7f9d79;
	background: #e6eee2;
}

@media (max-width: 680px) {
	.wmi-home-search form {
		flex-direction: column;
		align-items: stretch;
	}
}

/* ==========================================================================
   Individual business profile (single_content.tpl.php)
   ========================================================================== */

.wmi-profile-wrap {
	max-width: 1100px;
}
.wmi-profile-header {
	margin-bottom: 20px;
}
.wmi-profile-featured {
	border: 2px solid #2f6d3c;
	background: #f6faf4;
	border-radius: 8px;
	padding: 20px;
}
.wmi-profile-image {
	margin-bottom: 12px;
	max-width: 180px;
}
.wmi-profile-image img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	display: block;
}
.wmi-profile-title {
	font-size: 28px;
	margin: 0 0 6px;
	color: #2f3b2b;
}
.wmi-profile-subline {
	margin: 0;
	color: #55624e;
	font-size: 15px;
}

.wmi-profile-section {
	margin: 20px 0;
}
.wmi-profile-heading {
	font-size: 16px;
	color: #585858;
	margin: 0 0 8px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}
.wmi-profile-body {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: #333;
}

.wmi-profile-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.wmi-profile-pill {
	display: inline-block;
	padding: 5px 12px;
	border-radius: 999px;
	background: #eef3ea;
	color: #3a4a35;
	font-size: 13px;
}

.wmi-profile-notes {
	margin: 16px 0;
	padding: 12px 16px;
	background: #fdf8ee;
	border-left: 3px solid #d4a843;
	font-size: 14px;
	color: #55502f;
}

.wmi-profile-contact {
	border-top: 1px solid #e6e6e6;
	padding-top: 16px;
}
.wmi-profile-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.wmi-profile-action {
	display: inline-block;
	padding: 10px 20px;
	border-radius: 6px;
	text-decoration: none;
	font-size: 14px;
	font-weight: 600;
}
.wmi-profile-phone {
	background: #eef3ea;
	color: #2f6d3c;
}
.wmi-profile-website {
	background: #2f6d3c;
	color: #fff;
}
.wmi-profile-quote {
	background: #d4a843;
	color: #2b2b2b;
}

/* Suppress any leftover WordPress/theme chrome the plugin's own
   single.tpl.php wrapper or Astra might still print around this content
   (post meta, comments) as a defensive fallback alongside the site's
   existing Additional CSS. Scoped to the listing page only. */
.single-wpbdp_listing .entry-meta,
.single-wpbdp_listing .comments-area,
.single-wpbdp_listing #comments {
	display: none !important;
}

@media (max-width: 680px) {
	.wmi-proto-wrap {
		padding: 16px;
	}
	.wmi-featured-grid,
	.wmi-results-grid {
		grid-template-columns: 1fr;
	}
	#wpbdp-categories ul.children {
		grid-template-columns: 1fr;
	}
	.wmi-parent-category-grid,
	.wmi-subcategory-grid {
		grid-template-columns: 1fr;
	}
	.wmi-profile-actions {
		flex-direction: column;
		align-items: stretch;
	}
	.wmi-profile-action {
		text-align: center;
	}
}

/* ==========================================================================
   v2.6 -- Navigation and layout density
   ==========================================================================
   Breadcrumbs on every directory level, a "Back to [Subcategory]" link on
   business profiles, and tighter vertical spacing across category cards,
   heading panels, result cards and Basic profiles. Colors, fonts and the
   approved visual identity are unchanged. Every rule is scoped to
   directory markup or to directory-only body classes. */

/* ---- Space between the site header and directory content ---- */
.tax-wpbdp_category #primary,
.single-wpbdp_listing #primary {
	margin-top: 28px !important;
}

/* ---- Breadcrumbs (category pages and business profiles) ---- */
.wmi-breadcrumb {
	font-size: 13px;
	line-height: 1.5;
	color: #6b7d63;
	margin: 0 0 6px;
}
.wmi-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}
.wmi-breadcrumb li {
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 0;
}
.wmi-breadcrumb li + li::before {
	content: '\203A';
	margin: 0 7px;
	color: #9aa894;
}
.wmi-breadcrumb a {
	color: #2f6d3c;
	text-decoration: none;
}
.wmi-breadcrumb a:hover,
.wmi-breadcrumb a:focus {
	text-decoration: underline;
}
.wmi-breadcrumb [aria-current="page"] {
	color: #55624e;
}

/* ---- Category heading panels ---- */
.wmi-cat-header {
	padding: 14px 20px;
	margin-bottom: 14px;
}
.wmi-cat-breadcrumb {
	margin-bottom: 4px;
}
.wmi-cat-title {
	margin: 0 0 2px;
	line-height: 1.25;
}
.wmi-cat-subline {
	margin: 0 0 4px;
}
.wmi-subcategory-page .wmi-cat-subline {
	margin: 0;
}

/* ---- Space between headings and grids ---- */
.wmi-section-heading {
	margin: 16px 0 10px;
}

/* ---- Subcategory cards: 3 across desktop, 2 tablet, 1 mobile ---- */
.wmi-subcategory-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}
.wmi-subcategory-card {
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	gap: 12px;
	min-height: 0;
	padding: 14px 16px;
}
.wmi-subcategory-card .wmi-category-icon {
	flex: 0 0 auto;
	margin: 0;
}
.wmi-subcategory-info {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.wmi-subcategory-card strong {
	font-size: 17px;
	line-height: 1.3;
}
.wmi-subcategory-card .wmi-subcategory-cta {
	margin-top: 2px;
}

/* ---- Business result cards (2 across desktop, 1 mobile) ---- */
.wmi-featured-grid,
.wmi-results-grid {
	gap: 12px;
}
.wmi-card {
	min-height: 0;
	padding: 12px 14px;
	align-items: center;
}
.wmi-card-featured-section {
	min-height: 0;
	align-items: stretch;
}
.wmi-card-tile {
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
}
.wmi-card-tile-initial {
	font-size: 20px;
}
.wmi-card-featured-section .wmi-card-tile {
	height: 88px;
}
.wmi-card-title {
	margin: 0 0 2px;
	line-height: 1.3;
}
.wmi-card-town {
	margin: 0 0 4px;
}
.wmi-card-desc {
	margin: 0 0 6px;
}
.wmi-load-more {
	margin-top: 18px;
}

/* ---- Directory homepage: top-level category cards ---- */
.wmi-home-wrap {
	padding-top: 26px;
	padding-bottom: 24px;
}
.wmi-home-categories-subheading {
	margin-bottom: 18px;
}
.wmi-home-category-grid {
	gap: 14px;
}
.wmi-home-category-card {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas:
		"icon info chevron"
		"desc desc desc";
	align-items: center;
	column-gap: 12px;
	row-gap: 8px;
	min-height: 0;
	max-height: none;
	padding: 14px 16px;
}
.wmi-home-category-icon {
	grid-area: icon;
}
.wmi-home-category-info {
	grid-area: info;
	gap: 0;
}
.wmi-home-category-chevron {
	grid-area: chevron;
}
.wmi-home-category-desc {
	grid-area: desc;
	font-size: 13px;
	line-height: 1.4;
	color: #56604f;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.wmi-promote-section {
	margin-top: 28px;
}

/* ---- Business profiles ---- */
/* The profile template now prints the title beneath its breadcrumb, so
   the theme's duplicate entry header is hidden on listing pages only. */
.single-wpbdp_listing .entry-header {
	display: none !important;
}
/* Replaced by the template's own "Back to [Subcategory]" link. */
.single-wpbdp_listing .wpbdp-goback {
	display: none !important;
}
.wmi-profile-wrap {
	margin: 0;
	padding: 0 0 4px;
}
.wmi-profile-header {
	margin-bottom: 14px;
}
.wmi-profile-title {
	font-size: 32px;
	font-weight: 600;
	line-height: 1.2;
	color: #1a1a18;
	margin: 0 0 6px;
}
.wmi-profile-back {
	display: inline-block;
	margin-top: 8px;
	font-size: 14px;
	color: #2f6d3c;
	text-decoration: none;
}
.wmi-profile-back:hover,
.wmi-profile-back:focus {
	text-decoration: underline;
}
.wmi-profile-section {
	margin: 14px 0;
}
.wmi-profile-heading {
	margin: 0 0 6px;
}
.wmi-profile-contact {
	padding-top: 14px;
	margin-bottom: 0;
}
.single-wpbdp_listing .wpbdp-listing {
	margin-bottom: 8px;
}
.single-wpbdp_listing .wpbdp-listing-contact-form {
	margin: 0;
	padding-top: 0;
}
.single-wpbdp_listing .comments {
	margin: 0;
}
.single-wpbdp_listing article.wpbdp_listing {
	margin-bottom: 12px;
}
.single-wpbdp_listing .post-navigation {
	padding-top: 20px;
}

/* ---- Paragraph spacing ----
   The site theme gives every paragraph inside page content a 1.6em
   bottom margin, which outranked the spacing set above and left large
   gaps inside cards and heading panels. These two-class selectors keep
   the intended directory spacing. */
.wmi-proto-wrap .wmi-cat-subline {
	margin: 0 0 4px;
}
.wmi-proto-wrap.wmi-subcategory-page .wmi-cat-subline,
.wmi-proto-wrap .wmi-cat-count {
	margin: 0;
}
.wmi-proto-wrap .wmi-card-town {
	margin: 0 0 4px;
}
.wmi-proto-wrap .wmi-card-desc {
	margin: 0 0 6px;
}
.wmi-proto-wrap .wmi-profile-subline,
.wmi-proto-wrap .wmi-profile-body {
	margin: 0;
}
.wmi-proto-wrap .wmi-load-more-status {
	margin: 8px 0 0;
}
.wmi-proto-wrap .wmi-home-categories-subheading {
	margin: 0 0 18px;
}

/* ---- Subcategory card text keeps its original colors ---- */
.wmi-subcategory-card .wmi-subcategory-info {
	margin: 0;
	color: inherit;
	font-size: inherit;
	line-height: inherit;
}
.wmi-subcategory-card .wmi-subcategory-info .wmi-subcategory-cta {
	margin-top: 2px;
	color: #687563;
}

/* ---- Homepage category cards: tighter fit for the example line ---- */
.wmi-home-category-card {
	padding: 12px 14px;
	row-gap: 6px;
}
.wmi-home-category-desc {
	font-size: 12.5px;
	line-height: 1.35;
}

/* ---- Tablet ---- */
@media ( max-width: 1024px ) {
	.wmi-subcategory-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ---- Mobile ---- */
@media ( max-width: 680px ) {
	.tax-wpbdp_category #primary,
	.single-wpbdp_listing #primary {
		margin-top: 20px !important;
	}
	.wmi-subcategory-grid {
		grid-template-columns: 1fr;
	}
	.wmi-cat-header {
		padding: 12px 16px;
	}
	.wmi-cat-title {
		font-size: 24px;
	}
	.wmi-home-category-card {
		min-height: 0;
	}
	.wmi-home-category-desc {
		-webkit-line-clamp: unset;
		display: block;
	}
	.wmi-profile-title {
		font-size: 28px;
	}
	/* Accessible tap targets (44px) without making cards taller: the
	   link's tappable box grows while negative margins keep the layout. */
	.wmi-breadcrumb a {
		display: inline-block;
		padding: 13px 0;
		margin: -13px 0;
	}
	.wmi-breadcrumb {
		margin-bottom: 8px;
	}
	.wmi-card-title a {
		display: block;
		min-height: 44px;
		padding: 12px 0;
		margin: -12px 0;
	}
	.wmi-card-title {
		margin-bottom: 4px;
	}
	.wmi-proto-wrap .wmi-card-town {
		margin-bottom: 6px;
	}
	.wmi-card-meta a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		margin: -13px 0;
	}
	.wmi-profile-back {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		margin-top: 0;
	}
	.wmi-profile-action {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
	}
	.wmi-load-more-link {
		min-height: 44px;
	}
	.single-wpbdp_listing .wpbdp-listing-contact-form {
		margin-top: 12px;
	}
}

/* ==========================================================================
   v2.9 -- Basic profile ABOUT section
   ==========================================================================
   ABOUT replaces the former generic Location section on Basic profiles.
   It starts about 22px below the Back link (the header's 14px bottom
   margin collapses into this larger top margin), and CONTACT follows at
   the existing compact section spacing. */
.wmi-proto-wrap .wmi-profile-about {
	margin-top: 22px;
}

/* ==========================================================================
   v2.10 -- Filter by Town (subcategory results pages only)
   ==========================================================================
   The filter sits on the right side of the green subcategory banner on
   desktop and beneath the title and counts on mobile. Colors reuse the
   approved directory palette. */
.wmi-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.wmi-cat-header.wmi-cat-header-has-filter {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
}
.wmi-cat-header-main {
	min-width: 0;
	flex: 1 1 auto;
}
.wmi-town-filter {
	position: relative;
	flex: 0 0 auto;
	width: 240px;
	text-align: right;
}
.wmi-proto-wrap .wmi-town-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	min-height: 44px;
	padding: 10px 14px;
	border: 1px solid #c9d6c4;
	border-radius: 8px;
	background: #fff;
	color: #2f3b2b;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-align: left;
	cursor: pointer;
}
.wmi-proto-wrap .wmi-town-toggle:hover,
.wmi-proto-wrap .wmi-town-toggle:focus {
	border-color: #7f9d79;
	background: #fff;
	color: #2f3b2b;
}
.wmi-town-toggle-icon {
	width: 8px;
	height: 8px;
	border-right: 2px solid #687563;
	border-bottom: 2px solid #687563;
	transform: rotate(45deg) translateY(-2px);
	transition: transform 0.15s ease;
}
.wmi-town-open .wmi-town-toggle-icon {
	transform: rotate(-135deg) translateY(-2px);
}
.wmi-proto-wrap .wmi-town-status {
	margin: 4px 2px 0;
	font-size: 12px;
	color: #6b7d63;
	text-align: left;
}
.wmi-town-panel {
	position: absolute;
	top: 50px;
	right: 0;
	z-index: 50;
	width: 280px;
	max-width: calc(100vw - 40px);
	padding: 12px;
	border: 1px solid #dce5d8;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
	text-align: left;
}
.wmi-town-panel[hidden] {
	display: none;
}
.wmi-town-actions {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	padding-bottom: 8px;
	margin-bottom: 4px;
	border-bottom: 1px solid #eef3ea;
}
.wmi-proto-wrap .wmi-town-action {
	min-height: 36px;
	padding: 6px 4px;
	border: 0;
	background: transparent;
	color: #2f6d3c;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}
.wmi-proto-wrap .wmi-town-action:hover,
.wmi-proto-wrap .wmi-town-action:focus {
	background: transparent;
	color: #24562f;
}
.wmi-town-list {
	max-height: 260px;
	overflow-y: auto;
	margin: 0;
	padding: 0;
	border: 0;
}
.wmi-proto-wrap .wmi-town-option {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 40px;
	padding: 4px 6px;
	border-radius: 6px;
	font-size: 14px;
	color: #2f3b2b;
	cursor: pointer;
}
.wmi-proto-wrap .wmi-town-option:hover {
	background: #f6faf4;
}
.wmi-proto-wrap .wmi-town-checkbox {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: #2f6d3c;
	flex: 0 0 auto;
}
.wmi-proto-wrap .wmi-town-done {
	display: block;
	width: 100%;
	min-height: 40px;
	margin-top: 8px;
	padding: 8px 12px;
	border: 0;
	border-radius: 6px;
	background: #eef3ea;
	color: #2f6d3c;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}
.wmi-proto-wrap .wmi-town-done:hover,
.wmi-proto-wrap .wmi-town-done:focus {
	background: #e6eee2;
	color: #2f6d3c;
}
.wmi-proto-wrap .wmi-town-toggle:focus-visible,
.wmi-proto-wrap .wmi-town-action:focus-visible,
.wmi-proto-wrap .wmi-town-done:focus-visible,
.wmi-proto-wrap .wmi-town-checkbox:focus-visible {
	outline: 2px solid #2f6d3c;
	outline-offset: 2px;
}
.wmi-all-region[aria-busy="true"] {
	opacity: 0.6;
	transition: opacity 0.15s ease;
}
.wmi-proto-wrap .wmi-no-match {
	margin: 0;
	padding: 12px 14px;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	background: #f7f7f7;
	font-size: 14px;
	color: #555;
}
.wmi-proto-wrap .wmi-no-match .wmi-town-action {
	margin-left: 6px;
	min-height: 0;
	padding: 0;
	font-size: 14px;
}

@media ( max-width: 680px ) {
	.wmi-cat-header.wmi-cat-header-has-filter {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}
	.wmi-town-filter {
		width: 100%;
	}
	.wmi-town-panel {
		left: 0;
		right: 0;
		width: auto;
		max-width: none;
	}
	.wmi-proto-wrap .wmi-no-match .wmi-town-action {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		margin: -12px 0 -12px 6px;
	}
}
