/*
 * Local City pages — premium UI aligned with Rizve OS (case studies / services)
 */

.rj-cities-archive.rj-page-main .rj-city-hero__title,
.rj-city-single.rj-page-main .rj-city-detail-hero__title,
.rj-cities-archive.rj-page-main .rj-city-toolbar__title,
.rj-city-single.rj-page-main .rj-svc-sec-head h2 {
	font-family: "Space Grotesk", var(--rj-f-body);
	font-weight: 600;
	letter-spacing: -0.035em;
}

/* ─── Premium hero (archive + single) ───────────────────────────────────── */
.rj-city-hero--premium,
.rj-city-detail-hero--premium {
	position: relative;
	overflow: hidden;
}

.rj-city-hero--premium .rj-page-hero__ambient .glow-orb-1,
.rj-city-detail-hero--premium .rj-page-hero__ambient .glow-orb-1 {
	width: 420px;
	height: 420px;
	top: -6rem;
	left: -5rem;
}

.rj-city-hero--premium .rj-page-hero__ambient .glow-orb-2,
.rj-city-detail-hero--premium .rj-page-hero__ambient .glow-orb-2 {
	width: 480px;
	height: 480px;
	top: -4rem;
	right: -8%;
}

.rj-cities-archive .rj-city-hero {
	text-align: center;
	padding-block: clamp(60px, 8vw, 100px);
}

.rj-cities-archive .rj-city-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 60% 50% at 50% 0%, rgba(200, 255, 61, 0.07), transparent 70%);
	pointer-events: none;
}

.rj-city-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 720px;
	margin-inline: auto;
}

.rj-city-hero__title {
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.12;
	margin-block: 10px 16px;
}

.rj-city-hero__sub {
	font-size: clamp(1rem, 1.5vw, 1.125rem);
	color: var(--rj-text-2, #9ca3af);
	line-height: 1.7;
	max-width: 600px;
	margin: 0 auto 1.5rem;
}

.rj-city-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
}

/* ─── Single hero layout ─────────────────────────────────────────────────── */
.rj-city-detail-hero {
	padding-block: clamp(56px, 7vw, 88px);
}

.rj-city-detail-hero__grid {
	display: grid;
	gap: clamp(24px, 3vw, 40px);
	align-items: start;
	position: relative;
	z-index: 1;
}

@media (min-width: 960px) {
	.rj-city-detail-hero__grid {
		grid-template-columns: 1.05fr 0.95fr;
	}
}

.rj-city-detail-hero__title {
	font-size: clamp(1.85rem, 3.5vw, 2.75rem);
	line-height: 1.12;
	margin-block: 10px 14px;
}

