/* =============================================================
   Pro Locations – City Location Search
   ============================================================= */

#prolocations-search-wrap {
	width: 100%;
	padding-bottom: 28px;
}

#prolocations-search-ui {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	flex-wrap: wrap;
	padding: 12px 0 28px 0;
	width: 780px;
	max-width: 100%;
}

/* Map + results side-by-side on desktop */
#prolocations-map-results {
	display: flex;
	align-items: stretch;
	gap: 0;
}

#prolocations-map {
	flex: 1 1 auto;
	min-width: 0;
	height: 600px;
	position: relative;
	z-index: 0;
	isolation: isolate;
}

#prolocations-map .gm-style-moc {
	display: none !important;
}

@media (max-width: 991.9px) {
	#prolocations-map-results {
		flex-direction: column-reverse;
	}
	#prolocations-map {
		height: 400px;
	}
}

.prolocations-field-wrap {
	position: relative;
	flex: 1 1 180px;
}

#prolocations-city-input,
#prolocations-service-select {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid #c9d5df;
	border-radius: 4px;
	font-size: 14px;
	box-sizing: border-box;
	height: 48px;
}

#prolocations-city-input:focus,
#prolocations-service-select:focus {
	border-color: #1e75be!important;
}

#prolocations-autocomplete-list {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid #ccc;
	border-top: none;
	border-radius: 0 0 4px 4px;
	z-index: 20;
	max-height: 200px;
	overflow-y: auto;
}

#prolocations-autocomplete-list:empty {
	opacity: 0;
}

.prolocations-ac-item {
	padding: 8px 10px;
	cursor: pointer;
	font-size: 14px;
}

.prolocations-ac-item:hover,
.prolocations-ac-item:focus,
.prolocations-ac-item.is-active {
	background: #f0f4ff;
}

#prolocations-search-btn {
	color: #fff;
	border: none;
	cursor: pointer;
	white-space: nowrap;
	align-self: flex-end;
}

#prolocations-search-btn:disabled {
	background: #93c5fd;
	cursor: not-allowed;
}

@media (max-width: 599.9px) {
	#prolocations-search-btn {
		width: 100%;
	}
}

/*cities overrides */

#prolocations-map-results .prolocations-result-distance {
	display: none;
}


/* ----------------------------------------------------------
   Results panel – left sidebar on desktop
   ---------------------------------------------------------- */

#prolocations-results {
	container-type: inline-size;

	overflow-y: auto;
	border-right: 1px solid #eee;
	position: relative;
}

@media (min-width: 992px) {
	#prolocations-results { 
		flex: 0 0 500px;
		width: 500px;
		height: 600px;
		max-width: 50%;
		background: #fff;
	}
}

#prolocations-results:empty {
	display: none;
}

#prolocations-results {
	scrollbar-color: #1E75BE transparent;
	scrollbar-width: thin;
}

#prolocations-results::-webkit-scrollbar {
	width: 6px;
}

#prolocations-results::-webkit-scrollbar-track {
	background: transparent;
}

#prolocations-results::-webkit-scrollbar-thumb {
	background-color: #1E75BE;
	border-radius: 3px;
}

/* Grid: single column inside the sidebar; expands to multi-column on mobile (full width) */
@keyframes prolocations-results-in {
	from { opacity: 0; transform: translateX(-10px); }
	to   { opacity: 1; transform: translateX(0); }
}

#prolocations-results .container {
	width: 500px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	animation: prolocations-results-in 0.5s ease;
	padding-left: 0;
	padding-right: 0;
	border: 1px solid #C9D5DF;
	max-width: 100%;
}

@media (max-width: 991.9px) {
	#prolocations-results .container {
		width: auto;
		background: #fff;
	}
}

#prolocations-results .container:before,
#prolocations-results .container:after {
	display: none;
}

#prolocations-results .prolocations-result-item {
	padding: 20px;
	border-radius: 0;
	border-left: none;
	border-right: none;
	border-top: none;
}

