.asa-local-info,
.asa-local-hours,
.asa-local-map {
	--asa-local-accent: #412451;
	--asa-local-border: #e5e1e7;
	color: inherit;
}

.asa-local-name,
.asa-local-hours-title,
.asa-local-map-title {
	margin-bottom: .75rem;
	color: var(--asa-local-accent);
	font-size: 1.15em;
	font-weight: 700;
}

.asa-local-info-row {
	display: grid;
	grid-template-columns: minmax(90px, .35fr) 1fr;
	gap: .75rem;
	padding: .45rem 0;
	border-bottom: 1px solid var(--asa-local-border);
}

.asa-local-info-row:last-child { border-bottom: 0; }
.asa-local-label { font-weight: 650; }
.asa-local-value address { margin: 0; font-style: normal; }
.asa-local-info a,
.asa-local-directions,
.asa-location-card a { color: var(--asa-local-accent); }

.asa-local-hours ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.asa-local-hours > ul > li,
.asa-local-special li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding: .5rem 0;
	border-bottom: 1px solid var(--asa-local-border);
}

.asa-local-hours li.is-today {
	color: var(--asa-local-accent);
	font-weight: 700;
}

.asa-local-special {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 2px solid var(--asa-local-border);
}

.asa-local-special > span { font-weight: 700; }
.asa-local-open247 { font-weight: 700; }

.asa-local-map iframe {
	display: block;
	max-width: 100%;
	border: 0;
	border-radius: 12px;
}

.asa-local-directions {
	display: inline-block;
	margin-top: .65rem;
	font-weight: 650;
}

.asa-location-grid {
	display: grid;
	grid-template-columns: repeat(var(--asa-location-columns, 3), minmax(0, 1fr));
	gap: 1.25rem;
}

.asa-location-card {
	overflow: hidden;
	border: 1px solid var(--asa-local-border);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 4px 20px rgba(0,0,0,.05);
}

.asa-location-image { display: block; }
.asa-location-image img { display: block; width: 100%; height: 210px; object-fit: cover; }
.asa-location-body { padding: 1.2rem; }
.asa-location-body h3 { margin: 0 0 .7rem; }
.asa-location-body address { margin: 0 0 .7rem; font-style: normal; }
.asa-location-today { margin: .7rem 0; }
.asa-location-today span { font-weight: 650; }
.asa-location-more { display: inline-block; margin-top: .25rem; font-weight: 700; }

.asa-google-reviews-badge {
	box-sizing: border-box;
	text-decoration: none !important;
}

