/* ========================================================================== 
   PAMI — WO20 Distributor Page
   Scoped page presentation only. No global material, button or type contract.
   ========================================================================== */

.pami-distributors {
	background: var(--color-background);
	color: var(--color-text);
}

.pami-distributors__hero {
	padding-top: calc(var(--section-spacing-lg) + var(--space-4));
	background:
		linear-gradient(
			180deg,
			var(--color-surface-light) 0%,
			var(--color-background) 100%
		);
}

.pami-distributors__hero-content {
	max-width: 880px;
}

.pami-distributors__title {
	max-width: 820px;
	margin: 0;
	font-size: var(--font-size-page-title);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-page-title);
	letter-spacing: var(--letter-spacing-page-title);
	color: var(--color-text);
}

.pami-distributors__lead {
	max-width: 760px;
	font-size: var(--font-size-body-large);
	line-height: var(--line-height-relaxed);
	color: var(--color-text-light);
}

.pami-distributor-filter {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(220px, 0.7fr) auto;
	gap: var(--space-5);
	align-items: end;
	margin-bottom: var(--space-5);
}

.pami-distributor-filter__field {
	display: grid;
	gap: var(--space-2);
}

.pami-distributor-filter__field label {
	font-size: var(--font-size-small);
	font-weight: var(--font-weight-semibold);
	color: var(--color-text);
}

.pami-distributor-filter input,
.pami-distributor-filter select {
	width: 100%;
	min-height: var(--touch-target-min);
	padding: 11px 14px;
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-sm);
	background: var(--color-white);
	color: var(--color-text);
	font: inherit;
}

.pami-distributor-filter input:focus-visible,
.pami-distributor-filter select:focus-visible {
	outline: var(--focus-ring-width) solid var(--focus-ring-color);
	outline-offset: 2px;
}

.pami-distributor-filter__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

.pami-distributor-locator__count {
	margin: 0 0 var(--space-5);
	font-size: var(--font-size-small);
	font-weight: var(--font-weight-semibold);
	color: var(--color-text-light);
}

.pami-distributor-locator__layout {
	display: grid;
	grid-template-columns: minmax(300px, 0.78fr) minmax(0, 1.5fr);
	gap: var(--space-6);
	align-items: start;
}

.pami-distributor-locator__desktop-list {
	display: grid;
	gap: var(--space-4);
	max-height: 720px;
	overflow-y: auto;
	padding-right: var(--space-2);
	scrollbar-gutter: stable;
}

.pami-distributor-locator__mobile-list {
	display: none;
}

.pami-distributor-card {
	position: relative;
	display: grid;
	gap: var(--space-4);
	padding: var(--space-5);
}

.pami-distributor-card__identity,
.pami-distributor-selected__identity {
	display: flex;
	gap: var(--space-4);
	align-items: flex-start;
}

.pami-distributor-card__logo,
.pami-distributor-selected__logo {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: flex-start;
	min-height: 42px;
}

.pami-distributor-card__logo img,
.pami-distributor-selected__logo img {
	display: block;
	width: auto;
	height: auto;
	max-width: 112px;
	max-height: 54px;
	object-fit: contain;
}

.pami-distributor-card__heading {
	display: grid;
	flex: 1 1 auto;
	min-width: 0;
	gap: var(--space-1);
}

.pami-distributor-card__city,
.pami-distributor-card__region,
.pami-distributor-selected__label {
	margin: 0;
	font-size: var(--font-size-eyebrow);
	font-weight: var(--font-weight-semibold);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

.pami-distributor-card__type,
.pami-distributor-selected__type {
	margin: 0;
	font-size: var(--font-size-small);
	line-height: var(--line-height-body);
	color: var(--color-text-muted);
}

.pami-distributor-card__title {
	margin: 0;
	font-size: var(--font-size-subsection-title);
	line-height: var(--line-height-subsection-title);
}

.pami-distributor-card__select {
	color: var(--color-text);
	text-decoration: none;
}

.pami-distributor-card__select::after {
	content: "";
	position: absolute;
	inset: 0;
}

.pami-distributor-card__select:focus-visible {
	outline: var(--focus-ring-width) solid var(--focus-ring-color);
	outline-offset: var(--focus-ring-offset);
}

.pami-distributor-card__address,
.pami-distributor-card__note {
	margin: 0;
	font-size: var(--font-size-small);
	line-height: var(--line-height-body);
	color: var(--color-text-light);
}

.pami-distributor-card__actions,
.pami-distributor-selected__actions {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3) var(--space-4);
	padding-top: var(--space-3);
	border-top: 1px solid var(--color-border-soft);
}

