/**
 * Aula Nova branded fixed maps.
 *
 * The OSM iframe never receives pointer events. This intentionally disables
 * drag, touch pan, wheel zoom and keyboard capture; only the explicit Aula
 * Nova zoom buttons are interactive.
 */

.aula-map {
	position: relative;
	isolation: isolate;
}

.aula-map--enhanced iframe {
	pointer-events: none !important;
	touch-action: pan-y !important;
	user-select: none !important;
}

.aula-map__zoom {
	position: absolute;
	z-index: 5;
	inset: 1rem auto auto 1rem;
	display: grid;
	overflow: hidden;
	border: 1px solid rgba(16, 47, 37, 0.2);
	border-radius: 0.85rem;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 12px 30px rgba(16, 47, 37, 0.18);
	backdrop-filter: blur(12px);
}

.aula-map__zoom-button {
	display: grid;
	place-items: center;
	inline-size: 2.9rem;
	block-size: 2.9rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	color: var(--aula-primary-deep, #102f25);
	background: transparent;
	font: 700 1.55rem/1 system-ui, sans-serif;
	cursor: pointer;
	transition: color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.aula-map__zoom-button + .aula-map__zoom-button {
	border-block-start: 1px solid rgba(16, 47, 37, 0.15);
}

.aula-map__zoom-button:hover:not(:disabled) {
	color: var(--aula-white, #fff);
	background: var(--aula-primary, #20775d);
}

.aula-map__zoom-button:focus-visible {
	position: relative;
	z-index: 1;
	outline: 0;
	box-shadow: inset 0 0 0 3px var(--aula-accent, #d8e54b);
}

.aula-map__zoom-button:disabled {
	color: rgba(16, 47, 37, 0.34);
	cursor: not-allowed;
}

.aula-map__marker {
	position: absolute;
	z-index: 4;
	inset: 50% auto auto 50%;
	inline-size: clamp(3.8rem, 6vw, 4.7rem);
	aspect-ratio: 1;
	transform: translate(-50%, -68%) rotate(-45deg);
	border: clamp(0.18rem, 0.32vw, 0.25rem) solid rgba(var(--aula-primary-rgb, 32, 119, 93), 0.95);
	border-radius: 50% 50% 50% 12%;
	background: rgba(255, 255, 255, 0.98);
	box-shadow: 0 16px 30px rgba(16, 47, 37, 0.3), inset 0 0 0 2px rgba(255, 255, 255, 0.86);
	pointer-events: none;
}

.aula-map__marker::after {
	position: absolute;
	inset: 50% auto auto 50%;
	inline-size: 118%;
	aspect-ratio: 1;
	content: "";
	transform: translate(-50%, -50%);
	border: 2px solid rgba(var(--aula-primary-rgb, 32, 119, 93), 0.24);
	border-radius: 50%;
	animation: aula-map-marker-pulse 2.8s ease-out infinite;
}

.aula-map__marker-logo {
	position: absolute;
	z-index: 1;
	inset: 10%;
	display: block;
	inline-size: 80%;
	block-size: 80%;
	transform: rotate(45deg);
	object-fit: contain;
}

.aula-map__attribution {
	position: absolute;
	z-index: 5;
	inset: auto 0.7rem 0.7rem auto;
	max-inline-size: calc(100% - 1.4rem);
	padding: 0.34rem 0.55rem;
	border-radius: 0.55rem;
	color: #fff !important;
	background: rgba(16, 47, 37, 0.86);
	font-size: 0.64rem;
	font-weight: 650;
	line-height: 1.25;
	text-decoration: underline;
	text-underline-offset: 0.12em;
	box-shadow: 0 6px 18px rgba(16, 47, 37, 0.16);
	backdrop-filter: blur(10px);
}

@keyframes aula-map-marker-pulse {
	0% {
		opacity: 0.58;
		transform: translate(-50%, -50%) scale(0.8);
	}

	72%,
	100% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(1.38);
	}
}

@media (max-width: 600px) {
	.aula-map__zoom {
		inset: 0.75rem auto auto 0.75rem;
	}

	.aula-map__zoom-button {
		inline-size: 2.75rem;
		block-size: 2.75rem;
	}

	.aula-map__marker {
		inline-size: 3.75rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.aula-map__marker::after {
		animation: none;
	}

	.aula-map__zoom-button {
		transition: none;
	}
}

@media (forced-colors: active) {
	.aula-map__zoom,
	.aula-map__marker {
		border: 2px solid CanvasText;
		background: Canvas;
	}

	.aula-map__zoom-button {
		color: ButtonText;
	}
}
