/**
 * RSL Interactive Coast Map — overlays on shared tourist-map stage/drag chrome.
 */
.rsl-cmap {
	--rsl-cmap-radius: 28px;
	--rsl-cmap-sea: #1e8fd6;
	max-width: var(--rsl-tmap-max-width, 560px);
}

.rsl-cmap__intro {
	margin: 0 0 14px;
	text-align: center;
}

.rsl-cmap__shell {
	border: none;
	background: transparent;
	box-shadow: 0 16px 40px rgba(16, 43, 70, 0.14);
	border-radius: var(--rsl-cmap-radius);
	overflow: hidden;
}

.rsl-cmap__viewport {
	aspect-ratio: 600 / 781;
	background: var(--rsl-cmap-sea);
	border-radius: var(--rsl-cmap-radius);
	cursor: default;
	touch-action: pan-y;
}

.rsl-cmap[data-rsl-tmap-static="1"] .rsl-cmap__viewport {
	cursor: default;
	touch-action: pan-y;
}

.rsl-cmap__img {
	object-fit: cover;
	object-position: center;
}

/* Reset tourist-map circular marker chrome for coast elements. */
.rsl-cmap .rsl-tmap__marker.rsl-cmap__el {
	width: auto;
	height: auto;
	min-width: 0;
	min-height: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--rsl-cmap-fc, #fff);
	font-size: var(--rsl-cmap-fs, 11px);
	line-height: 1.15;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transform: translate(-50%, -50%);
	cursor: default;
}

.rsl-cmap .rsl-tmap__marker.rsl-cmap__el:hover,
.rsl-cmap .rsl-tmap__marker.rsl-cmap__el:focus-visible,
.rsl-cmap .rsl-tmap__marker.rsl-cmap__el.is-active {
	transform: translate(-50%, -50%);
	outline: none;
	box-shadow: none;
}

.rsl-cmap .rsl-tmap__marker.rsl-cmap__el::after {
	display: none;
}

.rsl-cmap.is-edit-drag .rsl-tmap__marker.rsl-cmap__el {
	cursor: move !important;
}

.rsl-cmap.is-edit-drag .rsl-tmap__marker.rsl-cmap__el:focus-visible {
	outline: 2px solid #29b9c5;
	outline-offset: 3px;
}

.rsl-cmap.is-edit-drag .rsl-tmap__marker.rsl-cmap__el.is-dragging {
	transform: translate(-50%, -50%) scale(1.06);
	box-shadow: 0 0 0 3px rgba(41, 185, 197, 0.55);
}

/* Resort: label left of red dot (matches reference composition). */
.rsl-cmap__el.is-resort {
	flex-direction: row-reverse;
	gap: 5px;
	white-space: nowrap;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
	font-weight: 600;
	letter-spacing: 0.01em;
}

.rsl-cmap__dot {
	flex: 0 0 auto;
	width: var(--rsl-cmap-dot-size, 8px);
	height: var(--rsl-cmap-dot-size, 8px);
	border-radius: 50%;
	background: var(--rsl-cmap-dot, #c62828);
	border: 1.5px solid rgba(255, 255, 255, 0.95);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}

.rsl-cmap__label {
	color: inherit;
	font-size: inherit;
	max-width: 22ch;
	text-align: right;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Beach titles — large sea labels. */
.rsl-cmap__el.is-beach {
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: none;
	text-shadow: 0 2px 10px rgba(0, 40, 80, 0.5);
	white-space: nowrap;
	opacity: 0.95;
}

.rsl-cmap__beach {
	font-size: inherit;
	color: inherit;
}

/* Location arrows — red chevron + white label (reference style). */
.rsl-cmap__arrow {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 0;
	border-radius: 0;
	background: transparent;
	font-weight: 800;
	font-size: inherit;
	box-shadow: none;
	white-space: nowrap;
}

.rsl-cmap__arrow-glyph {
	font-size: 1.45em;
	line-height: 1;
	color: var(--rsl-cmap-arrow, #c62828);
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.rsl-cmap__arrow-text {
	color: #ffffff;
	text-shadow: 0 1px 3px rgba(0, 40, 80, 0.55);
}

.rsl-cmap__arrow.is-right {
	flex-direction: row-reverse;
}

.rsl-cmap__arrow.is-up,
.rsl-cmap__arrow.is-down {
	flex-direction: column;
	border-radius: 12px;
	padding: 6px 10px;
}

/* Boats. */
.rsl-cmap__el.is-boat {
	pointer-events: auto;
}

.rsl-cmap__boat-img {
	display: block;
	width: var(--rsl-cmap-boat-w, 72px);
	height: auto;
	max-width: none;
	user-select: none;
	-webkit-user-drag: none;
	pointer-events: none;
	filter: drop-shadow(0 4px 8px rgba(0, 30, 60, 0.35));
}

.rsl-cmap__note {
	margin: 10px 0 0;
	text-align: center;
	font-size: 0.85rem;
	color: #5a6f82;
}

@media (max-width: 767px) {
	.rsl-cmap__el.is-resort {
		font-size: max(9px, calc(var(--rsl-cmap-fs, 11px) * 0.92));
	}

	.rsl-cmap__label {
		max-width: 14ch;
	}

	.rsl-cmap__el.is-beach {
		font-size: max(16px, calc(var(--rsl-cmap-fs, 28px) * 0.72));
	}
}

@media (prefers-reduced-motion: reduce) {
	.rsl-cmap .rsl-tmap__marker.rsl-cmap__el,
	.rsl-cmap.is-edit-drag .rsl-tmap__marker.rsl-cmap__el.is-dragging {
		transition: none;
	}
}