.rj-city-detail-hero__sub {
	font-size: clamp(1rem, 1.4vw, 1.125rem);
	color: var(--rj-text-2, #9ca3af);
	line-height: 1.65;
	max-width: 36rem;
	margin-bottom: 1.25rem;
}

.rj-city-detail-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.rj-city-detail-hero__aside {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.rj-city-stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	padding: clamp(14px, 2vw, 20px);
	border-radius: var(--rj-radius-lg, 16px);
}

.rj-city-stats__item {
	padding: 12px 14px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid rgba(255, 255, 255, 0.06);
}

.rj-city-stats__item strong {
	display: block;
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--rj-lime, #c8ff3d);
	letter-spacing: -0.02em;
}

.rj-city-stats__item span {
	font-size: 0.78rem;
	color: var(--rj-text-2, #9ca3af);
}

.rj-city-benefits {
	padding: clamp(16px, 2vw, 22px);
	border-radius: var(--rj-radius-lg, 16px);
}

.rj-city-benefits__title {
	font-size: 1rem;
	font-weight: 600;
	margin: 0 0 12px;
}

.rj-city-benefits__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.rj-city-benefits__list li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 0.9rem;
	color: var(--rj-text-1, #e5e7eb);
	line-height: 1.45;
}

.rj-city-benefits__list svg {
	flex-shrink: 0;
	color: var(--rj-lime, #c8ff3d);
	margin-top: 2px;
}

/* ─── State filters (match case study tabs) ──────────────────────────────── */
.rj-city-filters {
	border-bottom: 1px solid var(--rj-border, rgba(255, 255, 255, 0.08));
	position: sticky;
	top: 60px;
	z-index: 40;
	background: var(--rj-bg-1, #0f0f13);
	backdrop-filter: blur(12px);
}

.rj-city-filters__inner {
	display: flex;
	align-items: center;
	gap: 4px;
	overflow-x: auto;
	scrollbar-width: none;
	padding-block: 12px;
	-ms-overflow-style: none;
}

.rj-city-filters__inner::-webkit-scrollbar {
	display: none;
}

.rj-city-filters__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 16px;
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 500;
	white-space: nowrap;
	color: var(--rj-text-2, #9ca3af);
	border: 1px solid transparent;
	transition: color 0.18s, background 0.18s, border-color 0.18s;
	text-decoration: none;
	flex-shrink: 0;
}

.rj-city-filters__btn:hover {
	color: var(--rj-text-1, #e5e7eb);
	background: rgba(255, 255, 255, 0.06);
}

.rj-city-filters__btn.is-active {
	color: var(--rj-bg-0, #000);
	background: var(--rj-lime, #c8ff3d);
	border-color: var(--rj-lime, #c8ff3d);
}

.rj-city-filters__count {
	font-size: 0.75rem;
	opacity: 0.75;
	font-variant-numeric: tabular-nums;
}

/* ─── Toolbar + search ───────────────────────────────────────────────────── */
.rj-city-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: clamp(20px, 3vw, 32px);
}

.rj-city-toolbar__title {
	font-size: clamp(1.35rem, 2.5vw, 1.75rem);
	margin: 6px 0 0;
	line-height: 1.2;
}

.rj-city-search {
	position: relative;
	flex: 1 1 280px;
	max-width: 380px;
}

.rj-city-search__icon {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--rj-text-2, #9ca3af);
	pointer-events: none;
}

.rj-city-search__input {
	width: 100%;
	padding: 12px 14px 12px 44px;
	border-radius: 12px;
	border: 1px solid var(--rj-border, rgba(255, 255, 255, 0.1));
	background: rgba(255, 255, 255, 0.04);
	color: var(--rj-text-1, #e5e7eb);
	font-size: 0.9375rem;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.rj-city-search__input:focus {
	outline: none;
	border-color: rgba(200, 255, 61, 0.45);
	box-shadow: 0 0 0 3px rgba(200, 255, 61, 0.12);
}

.rj-city-search__input::placeholder {
	color: var(--rj-text-3, #6b7280);
}

/* ─── City card grid ─────────────────────────────────────────────────────── */
.rj-city-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(14px, 1.8vw, 22px);
}

.rj-city-grid--archive {
	gap: clamp(16px, 2vw, 24px);
}

@media (min-width: 1200px) {
	.rj-city-grid--archive {
		grid-template-columns: repeat(4, 1fr);
	}
}

.rj-city-grid--related {
	grid-template-columns: repeat(3, 1fr);
}

.rj-city-card {
	display: flex;
	flex-direction: column;
	border-radius: var(--rj-radius-lg, 16px);
	overflow: hidden;
	transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.rj-city-card:hover {
	transform: translateY(-3px);
}

.rj-city-card__viz-link {
	display: block;
	flex-shrink: 0;
}

.rj-city-card__viz {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: linear-gradient(135deg, #0c2030 0%, #0a1428 55%, #0a1230 100%);
}

.rj-city-card__viz--local .rj-city-card__mock {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.rj-city-card__mock-pin {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--rj-cyan, #2ee6e0);
	box-shadow: 0 0 0 6px rgba(46, 230, 224, 0.2), 0 0 24px rgba(46, 230, 224, 0.35);
}

.rj-city-card__mock-ring {
	position: absolute;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	border: 1px dashed rgba(46, 230, 224, 0.25);
	top: 50%;
	left: 50%;
	transform: translate(-50%, -58%);
}

.rj-city-card__mock-label {
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.75);
	max-width: 90%;
	text-align: center;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rj-city-card__badge {
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	background: rgba(0, 0, 0, 0.65);
	backdrop-filter: blur(6px);
	color: var(--rj-cyan, #2ee6e0);
	border: 1px solid rgba(46, 230, 224, 0.3);
}

.rj-city-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: clamp(16px, 2vw, 22px);
	gap: 6px;
}

.rj-city-card__meta-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	font-size: 0.78rem;
	color: var(--rj-text-2, #9ca3af);
}

.rj-city-card__meta-dot {
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: var(--rj-text-3, #6b7280);
}

.rj-city-card__title {
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0;
	line-height: 1.3;
}

.rj-city-card__title a {
	color: inherit;
	text-decoration: none;
}

.rj-city-card__title a:hover {
	color: var(--rj-lime, #c8ff3d);
}

.rj-city-card__excerpt {
	font-size: 0.875rem;
	color: var(--rj-text-2, #9ca3af);
	line-height: 1.55;
	margin: 0;
}

.rj-city-card__footer {
	padding: 0 clamp(16px, 2vw, 22px) clamp(16px, 2vw, 20px);
	margin-top: auto;
}

.rj-city-card__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--rj-lime, #c8ff3d);
	text-decoration: none;
	transition: gap 0.2s;
}

.rj-city-card__link:hover {
	gap: 10px;
}

.rj-city-card.is-hidden {
	display: none;
}

/* ─── Premium archive cards ──────────────────────────────────────────────── */
.rj-city-card--pro {
	position: relative;
	border-radius: 18px;
	overflow: hidden;
	transition: transform 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease;
}

.rj-city-card--pro:hover {
	transform: translateY(-5px);
	box-shadow: 0 22px 48px rgba(0, 0, 0, 0.38);
	border-color: rgba(184, 255, 59, 0.22);
}

.rj-city-card__accent {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	z-index: 2;
	background: linear-gradient(
		90deg,
		hsla(var(--city-hue, 160), 72%, 58%, 0.95),
		hsla(calc(var(--city-hue, 160) + 40), 70%, 62%, 0.55),
		transparent
	);
}

.rj-city-card__viz--pro {
	position: relative;
	aspect-ratio: 16 / 10;
	background:
		radial-gradient(ellipse 80% 70% at 50% 100%, hsla(var(--city-hue, 160), 55%, 42%, 0.28), transparent 68%),
		linear-gradient(160deg, #0a1424 0%, #0c1a30 45%, #081018 100%);
}

.rj-city-card__skyline {
	position: absolute;
	inset: auto 0 0;
	height: 58%;
	opacity: 0.72;
	pointer-events: none;
	background:
		linear-gradient(180deg, transparent 0%, rgba(8, 12, 24, 0.92) 100%),
		linear-gradient(hsla(var(--city-hue, 160), 52%, 46%, 0.42), hsla(var(--city-hue, 160), 52%, 46%, 0.42)) 6% 100% / 5% 38% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 52%, 46%, 0.34), hsla(var(--city-hue, 160), 52%, 46%, 0.34)) 14% 100% / 7% 52% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 52%, 46%, 0.48), hsla(var(--city-hue, 160), 52%, 46%, 0.48)) 24% 100% / 9% 72% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 52%, 46%, 0.3), hsla(var(--city-hue, 160), 52%, 46%, 0.3)) 36% 100% / 6% 44% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 52%, 46%, 0.4), hsla(var(--city-hue, 160), 52%, 46%, 0.4)) 48% 100% / 10% 82% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 52%, 46%, 0.28), hsla(var(--city-hue, 160), 52%, 46%, 0.28)) 62% 100% / 6% 48% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 52%, 46%, 0.36), hsla(var(--city-hue, 160), 52%, 46%, 0.36)) 74% 100% / 8% 64% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 52%, 46%, 0.44), hsla(var(--city-hue, 160), 52%, 46%, 0.44)) 86% 100% / 7% 56% no-repeat;
}

.rj-city-card__viz-glow {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 50% 78%, hsla(var(--city-hue, 160), 80%, 58%, 0.22), transparent 52%);
	pointer-events: none;
}

