.hd-city-page {
	--pink-text-accessible: #c2185b;
	--city-gold: #d7aa63;
}

.hd-city-page .hd-celebration-hero-image img {
	object-position: center;
}

.hd-city-introduction,
.hd-city-meaning,
.hd-city-feature,
.hd-city-heroic,
.hd-city-territory,
.hd-city-ecosystems,
.hd-city-government {
	margin-top: 48px;
}

.hd-city-introduction,
.hd-city-meaning,
.hd-city-feature {
	display: grid;
	grid-template-columns: minmax(320px, .9fr) minmax(0, 1.1fr);
	align-items: center;
	gap: 32px;
	padding: 34px;
	border: 1px solid var(--line);
	border-radius: 30px;
	background: #fff;
}

.hd-city-introduction {
	color: #fff;
	background: #0c252d;
}

.hd-city-page .hd-city-introduction .hd-celebration-microtitle {
	color: var(--city-gold);
}

.hd-city-page .hd-city-introduction :is(h2, strong) {
	color: #fff !important;
}

.hd-city-page .hd-city-introduction p:not(.hd-celebration-microtitle) {
	color: #d5dde0;
}

.hd-city-introduction figure,
.hd-city-meaning figure,
.hd-city-feature figure {
	margin: 0;
	overflow: hidden;
	border-radius: 22px;
}

.hd-city-page :is(.hd-city-introduction, .hd-city-meaning, .hd-city-feature) img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 22px !important;
}

.hd-city-page :is(.hd-city-introduction, .hd-city-meaning, .hd-city-feature) h2 {
	margin: 8px 0 0;
	font-size: clamp(2rem, 4vw, 3.35rem);
	line-height: 1.03;
}

.hd-city-introduction p:not(.hd-celebration-microtitle),
.hd-city-meaning-copy,
.hd-city-feature-copy {
	max-width: 68ch;
	margin: 16px 0 0;
	color: var(--secondary);
	font-size: .94rem;
	line-height: 1.7;
}

.hd-city-introduction p,
.hd-city-meaning-copy p,
.hd-city-feature-copy p {
	margin: 16px 0 0;
}

.hd-city-meaning {
	grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
	background: var(--night-paper);
}

.hd-city-meaning-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin-top: 22px;
}

.hd-city-meaning-grid article {
	min-height: 150px;
	padding: 16px;
	border: 1px solid var(--line);
	border-radius: 18px;
	background: #fff;
}

.hd-city-meaning-grid small {
	color: var(--pink-text-accessible);
	font-size: max(.75rem, 12px);
	font-weight: 800;
	text-transform: uppercase;
}

.hd-city-meaning-grid strong {
	display: block;
	margin-top: 14px;
	font-size: .88rem;
	line-height: 1.35;
}

.hd-city-meaning-grid div,
.hd-city-meaning-grid p {
	margin: 8px 0 0;
	color: var(--secondary);
	font-size: .75rem;
	line-height: 1.5;
}

.hd-city-feature .hd-celebration-button {
	margin-top: 20px;
}

.hd-city-feature--flavor {
	grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr);
}

.hd-city-heroic,
.hd-city-territory,
.hd-city-ecosystems,
.hd-city-government {
	padding: 34px;
	border: 1px solid var(--line);
	border-radius: 30px;
	background: #fff;
}

.hd-city-section-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 34px;
}

.hd-city-section-heading > p {
	max-width: 48ch;
	margin: 0;
	color: var(--secondary);
	font-size: .82rem;
	line-height: 1.65;
}

.hd-city-heroic {
	background: var(--night-paper);
}

.hd-city-heroic-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin-top: 24px;
}

.hd-city-heroic-grid article {
	min-height: 205px;
	padding: 20px;
	border: 1px solid var(--line);
	border-radius: 20px;
	background: #fff;
}

.hd-city-heroic-grid span {
	color: var(--secondary);
	font-size: .75rem;
	font-weight: 800;
}

.hd-city-heroic-grid small {
	display: block;
	margin-top: 26px;
	color: var(--pink-text-accessible);
	font-size: max(.75rem, 12px);
	font-weight: 800;
	text-transform: uppercase;
}

.hd-city-heroic-grid h3 {
	margin: 7px 0 0;
	font-size: 1rem;
	line-height: 1.3;
}

.hd-city-heroic-grid p {
	margin: 9px 0 0;
	color: var(--secondary);
	font-size: .78rem;
	line-height: 1.6;
}

.hd-city-heroic-image {
	margin: 14px 0 0;
	overflow: hidden;
	border-radius: 20px;
}

.hd-city-page .hd-city-heroic-image img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 16 / 6;
	object-fit: cover;
	object-position: center;
	border-radius: 20px !important;
}

.hd-city-territory {
	background: var(--night-paper);
}

.hd-city-territory-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 24px;
}

.hd-city-ecosystems-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin-top: 24px;
}

.hd-city-page :is(.hd-city-territory-grid, .hd-city-ecosystems-grid) article {
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: 20px;
	background: #fff;
}

.hd-city-page :is(.hd-city-territory-grid, .hd-city-ecosystems-grid) img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.hd-city-page :is(.hd-city-territory-grid, .hd-city-ecosystems-grid) article > div {
	padding: 18px;
}