.asa-google-reviews-wrap {
	display: flex;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

.asa-google-align-left { justify-content: flex-start; }
.asa-google-align-center { justify-content: center; }
.asa-google-align-right { justify-content: flex-end; }

.asa-google-reviews-bar {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	min-height: 54px;
	max-width: 100%;
	padding: .75rem 1rem;
	border: 1px solid var(--asa-google-border, #303030);
	border-radius: 4px;
	background: var(--asa-google-bg, #111111);
	box-shadow: none;
	color: var(--asa-google-text, #ffffff) !important;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	line-height: 1;
	white-space: nowrap;
}

.asa-google-rating-label { font-size: .95em; font-weight: 800; }
.asa-google-review-count { font-weight: 700; }

.asa-google-stars {
	display: inline-grid;
	position: relative;
	color: var(--asa-google-star-empty, #b9b9b9);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 1.35em;
	font-weight: 400;
	letter-spacing: .05em;
	line-height: 1;
}

.asa-google-stars-base,
.asa-google-stars-fill { grid-area: 1 / 1; white-space: nowrap; }
.asa-google-stars-fill { overflow: hidden; width: var(--asa-google-rating, 100%); color: var(--asa-google-stars, #fbbc04); }

.asa-google-wordmark { display: inline-block; font-family: Arial, Helvetica, sans-serif; font-weight: 500; letter-spacing: -.055em; line-height: 1; }
.asa-google-wordmark i { font-style: normal; }
.asa-google-wordmark i:nth-child(1),
.asa-google-wordmark i:nth-child(4) { color: #4285f4; }
.asa-google-wordmark i:nth-child(2),
.asa-google-wordmark i:nth-child(6) { color: #ea4335; }
.asa-google-wordmark i:nth-child(3) { color: #fbbc05; }
.asa-google-wordmark i:nth-child(5) { color: #34a853; }
.asa-google-reviews-bar .asa-google-wordmark { margin-left: .05rem; font-size: 1.35em; }

.asa-google-reviews-card {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: min(100%, 360px);
	min-height: 480px;
	padding: 3rem 2.25rem;
	border: 1px solid var(--asa-google-border, #ededed);
	border-radius: 6px;
	background: var(--asa-google-bg, #ffffff);
	box-shadow: none;
	color: var(--asa-google-text, #252525) !important;
	font-family: Arial, Helvetica, sans-serif;
	text-align: center;
}

.asa-google-card-logo { margin-bottom: 2.6rem; font-size: 5rem; }
.asa-google-rating-number { display: block; margin-bottom: 2rem; font-size: 6.5rem; font-weight: 800; line-height: .95; }
.asa-google-rating-number small { font-size: .68em; font-weight: 800; }
.asa-google-reviews-card .asa-google-stars { margin-bottom: 2.2rem; font-size: 4rem; }
.asa-google-reviews-card .asa-google-review-count { color: var(--asa-google-muted, #b9b9b9); font-size: 3rem; font-weight: 400; }
.asa-google-reviews-bar.asa-google-has-shadow { box-shadow: 0 4px 18px rgba(0,0,0,.22); }
.asa-google-reviews-card.asa-google-has-shadow { box-shadow: 0 8px 30px rgba(0,0,0,.08); }
.asa-google-reviews-badge.asa-google-no-shadow { box-shadow: none !important; }
.asa-google-reviews-badge:focus-visible { outline: 3px solid #4285f4; outline-offset: 3px; }

.asa-google-reviews-missing {
	display: flex;
	flex-direction: column;
	gap: .3rem;
	max-width: 620px;
	padding: .9rem 1rem;
	border: 1px solid #dba617;
	border-left-width: 4px;
	border-radius: 4px;
	background: #fff8e5;
	color: #3c2f05;
	font: 14px/1.45 Arial, Helvetica, sans-serif;
}

.asa-google-reviews-missing strong { color: #2b2100; }

.asa-reviews-slider {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: clamp(1rem, 2.8vw, 2rem);
	border-radius: 16px;
	background: var(--asa-review-slider-bg, #f4f4f4);
	color: var(--asa-review-text, #252525);
	font-family: Arial, Helvetica, sans-serif;
}

.asa-reviews-slider-viewport {
	overflow-x: auto;
	overflow-y: hidden;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-inline: contain;
}

.asa-reviews-slider-viewport::-webkit-scrollbar { display: none; }
.asa-reviews-slider-viewport:focus-visible { outline: 3px solid #4285f4; outline-offset: 4px; }

.asa-reviews-slider-track {
	display: flex;
	gap: 20px;
	align-items: stretch;
}

.asa-review-card {
	display: flex;
	flex: 0 0 calc((100% - (20px * (var(--asa-review-columns, 3) - 1))) / var(--asa-review-columns, 3));
	flex-direction: column;
	box-sizing: border-box;
	min-width: 0;
	min-height: 285px;
	padding: 24px;
	border: 1px solid transparent;
	border-radius: 12px;
	background: var(--asa-review-card-bg, #fff);
	box-shadow: none;
	color: var(--asa-review-text, #252525);
	scroll-snap-align: start;
}

.asa-reviews-slider-border .asa-review-card { border-color: var(--asa-review-border, #ddd); }
.asa-reviews-slider-shadow .asa-review-card { box-shadow: 0 8px 28px rgba(20, 20, 20, .1); }
.asa-reviews-slider-no-shadow .asa-review-card { box-shadow: none !important; }

.asa-review-card-head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 13px;
}

.asa-review-avatar {
	display: inline-grid;
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	place-items: center;
	overflow: hidden;
	border-radius: 50%;
	background: #5f6368;
	color: #fff !important;
	font-size: 20px;
	font-weight: 700;
	text-decoration: none !important;
}

.asa-review-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.asa-review-author { display: flex; flex: 1 1 auto; min-width: 0; flex-direction: column; gap: 3px; }
.asa-review-author strong { overflow: hidden; font-size: 16px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.asa-review-author a { color: inherit !important; text-decoration: none !important; }
.asa-review-author a:hover { text-decoration: underline !important; }
.asa-review-author time { color: var(--asa-review-muted, #777); font-size: 13px; }

.asa-review-google {
	display: inline-grid;
	flex: 0 0 30px;
	width: 30px;
	height: 30px;
	place-items: center;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 5px rgba(0,0,0,.14);
	color: #4285f4 !important;
	font-size: 20px;
	font-weight: 800;
	text-decoration: none !important;
}

.asa-review-card-stars { margin-bottom: 12px; color: #c7c7c7; font-size: 20px; letter-spacing: 2px; line-height: 1; }
.asa-review-card-stars .filled { color: var(--asa-review-stars, #fbbc04); }
.asa-review-text { color: var(--asa-review-text, #252525); font-size: 15px; line-height: 1.55; }
.asa-review-text.is-collapsed { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 6; }

.asa-review-more,
.asa-review-report {
	align-self: flex-start;
	margin-top: 8px;
	padding: 0;
	border: 0;
	background: none;
	color: #1a73e8 !important;
	font: inherit;
	font-size: 13px;
	cursor: pointer;
	text-decoration: underline;
}

.asa-review-reply { margin-top: 15px; padding: 12px; border-left: 3px solid var(--asa-review-border, #ddd); background: rgba(0,0,0,.035); font-size: 13px; }
.asa-review-reply strong { display: block; margin-bottom: 4px; }
.asa-review-reply p { margin: 0; }
.asa-review-report { margin-top: auto; padding-top: 12px; color: var(--asa-review-muted, #777) !important; font-size: 11px; }

.asa-reviews-slider-controls { display: flex; justify-content: center; gap: 10px; margin-top: 18px; }
.asa-reviews-slider-controls button {
	display: inline-grid;
	width: 42px;
	height: 42px;
	place-items: center;
	padding: 0 0 4px;
	border: 1px solid var(--asa-review-border, #ddd);
	border-radius: 50%;
	background: var(--asa-review-card-bg, #fff);
	color: var(--asa-review-text, #252525);
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
}
.asa-reviews-slider-controls button:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.1); }
.asa-reviews-slider-controls button:focus-visible { outline: 3px solid #4285f4; outline-offset: 2px; }
.asa-reviews-attribution { margin: 12px 0 0; color: var(--asa-review-muted, #777); font-size: 12px; text-align: center; }
.asa-reviews-attribution a { color: inherit !important; }

@media (max-width: 900px) {
	.asa-location-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asa-review-card { flex-basis: calc((100% - 20px) / min(var(--asa-review-columns, 3), 2)); }
}

@media (max-width: 600px) {
	.asa-local-info-row { grid-template-columns: 1fr; gap: .2rem; }
	.asa-location-grid { grid-template-columns: 1fr; }
	.asa-google-reviews-bar { flex-wrap: wrap; justify-content: center; white-space: normal; }
	.asa-google-reviews-card { min-height: 390px; padding: 2.25rem 1.25rem; }
	.asa-google-card-logo { margin-bottom: 2rem; font-size: 3.8rem; }
	.asa-google-rating-number { font-size: 5rem; }
	.asa-google-reviews-card .asa-google-stars { font-size: 3rem; }
	.asa-google-reviews-card .asa-google-review-count { font-size: 2.25rem; }
	.asa-reviews-slider { padding: 14px; border-radius: 12px; }
	.asa-review-card { flex-basis: 100%; min-height: 260px; padding: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.asa-reviews-slider-viewport { scroll-behavior: auto; }
}
