/* ESEA contact map */
.esea-contact-map {
	position: relative;
	width: 100%;
	height: 380px;
	border-radius: 12px;
	overflow: hidden;
	background: #F2EADB;
}
@media (max-width: 767px) {
	.esea-contact-map { height: 280px; }
}

/* .esea-contact-map prefix outranks MapLibre's own .maplibregl-map { position: relative } */
.esea-contact-map .esea-contact-map__canvas {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity .4s ease;
}
.esea-contact-map.is-loaded .esea-contact-map__canvas { opacity: 1; }
.esea-contact-map.is-failed .esea-contact-map__canvas { display: none; }

/* Address card: what shows before the map loads, and if it never does */
.esea-contact-map__fallback {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .35rem;
	padding: 24px;
	text-align: center;
	color: #0E152B;
}
.esea-contact-map__fallback p { margin: 0; }
.esea-contact-map__name { font-weight: 600; }
.esea-contact-map__link {
	margin-top: .5rem;
	color: #0E152B;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.esea-contact-map__link:hover,
.esea-contact-map__link:focus-visible { text-decoration-thickness: 2px; }

.esea-contact-map .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* Once the map is showing, keep the address and link for screen readers and keyboard users only */
.esea-contact-map.is-loaded .esea-contact-map__fallback {
	clip-path: inset(50%);
	width: 1px;
	height: 1px;
	overflow: hidden;
	padding: 0;
}
.esea-contact-map.is-loaded .esea-contact-map__fallback:focus-within {
	clip-path: none;
	width: auto;
	height: auto;
	inset: auto 12px 12px auto;
	padding: 8px 14px;
	background: #F2EADB;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(14, 21, 43, .2);
}

/* Office marker: a real link, so it works with keyboard and screen readers */
.esea-contact-map__marker {
	display: block;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	filter: drop-shadow(0 2px 4px rgba(14, 21, 43, .35));
	cursor: pointer;
	transition: transform .2s ease;
}
.esea-contact-map__marker svg { display: block; }
.esea-contact-map__marker:hover { transform: scale(1.06); }
.esea-contact-map__marker:focus-visible {
	outline: 3px solid #0E152B;
	outline-offset: 3px;
}

/* MapLibre controls in site colours */
.esea-contact-map .maplibregl-ctrl-group {
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(14, 21, 43, .2);
}
.esea-contact-map .maplibregl-ctrl-attrib {
	background: rgba(242, 234, 219, .85);
	font-size: 11px;
}
.esea-contact-map .maplibregl-ctrl-attrib a { color: #5B5145; }
.esea-contact-map .maplibregl-cooperative-gesture-screen {
	background: rgba(14, 21, 43, .7);
	font-size: 1rem;
}
