
.csa-map {
	width: 100%;
}

.csa-state-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-bottom: 1rem;
}

.csa-state-tabs__tab {
	border: 1px solid #d9d9d9;
	background: #fff;
	color: #3b3a3a;
	border-radius: 999px;
	padding: .35rem .9rem;
	font-weight: 600;
	cursor: pointer;
}

.csa-state-tabs__tab.is-active {
	background: var(--csa-primary-color, #e21c21);
	border-color: var(--csa-primary-color, #e21c21);
	color: #fff;
}

.csa-map__canvas {
	width: 100%;
	min-height: var(--csa-map-height, 420px);
	border-radius: 1rem;
	overflow: hidden;
	background: #f7f7f7;
}

.csa-map__canvas img {
	max-width: none !important;
	max-height: none !important;
}

.csa-map__empty {
	margin: 0;
	padding: 1rem;
	background: #f7f7f7;
	border-radius: .75rem;
}

.csa-locator {
	width: 100%;
}

.csa-locator > .row {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1fr);
	width: 100%;
}

.csa-locator > .row > [class*="col-"] {
	max-width: none;
	width: 100%;
}

@media (min-width: 992px) {
	.csa-locator > .row {
		grid-template-columns: minmax(320px, 2fr) minmax(0, 3fr);
	}
}

.csa-locator__panel {
	height: 100%;
}

.csa-locator__map {
	height: 100%;
	width: 100%;
}

.csa-locator__search {
	margin-bottom: 1rem;
}

.csa-locator__search label {
	display: block;
	margin-bottom: .35rem;
	font-weight: 700;
}

.csa-locator__search input {
	width: 100%;
	border: 1px solid #d9d9d9;
	border-radius: .75rem;
	padding: .75rem 1rem;
}

.csa-locator__filters {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-bottom: .75rem;
}

.csa-locator__filter {
	border: 1px solid #d9d9d9;
	background: #fff;
	color: #3b3a3a;
	border-radius: 999px;
	padding: .35rem .85rem;
	font-weight: 700;
	cursor: pointer;
}

.csa-locator__filter.is-active {
	background: var(--csa-primary-color, #e21c21);
	border-color: var(--csa-primary-color, #e21c21);
	color: #fff;
}

.csa-locator__status {
	margin: 0 0 .75rem;
	font-size: .875rem;
}

.csa-locator__results {
	display: grid;
	gap: .75rem;
	max-height: var(--csa-map-height, 420px);
	overflow: auto;
	padding-right: .25rem;
}

.csa-locator-card {
	display: flex;
	width: 100%;
	align-items: flex-start;
	gap: .75rem;
	border: 1px solid #ececec;
	border-radius: .85rem;
	background: #fff;
	color: inherit;
	padding: .85rem 1rem;
	text-align: left;
	cursor: pointer;
}

.csa-locator-card:hover, .csa-locator-card:focus, .csa-locator-card.is-active {
	border-color: var(--csa-location-color, var(--csa-primary-color, #e21c21));
	box-shadow: 0 10px 25px rgba(0, 0, 0, .08);
}

.csa-locator-card__marker {
	flex: 0 0 auto;
	width: .95rem;
	height: .95rem;
	margin-top: .25rem;
	border: 2px solid #fff;
	border-radius: 999px;
	background: var(--csa-location-color, var(--csa-primary-color, #e21c21));
	box-shadow: 0 0 0 2px var(--csa-location-color, var(--csa-primary-color, #e21c21));
}

.csa-locator-card--sub_station .csa-locator-card__marker {
	background: var(--csa-location-color, #3b3a3a);
	box-shadow: 0 0 0 2px var(--csa-location-color, #3b3a3a);
}

.csa-locator-card__body {
	display: grid;
	gap: .1rem;
}

.csa-locator-card__body span, .csa-locator-card__body small {
	color: #666;
}

.csa-location-card__badge {
	margin-left: .5rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--csa-primary-color, #e21c21) 8%, transparent);
	color: var(--csa-primary-color, #e21c21);
	padding: .15rem .5rem;
	font-size: .75rem;
	font-weight: 700;
}

.csa-map__canvas .gm-style-iw-c {
	border-radius: 1.25rem;
	box-shadow: 0 18px 55px rgba(0, 0, 0, .2);
	max-height: none !important;
	padding: 0;
}

.csa-map__canvas .gm-style-iw-d {
	max-height: none !important;
	overflow: hidden !important;
}

.csa-map__canvas .gm-style-iw-chr {
	height: 0;
}

.csa-map__canvas .gm-style-iw-ch {
	padding: 0;
}

.csa-map__canvas .gm-ui-hover-effect {
	align-items: center !important;
	background: #fff !important;
	border: 1px solid #ececec !important;
	border-radius: 999px !important;
	box-shadow: 0 8px 20px rgba(0, 0, 0, .12) !important;
	display: inline-flex !important;
	height: 34px !important;
	justify-content: center !important;
	opacity: 1 !important;
	right: 10px !important;
	top: 10px !important;
	width: 34px !important;
	z-index: 2;
}

.csa-map__canvas .gm-ui-hover-effect > span, .csa-map__canvas .gm-ui-hover-effect img {
	display: none !important;
}

.csa-map__canvas .gm-ui-hover-effect::before {
	color: #3b3a3a;
	content: "×";
	display: block;
	font-size: 1.55rem;
	font-weight: 700;
	line-height: 1;
	transform: translateY(-1px);
}

.csa-map__canvas .gm-ui-hover-effect:hover::before, .csa-map__canvas .gm-ui-hover-effect:focus::before {
	color: var(--csa-location-color, var(--csa-primary-color, #e21c21));
}

.csa-info-window {
	background: #fff;
	color: #3b3a3a;
	display: grid;
	font-family: inherit;
	line-height: 1.45;
	max-width: min(320px, calc(100vw - 64px));
	min-width: 270px;
	overflow: hidden;
	position: relative;
}

.csa-info-window__accent {
	background: linear-gradient(90deg, var(--csa-location-color, var(--csa-primary-color, #e21c21)), color-mix(in srgb, var(--csa-location-color, var(--csa-primary-color, #e21c21)) 72%, #000), #000);
	height: .26rem;
	width: 100%;
}

.csa-info-window__header {
	display: grid;
	gap: .4rem;
	padding: 1rem 1.15rem .7rem;
	padding-right: 3.25rem;
}

.csa-info-window__title {
	color: #1d2327;
	font-size: clamp(1.05rem, 2.4vw, 1.22rem);
	font-weight: 900;
	letter-spacing: -.035em;
	line-height: 1.08;
}

.csa-info-window__badge {
	align-self: start;
	border-radius: 999px;
	display: inline-flex;
	font-size: .64rem;
	font-weight: 900;
	letter-spacing: .08em;
	line-height: 1;
	padding: .32rem .58rem;
	text-transform: uppercase;
	width: fit-content;
}

.csa-info-window__badge--hub {
	background: color-mix(in srgb, var(--csa-location-color, var(--csa-primary-color, #e21c21)) 12%, #fff);
	color: var(--csa-location-color, var(--csa-primary-color, #e21c21));
}

.csa-info-window__badge--sub-station {
	background: color-mix(in srgb, var(--csa-location-color, #3b3a3a) 12%, #fff);
	color: var(--csa-location-color, #3b3a3a);
}

.csa-info-window__google {
	border-top: 1px solid #f0f0f0;
	padding: .75rem 1.15rem;
}

.csa-google-business {
	display: grid;
	gap: .4rem;
}

.csa-google-business__name {
	color: #646970;
	display: block;
	font-size: .78rem;
	font-weight: 700;
}

.csa-google-business__score {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: .22rem .5rem;
}

.csa-google-business__rating {
	color: #1d2327;
	font-size: 1.25rem;
	font-weight: 900;
	letter-spacing: -.04em;
	line-height: 1;
}

.csa-google-business__stars {
	color: #f4b400;
	font-size: .88rem;
	letter-spacing: .03em;
	line-height: 1;
}

.csa-google-business__count {
	color: #646970;
	font-size: .82rem;
}

.csa-google-business--compact .csa-google-business__score {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
}

.csa-google-business--compact .csa-google-business__rating {
	font-size: .9rem;
}

.csa-google-business--compact .csa-google-business__count {
	grid-column: auto;
}

.csa-google-business__quote {
	background: #f7f7f7;
	border-left: 3px solid var(--csa-location-color, var(--csa-primary-color, #e21c21));
	border-radius: 0 .65rem .65rem 0;
	color: #3b3a3a;
	font-size: .86rem;
	font-style: italic;
	line-height: 1.5;
	margin: 0;
	padding: .7rem .8rem;
}

.csa-google-business__link {
	color: var(--csa-location-color, var(--csa-primary-color, #e21c21));
	font-size: .82rem;
	font-weight: 800;
	text-decoration: none;
	width: fit-content;
}

.csa-google-business__link:hover, .csa-google-business__link:focus {
	color: color-mix(in srgb, var(--csa-location-color, var(--csa-primary-color, #e21c21)) 78%, #000);
	text-decoration: underline;
}

.csa-info-window__contact {
	background: #fafafa;
	border-top: 1px solid #f0f0f0;
	display: grid;
	gap: .4rem;
	padding: .72rem 1.15rem;
}

.csa-info-window__address, .csa-info-window__phone {
	align-items: start;
	color: #3b3a3a;
	display: grid;
	font-size: .82rem;
	gap: .15rem;
	margin: 0;
}

.csa-info-window__address span, .csa-info-window__phone span {
	color: #8c8c8c;
	font-size: .62rem;
	font-weight: 900;
	letter-spacing: .08em;
	line-height: 1;
	text-transform: uppercase;
}

.csa-info-window__phone a {
	color: #1d2327;
	font-weight: 800;
	text-decoration: none;
}

.csa-info-window__phone a:hover, .csa-info-window__phone a:focus {
	color: var(--csa-location-color, var(--csa-primary-color, #e21c21));
	text-decoration: underline;
}

.csa-locator-card__rating {
	align-items: center;
	display: inline-flex;
	gap: .35rem;
	margin-top: .15rem;
}

.csa-locator-card__rating-value {
	color: #1d2327;
	font-size: .82rem;
	font-weight: 800;
}

.csa-locator-card__stars {
	color: #f4b400;
	font-size: .78rem;
	letter-spacing: .02em;
}

.csa-info-window p {
	margin: 0;
}

.csa-info-window__actions {
	background: #fff;
	border-top: 1px solid #ececec;
	display: grid;
	gap: .55rem;
	grid-template-columns: 1fr;
	padding: .75rem 1.15rem .95rem;
}

.csa-info-window__action {
	align-items: center;
	border-radius: .75rem;
	display: inline-flex;
	font-size: .78rem;
	font-weight: 900;
	justify-content: center;
	line-height: 1.2;
	min-height: 2.25rem;
	padding: .48rem .72rem;
	text-align: center;
	text-decoration: none;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.csa-info-window__action--primary {
	background: var(--csa-location-color, var(--csa-primary-color, #e21c21));
	border: 1px solid var(--csa-location-color, var(--csa-primary-color, #e21c21));
	color: #fff !important;
}

.csa-info-window__action--primary:hover, .csa-info-window__action--primary:focus {
	background: color-mix(in srgb, var(--csa-location-color, var(--csa-primary-color, #e21c21)) 78%, #000);
	border-color: color-mix(in srgb, var(--csa-location-color, var(--csa-primary-color, #e21c21)) 78%, #000);
	color: #fff !important;
}

.csa-info-window__action--secondary {
	background: #fff;
	border: 1px solid #d9d9d9;
	color: #3b3a3a;
}

.csa-info-window__action--secondary:hover, .csa-info-window__action--secondary:focus {
	border-color: #3b3a3a;
	color: #1d2327;
}

.csa-location-cards {
	display: grid;
	gap: .75rem;
}

.csa-location-card {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .85rem 1rem;
	border: 1px solid #ececec;
	border-radius: .75rem;
	text-decoration: none;
	color: inherit;
	background: #fff;
}

.csa-location-card:hover, .csa-location-card:focus {
	border-color: var(--csa-primary-color, #e21c21);
	color: inherit;
}

.csa-location-card .csa-location-card__icon {
	display: inline-flex;
	width: 2rem;
	height: 2rem;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: color-mix(in srgb, var(--csa-primary-color, #e21c21) 8%, transparent);
}

.csa-location-card .csa-location-card__icon svg {
	width: 1rem;
	height: 1rem;
	fill: none;
	stroke: var(--csa-primary-color, #e21c21);
	stroke-width: 1.8;
}

.csa-location-card .csa-location-card__arrow {
	margin-left: auto;
	color: var(--csa-primary-color, #e21c21);
}

.csa-hub-map-preview {
	width: 100%;
	height: 220px;
	margin-top: 1rem;
	border: 1px solid #ddd;
	border-radius: .5rem;
}

.csa-single__map {
	min-height: 280px;
	border-radius: .75rem;
	overflow: hidden;
	margin-bottom: 1.5rem;
}

.csa-single__meta {
	margin-bottom: 1rem;
}

.csa-single__cities ul {
	columns: 2;
	gap: 1.5rem;
	margin: 0;
	padding-left: 1.1rem;
}

@media (max-width: 767.98px) {
	.csa-single__cities ul {
		columns: 1;
	}
}