.hd-city-page :is(.hd-city-territory-grid, .hd-city-ecosystems-grid) small {
	color: var(--pink-text-accessible);
	font-size: max(.75rem, 12px);
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.hd-city-page :is(.hd-city-territory-grid, .hd-city-ecosystems-grid) h3 {
	margin: 9px 0 0;
	font-size: 1rem;
}

.hd-city-page :is(.hd-city-territory-grid, .hd-city-ecosystems-grid) :is(p, li) {
	color: var(--secondary);
	font-size: .77rem;
	line-height: 1.6;
}

.hd-city-page :is(.hd-city-territory-grid, .hd-city-ecosystems-grid) details {
	margin-top: 14px;
	border-top: 1px solid var(--line);
}

.hd-city-page :is(.hd-city-territory-grid, .hd-city-ecosystems-grid) summary {
	min-height: 48px;
	display: flex;
	align-items: center;
	color: var(--ink);
	font-size: .77rem;
	font-weight: 800;
	cursor: pointer;
}

.hd-city-page :is(.hd-city-territory-grid, .hd-city-ecosystems-grid) details > :not(summary) {
	margin-top: 0;
}

.hd-city-resource {
	display: grid;
	grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
	align-items: center;
	gap: 24px;
	margin-top: 14px;
	padding: 18px;
	border-radius: 22px;
	color: #fff;
	background: #0c252d;
}

.hd-city-page .hd-city-resource img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 16px !important;
}

.hd-city-page .hd-city-resource .hd-celebration-microtitle {
	color: var(--city-gold);
}

.hd-city-resource h3 {
	margin: 8px 0 0;
	color: #fff !important;
	font-size: clamp(1.45rem, 3vw, 2.25rem);
}

.hd-city-resource p {
	margin: 12px 0 0;
	color: #d5dde0;
	font-size: .88rem;
	line-height: 1.65;
}

.hd-city-page .hd-city-resource a,
.hd-city-page .hd-city-resource a:visited,
.hd-city-page .hd-city-resource a:hover,
.hd-city-page .hd-city-resource a:active {
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	margin-top: 12px;
	color: #fff;
	font-size: .82rem;
	font-weight: 800;
}

.hd-city-government-details {
	margin-top: 24px;
	border: 1px solid var(--line);
	border-radius: 20px;
	background: var(--night-paper);
}

.hd-city-government-details > summary {
	min-height: 64px;
	display: flex;
	align-items: center;
	padding: 0 22px;
	font-size: .9rem;
	font-weight: 800;
	cursor: pointer;
}

.hd-city-government-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	padding: 0 18px 18px;
}

.hd-city-government-grid p {
	min-height: 88px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin: 0;
	padding: 14px;
	border-radius: 14px;
	background: #fff;
}

.hd-city-government-grid strong {
	color: var(--pink-text-accessible);
	font-size: .73rem;
}

.hd-city-government-grid span {
	margin-top: 6px;
	color: var(--secondary);
	font-size: .76rem;
	line-height: 1.45;
}

.hd-city-page :is(a, summary):focus-visible {
	outline: 3px solid var(--pink);
	outline-offset: 3px;
}

@media (max-width: 1000px) {
	.hd-city-introduction,
	.hd-city-meaning,
	.hd-city-feature {
		grid-template-columns: 1fr;
	}

	.hd-city-territory-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hd-city-ecosystems-grid,
	.hd-city-government-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.hd-city-section-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 12px;
	}
}

@media (max-width: 700px) {
	.hd-city-introduction,
	.hd-city-meaning,
	.hd-city-feature,
	.hd-city-heroic,
	.hd-city-territory,
	.hd-city-ecosystems,
	.hd-city-government {
		margin-top: 32px;
		padding: 18px;
		border-radius: 24px;
	}

	.hd-city-introduction,
	.hd-city-meaning,
	.hd-city-feature {
		gap: 20px;
	}

	.hd-city-page :is(.hd-city-introduction, .hd-city-meaning, .hd-city-feature) h2 {
		font-size: clamp(1.8rem, 9vw, 2.4rem);
	}

	.hd-city-meaning-grid {
		grid-template-columns: 1fr;
	}

	.hd-city-meaning-grid article {
		min-height: 120px;
	}

	.hd-city-heroic-grid,
	.hd-city-territory-grid,
	.hd-city-ecosystems-grid,
	.hd-city-government-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.hd-city-heroic-grid article {
		min-height: 205px;
		padding: 15px;
	}

	.hd-city-page :is(.hd-city-heroic-grid, .hd-city-territory-grid, .hd-city-ecosystems-grid) h3 {
		font-size: .86rem;
	}

	.hd-city-page :is(.hd-city-heroic-grid, .hd-city-territory-grid, .hd-city-ecosystems-grid) :is(p, li) {
		font-size: .73rem;
	}

	.hd-city-page :is(.hd-city-territory-grid, .hd-city-ecosystems-grid) article > div {
		padding: 14px;
	}

	.hd-city-resource {
		grid-template-columns: 1fr;
		padding: 14px;
	}

	.hd-city-government-grid {
		padding: 0 10px 10px;
	}

	.hd-city-government-grid p {
		min-height: 105px;
		padding: 12px;
	}
}
