/* Contractor Directory — front-end (.wcaps- prefix). */
.wcaps-contractors {
	display: flex;
	gap: 24px;
	align-items: stretch;
}
.wcaps-contractors__panel {
	flex: 0 0 42%;
	max-width: 42%;
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.wcaps-contractors__map {
	flex: 1 1 58%;
	border-radius: 8px;
	overflow: hidden;
	z-index: 0;
}
.wcaps-contractors__title {
	margin: 0 0 4px;
}
.wcaps-contractors__search {
	display: flex;
	gap: 8px;
	margin: 12px 0;
	flex-wrap: wrap;
}
.wcaps-contractors__zip {
	flex: 1 1 160px;
	padding: 10px 12px;
	border: 1px solid #ccc;
	border-radius: 6px;
	font-size: 15px;
}
.wcaps-contractors__cat {
	flex: 1 1 160px;
	padding: 10px 12px;
	border: 1px solid #ccc;
	border-radius: 6px;
}
.wcaps-contractors__go {
	padding: 10px 18px;
	border: 0;
	border-radius: 6px;
	background: #1a5cff;
	color: #fff;
	cursor: pointer;
	font-weight: 600;
}
.wcaps-contractors__go:hover { background: #1148cc; }
.wcaps-contractors__status {
	color: #666;
	font-size: 13px;
	margin-bottom: 8px;
}
.wcaps-contractors__list {
	list-style: none;
	margin: 0;
	padding: 0;
	overflow-y: auto;
	max-height: 520px;
}
.wcaps-contractors__item {
	padding: 12px 4px;
	border-bottom: 1px solid #eee;
	cursor: pointer;
}
.wcaps-contractors__item:hover { background: #f6f8ff; }
.wcaps-contractors__name {
	font-weight: 700;
	color: #1a5cff;
	text-transform: uppercase;
	font-size: 15px;
	display: flex;
	justify-content: space-between;
	gap: 10px;
}
.wcaps-contractors__dist {
	color: #666;
	font-weight: 600;
	text-transform: none;
	white-space: nowrap;
}
.wcaps-contractors__addr { color: #555; font-size: 13px; margin-top: 2px; }
.wcaps-contractors__cats { color: #888; font-size: 12px; margin-top: 2px; }
.wcaps-contractors__quote {
	display: inline-block;
	margin-top: 6px;
	font-weight: 600;
	text-decoration: none;
}
.wcaps-contractors__pager {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 12px 0 2px;
}
.wcaps-contractors__pgbtn {
	border: 1px solid #ccc;
	background: #fff;
	border-radius: 6px;
	padding: 6px 14px;
	cursor: pointer;
	font-size: 16px;
	line-height: 1;
}
.wcaps-contractors__pgbtn:hover:not( :disabled ) { background: #f0f4ff; border-color: #1a5cff; }
.wcaps-contractors__pgbtn:disabled { opacity: 0.4; cursor: default; }
.wcaps-contractors__pginfo { color: #555; font-size: 13px; }
/* Teardrop pins (div-icons) — strip Leaflet's default marker box. */
.wcaps-pin { background: none; border: 0; }
.wcaps-pin__wrap { display: block; filter: drop-shadow( 0 1px 1px rgba( 0, 0, 0, 0.35 ) ); }
.wcaps-pin--active { z-index: 1000 !important; }
.wcaps-pin--active .wcaps-pin__wrap {
	filter: drop-shadow( 0 3px 7px rgba( 0, 0, 0, 0.5 ) );
	animation: wcaps-pin-pop 0.25s ease;
}
@keyframes wcaps-pin-pop { from { transform: scale( 0.6 ); } to { transform: scale( 1 ); } }

/* "You are here" tooltip on the search-origin marker. */
.leaflet-tooltip.wcaps-here-tip {
	background: #d33;
	color: #fff;
	border: 0;
	font-weight: 600;
	padding: 4px 9px;
	box-shadow: 0 1px 4px rgba( 0, 0, 0, 0.3 );
}
.leaflet-tooltip.wcaps-here-tip.leaflet-tooltip-top::before { border-top-color: #d33; }
@media ( prefers-reduced-motion: reduce ) {
	.wcaps-pin--active .wcaps-pin__wrap { animation: none; }
}

/* §12.8 wheel-zoom hint overlay. */
.wcaps-contractors__map { position: relative; }
.wcaps-contractors__wheelhint {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba( 0, 0, 0, 0.45 );
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	text-align: center;
	padding: 12px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease;
	z-index: 500;
}
.wcaps-contractors__wheelhint.is-visible { opacity: 1; }
@media ( prefers-reduced-motion: reduce ) {
	.wcaps-contractors__wheelhint { transition: none; }
}

@media ( max-width: 782px ) {
	.wcaps-contractors { flex-direction: column; }
	.wcaps-contractors__panel,
	.wcaps-contractors__map { flex: 1 1 auto; max-width: 100%; }
	.wcaps-contractors__map { min-height: 360px; }
}
