/**
 * Hively Region Map: front-end styles.
 *
 * Builds on the hively-directory tokens (--h-accent, --h-yellow, --h-line...)
 * set by the .hively / .hively--ndis / .hively--psychology wrapper classes.
 * Every declaration carries !important because Elementor global styles
 * override plugin CSS otherwise. Heading font sizes are NOT set here.
 */

/* ======================================================================== */
/*  Wrapper + utilities                                                     */
/* ======================================================================== */
.hively.hively-map { display: block !important; position: relative !important; margin: 0 0 32px !important; }
.hively-map .hpx-hidden { display: none !important; }
.hively-map .hively-map__sr { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

.hively-map .hively-map__admin-note {
	margin: 0 0 16px !important;
	padding: 12px 16px !important;
	background: #FFF7E3 !important;
	border-left: 4px solid var(--h-yellow, #FDB715) !important;
	border-radius: var(--h-radius-sm, 12px) !important;
	color: var(--h-ink, #25141D) !important;
	font-size: 0.9rem !important;
}
.hively-map .hively-map__empty { margin: 0 0 12px !important; color: var(--h-muted, #7c7480) !important; }

/* ======================================================================== */
/*  Stage: map + panel                                                      */
/* ======================================================================== */
.hively-map .hively-map__stage {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 380px) !important;
	gap: 20px !important;
	align-items: stretch !important;
}
.hively-map .hively-map__stage.hpx-hidden { display: none !important; }

.hively-map .hively-map__canvas {
	width: 100% !important;
	height: var(--hm-height, 560px) !important;
	min-height: 280px !important;
	overflow: hidden !important;
	background: var(--h-tint, #EAF1FB) !important;
	border: 1px solid var(--h-line, #ECE3D6) !important;
	border-radius: var(--h-radius-lg, 28px) !important;
	box-shadow: var(--h-shadow, 0 14px 38px rgba(37, 20, 29, .08)) !important;
}

/* Keep theme / Elementor element rules out of the Google map internals. */
.hively-map .hively-map__canvas img { max-width: none !important; max-height: none !important; border-radius: 0 !important; box-shadow: none !important; }
.hively-map .hively-map__canvas .gm-style button { text-transform: none !important; letter-spacing: normal !important; min-height: 0 !important; }

.hively-map .hively-map__panel {
	position: relative !important;
	height: var(--hm-height, 560px) !important;
	min-height: 280px !important;
	overflow-y: auto !important;
	overscroll-behavior: contain !important;
	padding: 24px !important;
	background: var(--h-card, #FFFFFF) !important;
	border: 1px solid var(--h-line, #ECE3D6) !important;
	border-radius: var(--h-radius-lg, 28px) !important;
	box-shadow: var(--h-shadow, 0 14px 38px rgba(37, 20, 29, .08)) !important;
}

.hively-map .hively-map__panel-prompt { margin: 0 0 18px !important; color: var(--h-ink, #25141D) !important; font-size: 0.98rem !important; line-height: 1.6 !important; }

.hively-map .hively-map__legend { list-style: none !important; margin: 0 !important; padding: 0 !important; display: flex !important; flex-direction: column !important; gap: 12px !important; }
.hively-map .hively-map__legend li { display: flex !important; align-items: center !important; gap: 12px !important; margin: 0 !important; padding: 0 !important; font-size: 0.88rem !important; color: var(--h-muted, #7c7480) !important; line-height: 1.4 !important; }
.hively-map .hively-map__legend li::before { content: none !important; }
.hively-map .hively-map__legend-swatch { flex: 0 0 auto !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 32px !important; height: 32px !important; font-size: 0.8rem !important; font-weight: 700 !important; line-height: 1 !important; }
.hively-map .hively-map__legend-swatch--region { border-radius: 50% !important; background: var(--h-accent, #264B76) !important; color: #FFFFFF !important; border: 2px solid #FFFFFF !important; box-shadow: 0 3px 8px rgba(37, 20, 29, .2) !important; }
.hively-map .hively-map__legend-swatch--clinic { border-radius: 10px !important; background: var(--h-yellow, #FDB715) !important; color: var(--h-ink, #25141D) !important; border: 2px solid #FFFFFF !important; box-shadow: 0 3px 8px rgba(37, 20, 29, .2) !important; }
.hively-map .hively-map__legend-swatch svg { display: block !important; width: 16px !important; height: 16px !important; }

/* Panel content ---------------------------------------------------------- */
.hively-map .hively-map__panel-head {
	position: relative !important;
	margin: 0 0 18px !important;
	padding: 0 44px 16px 0 !important;
	border-bottom: 1px solid var(--h-line, #ECE3D6) !important;
}
.hively-map .hively-map__eyebrow { margin: 0 0 6px !important; font-size: 0.72rem !important; font-weight: 700 !important; letter-spacing: 0.08em !important; text-transform: uppercase !important; color: var(--h-accent-2, #3D68AA) !important; line-height: 1.3 !important; }
.hively-map .hively-map__panel-title {
	display: inline !important;
	margin: 0 !important;
	color: var(--h-ink, #25141D) !important;
	background-image: linear-gradient(transparent 62%, rgba(253, 183, 21, .55) 62%) !important;
	-webkit-box-decoration-break: clone !important;
	box-decoration-break: clone !important;
}
.hively-map .hively-map__panel-title:focus { outline: none !important; }
.hively-map .hively-map__panel-title:focus-visible { outline: 2px solid var(--h-accent, #264B76) !important; outline-offset: 4px !important; }
.hively-map .hively-map__panel-meta { margin: 8px 0 0 !important; color: var(--h-muted, #7c7480) !important; font-size: 0.9rem !important; line-height: 1.5 !important; }

.hively-map .hively-map__close {
	position: absolute !important;
	top: 0 !important;
	right: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 36px !important;
	height: 36px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--h-line, #ECE3D6) !important;
	border-radius: 50% !important;
	background: #FFFFFF !important;
	color: var(--h-ink, #25141D) !important;
	font-size: 22px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
	cursor: pointer !important;
	transition: background-color .16s ease, color .16s ease, border-color .16s ease !important;
}
.hively-map .hively-map__close:hover,
.hively-map .hively-map__close:focus-visible { background: var(--h-tint, #EAF1FB) !important; color: var(--h-accent, #264B76) !important; border-color: var(--h-accent, #264B76) !important; }
.hively-map .hively-map__close:focus-visible { outline: 2px solid var(--h-accent, #264B76) !important; outline-offset: 2px !important; }

.hively-map .hively-map__people { list-style: none !important; margin: 0 !important; padding: 0 !important; display: flex !important; flex-direction: column !important; gap: 12px !important; }
.hively-map .hively-map__person {
	display: flex !important;
	align-items: flex-start !important;
	gap: 14px !important;
	margin: 0 !important;
	padding: 12px !important;
	background: var(--h-canvas, #FCF8F3) !important;
	border: 1px solid var(--h-line, #ECE3D6) !important;
	border-radius: var(--h-radius, 18px) !important;
}
.hively-map .hively-map__person::before { content: none !important; }
.hively-map .hively-map__person-media {
	position: relative !important;
	display: block !important;
	flex: 0 0 64px !important;
	width: 64px !important;
	height: 64px !important;
	overflow: hidden !important;
	border-radius: var(--h-radius-sm, 12px) !important;
	background: var(--h-tint, #EAF1FB) !important;
	box-shadow: none !important;
	text-decoration: none !important;
}
.hively-map .hively-map__person-media img { display: block !important; width: 100% !important; height: 100% !important; max-width: none !important; margin: 0 !important; object-fit: cover !important; border-radius: 0 !important; }
.hively-map .hively-map__person-initial { position: absolute !important; inset: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; font-size: 1.5rem !important; font-weight: 700 !important; color: var(--h-accent, #264B76) !important; }
.hively-map .hively-map__person-body { display: flex !important; flex: 1 1 auto !important; flex-direction: column !important; align-items: flex-start !important; gap: 2px !important; min-width: 0 !important; }
.hively-map .hively-map__person-name { margin: 0 !important; font-size: 1rem !important; font-weight: 700 !important; line-height: 1.3 !important; }
.hively-map .hively-map__person-name a { color: var(--h-ink, #25141D) !important; text-decoration: none !important; box-shadow: inset 0 -2px 0 transparent !important; transition: color .16s ease, box-shadow .16s ease !important; }
.hively-map .hively-map__person-name a:hover,
.hively-map .hively-map__person-name a:focus-visible { color: var(--h-accent, #264B76) !important; box-shadow: inset 0 -2px 0 var(--h-yellow, #FDB715) !important; }
.hively-map .hively-map__person-role { margin: 0 !important; color: var(--h-accent, #264B76) !important; font-size: 0.85rem !important; font-weight: 600 !important; line-height: 1.4 !important; }
.hively-map .hively-map__person .hively-badge { margin-top: 6px !important; padding: 4px 10px 4px 9px !important; font-size: 0.72rem !important; line-height: 1.3 !important; }

.hively-map .hively-map__panel-foot { margin: 18px 0 0 !important; }

/* ======================================================================== */
/*  Markers (AdvancedMarkerElement HTML content, Map ID mode)               */
/* ======================================================================== */
.hively-map .hively-map-pin { position: relative !important; display: flex !important; flex-direction: column !important; align-items: center !important; cursor: pointer !important; font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important; }
.hively-map .hively-map-pin__bubble {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 40px !important;
	height: 40px !important;
	padding: 0 10px !important;
	border: 3px solid #FFFFFF !important;
	border-radius: 999px !important;
	background: var(--h-accent, #264B76) !important;
	color: #FFFFFF !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	box-shadow: 0 6px 16px rgba(37, 20, 29, .25) !important;
	transition: transform .16s ease, box-shadow .16s ease !important;
}
.hively-map .hively-map-pin--clinic .hively-map-pin__bubble { min-width: 40px !important; width: 40px !important; padding: 0 !important; border-radius: 12px !important; background: var(--h-yellow, #FDB715) !important; color: var(--h-ink, #25141D) !important; }
.hively-map .hively-map-pin__bubble svg { display: block !important; width: 18px !important; height: 18px !important; }
.hively-map .hively-map-pin__label {
	position: absolute !important;
	top: calc(100% + 6px) !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	padding: 3px 10px !important;
	border-radius: 999px !important;
	background: #FFFFFF !important;
	color: var(--h-ink, #25141D) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	white-space: nowrap !important;
	box-shadow: 0 4px 12px rgba(37, 20, 29, .18) !important;
	opacity: 0 !important;
	pointer-events: none !important;
	transition: opacity .16s ease !important;
}
.hively-map .hively-map-pin:hover .hively-map-pin__label,
.hively-map .hively-map-pin.is-active .hively-map-pin__label,
.hively-map gmp-advanced-marker:focus-visible .hively-map-pin__label { opacity: 1 !important; }
.hively-map .hively-map-pin:hover .hively-map-pin__bubble { transform: translateY(-2px) !important; }
.hively-map .hively-map-pin.is-active .hively-map-pin__bubble,
.hively-map gmp-advanced-marker:focus-visible .hively-map-pin__bubble { transform: scale(1.1) !important; box-shadow: 0 0 0 4px var(--h-yellow, #FDB715), 0 8px 20px rgba(37, 20, 29, .3) !important; }
.hively-map .hively-map-pin--clinic.is-active .hively-map-pin__bubble { box-shadow: 0 0 0 4px var(--h-accent, #264B76), 0 8px 20px rgba(37, 20, 29, .3) !important; }

/* ======================================================================== */
/*  Telehealth note                                                         */
/* ======================================================================== */
.hively-map .hively-map__telehealth { display: flex !important; align-items: center !important; gap: 10px !important; margin: 16px 0 0 !important; color: var(--h-ink, #25141D) !important; font-size: 0.95rem !important; line-height: 1.5 !important; }
.hively-map .hively-map__telehealth::before { content: '' !important; flex: 0 0 auto !important; width: 10px !important; height: 10px !important; border-radius: 50% !important; background: var(--h-yellow, #FDB715) !important; }

/* ======================================================================== */
/*  Area list (buttons when the map is live; full list as the fallback)     */
/* ======================================================================== */
.hively-map .hively-map__list { margin: 28px 0 0 !important; }
.hively-map .hively-map__list-title { margin: 0 0 14px !important; }
.hively-map.is-map-ready .hively-map__list--fallback { display: none !important; }

.hively-map .hively-map__areas { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid !important; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important; gap: 16px !important; }
.hively-map.is-map-ready .hively-map__areas { display: flex !important; flex-wrap: wrap !important; gap: 10px !important; }
.hively-map .hively-map__area { margin: 0 !important; padding: 0 !important; }
.hively-map .hively-map__area::before { content: none !important; }

.hively-map .hively-map__area-tag { display: inline-flex !important; align-items: center !important; gap: 4px !important; padding: 3px 9px !important; border-radius: 999px !important; background: var(--h-yellow, #FDB715) !important; color: var(--h-ink, #25141D) !important; font-size: 0.68rem !important; font-weight: 700 !important; letter-spacing: 0.06em !important; text-transform: uppercase !important; line-height: 1.3 !important; }
.hively-map .hively-map__area-tag svg { display: block !important; width: 12px !important; height: 12px !important; }

.hively-map .hively-map__area-btn {
	display: none !important;
	align-items: center !important;
	gap: 10px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 7px 7px 7px 16px !important;
	border: 1px solid var(--h-line, #ECE3D6) !important;
	border-radius: 999px !important;
	background: #FFFFFF !important;
	color: var(--h-ink, #25141D) !important;
	font-family: inherit !important;
	font-size: 0.9rem !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
	cursor: pointer !important;
	transition: background-color .16s ease, color .16s ease, border-color .16s ease !important;
}
.hively-map.is-map-ready .hively-map__area-btn { display: inline-flex !important; }
.hively-map .hively-map__area-btn:hover { background: #FFFFFF !important; color: var(--h-accent, #264B76) !important; border-color: var(--h-accent, #264B76) !important; }
.hively-map .hively-map__area-btn:focus-visible { outline: 2px solid var(--h-accent, #264B76) !important; outline-offset: 2px !important; }
.hively-map .hively-map__area-btn.is-active { background: var(--h-accent, #264B76) !important; color: #FFFFFF !important; border-color: var(--h-accent, #264B76) !important; }
.hively-map .hively-map__area-btn .hively-map__area-tag { padding: 2px 7px !important; }

.hively-map .hively-map__area-count { display: inline-flex !important; align-items: center !important; justify-content: center !important; min-width: 26px !important; height: 26px !important; padding: 0 8px !important; border-radius: 999px !important; background: var(--h-tint, #EAF1FB) !important; color: var(--h-accent, #264B76) !important; font-size: 0.8rem !important; font-weight: 700 !important; line-height: 1 !important; }
.hively-map .hively-map__area-btn.is-active .hively-map__area-count { background: #FFFFFF !important; color: var(--h-accent, #264B76) !important; }

.hively-map .hively-map__area-static { height: 100% !important; padding: 20px !important; background: var(--h-card, #FFFFFF) !important; border: 1px solid var(--h-line, #ECE3D6) !important; border-radius: var(--h-radius-lg, 28px) !important; }
.hively-map.is-map-ready .hively-map__area-static { display: none !important; }
.hively-map .hively-map__area-heading { display: flex !important; flex-wrap: wrap !important; align-items: center !important; gap: 8px !important; margin: 0 0 4px !important; color: var(--h-ink, #25141D) !important; font-size: 1.05rem !important; font-weight: 700 !important; line-height: 1.3 !important; }
.hively-map .hively-map__area-meta { margin: 0 0 12px !important; color: var(--h-muted, #7c7480) !important; font-size: 0.85rem !important; line-height: 1.5 !important; }
.hively-map .hively-map__area-people { list-style: none !important; margin: 0 0 12px !important; padding: 0 !important; }
.hively-map .hively-map__area-people li { margin: 0 0 8px !important; padding: 0 !important; font-size: 0.92rem !important; line-height: 1.4 !important; }
.hively-map .hively-map__area-people li::before { content: none !important; }
.hively-map .hively-map__area-people a { color: var(--h-accent, #264B76) !important; font-weight: 600 !important; text-decoration: none !important; box-shadow: inset 0 -2px 0 var(--h-yellow, #FDB715) !important; }
.hively-map .hively-map__area-role { display: block !important; color: var(--h-muted, #7c7480) !important; font-size: 0.82rem !important; }

/* ======================================================================== */
/*  Responsive + motion                                                     */
/* ======================================================================== */
@media (max-width: 767px) {
	.hively-map .hively-map__stage { grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; }
	.hively-map .hively-map__canvas { height: min(var(--hm-height, 560px), 65vh) !important; }
	.hively-map .hively-map__panel { height: auto !important; max-height: 520px !important; padding: 20px !important; }
	.hively-map .hively-map__areas { grid-template-columns: minmax(0, 1fr) !important; }
}

/* Stack when the map's own column is narrow (a slim Elementor container or theme
   content width), not just on small screens, so the map never gets squeezed. */
.hively-map { container-type: inline-size !important; }
@container (max-width: 860px) {
	.hively-map .hively-map__stage { grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; }
	.hively-map .hively-map__canvas { height: min(var(--hm-height, 560px), 65vh) !important; }
	.hively-map .hively-map__panel { height: auto !important; max-height: 520px !important; padding: 20px !important; }
	.hively-map .hively-map__areas { grid-template-columns: minmax(0, 1fr) !important; }
}

@media (prefers-reduced-motion: reduce) {
	.hively-map *,
	.hively-map *::before,
	.hively-map *::after { transition: none !important; scroll-behavior: auto !important; }
	.hively-map .hively-map-pin:hover .hively-map-pin__bubble,
	.hively-map .hively-map-pin.is-active .hively-map-pin__bubble { transform: none !important; }
}
