.territory-card {
	position: relative;
	padding: clamp(1.25rem, 3vw, 3rem);
	overflow: visible;
	border: var(--border-width) solid var(--color-border);
	border-radius: var(--radius-lg);
	background: var(--color-primary);
}

.territory-card__header { position: relative; z-index: 2; }
.territory-card__title {
	margin: 0;
	font-size: clamp(3rem, 7vw, 7rem);
	font-weight: var(--font-weight-black);
	line-height: 0.9;
	text-transform: uppercase;
}
.territory-card__header p { margin: 0.35rem 0 0; font-size: var(--font-size-lg); font-weight: var(--font-weight-bold); }

.territory-map {
	position: relative;
	isolation: isolate;
	width: min(100%, 48rem);
	margin: clamp(1rem, 2vw, 2rem) auto 0;
}

.territory-map__image {
	position: relative;
	z-index: 0;
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}
.territory-map__canvas {
	position: relative;
	z-index: 1;
}

.territory-marker {
	position: absolute;
	top: var(--marker-top);
	left: var(--marker-left);
	z-index: var(--marker-stack, 3);
	width: clamp(2.75rem, 5.5vw, 4.5rem);
	height: clamp(3.5rem, 7vw, 5.75rem);
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--color-surface);
	cursor: pointer;
	filter: drop-shadow(0 0.35rem 0.25rem rgb(0 0 0 / 35%));
	transform: translate(-50%, -90%);
	transition: transform var(--transition-fast), filter var(--transition-fast);
}

.territory-marker svg { display: block; width: 100%; height: 100%; overflow: visible; }
.territory-marker path { fill: currentColor; stroke: var(--color-border); stroke-width: 2; }
.territory-marker circle { fill: var(--color-primary); stroke: var(--color-border); stroke-width: 2; }
.territory-marker:hover,
.territory-marker:focus-visible,
.territory-marker[aria-expanded="true"] { z-index: 6; filter: drop-shadow(0 0.55rem 0.35rem rgb(0 0 0 / 45%)); transform: translate(-50%, calc(-90% - 0.4rem)) scale(1.04); }
.territory-marker:focus-visible { outline: 4px solid var(--color-focus); outline-offset: 4px; border-radius: 50%; }

.territory-marker__label {
	position: absolute;
	bottom: calc(100% + 0.45rem);
	left: 50%;
	width: max-content;
	max-width: 12rem;
	padding: 0.35rem 0.65rem;
	border: var(--border-width) solid var(--color-border);
	border-radius: var(--radius-pill);
	background: var(--color-surface);
	color: var(--color-text);
	font-size: var(--font-size-xs);
	font-weight: var(--font-weight-bold);
	line-height: 1.1;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 0.25rem);
	transition: opacity var(--transition-fast), transform var(--transition-fast);
}
.territory-marker:hover .territory-marker__label,
.territory-marker:focus-visible .territory-marker__label { opacity: 1; transform: translate(-50%, 0); }

.territory-popover {
	position: absolute;
	top: var(--popover-top, 25%);
	left: var(--popover-left, 48%);
	z-index: 2;
	width: min(22rem, 48%);
	padding: 1.25rem;
	border: var(--border-width) solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-surface);
	box-shadow: var(--shadow-md);
}
.territory-popover[hidden] { display: none; }
.territory-popover h3 { max-width: calc(100% - 2rem); margin: 0 0 1rem; font-size: var(--font-size-xl); line-height: 1; }
.territory-popover--muna h3 { max-width: calc(100% - 6.75rem); }
.territory-popover__close { position: absolute; top: 0.65rem; right: 0.65rem; width: 2.75rem; height: 2.75rem; padding: 0; border: var(--border-width) solid var(--color-border); border-radius: 50%; background: var(--color-primary); color: var(--color-text); font-size: 1.75rem; line-height: 1; }
.territory-popover__muna-logo { position: absolute; top: 0.8rem; right: 3.85rem; width: 3.25rem; height: auto; max-height: 2.5rem; object-fit: contain; object-position: right top; }
.territory-popover__details { display: grid; gap: 0.8rem; margin: 0; }
.territory-popover__details div { display: grid; gap: 0.15rem; }
.territory-popover__details dt { font-size: var(--font-size-xs); font-weight: var(--font-weight-black); letter-spacing: 0.04em; text-transform: uppercase; }
.territory-popover__details dd { margin: 0; overflow-wrap: anywhere; }
.territory-popover__details a { font-weight: var(--font-weight-bold); }
.territory-popover__map-link { display: inline-flex; min-height: 2.75rem; align-items: center; margin-top: 1rem; padding: 0.45rem 0.9rem; border: var(--border-width) solid var(--color-border); border-radius: var(--radius-pill); background: var(--color-primary); color: var(--color-text); font-weight: var(--font-weight-bold); text-decoration: none; }
.territory-popover__map-link:hover { text-decoration: underline; text-underline-offset: 0.18em; }

@media (max-width: 47.9375rem) {
	.territory-card { padding: 1.25rem 0.8rem; border-radius: var(--radius-md); }
	.territory-card__title { font-size: clamp(1.8rem, 9vw, 3.5rem); letter-spacing: -0.035em; overflow-wrap: anywhere; }
	.territory-map { display: grid; }
	.territory-popover { position: relative; top: auto; left: auto; width: 100%; margin-top: 1rem; }
	.territory-popover--muna h3 { max-width: calc(100% - 6.25rem); }
	.territory-popover__muna-logo { width: 3rem; }
	.territory-marker__label { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.territory-marker,
	.territory-marker__label { transition: none; }
}

/* Más espacio solo para las dos subsedes con correos largos. */
@media (min-width: 48rem) {
 #territory-popover-sierras-chicas-salsipuedes,
 #territory-popover-cosquin { width: min(27rem, calc(100% - var(--popover-left))); }
}