.pami-distributor-card__actions a,
.pami-distributor-selected__actions a {
	font-size: var(--font-size-small);
	font-weight: var(--font-weight-semibold);
	color: var(--color-primary-dark);
	text-underline-offset: 3px;
}

.pami-distributor-locator__map-column {
	position: sticky;
	top: calc(var(--site-header-height, 84px) + var(--space-5));
	display: grid;
	gap: var(--space-4);
}

.pami-distributor-map-shell {
	position: relative;
	min-height: 560px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	overflow: hidden;
	background: var(--color-surface);
}

.pami-distributor-map {
	width: 100%;
	height: 560px;
	background: var(--color-surface);
}

.pami-distributor-map__status {
	position: absolute;
	z-index: 500;
	left: var(--space-4);
	bottom: var(--space-4);
	max-width: min(430px, calc(100% - 32px));
	margin: 0;
}

.pami-distributor-map-shell[data-map-state="ready"] .pami-distributor-map__status {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.pami-distributor-selected {
	display: grid;
	gap: var(--space-3);
	padding: var(--space-5);
}

.pami-distributor-selected__identity > :last-child {
	display: grid;
	flex: 1 1 auto;
	min-width: 0;
	gap: var(--space-1);
}

.pami-distributor-selected h3,
.pami-distributor-selected p {
	margin: 0;
}

.pami-distributor-selected [data-selected-address] {
	white-space: pre-line;
	line-height: var(--line-height-body);
	color: var(--color-text-light);
}

.pami-distributor-card > .pami-business-hours,
.pami-distributor-selected > .pami-business-hours {
	margin-top: var(--space-1);
}

.pami-distributor-locator__search-empty,
.pami-distributor-locator__system-empty,
.pami-distributor-map__noscript {
	margin-bottom: var(--space-6);
}

.pami-distributor-locator__search-empty h3,
.pami-distributor-locator__system-empty h3 {
	margin: 0 0 var(--space-3);
	font-size: var(--font-size-subsection-title);
}

.pami-distributor-locator__search-empty p,
.pami-distributor-locator__system-empty p,
.pami-distributor-map__noscript {
	color: var(--color-text-light);
}

.pami-distributor-partnership__layout,
.pami-distributor-contact__panel {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--space-7);
	align-items: end;
}

.pami-distributor-marker {
	border: 0;
	background: transparent;
}

.pami-distributor-marker span {
	position: relative;
	display: block;
	width: 24px;
	height: 30px;
	border: 2px solid var(--color-white);
	border-radius: 50% 50% 50% 8px;
	background: var(--color-primary);
	box-shadow: 0 6px 16px rgba(45, 42, 40, 0.22);
	transform: rotate(-45deg);
	transition:
		transform var(--transition-fast),
		background var(--transition-fast);
}

.pami-distributor-marker span::after {
	content: "";
	position: absolute;
	width: 7px;
	height: 7px;
	left: 8.5px;
	top: 8px;
	border-radius: var(--radius-full);
	background: var(--color-white);
}

.pami-distributor-marker.is-selected span {
	background: var(--color-primary-dark);
	transform: rotate(-45deg) scale(1.16);
}

.pami-distributors .leaflet-control-zoom a {
	color: var(--color-text);
}

.pami-distributors .leaflet-control-attribution {
	font-size: 10px;
}

@media (max-width: 1023px) {
	.pami-distributor-filter {
		grid-template-columns: minmax(0, 1fr) minmax(220px, 0.8fr);
	}

	.pami-distributor-filter__actions {
		grid-column: 1 / -1;
	}

	.pami-distributor-locator__layout {
		grid-template-columns: minmax(270px, 0.75fr) minmax(0, 1.25fr);
	}
}

@media (max-width: 899px) {
	.pami-distributor-filter {
		grid-template-columns: 1fr;
	}

	.pami-distributor-filter__actions {
		grid-column: auto;
	}

	.pami-distributor-locator__layout {
		display: block;
	}

	.pami-distributor-locator__desktop-list {
		display: none;
	}

	.pami-distributor-locator__mobile-list {
		display: grid;
		gap: var(--space-4);
		margin-top: var(--space-6);
	}

	.pami-distributor-locator__map-column {
		position: static;
	}

	.pami-distributor-map-shell,
	.pami-distributor-map {
		min-height: 420px;
		height: 420px;
	}

	.pami-distributor-partnership__layout,
	.pami-distributor-contact__panel {
		grid-template-columns: 1fr;
		align-items: start;
	}
}

@media (max-width: 599px) {
	.pami-distributor-filter__actions,
	.pami-distributor-filter__actions .button {
		width: 100%;
	}

	.pami-distributor-map-shell,
	.pami-distributor-map {
		min-height: 360px;
		height: 360px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pami-distributor-marker span {
		transition: none;
	}
}
