/* ==========================================================================
   GBP Google Map Widget
   ========================================================================== */

.gbp-gm {
	position: relative;
	width: 100%;
}

.gbp-gm__map {
	width: 100%;
	height: 450px;
	overflow: hidden;
}

/* API key / error notice */
.gbp-gm__notice {
	padding: 20px;
	background: #fff3cd;
	border: 1px solid #ffc107;
	border-radius: 4px;
	color: #856404;
	font-size: 14px;
	text-align: center;
}

/* Marker info window */
.gbp-gm__info {
	font-size: 14px;
	line-height: 1.5;
	max-width: 320px;
	color: #333;
}

/* Tags (city + state pills) */
.gbp-gm__info-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 10px;
}

.gbp-gm__info-tag {
	display: inline-block;
	padding: 3px 12px;
	border: 1.5px solid #2a8a8a;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 500;
	color: #2a8a8a;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	line-height: 1.4;
}

/* Title */
.gbp-gm__info-title {
	display: block;
	margin-bottom: 12px;
	font-size: 18px;
	font-weight: 700;
	color: #1a1a1a;
	line-height: 1.3;
}

/* Detail rows with icons */
.gbp-gm__info-phone,
.gbp-gm__info-email,
.gbp-gm__info-address {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 8px;
	color: #444;
}

/* Icon circle */
.gbp-gm__info-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	min-width: 28px;
	border: 1.5px solid #2a8a8a;
	border-radius: 50%;
	color: #2a8a8a;
	flex-shrink: 0;
}

.gbp-gm__info-icon svg {
	display: block;
}

/* Vertically center detail text next to icon */
.gbp-gm__info-phone > span:last-child,
.gbp-gm__info-email > span:last-child,
.gbp-gm__info-address > span:last-child {
	padding-top: 4px;
}

/* Hours */
.gbp-gm__info-hours {
	color: #555;
	margin-bottom: 8px;
	white-space: pre-line;
}

/* Action links container */
.gbp-gm__info-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid #e5e5e5;
}

/* Action link buttons */
.gbp-gm__info-link a,
.gbp-gm__info-directions a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	border: 1.5px solid #ccc;
	border-radius: 6px;
	color: #333;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color 0.2s, color 0.2s;
}

.gbp-gm__info-link a:hover,
.gbp-gm__info-directions a:hover,
.gbp-gm__info-link a:focus-visible,
.gbp-gm__info-directions a:focus-visible {
	border-color: #2a8a8a;
	color: #2a8a8a;
	text-decoration: none;
}

.gbp-gm__info-link a svg,
.gbp-gm__info-directions a svg {
	flex-shrink: 0;
}

/* Inline links (phone, email) */
.gbp-gm__info a {
	color: #333;
	text-decoration: none;
}

.gbp-gm__info a:hover,
.gbp-gm__info a:focus-visible {
	color: #2a8a8a;
	text-decoration: none;
}

/* Google Maps info window internal overrides
   ========================================================================== */

/* Override Google's default padding — 16px base, adjustable via Elementor */
.gm-style .gm-style-iw-c {
	padding: 16px !important;
	overflow: visible !important;
}

.gm-style-iw-d {
	overflow: auto !important;
	padding: 0 !important;
}

/* Close button wrapper — position absolute to content top-right */
.gm-style-iw-chr {
	position: absolute !important;
	right: 0 !important;
	top: 0 !important;
	z-index: 1;
}

/* Close button icon sizing */
.gm-style-iw-chr button {
	display: flex !important;
	align-items: center;
	justify-content: center;
}

/* Tail arrow inherits background color */
.gm-style-iw-tc::after {
	background: inherit !important;
}

/* Editor placeholder */
.gbp-gm__placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 450px;
	background: #f0f0f0;
	border: 2px dashed #ccc;
	border-radius: 4px;
	color: #999;
	font-size: 14px;
	gap: 10px;
}

.gbp-gm__placeholder i {
	font-size: 36px;
}
