.itlu-contact,
.itlu-map,
.itlu-rso,
.itlu-weather,
.itlu-facebook {
	margin-block: var(--itlu-section-space-sm);
}

.itlu-contact__location + .itlu-contact__location {
	margin-block-start: var(--itlu-section-space-sm);
}

.itlu-contact address {
	font-style: normal;
}

.itlu-contact__channels,
.itlu-map__locations,
.itlu-rso__items {
	display: grid;
	gap: var(--itlu-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.itlu-contact__hours {
	inline-size: 100%;
	max-inline-size: var(--itlu-width-reading);
	border-collapse: collapse;
}

.itlu-contact__hours caption {
	font-weight: var(--itlu-font-weight-strong);
	text-align: start;
}

.itlu-contact__hours th,
.itlu-contact__hours td {
	padding: var(--itlu-space-2);
	border-block-end: var(--itlu-border-width) var(--itlu-border-style) var(--itlu-color-border);
	text-align: start;
}

.itlu-map__locations li,
.itlu-rso__items li {
	display: grid;
	gap: var(--itlu-space-1);
	padding: var(--itlu-card-padding);
	border: var(--itlu-card-border-width) var(--itlu-border-style) var(--itlu-card-border-color);
	border-radius: var(--itlu-card-radius);
	background: var(--itlu-card-background);
	box-shadow: var(--itlu-card-shadow);
}

.itlu-map__privacy,
.itlu-map__attribution,
.itlu-provider-state,
.itlu-weather__attribution {
	color: var(--itlu-color-text-muted);
	font-size: var(--itlu-font-size-small);
}

.itlu-map--municipality {
	margin: 0;
}

.itlu-map--municipality > h2 {
	margin-block: 0 var(--itlu-space-5);
}

.itlu-map__layout {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(15rem, 0.8fr);
	gap: var(--itlu-space-5);
	align-items: stretch;
}

.itlu-map__canvas {
	border: var(--itlu-border-width) var(--itlu-border-style) var(--itlu-color-border);
	border-radius: var(--itlu-card-radius);
	background: var(--itlu-color-surface-alt);
	overflow: hidden;
}

.itlu-map__canvas svg {
	display: block;
	inline-size: 100%;
	block-size: auto;
	min-block-size: 26rem;
}

.itlu-map__grid {
	fill: var(--itlu-color-surface-alt);
}

.itlu-map__grid + defs path,
.itlu-map__canvas pattern path {
	fill: none;
	stroke: var(--itlu-color-border);
	stroke-width: 1;
}

.itlu-map__boundary {
	fill: color-mix(in srgb, var(--itlu-color-primary) 17%, var(--itlu-color-surface));
	stroke: var(--itlu-color-primary);
	stroke-linejoin: round;
	stroke-width: 5;
}

.itlu-map__marker-halo {
	fill: color-mix(in srgb, var(--itlu-color-primary) 22%, transparent);
}

.itlu-map__marker {
	fill: var(--itlu-color-primary);
	stroke: var(--itlu-color-surface);
	stroke-width: 4;
}

.itlu-map__canvas text {
	fill: var(--itlu-color-surface);
	font-weight: var(--itlu-font-weight-strong);
	pointer-events: none;
}

.itlu-map__canvas a:focus .itlu-map__marker-halo,
.itlu-map__canvas a:hover .itlu-map__marker-halo {
	fill: color-mix(in srgb, var(--itlu-color-focus) 38%, transparent);
}

.itlu-map__canvas a:focus .itlu-map__marker,
.itlu-map__canvas a:hover .itlu-map__marker {
	fill: var(--itlu-color-focus);
}

.itlu-map__attribution {
	margin: 0;
	padding: var(--itlu-space-2) var(--itlu-space-3);
	border-block-start: var(--itlu-border-width) var(--itlu-border-style) var(--itlu-color-border);
	background: var(--itlu-color-surface);
}

.itlu-map--municipality .itlu-map__locations {
	counter-reset: itlu-map-location;
}

.itlu-map--municipality .itlu-map__locations li {
	position: relative;
	grid-template-columns: 2.25rem minmax(0, 1fr);
	padding: var(--itlu-space-3);
	box-shadow: none;
	counter-increment: itlu-map-location;
}

.itlu-map--municipality .itlu-map__locations li::before {
	display: inline-flex;
	grid-row: 1 / 4;
	align-items: center;
	justify-content: center;
	inline-size: 2rem;
	block-size: 2rem;
	border-radius: 50%;
	color: var(--itlu-color-surface);
	background: var(--itlu-color-primary);
	font-weight: var(--itlu-font-weight-strong);
	content: counter(itlu-map-location);
}

.itlu-map--municipality .itlu-map__locations :where(strong, span, a) {
	grid-column: 2;
}

@media (max-width: 48rem) {

	.itlu-map__layout {
		grid-template-columns: 1fr;
	}

	.itlu-map__canvas svg {
		min-block-size: 20rem;
	}
}

.itlu-weather__reading {
	display: flex;
	align-items: center;
	gap: var(--itlu-space-3);
}

.itlu-weather__reading .itlu-icon {
	inline-size: var(--itlu-space-7);
	block-size: var(--itlu-space-7);
	fill: none;
	stroke: currentcolor;
	stroke-width: 1.75;
}

@media (prefers-contrast: more) {

	.itlu-map__locations li,
	.itlu-rso__items li {
		border-width: var(--itlu-border-width-prominent);
	}

	.itlu-map__boundary {
		fill: var(--itlu-color-surface);
		stroke-width: 8;
	}
}
