/* KC Listing Highlights — minimal pastel badges (dubizzle-style), open status, Save, report strip. */

.kc-lh {
	--kc-lh-ink: #2b2d33;
	--kc-lh-muted: #6b7079;
	--kc-lh-line: #e7e8ec;
	--kc-lh-red: #e0262b;
	font-size: 13px;
	line-height: 1.35;
	color: var(--kc-lh-ink);
}
.kc-lh .fa-solid, .kc-lh .fa-regular { font-size: 0.92em; }

/* Pills: soft tint, darker text of the same hue, no border. */
.kc-lh-pill,
.kc-listing-labels span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	height: 24px;
	padding: 0 9px;
	border: 0;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	background: #f1f2f4;
	color: #4a4f57;
}
.kc-lh-green  { background: #e5f6ec; color: #17763f; }
.kc-lh-blue   { background: #e7f0fd; color: #1f5fbf; }
.kc-lh-amber  { background: #fff3d9; color: #8c5a00; }
.kc-lh-pink   { background: #fde8ef; color: #b02358; }
.kc-lh-violet { background: #efe9fd; color: #5f3dc4; }
.kc-lh-teal   { background: #e2f5f3; color: #0f7065; }

/* The theme's "Listing labels" on cards, in the same style (each label has its own icon). */
.kc-listing-labels { display: flex; flex-wrap: wrap; gap: 6px; }
.kc-listing-labels span { margin: 0 !important; height: 22px; font-size: 11.5px; }
.kc-listing-labels span i {
	background: none !important;
	color: inherit !important;
	padding: 0 !important;
	margin: 0 !important;
	font-size: 0.9em;
}
.kc-listing-labels span:has(> .fa-crown, > .fa-star, > .fa-medal, > .fa-award, > .fa-thumbs-up) { background: #fff3d9; color: #8c5a00; }
.kc-listing-labels span:has(> .fa-heart, > .fa-arrow-trend-up, > .fa-fire, > .fa-chart-line, > .fa-bolt) { background: #fde8ef; color: #b02358; }
.kc-listing-labels span:has(> .fa-shield-halved, > .fa-circle-check, > .fa-graduation-cap, > .fa-face-smile) { background: #e5f6ec; color: #17763f; }
.kc-listing-labels span:has(> .fa-handshake, > .fa-headset, > .fa-rocket) { background: #efe9fd; color: #5f3dc4; }
.kc-listing-labels span:has(> .fa-chart-simple, > .fa-magnifying-glass, > .fa-location-dot, > .fa-eye) { background: #e7f0fd; color: #1f5fbf; }
.kc-listing-labels span:has(> .fa-tags, > .fa-dollar-sign, > .fa-money-bill) { background: #e2f5f3; color: #0f7065; }

/* Rating and open status */
.kc-lh-rating {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--kc-lh-ink);
	text-decoration: none;
	white-space: nowrap;
}
.kc-lh-rating .fa-star { color: #f5a623; }
.kc-lh-rating b { font-weight: 700; }
.kc-lh-rating span { color: var(--kc-lh-muted); }
a.kc-lh-rating:hover span { text-decoration: underline; }
.kc-lh-rating.is-empty, .kc-lh-rating.is-empty .fa-star { color: var(--kc-lh-muted); }

.kc-lh-hours {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-weight: 600;
	white-space: nowrap;
}
.kc-lh-hours[hidden] { display: none; }
.kc-lh-hours.is-open   { color: #17763f; }
.kc-lh-hours.is-soon   { color: #a35f00; }
.kc-lh-hours.is-closed { color: #c23a3a; }

/* ---- Single listing section ---------------------------------------------------------- */

.kc-lh-section {
	margin: 8px 0 14px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.kc-lh-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}
.kc-lh-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	min-width: 0;
}
.kc-lh-badges:empty { display: none; }
.kc-lh-facts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 16px;
	font-size: 14px;
}
.kc-lh-place {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: var(--kc-lh-muted);
}
.kc-lh-place .fa-location-dot { color: var(--kc-lh-red); }
.kc-lh-place a { color: var(--kc-lh-ink); text-decoration: none; }
.kc-lh-place a:hover { text-decoration: underline; }

/* Save */
.kc-lh-fav {
	flex: none;
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 34px;
	padding: 0 14px;
	border: 1px solid var(--kc-lh-line);
	border-radius: 999px;
	background: #fff;
	color: var(--kc-lh-ink) !important;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none !important;
	transition: border-color .15s, background-color .15s;
}
.kc-lh-fav:hover { border-color: #c9ccd3; }
.kc-lh-fav .favourite-icon { font-size: 15px; color: #9aa0a8; }
.kc-lh-fav.added { background: #fdeeee; border-color: #f6caca; }
.kc-lh-fav.added .favourite-icon { color: var(--kc-lh-red); }

/* The section has its own Save and place line: hide DirectoryPress's duplicates on this page. */
body:has(.kc-lh-section) .single-listing-btns li:has(> .bookmark-button),
body:has(.kc-lh-section) .mobile-single-listing-btns li:has(> .bookmark-button) { display: none !important; }
body:has(.kc-lh-place) .mobile-single-listing-location { display: none !important; }

/* ---- Listing cards ------------------------------------------------------------------- */

.kc-lh-card {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin: 4px 0 6px;
	font-size: 12.5px;
}
.kc-lh-card .kc-lh-pill { height: 22px; padding: 0 8px; font-size: 11.5px; }

/* ---- Report strip -------------------------------------------------------------------- */

.kc-lh-report {
	margin: 18px 0;
	padding: 14px 16px;
	border-radius: 10px;
	background: #fdf4e7;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
	font-size: 13px;
	color: #2b2d33;
}
.kc-lh-report-head { display: flex; flex-direction: column; gap: 2px; min-width: 200px; }
.kc-lh-report-head strong { font-size: 14px; font-weight: 700; }
.kc-lh-report-head span { color: #6b7079; font-size: 12.5px; }
.kc-lh-report-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.kc-lh-report-btns[hidden] { display: none; }
.kc-lh-report-btn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	height: 34px;
	padding: 0 12px;
	border: 1px solid #ecdcc4;
	border-radius: 6px;
	background: #fff;
	color: #2b2d33;
	font: inherit;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: border-color .15s, box-shadow .15s;
}
.kc-lh-report-btn i { color: #6b7079; }
.kc-lh-report-btn:hover { border-color: #d9bf98; }
.kc-lh-report-btn.is-on { border-color: #e0a85a; box-shadow: 0 0 0 2px #f8e2c1; }
.kc-lh-report-form { flex: 1 1 100%; display: flex; flex-direction: column; gap: 8px; }
.kc-lh-report-form[hidden] { display: none; }
.kc-lh-report-label { font-weight: 600; margin: 0; }
.kc-lh-report-form textarea,
.kc-lh-report-form input[type="text"] {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #e3d3bb;
	border-radius: 6px;
	background: #fff;
	padding: 8px 10px;
	font: inherit;
	font-size: 13px;
	margin: 0;
}
.kc-lh-report-form textarea { min-height: 60px; resize: vertical; }
.kc-lh-report-row { display: flex; flex-wrap: wrap; gap: 8px; }
.kc-lh-report-row input[type="text"] { flex: 1 1 220px; width: auto; height: 38px; }
.kc-lh-report-send, .kc-lh-report-cancel {
	height: 38px;
	padding: 0 16px;
	border-radius: 6px;
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}
.kc-lh-report-send { border: 0; background: #e0262b; color: #fff; }
.kc-lh-report-send[disabled] { opacity: .6; cursor: default; }
.kc-lh-report-cancel { border: 1px solid #e3d3bb; background: #fff; color: #2b2d33; }
.kc-lh-report-msg { margin: 0; color: #c23a3a; font-size: 12.5px; }
.kc-lh-report-msg:empty { display: none; }
.kc-lh-report-done { margin: 0; color: #17763f; font-weight: 600; display: inline-flex; gap: 6px; align-items: center; }
.kc-lh-report-done[hidden] { display: none; }
.kc-lh-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0; }

@media (max-width: 767px) {
	.kc-lh-facts { font-size: 13px; gap: 6px 12px; }
	.kc-lh-fav { height: 32px; padding: 0 12px; }
	.kc-lh-report { padding: 14px; gap: 10px; }
	.kc-lh-report-btns { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
	.kc-lh-report-btn { justify-content: flex-start; height: 40px; padding: 0 10px; font-size: 12px; white-space: nowrap; }
	.kc-lh-report-row input[type="text"] { flex: 1 1 100%; }
	.kc-lh-report-row > button { flex: 1; white-space: nowrap; }
	.kc-lh-report-done { font-size: 13px; }
}

/* Links added under the facts by other plugins (KC Claim Listing). */
.kc-lh-extra { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 13px; }
.kc-lh-extra:empty { display: none; }

/* Save at the right end of the badge row (or of the facts row when there are no badges). */
.kc-lh-top .kc-lh-badges { flex: 1; align-items: center; }

/* ---- 1.2.0: Share + Save, categories, card "+N", dashboard picker -------------------- */

.kc-lh-actions { flex: none; margin-left: auto; display: flex; align-items: center; gap: 8px; }
.kc-lh-actions .kc-lh-fav { margin-left: 0; }
.kc-lh-share-wrap { position: relative; }
.kc-lh-share {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 34px;
	padding: 0 14px;
	border: 1px solid var(--kc-lh-line);
	border-radius: 999px;
	background: #fff;
	color: var(--kc-lh-ink);
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
}
.kc-lh-share:hover { border-color: #c9ccd3; }
.kc-lh-share .fa-share-nodes { color: #6b7079; font-size: 14px; }
.kc-lh-share-menu {
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
	z-index: 50;
	min-width: 180px;
	padding: 6px;
	border: 1px solid var(--kc-lh-line);
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(20, 23, 31, .12);
	display: flex;
	flex-direction: column;
}
.kc-lh-share-menu[hidden] { display: none; }
.kc-lh-share-menu a,
.kc-lh-share-menu button {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 10px;
	border: 0;
	border-radius: 6px;
	background: none;
	color: var(--kc-lh-ink) !important;
	font: inherit;
	font-size: 13px;
	text-align: left;
	text-decoration: none !important;
	cursor: pointer;
}
.kc-lh-share-menu a:hover,
.kc-lh-share-menu button:hover { background: #f4f5f7; }
.kc-lh-share-menu i { width: 16px; text-align: center; color: #6b7079; }
.kc-lh-share-menu .fa-whatsapp { color: #1fa855; }
.kc-lh-share-menu .fa-facebook-f { color: #1877f2; }

/* DirectoryPress's own Share sits next to the section's Share: hidden on this page. */
body:has(.kc-lh-share) .single-listing-btns li:has(> .share-button),
body:has(.kc-lh-share) .mobile-single-listing-btns li:has(.share-button) { display: none !important; }

.kc-lh-cats { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12.5px; }
.kc-lh-cats-label { color: var(--kc-lh-muted); margin-right: 2px; }
.kc-lh-cat {
	display: inline-flex;
	align-items: center;
	height: 24px;
	padding: 0 9px;
	border-radius: 4px;
	background: #f1f2f4;
	color: #4a4f57 !important;
	text-decoration: none !important;
}
.kc-lh-cat:hover { background: #e7e9ed; }
.kc-lh-cat.is-primary { background: #e7f0fd; color: #1f5fbf !important; font-weight: 600; }

.kc-lh-cat-more {
	display: inline-flex;
	align-items: center;
	height: 18px;
	padding: 0 6px;
	margin-left: 4px;
	border-radius: 4px;
	background: #f1f2f4;
	color: #6b7079;
	font-size: 11px;
	font-weight: 600;
	vertical-align: middle;
}

.kc-lh-primary-form { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.kc-lh-primary-options { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.kc-lh-primary-option { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border: 1px solid #e3e5ea; border-radius: 10px; cursor: pointer; margin: 0; }
.kc-lh-primary-option:has(input:checked) { border-color: #1f5fbf; background: #f4f8fe; box-shadow: 0 0 0 1px #1f5fbf; }
.kc-lh-primary-option input { margin-top: 3px; }
.kc-lh-primary-option span { display: flex; flex-direction: column; gap: 2px; }
.kc-lh-primary-option small { color: #6b7079; }
.kc-lh-primary-form .kc-bp-button { align-self: flex-start; }

@media (max-width: 767px) {
	.kc-lh-share { height: 32px; padding: 0 12px; }
}
.kc-lh-cats .is-extra { display: none; }
.kc-lh-cats.is-all .is-extra { display: inline-flex; }
.kc-lh-cats.is-all .kc-lh-cats-more { display: none; }
.kc-lh-cats-more { border: 1px dashed #c9ccd3; background: #fff; font: inherit; font-size: 12.5px; cursor: pointer; }

/* "Updated …" beside the published date (DirectoryPress meta row). */
.kc-lh-updated i { margin-right: 4px; }
@media (max-width: 767px) {
	.kc-lh-cats-label { display: none; }
}

/* Share menu brand icons are inline SVG (the site loads no Font Awesome brands font). */
.kc-lh-share-menu .kc-lh-ico { width: 18px; height: 18px; flex: none; }

/* ---- 1.3.0: highlight quote ---------------------------------------------------------- */
.kc-lh-quote {
	margin: 6px 0 10px;
	padding: 1px 0 1px 10px;
	border-left: 2px solid #e3e6ec;
	color: #5b6069;
	font-size: 13px;
	font-style: italic;
	font-weight: 400;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.kc-lh-quote.is-single { font-size: 14px; margin: 0; -webkit-line-clamp: unset; }
.kc-lh-quote-form { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.kc-lh-quote-form textarea { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid #d9dce2; border-radius: 8px; font: inherit; resize: vertical; }
.kc-lh-quote-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.kc-lh-count { color: #6b7079; font-size: 12.5px; }

/* Phones: the date / updated / views / id line in two tidy lines (date · updated, views · id). */
@media (max-width: 767px) {
	.directorypress-single-content-area .listing-metas-single {
		display: grid !important;
		grid-template-columns: auto auto;
		justify-content: start;
		gap: 4px 0;
	}
	.directorypress-single-content-area .listing-metas-single::before,
	.directorypress-single-content-area .listing-metas-single::after { display: none !important; }
	.directorypress-single-content-area .listing-metas-single > div {
		float: none !important;
		margin: 0 !important;
		padding: 0 10px 0 0 !important;
		white-space: nowrap;
	}
	.directorypress-single-content-area .listing-metas-single > div:nth-child(odd) {
		margin-right: 10px !important;
		border-right: 1px solid #cfd9e0 !important;
	}
	.directorypress-single-content-area .listing-metas-single > div:nth-child(even) { border-right: 0 !important; }
}