@media (max-width: 991.9px) {
	#prolocations-results {
		flex: none;
		width: 100%;
		height: auto;
		max-height: 60vh;
		border-right: none;
		border-top: 1px solid #eee;
	}
}

.prolocations-result-item {
	position: relative;
	padding: 12px;
	border: 1px solid #eee;
	border-radius: 6px;
	font-size: 15px;
}

.prolocations-result-item a:not(.btn) {
	font-weight: 400;
	text-decoration: none;

}

.prolocations-result-item a.prolocation-state-title,
.prolocations-result-item .prolocation-state-title > a,
.prolocations-result-item a.prolocation-city-title {
	color: #1E75BE;
	font-family: Montserrat;
	font-size: 20px;
	font-style: normal;
	font-weight: 700;
	line-height: 110%; /* 22px */
}
.prolocations-result-item a.prolocation-city-title {
	margin-bottom:4px;
}

.prolocations-result-item h3.prolocation-state-title {
	margin-top: 0;
	margin-bottom: 4px;
}

.prolocations-result-item .service-description {
	color: #222;
	font-family: "Open Sans";
	font-size: 14px;
	font-style: normal;
	font-weight: 400;
	line-height: 140%;	
	margin-top: 8px;
}

.prolocations-result-distance {
	display: block;
	margin-top: 4px;
	color: #888;
	font-size: 12px;
	font-weight: normal;
}



/* ----------------------------------------------------------
   Result card layout
   ---------------------------------------------------------- */

.prolocations-card-header {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: baseline;
	gap: 8px;
}

.prolocations-card-header .strong {
	font-weight: bold;
}

.prolocations-card-service {
	margin: 6px 0 0;
	font-size: 13px;
	color: #555;
}

.prolocations-card-service a {
	color: #1E75BE;
	font-family: Montserrat;
	font-size: 20px;
	font-style: normal;
	font-weight: 700;
	line-height: 110%; /* 22px */
}


.prolocations-result-item .prolocations-card-contact {
	margin: 4px 0 0;
	font-size: 13px;
	color: #222;
	font-family: "Open Sans";
	font-size: 16px;
	font-style: normal;
	font-weight: 700;
	line-height: 120%;
}
.prolocations-result-item .prolocations-card-contact a {
	color: #1E75BE;
	font-family: "Open Sans";
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	line-height: 120%;
}
.prolocations-card-actions {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 10px;
}

.prolocations-view-more {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: none;
	border: none;
	padding: 0;
	font-size: 13px;
	cursor: pointer;
	color: inherit;
}

.prolocations-view-more svg {
	transition: transform .2s ease;
	flex-shrink: 0;
}

.prolocations-view-more.is-open svg {
	transform: rotate(90deg);
}

/* Desktop: show hours as absolute popover on "See details" hover.
   Scoped to the states grid only — inside #prolocations-results the panel
   is already scrollable so we leave hours inline to avoid z-index bleed
   onto the adjacent map. */
@media (hover: hover) {
	.prolocations-states-results .prolocations-result-item .prolocations-hours {
		display: block !important;
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		z-index: 20;
		background: #fff;
		border: 1px solid #eee;
		border-radius: 0 0 6px 6px;
		padding: 12px;
		box-shadow: 0 6px 16px rgba(0,0,0,.12);
		margin-top: 0;
		padding-top: 12px;
		border-top: none;
		opacity: 0;
		pointer-events: none;
		transition: opacity .2s ease;
	}
	.prolocations-states-results .prolocations-result-item:has(.prolocations-view-more:hover) .prolocations-hours,
	.prolocations-states-results .prolocations-result-item .prolocations-hours:hover {
		opacity: 1;
		pointer-events: auto;
	}
}

.prolocations-hours {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid #eee;
}

.prolocations-hours-title {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
}

.prolocations-hours-list {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2px 12px;
	margin: 0;
	font-size: 13px;
}

.prolocations-hours-list dt {
	font-weight: 500;
}

.prolocations-hours-list dd {
	margin: 0;
	color: #555;
}