.rj-city-card__viz-top {
	position: absolute;
	top: 10px;
	left: 10px;
	right: 10px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.rj-city-card--pro .rj-city-card__badge {
	position: static;
	padding: 4px 10px;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	background: rgba(0, 0, 0, 0.55);
	border-color: hsla(var(--city-hue, 160), 70%, 58%, 0.35);
	color: hsl(var(--city-hue, 160), 72%, 72%);
}

.rj-city-card__chip {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.82);
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(6px);
}

.rj-city-card__index {
	position: absolute;
	right: 12px;
	bottom: 10px;
	z-index: 2;
	font-family: var(--rj-f-mono, ui-monospace, monospace);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: rgba(255, 255, 255, 0.35);
}

.rj-city-card--pro .rj-city-card__mock-pin {
	width: 16px;
	height: 16px;
	background: hsl(var(--city-hue, 160), 72%, 58%);
	box-shadow:
		0 0 0 7px hsla(var(--city-hue, 160), 72%, 58%, 0.18),
		0 0 28px hsla(var(--city-hue, 160), 72%, 58%, 0.45);
}

.rj-city-card--pro .rj-city-card__mock-ring {
	width: 132px;
	height: 132px;
	border-color: hsla(var(--city-hue, 160), 65%, 58%, 0.28);
}

