.map-scroll {
	width: 100%;
	max-width: 100%;
	overflow: hidden;
}
.innova-location-map {
	position: relative;
	display: block;
	width: 100%;
	max-width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	isolation: isolate;
	container-type: inline-size;
	height: auto;
}
.innova-location-map > .map-photo {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	max-width: none !important;
	object-fit: fill;
}
.innova-location-map > .map-connectors {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
}
.map-connector line {
	stroke: rgba(255, 255, 255, 0.83);
	stroke-width: 1.1;
	vector-effect: none;
}
/* Soft red glow that pulses after each connector appears. */
.map-connector circle {
    fill: #fff;
    stroke: rgba(255, 255, 255, 0.85);
    stroke-width: 1;
    filter: drop-shadow(0 0 2px rgba(106, 106, 106, .35));
}

.innova-location-map.in-view .map-connector circle {
    animation: innova-pin-glow 2.4s ease-in-out infinite alternate;
}

@keyframes innova-pin-glow {
    from {
        filter: drop-shadow(0 0 2px rgba(106, 106, 106, .35))
                drop-shadow(0 0 4px rgba(106, 106, 106, .20));
    }
    to {
        filter: drop-shadow(0 0 4px rgba(106, 106, 106, .75))
                drop-shadow(0 0 9px rgba(106, 106, 106, .45));
    }
}
.map-connector.innova-site circle {
	fill: #ed1835;
	stroke: #fff;
}
.map-label {
    position: absolute;
    top: 7.2%;
    left: var(--x);
    transform: translate(-50%, 16px);
    opacity: 0;
    color: #df1726;
    font: 700 0.82cqw/1.2 Arial, sans-serif;
    text-align: center;
    white-space: nowrap;
    z-index: 2;
    transition: opacity .85s ease-out, transform .85s cubic-bezier(.22,1,.36,1);
    transition-delay: var(--label-delay, 13s);
}
.innova-location-map.in-view .map-label {
    opacity: 1;
    transform: translate(-50%, 0);
}
/* Location-specific stagger, independent of HTML element order. */
.map-label.innova-rochedale { --label-delay: .3s; }
.map-connector.innova-rochedale {transition-delay: 0.6s;}

.map-label.gateway { --label-delay: 1s; }
.map-connector.gateway {transition-delay: 1.3s;}

.map-label.brisbane-cbd { --label-delay: 1.7s; }
.map-connector.brisbane-cbd {transition-delay: 2s;}

/* Explicitly override broad theme img rules. Logo group is 10% of image width. */
.innova-location-map .map-logo {
	position: absolute;
	top: 7.2%;
	left: 53%;
	width: 10%;
	height: 2.1cqw;
	transform: translateX(-50%);
	display: flex !important;
	flex-flow: row nowrap;
	justify-content: center;
	align-items: center;
	gap: 0.35cqw;
	z-index: 3;
}
.innova-location-map .map-logo img {
	display: block !important;
	position: static !important;
	max-width: none !important;
	max-height: none !important;
	height: auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: contain;
}
.innova-location-map .map-logo .innova-rotating-mark {
	width: 2.05cqw !important;
	flex: 0 0 2.05cqw !important;
	animation: innova-spin 8s linear infinite;
	position: relative !important;
    top: -0.3cqw;
}
.innova-location-map .map-logo .innova-wordmark {
	width: 9cqw !important;
	flex: 0 0 9cqw !important;
	margin-left: 0.3cqw !important;
}
@keyframes innova-spin {
  to {
    transform: rotate(360deg);
  }
}
/* Lines, markers, labels and logos share the same image coordinate system. */
.map-connector {
  opacity: 0;
  transition: opacity 1.1s ease;
}
.in-view .map-connector {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .map-connector {
    opacity: 1;
    transition: none;
  }
  .innova-location-map .map-logo .innova-rotating-mark {
    animation: none;
  }
}

/* Slide the logo group up without interrupting the red mark's rotation. */
.innova-location-map .map-logo {
    opacity: 0;
    transform: translate(-50%, 16px);

    transition:
        opacity .85s ease-out 2.4s,
        transform .85s cubic-bezier(.22,1,.36,1) 2.4s;
}

.innova-location-map.in-view .map-logo {
    opacity: 1;
    transform: translate(-50%, 0);
}

.innova-location-map .map-connector.innova-site {
    transition-delay: 2.7s;
}

/* =========================================
   INNOVA ROCHEDALE LOGO 
========================================= */
.innova-location-map .map-label.innova-rochedale img.innova-rochedale-logo {
    display: block !important;
	width: 9cqw !important;
    max-width: none !important;
    min-width: 0 !important;
	height: auto !important;
    max-height: none !important;
	object-fit: contain !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

/* =========================================
   END INNOVA ROCHEDALE LOGO 
========================================= */
@media (prefers-reduced-motion: reduce) {
    .innova-location-map .map-label,
    .innova-location-map .map-logo {
        opacity: 1;
        transform: translate(-50%, 0);
        transition: none;
    }
}

/* Accessibility: preserve the markers without pulsing. */
@media (prefers-reduced-motion: reduce) {
    .innova-location-map.in-view .map-connector circle {
        animation: none;
        filter: drop-shadow(0 0 3px rgba(237, 24, 53, .5));
    }
}

/* =========================================
   INNOVA SITE - PULSING LOCATION MARKER
========================================= */
/* Main red location marker */
.innova-location-map .map-connector.innova-site circle {
    fill: #ed1835;
    stroke: #ffffff;
    stroke-width: 1.5px;
    transform-box: fill-box;
    transform-origin: center;
    animation: innova-site-pulse 2.5s ease-in-out infinite !important;
}

/* Pulsing red marker */
@keyframes innova-site-pulse {
    0%, 100% {
        transform: scale(1);
        filter:
            drop-shadow(0 0 2px rgba(237, 24, 53, 0.5))
            drop-shadow(0 0 4px rgba(237, 24, 53, 0.3));
    }

    50% {
        transform: scale(1.5);
        filter:
            drop-shadow(0 0 5px rgba(237, 24, 53, 0.9))
            drop-shadow(0 0 12px rgba(237, 24, 53, 0.6));
    }
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
    .innova-location-map .map-connector.innova-site circle {
        animation: none !important;
        transform: none;
    }
}

/* =========================================
   EXPANDING RED PULSE RINGS
========================================= */
.innova-location-map .innova-site .site-pulse-ring {
    fill: none !important;
    stroke: #ed1835 !important;
    stroke-width: 1px !important;
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    animation: innova-ring-expand 3s ease-out infinite !important;
}

/* Second ring starts later */
.innova-location-map .innova-site .ring-two {
    animation-delay: 1.5s !important;
}

/* Keep main red marker above the rings */
.innova-location-map .innova-site .site-marker {
    fill: #ed1835 !important;
    stroke: #ffffff !important;
    stroke-width: 1px !important;
}

/* Expanding ring animation */
@keyframes innova-ring-expand {
    0% {
        transform: scale(1);
        opacity: 0.9;
    }

    70% {
        opacity: 0.3;
    }

    100% {
        transform: scale(5);
        opacity: 0;
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .innova-location-map .innova-site .site-pulse-ring {
        animation: none !important;
        opacity: 0;
    }
}