/* ----------------------------------------------------------
   States shortcode — tabs
   ---------------------------------------------------------- */

.prolocations-states-wrap {
	text-align: center;
}

.prolocations-states-panel {
	text-align: left;
}
.prolocations-states-select {
	display: none;
	width: 100%;
	padding: 10px 14px;
	font-size: 14px;
	font-weight: 700;
	border: 1px solid #C9D5DF;
	border-radius: 8px;
	background: #fff;
	margin-bottom: 20px;
	box-sizing: border-box;
}

@media (max-width: 767px) {
	.prolocations-states-select { display: block; }
	.prolocations-states-tabs   { display: none !important; }
}

.prolocations-states-tabs {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0;
	margin-top: 28px;
	margin-bottom: 28px;
	justify-content: center;
	box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.04), 0 8px 16px 0 rgba(0, 0, 0, 0.08);
	border-radius: 8px;
}

.prolocations-states-tab {
	display: flex;
	padding: 16px 20px;
	justify-content: center;
	align-items: center;
	color: #222;
	text-align: center;
	font-family: "Open Sans";
	font-size: 14px;
	font-style: normal;
	font-weight: 700;
	line-height: 16px; /* 114.286% */
	border: 1px solid #C9D5DF;
	background-color: #fff;
}

.prolocations-states-tab:first-child {
	border-radius: 8px 0 0 8px;
}

.prolocations-states-tab:last-child {
	border-radius: 0 8px 8px 0;
}

.prolocations-states-tab:not(:first-child) {
	margin-left: -1px;
}

.prolocations-states-tab.is-active {
	color: #fff;
	border: #1E75BE;
	background-color: #1E75BE;

}



/* States grid — table-like shared borders */
.prolocations-states-results { container-type: inline-size; }

.prolocations-states-results .container {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	width: auto;
	background: #fff;
	border: 1px solid #d0dce8;
	border-radius: 4px;
	overflow: hidden;
	padding: 0;
}

.prolocations-states-results .container:before,
.prolocations-states-results .container:after { display: none !important; }

.prolocations-states-results .prolocations-result-item {
	border-radius: 0;
	border: none;
	border-right: 1px solid #C9D5DF;
	border-bottom: 1px solid #C9D5DF;
	padding: 20px;
}

@container (min-width: 400px) {
	.prolocations-states-results .container { grid-template-columns: repeat(2,1fr); }
	.prolocations-states-results .prolocations-result-item:nth-child(2n) { border-right: none; }
}
@container (min-width: 650px) {
	.prolocations-states-results .container { grid-template-columns: repeat(3,1fr); }
	.prolocations-states-results .prolocations-result-item:nth-child(2n) { border-right: 1px solid #d0dce8; }
	.prolocations-states-results .prolocations-result-item:nth-child(3n) { border-right: none; }
}
@container (min-width: 900px) {
	.prolocations-states-results .container { grid-template-columns: repeat(4,1fr); }
	.prolocations-states-results .prolocations-result-item:nth-child(3n) { border-right: 1px solid #d0dce8; }
	.prolocations-states-results .prolocations-result-item:nth-child(4n) { border-right: none; }
}



/* map */

.prolocation-city-title-map {
	font-weight: bold;
	color: #1E75BE!important;
	font-family: Montserrat;
	font-size: 18px;
	font-style: normal;
	font-weight: 700;
	line-height: 110%;
	margin-bottom: 4px;
}

.prolocation-city-title-map + .map-marker-info a {
	color: #1E75BE!important;
	font-weight: bold;
}

a.prolocation-city-title-map:focus {
	outline: none!important;
	text-decoration:none;
}
a.prolocation-city-title-map:hover {
	text-decoration:none;
}

.prolocation-city-title-map-city {
	/*font-weight: bold;*/
	margin-bottom: 0;
	display: block;
}

.map-btn {
	padding: 8px 16px!important;
}


#prolocations-map .gm-style-iw.gm-style-iw-c {
	max-width: 320px!important;
}

.prolocations-states-results {
	margin-bottom: 28px;
}