.rj-city-card__state {
	font-weight: 600;
	color: var(--rj-text-1, #e5e7eb);
}

.rj-city-card__population {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.rj-city-card__population svg {
	opacity: 0.75;
	flex-shrink: 0;
}

.rj-city-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 4px;
}

.rj-city-card__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 11px 16px;
	border-radius: 12px;
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	color: #0b0d10;
	background: linear-gradient(135deg, var(--rj-lime, #b8ff3c), #9de82a);
	border: 1px solid rgba(184, 255, 59, 0.45);
	transition: gap 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.rj-city-card__cta:hover {
	gap: 12px;
	box-shadow: 0 8px 24px rgba(184, 255, 59, 0.22);
	transform: translateY(-1px);
}

.rj-city-card--pro .rj-city-card__body {
	padding-top: clamp(18px, 2vw, 22px);
}

.rj-city-card--pro .rj-city-card__title {
	font-size: 1.08rem;
	letter-spacing: -0.02em;
}

.rj-city-card--pro .rj-city-card__footer {
	padding-top: 4px;
}

/* ─── Cities pagination (premium) ────────────────────────────────────────── */
.rj-city-grid-section .rj-city-pagination {
	margin-top: clamp(28px, 4vw, 44px);
	padding-top: clamp(22px, 3vw, 32px);
	border-top: 1px solid rgba(148, 163, 184, 0.14);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
}

.rj-city-pagination__summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 6px 8px;
	font-size: 0.875rem;
	color: var(--rj-text-2, #9ca3af);
}

.rj-city-pagination__summary strong {
	color: var(--rj-text-1, #f3f4f6);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.rj-city-pagination__summary-dot {
	opacity: 0.45;
}

.rj-city-pagination__summary-page {
	font-size: 0.8125rem;
	color: var(--rj-text-3, #6b7280);
}

.rj-city-pagination__links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.rj-city-pagination__links .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	border-radius: 12px;
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--rj-text-2, #9ca3af);
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid rgba(148, 163, 184, 0.18);
	transition: color 0.18s ease, background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.rj-city-pagination__links .page-numbers:hover {
	color: var(--rj-text-1, #f3f4f6);
	border-color: rgba(184, 255, 59, 0.35);
	background: rgba(184, 255, 59, 0.06);
	transform: translateY(-1px);
}

.rj-city-pagination__links .page-numbers.current {
	color: #0b0d10;
	background: linear-gradient(135deg, var(--rj-lime, #b8ff3c), #8fd624);
	border-color: rgba(184, 255, 59, 0.55);
	box-shadow: 0 8px 22px rgba(184, 255, 59, 0.18);
}

.rj-city-pagination__links .page-numbers.dots {
	min-width: auto;
	padding: 0 6px;
	border: none;
	background: none;
	color: var(--rj-text-3, #6b7280);
}

.rj-city-pagination__links .page-numbers.prev,
.rj-city-pagination__links .page-numbers.next {
	min-width: auto;
	padding-inline: 18px;
	font-weight: 600;
}

.rj-city-pagination__nav-label {
	white-space: nowrap;
}

@media (max-width: 640px) {
	.rj-city-pagination__links .page-numbers.prev,
	.rj-city-pagination__links .page-numbers.next {
		flex: 1 1 calc(50% - 4px);
	}

	.rj-city-pagination__links .page-numbers:not(.prev):not(.next):not(.current) {
		display: none;
	}

	.rj-city-pagination__links .page-numbers.current {
		order: -1;
		flex: 0 0 100%;
		margin-bottom: 4px;
	}
}

/* ─── Service cards (single) ─────────────────────────────────────────────── */
.rj-city-svc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: clamp(12px, 1.5vw, 18px);
}

.rj-city-svc-card {
	padding: clamp(18px, 2vw, 24px);
	border-radius: var(--rj-radius-lg, 16px);
	transition: border-color 0.25s ease, transform 0.25s ease;
}

.rj-city-svc-card:hover {
	border-color: rgba(200, 255, 61, 0.22);
}

.rj-city-svc-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	margin-bottom: 12px;
	background: rgba(200, 255, 61, 0.1);
	border: 1px solid rgba(200, 255, 61, 0.22);
	color: var(--rj-lime, #c8ff3d);
}

.rj-city-svc-card h3 {
	font-size: 1rem;
	font-weight: 600;
	margin: 0 0 8px;
}

.rj-city-svc-card p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--rj-text-2, #9ca3af);
	line-height: 1.55;
}

.rj-city-more {
	margin-top: 1.25rem;
}

.rj-city-prose {
	max-width: 48rem;
}

.rj-city-intro__prose p {
	font-size: 1.02rem;
	line-height: 1.75;
	color: var(--rj-text-1, #e5e7eb);
	margin: 0 0 1rem;
}

.rj-city-intro__market {
	padding: 14px 16px;
	border-radius: 12px;
	background: rgba(200, 255, 61, 0.06);
	border: 1px solid rgba(200, 255, 61, 0.14);
}

/* ─── Pain points grid ───────────────────────────────────────────────────── */
.rj-city-pain__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: clamp(12px, 1.5vw, 18px);
}

.rj-city-pain__card {
	padding: clamp(18px, 2vw, 24px);
	border-radius: var(--rj-radius-lg, 16px);
}

.rj-city-pain__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	margin-bottom: 12px;
	background: rgba(200, 255, 61, 0.1);
	border: 1px solid rgba(200, 255, 61, 0.22);
	color: var(--rj-lime, #c8ff3d);
}

.rj-city-pain__card h3 {
	font-size: 1rem;
	font-weight: 600;
	margin: 0 0 8px;
	line-height: 1.35;
}

.rj-city-pain__card p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--rj-text-2, #9ca3af);
	line-height: 1.6;
}

/* ─── Deep service cards ─────────────────────────────────────────────────── */
.rj-city-svc-deep {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: clamp(12px, 1.5vw, 18px);
}

.rj-city-svc-deep__card {
	padding: clamp(18px, 2vw, 24px);
	border-radius: var(--rj-radius-lg, 16px);
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.rj-city-svc-deep__head {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.rj-city-svc-deep__head h3 {
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0;
	line-height: 1.3;
}

.rj-city-svc-deep__card p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--rj-text-2, #9ca3af);
	line-height: 1.6;
	flex: 1;
}

.rj-city-svc-deep__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--rj-lime, #c8ff3d);
	text-decoration: none;
	margin-top: auto;
}

.rj-city-svc-deep__link:hover {
	gap: 10px;
}

/* ─── Section heads (city pages — no service.css dependency) ─────────────── */
.rj-city-single .rj-svc-sec-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: clamp(28px, 4vw, 40px);
	flex-wrap: wrap;
}

.rj-city-single .rj-svc-sec-head h2 {
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	color: var(--rj-text-primary, #f3f4f6);
	margin: 12px 0 0;
	line-height: 1.15;
}

.rj-city-single .rj-svc-sec-head p {
	color: var(--rj-text-secondary, #9ca3af);
	max-width: 42ch;
	font-size: 0.9375rem;
	line-height: 1.65;
	margin: 0;
}

/* ─── Section rhythm ─────────────────────────────────────────────────────── */
.rj-city-single .rj-city-why-section {
	padding-block-end: clamp(88px, 11vw, 140px);
}

.rj-city-single .rj-city-process-section {
	padding-block-start: clamp(48px, 6vw, 72px);
}

.rj-city-single .rj-city-faq-section {
	padding-block: clamp(72px, 9vw, 120px);
}

/* ─── How I help ─────────────────────────────────────────────────────────── */
.rj-city-help__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: clamp(16px, 2vw, 22px);
}

.rj-city-help__card {
	padding: clamp(20px, 2.5vw, 28px);
	border-radius: var(--rj-radius-lg, 16px);
}

.rj-city-help__card h3 {
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0 0 10px;
}

.rj-city-help__card p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--rj-text-2, #9ca3af);
	line-height: 1.65;
}

/* ─── Why choose (spaced cards + accent) ─────────────────────────────────── */
.rj-city-why__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(18px, 2.5vw, 24px);
	margin-top: 4px;
}

.rj-city-why__card {
	position: relative;
	padding: clamp(22px, 2.5vw, 30px) clamp(20px, 2.5vw, 28px);
	border-radius: 18px;
	overflow: hidden;
	transition: transform 0.25s ease, border-color 0.25s ease;
}

.rj-city-why__card:hover {
	transform: translateY(-3px);
}

.rj-city-why__accent {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--rj-lime, #c8ff3d), transparent);
	opacity: 0.85;
}

.rj-city-why__card--cyan .rj-city-why__accent {
	background: linear-gradient(90deg, var(--rj-cyan, #2ee6e0), transparent);
}

.rj-city-why__card--violet .rj-city-why__accent {
	background: linear-gradient(90deg, #8b5cf6, transparent);
}

.rj-city-why__card h3 {
	font-size: 1.0625rem;
	font-weight: 600;
	margin: 0 0 10px;
	line-height: 1.35;
	color: var(--rj-text-primary, #f3f4f6);
}

.rj-city-why__card p {
	margin: 0;
	font-size: 0.9rem;
	color: var(--rj-text-secondary, #9ca3af);
	line-height: 1.65;
}

/* ─── How it works — process cards ───────────────────────────────────────── */
.rj-city-process {
	position: relative;
	margin-top: 8px;
}

.rj-city-process__line {
	display: none;
}

.rj-city-process__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(14px, 2vw, 20px);
}

.rj-city-process__card {
	position: relative;
	padding: clamp(22px, 2.5vw, 28px) clamp(18px, 2vw, 24px);
	border-radius: 18px;
	border-top: 2px solid transparent;
	min-height: 100%;
	transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.rj-city-process__card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
}

.rj-city-process__card--lime {
	border-top-color: rgba(200, 255, 61, 0.45);
}

.rj-city-process__card--cyan {
	border-top-color: rgba(46, 230, 224, 0.45);
}

.rj-city-process__card--violet {
	border-top-color: rgba(139, 92, 246, 0.45);
}

.rj-city-process__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	margin-bottom: 14px;
	font-family: var(--rj-f-mono, ui-monospace, monospace);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	border-radius: 10px;
	background: rgba(200, 255, 61, 0.12);
	border: 1px solid rgba(200, 255, 61, 0.28);
	color: var(--rj-lime, #c8ff3d);
}

.rj-city-process__card--cyan .rj-city-process__num {
	background: rgba(46, 230, 224, 0.1);
	border-color: rgba(46, 230, 224, 0.28);
	color: var(--rj-cyan, #2ee6e0);
}

.rj-city-process__card--violet .rj-city-process__num {
	background: rgba(139, 92, 246, 0.12);
	border-color: rgba(139, 92, 246, 0.28);
	color: #a78bfa;
}

.rj-city-process__title {
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0 0 8px;
	color: var(--rj-text-primary, #f3f4f6);
	line-height: 1.3;
}

.rj-city-process__desc {
	margin: 0;
	font-size: 0.875rem;
	color: var(--rj-text-secondary, #9ca3af);
	line-height: 1.6;
}

@media (min-width: 1100px) {
	.rj-city-process__line {
		display: block;
		position: absolute;
		top: 2.75rem;
		left: 8%;
		right: 8%;
		height: 2px;
		background: linear-gradient(
			90deg,
			rgba(200, 255, 61, 0.15),
			rgba(46, 230, 224, 0.35),
			rgba(139, 92, 246, 0.15)
		);
		z-index: 0;
		pointer-events: none;
	}

	.rj-city-process__grid {
		position: relative;
		z-index: 1;
	}
}

/* ─── Industries bento ───────────────────────────────────────────────────── */
.rj-city-industries-bento {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(14px, 2vw, 18px);
}

.rj-city-industry-tile {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 14px;
	align-items: start;
	padding: clamp(18px, 2vw, 24px);
	border-radius: 18px;
	transition: transform 0.25s ease, border-color 0.25s ease;
}

.rj-city-industry-tile:hover {
	transform: translateY(-2px);
	border-color: rgba(200, 255, 61, 0.22);
}

.rj-city-industry-tile--wide {
	grid-column: span 2;
}

.rj-city-industry-tile__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 14px;
	flex-shrink: 0;
	background: linear-gradient(135deg, rgba(200, 255, 61, 0.14), rgba(46, 230, 224, 0.08));
	border: 1px solid rgba(200, 255, 61, 0.2);
	color: var(--rj-lime, #c8ff3d);
}

.rj-city-industry-tile__title {
	font-size: 1rem;
	font-weight: 600;
	margin: 0 0 6px;
	color: var(--rj-text-primary, #f3f4f6);
}

.rj-city-industry-tile__body p {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--rj-text-secondary, #9ca3af);
	line-height: 1.55;
}

/* ─── Search intent cards ────────────────────────────────────────────────── */
.rj-city-intents__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(16px, 2vw, 22px);
}

.rj-city-intent-card {
	padding: clamp(20px, 2.5vw, 28px);
	border-radius: 18px;
	border: 1px solid rgba(148, 173, 220, 0.12);
	background: linear-gradient(145deg, rgba(13, 20, 36, 0.85), rgba(8, 12, 24, 0.6));
	transition: transform 0.25s ease, border-color 0.25s ease;
}

.rj-city-intent-card:hover {
	transform: translateY(-3px);
	border-color: rgba(46, 230, 224, 0.28);
}

.rj-city-intent-card__top {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 12px;
}

.rj-city-intent-card__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: rgba(46, 230, 224, 0.12);
	border: 1px solid rgba(46, 230, 224, 0.25);
	color: var(--rj-cyan, #2ee6e0);
}

.rj-city-intent-card__label {
	font-family: var(--rj-f-mono, ui-monospace, monospace);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rj-text-secondary, #9ca3af);
}

.rj-city-intent-card__query {
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0 0 10px;
	line-height: 1.4;
	color: var(--rj-lime, #c8ff3d);
}

.rj-city-intent-card__answer {
	margin: 0;
	font-size: 0.9rem;
	color: var(--rj-text-secondary, #9ca3af);
	line-height: 1.65;
}

/* ─── Keywords chips ─────────────────────────────────────────────────────── */
.rj-city-keywords {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.rj-city-single .rj-chip {
	display: inline-block;
	padding: 8px 14px;
	border-radius: 999px;
	font-size: 0.8125rem;
	line-height: 1.3;
	border: 1px solid rgba(148, 173, 220, 0.15);
}

.rj-city-single .rj-chip--lime {
	border-color: rgba(200, 255, 61, 0.25);
	background: rgba(200, 255, 61, 0.06);
	color: var(--rj-text-primary, #e5e7eb);
}

/* ─── Free audit CTA (premium) ───────────────────────────────────────────── */
.rj-city-audit-cta-section {
	padding-block: clamp(56px, 7vw, 96px);
}

.rj-city-audit-cta {
	position: relative;
	overflow: hidden;
	border-radius: 24px;
	padding: clamp(28px, 4vw, 44px);
	border: 1px solid rgba(200, 255, 61, 0.18);
}

.rj-city-audit-cta__glow {
	position: absolute;
	top: -30%;
	right: -10%;
	width: 55%;
	height: 120%;
	background: radial-gradient(ellipse at center, rgba(200, 255, 61, 0.14), transparent 68%);
	pointer-events: none;
}

.rj-city-audit-cta__mesh {
	position: absolute;
	inset: 0;
	opacity: 0.35;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
	background-size: 32px 32px;
	pointer-events: none;
}

.rj-city-audit-cta__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	gap: clamp(24px, 4vw, 40px);
	align-items: center;
}

.rj-city-audit-cta__title {
	font-size: clamp(1.35rem, 2.5vw, 1.85rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.2;
	margin: 10px 0 12px;
	color: var(--rj-text-primary, #f3f4f6);
}

.rj-city-audit-cta__sub {
	font-size: 0.9375rem;
	color: var(--rj-text-secondary, #9ca3af);
	line-height: 1.65;
	margin: 0 0 16px;
	max-width: 38rem;
}

.rj-city-audit-cta__perks {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
}

.rj-city-audit-cta__perks li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.8125rem;
	color: var(--rj-text-primary, #e5e7eb);
}

.rj-city-audit-cta__perks svg {
	color: var(--rj-lime, #c8ff3d);
	flex-shrink: 0;
}

.rj-city-audit-cta__panel {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: clamp(20px, 2.5vw, 28px);
	border-radius: 18px;
	background: rgba(0, 0, 0, 0.35);
	border: 1px solid rgba(255, 255, 255, 0.08);
}

.rj-city-audit-cta__panel-label {
	margin: 0 0 4px;
	font-family: var(--rj-f-mono, ui-monospace, monospace);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--rj-cyan, #2ee6e0);
}

.rj-city-audit-cta__btn-primary {
	width: 100%;
	justify-content: center;
}

.rj-city-audit-cta__panel .rj-btn-secondary {
	width: 100%;
	justify-content: center;
}

.rj-city-audit-cta__note {
	margin: 4px 0 0;
	font-size: 0.75rem;
	color: var(--rj-text-secondary, #9ca3af);
	text-align: center;
	line-height: 1.5;
}

/* ─── FAQ accordion (self-contained) ─────────────────────────────────────── */
.rj-city-faqs {
	max-width: 920px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.rj-city-faq-item {
	border-radius: 16px;
	background: rgba(13, 20, 36, 0.65);
	border: 1px solid rgba(148, 173, 220, 0.12);
	overflow: hidden;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.rj-city-faq-item:hover {
	border-color: rgba(148, 173, 220, 0.22);
}

.rj-city-faq-item[open] {
	border-color: rgba(200, 255, 61, 0.28);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
}

.rj-city-faq-item__q {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 20px 24px;
	font-size: 1rem;
	font-weight: 600;
	color: var(--rj-text-primary, #f3f4f6);
	line-height: 1.4;
}

.rj-city-faq-item__q::-webkit-details-marker {
	display: none;
}

.rj-city-faq-item__q::marker {
	content: "";
}

.rj-city-faq-item__text {
	flex: 1;
	min-width: 0;
}

.rj-city-faq-item__icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
	color: var(--rj-text-secondary, #9ca3af);
	transition: transform 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.rj-city-faq-item[open] .rj-city-faq-item__icon {
	transform: rotate(45deg);
	color: var(--rj-lime, #c8ff3d);
	background: rgba(200, 255, 61, 0.1);
	border-color: rgba(200, 255, 61, 0.25);
}

.rj-city-faq-item[open] .rj-city-faq-item__body {
	padding: 0 24px 20px;
	border-top: 1px solid rgba(148, 173, 220, 0.08);
}

.rj-city-faq-item__a {
	margin: 16px 0 0;
	font-size: 0.9375rem;
	color: var(--rj-text-secondary, #9ca3af);
	line-height: 1.7;
}

/* ─── Archive + final CTAs ───────────────────────────────────────────────── */
.rj-city-archive-cta-section,
.rj-city-final-cta-section {
	padding-block-end: clamp(60px, 8vw, 100px);
}

.rj-city-archive-cta,
.rj-city-final-cta {
	position: relative;
	text-align: center;
	padding: clamp(32px, 4vw, 48px) clamp(24px, 3vw, 40px);
	border-radius: var(--rj-radius-lg, 16px);
	overflow: hidden;
}

.rj-city-archive-cta__glow,
.rj-city-final-cta__glow {
	position: absolute;
	inset: -40% 10% auto;
	height: 200px;
	background: radial-gradient(ellipse at center, rgba(200, 255, 61, 0.12), transparent 70%);
	pointer-events: none;
}

.rj-city-archive-cta__title,
.rj-city-final-cta__title {
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 600;
	line-height: 1.2;
	margin: 10px 0 12px;
	position: relative;
}

.rj-city-archive-cta__sub,
.rj-city-final-cta__sub {
	color: var(--rj-text-2, #9ca3af);
	max-width: 32rem;
	margin: 0 auto 1.25rem;
	line-height: 1.65;
	position: relative;
}

.rj-city-archive-cta__actions,
.rj-city-final-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	position: relative;
}

.rj-city-archive-cta__note,
.rj-city-final-cta__note {
	font-size: 0.8125rem;
	color: var(--rj-text-3, #6b7280);
	margin: 1rem 0 0;
	position: relative;
}

.rj-page-main .rj-city-card:hover,
.rj-page-main .rj-city-svc-card:hover {
	border-color: rgba(184, 255, 59, 0.22);
}

/* ─── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
	.rj-city-grid,
	.rj-city-grid--related,
	.rj-city-grid--archive {
		grid-template-columns: repeat(2, 1fr);
	}

	.rj-city-process__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.rj-city-industries-bento {
		grid-template-columns: repeat(2, 1fr);
	}

	.rj-city-industry-tile--wide {
		grid-column: span 2;
	}

	.rj-city-audit-cta__inner {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.rj-city-why__grid,
	.rj-city-intents__grid {
		grid-template-columns: 1fr;
	}

	.rj-city-industries-bento {
		grid-template-columns: 1fr;
	}

	.rj-city-industry-tile--wide {
		grid-column: span 1;
	}
}

@media (max-width: 640px) {
	.rj-city-grid,
	.rj-city-grid--related,
	.rj-city-grid--archive {
		grid-template-columns: 1fr;
	}

	.rj-city-toolbar {
		flex-direction: column;
		align-items: stretch;
	}

	.rj-city-search {
		max-width: none;
	}

	.rj-city-detail-hero__actions,
	.rj-city-hero__actions,
	.rj-city-archive-cta__actions,
	.rj-city-final-cta__actions {
		flex-direction: column;
	}

	.rj-city-detail-hero__actions .rj-btn,
	.rj-city-hero__actions .rj-btn,
	.rj-city-archive-cta__actions .rj-btn,
	.rj-city-final-cta__actions .rj-btn {
		width: 100%;
		justify-content: center;
	}

	.rj-city-stats {
		grid-template-columns: 1fr 1fr;
	}

	.rj-city-process__grid {
		grid-template-columns: 1fr;
	}

	.rj-city-audit-cta__perks {
		flex-direction: column;
		gap: 8px;
	}
}

/* ─── Internal linking hub (Phase 2) ─────────────────────────────────────── */
.rj-city-linking-hub {
	padding-block-start: 0;
}

.rj-city-linking-hub__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
	margin-top: 28px;
}

.rj-city-linking-hub__col {
	padding: 20px 22px;
	border-radius: var(--rj-radius-md, 12px);
}

.rj-city-linking-hub__title {
	font-size: 0.95rem;
	font-weight: 600;
	margin: 0 0 12px;
	color: var(--rj-text-1, #f3f4f6);
}

.rj-city-linking-hub__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.rj-city-linking-hub__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	color: var(--rj-text-2, #9ca3af);
	text-decoration: none;
	font-size: 0.9rem;
	line-height: 1.35;
	transition: color 0.18s ease;
}

.rj-city-linking-hub__list a:hover {
	color: var(--rj-lime, #c8ff3d);
}

.rj-city-linking-hub__state-desc {
	font-size: 0.88rem;
	color: var(--rj-text-3, #6b7280);
	margin: 0 0 14px;
	line-height: 1.5;
}

.rj-city-linking-hub__col--state {
	border-color: rgba(46, 230, 224, 0.2);
}

/* ─── Phase 2: state rollup + homepage tier-1 grid ───────────────────────── */
.rj-state-rollup {
	padding-top: 0;
}

.rj-state-rollup__services {
	padding: 24px 28px;
	margin-bottom: 20px;
}

.rj-state-rollup__title {
	margin: 8px 0 16px;
	font-size: 1.35rem;
}

.rj-state-rollup__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
}

.rj-state-rollup__list a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
	color: var(--rj-text-1, #f3f4f6);
	text-decoration: none;
}

.rj-state-rollup__list a:hover {
	color: var(--rj-lime, #c8ff3d);
}

.rj-state-rollup__desc {
	font-size: 0.95rem;
	color: var(--rj-text-2, #9ca3af);
	line-height: 1.6;
}

.rj-state-rollup__desc a {
	color: var(--rj-cyan, #2ee6e0);
	text-decoration: none;
}

.rj-state-rollup__desc a:hover {
	text-decoration: underline;
}

.rj-home-cities-section__cta {
	margin-top: 28px;
	text-align: center;
}

.rj-city-grid--home {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 20px;
}

.rj-home-city-item__service {
	margin: 10px 4px 0;
	font-size: 0.82rem;
	color: var(--rj-text-3, #6b7280);
}

.rj-home-city-item__service a {
	color: var(--rj-cyan, #2ee6e0);
	font-weight: 600;
	text-decoration: none;
}

.rj-home-city-item__service a:hover {
	text-decoration: underline;
}

@media (min-width: 1200px) {
	.rj-city-grid--home {
		grid-template-columns: repeat(5, 1fr);
	}
}

/* ─── City hero skyline (Phase 3) ────────────────────────────────────────── */
.rj-city-hero-visual {
	position: absolute;
	inset: auto 0 0;
	height: 42%;
	pointer-events: none;
	opacity: 0.55;
}

.rj-city-hero-visual__skyline {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, transparent 0%, rgba(8, 12, 24, 0.85) 100%),
		repeating-linear-gradient(
			90deg,
			transparent 0,
			transparent 18px,
			hsla(var(--city-hue, 160), 70%, 55%, 0.08) 18px,
			hsla(var(--city-hue, 160), 70%, 55%, 0.08) 20px
		);
	mask-image: linear-gradient(180deg, transparent, #000 55%);
}

.rj-city-hero-visual__skyline::before,
.rj-city-hero-visual__skyline::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 72%;
	background:
		linear-gradient(hsla(var(--city-hue, 160), 55%, 48%, 0.35), hsla(var(--city-hue, 160), 55%, 48%, 0.35)) 4% 100% / 6% 45% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 55%, 48%, 0.28), hsla(var(--city-hue, 160), 55%, 48%, 0.28)) 12% 100% / 8% 62% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 55%, 48%, 0.4), hsla(var(--city-hue, 160), 55%, 48%, 0.4)) 22% 100% / 10% 78% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 55%, 48%, 0.25), hsla(var(--city-hue, 160), 55%, 48%, 0.25)) 34% 100% / 7% 52% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 55%, 48%, 0.32), hsla(var(--city-hue, 160), 55%, 48%, 0.32)) 44% 100% / 9% 68% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 55%, 48%, 0.38), hsla(var(--city-hue, 160), 55%, 48%, 0.38)) 56% 100% / 11% 85% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 55%, 48%, 0.22), hsla(var(--city-hue, 160), 55%, 48%, 0.22)) 68% 100% / 6% 48% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 55%, 48%, 0.3), hsla(var(--city-hue, 160), 55%, 48%, 0.3)) 76% 100% / 8% 70% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 55%, 48%, 0.35), hsla(var(--city-hue, 160), 55%, 48%, 0.35)) 86% 100% / 9% 58% no-repeat,
		linear-gradient(hsla(var(--city-hue, 160), 55%, 48%, 0.28), hsla(var(--city-hue, 160), 55%, 48%, 0.28)) 94% 100% / 7% 40% no-repeat;
}