.fkam-app {
	--fkam-accent: #56bde9;
	--fkam-dark: #064883;
	--fkam-ink: #303440;
	--fkam-soft: #e3f5fa;
	box-sizing: border-box;
	color: var(--fkam-ink);
	font-family: inherit;
	margin: clamp(2rem, 7vw, 6rem) auto;
	max-width: 1240px;
	padding: 0 clamp(1rem, 4vw, 3rem);
}

.fkam-app *,
.fkam-app *::before,
.fkam-app *::after {
	box-sizing: inherit;
}

.fkam-app [hidden] {
	display: none !important;
}

.fkam-header {
	margin: 0 auto clamp(1.5rem, 4vw, 3rem);
	max-width: 760px;
	text-align: center;
}

.fkam-kicker {
	color: var(--fkam-dark);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	margin: 0 0 0.55rem;
	text-transform: uppercase;
}

.fkam-app h2 {
	color: var(--fkam-ink);
	font-size: clamp(2.3rem, 6vw, 4.2rem);
	font-weight: 800;
	letter-spacing: -0.045em;
	line-height: 1;
	margin: 0;
}

.fkam-intro {
	font-size: clamp(1rem, 2vw, 1.16rem);
	line-height: 1.65;
	margin: 1.1rem auto 0;
	max-width: 620px;
}

.fkam-picker {
	align-items: center;
	display: flex;
	gap: 0.75rem;
	justify-content: center;
	margin: 0 auto 1rem;
}

.fkam-picker label {
	font-size: 0.92rem;
	font-weight: 750;
}

.fkam-area-select {
	appearance: auto;
	background: #fff;
	border: 1px solid #c9dbe5;
	border: 1px solid color-mix(in srgb, var(--fkam-dark) 25%, #fff);
	border-radius: 999px;
	color: var(--fkam-ink);
	font: inherit;
	font-weight: 650;
	max-width: 320px;
	min-height: 44px;
	padding: 0.55rem 1rem;
	width: min(100%, 320px);
}

.fkam-area-select:focus-visible,
.fkam-button:focus-visible,
.fkam-card-close:focus-visible,
.fkam-map-fallback button:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--fkam-accent) 65%, #000);
	outline-offset: 3px;
}

/* Rendered by [fastklean_area_select], so it sits outside .fkam-app and
   needs the shared tokens and box sizing of its own. */
.fkam-picker-standalone {
	--fkam-ink: #303440;
	box-sizing: border-box;
	max-width: 1240px;
	padding: 0 clamp(1rem, 4vw, 3rem);
}

.fkam-picker-standalone *,
.fkam-picker-standalone *::before,
.fkam-picker-standalone *::after {
	box-sizing: inherit;
}

.fkam-visually-hidden {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.fkam-stage {
	min-height: 620px;
	position: relative;
}

.fkam-map-canvas {
	align-items: center;
	display: flex;
	justify-content: flex-start;
	min-height: 590px;
	overflow: visible;
	padding: clamp(0.5rem, 2vw, 1.25rem) 0;
}

.fkam-map-loading,
.fkam-map-error {
	font-weight: 700;
	text-align: center;
	width: 70%;
}

.fkam-map {
	display: block;
	height: auto;
	overflow: visible;
	width: min(78%, 900px);
}

.fkam-borough {
	cursor: pointer;
	fill: var(--fkam-soft);
	stroke: #fff;
	stroke-linejoin: round;
	stroke-width: 4.5;
	transition: fill 160ms ease, filter 160ms ease;
	vector-effect: non-scaling-stroke;
}

.fkam-borough:hover,
.fkam-borough:focus-visible {
	fill: color-mix(in srgb, var(--fkam-accent) 54%, #fff);
	filter: drop-shadow(0 3px 5px rgb(6 72 131 / 18%));
	outline: none;
}

.fkam-borough:focus-visible {
	filter: brightness(0.94) drop-shadow(0 0 7px var(--fkam-accent));
}

.fkam-borough.is-selected {
	fill: var(--fkam-accent);
}

.fkam-outline {
	fill: none;
	pointer-events: none;
	stroke: #fff;
	stroke-linejoin: round;
	stroke-width: 4.5;
	vector-effect: non-scaling-stroke;
}

.fkam-marker {
	filter: drop-shadow(0 5px 6px rgb(0 32 74 / 24%));
	pointer-events: none;
}

.fkam-marker-halo {
	fill: var(--fkam-dark);
	stroke: rgb(255 255 255 / 78%);
	stroke-width: 2;
}

.fkam-marker-pin {
	fill: #fff;
}

.fkam-marker-dot {
	fill: var(--fkam-dark);
}

.fkam-card {
	animation: fkam-card-in 220ms ease-out both;
	background: var(--fkam-dark);
	background: linear-gradient(145deg, var(--fkam-dark), color-mix(in srgb, var(--fkam-dark) 73%, var(--fkam-accent)));
	border: 1px solid rgb(255 255 255 / 18%);
	border-radius: 28px;
	box-shadow: 0 25px 70px rgb(5 53 96 / 23%);
	color: #fff;
	overflow: hidden;
	position: absolute;
	right: 0;
	top: clamp(1.25rem, 4vw, 3.5rem);
	width: min(380px, 36%);
	z-index: 3;
}

@keyframes fkam-card-in {
	from {
		opacity: 0;
		transform: translateY(10px) scale(0.985);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.fkam-card-close {
	align-items: center;
	background: rgb(3 36 68 / 82%);
	border: 1px solid rgb(255 255 255 / 32%);
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: flex;
	font: inherit;
	font-size: 1.45rem;
	height: 38px;
	justify-content: center;
	line-height: 1;
	padding: 0 0 3px;
	position: absolute;
	right: 12px;
	top: 12px;
	width: 38px;
	z-index: 2;
}

.fkam-card-image {
	aspect-ratio: 16 / 9;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.fkam-card-body {
	padding: 1.2rem 1.25rem 1.35rem;
}

.fkam-card-eyebrow {
	font-size: 0.73rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	margin: 0 0 0.25rem;
	opacity: 0.78;
	text-transform: uppercase;
}

.fkam-card-title {
	color: #fff;
	font-size: clamp(1.45rem, 2.7vw, 2rem);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.1;
	margin: 0;
}

.fkam-services {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	list-style: none;
	margin: 1rem 0 1.2rem;
	max-height: 126px;
	overflow: auto;
	padding: 0 0.2rem 0 0;
}

.fkam-services li {
	border: 1px solid rgb(255 255 255 / 27%);
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.25;
	padding: 0.44rem 0.65rem;
}

.fkam-actions {
	align-items: center;
	display: flex;
	gap: 0.7rem;
}

.fkam-button {
	border-radius: 11px;
	display: inline-flex;
	font-size: 0.83rem;
	font-weight: 800;
	justify-content: center;
	line-height: 1.2;
	min-height: 46px;
	padding: 0.75rem 0.9rem;
	text-align: center;
	text-decoration: none;
	transition: transform 150ms ease, background-color 150ms ease;
}

.fkam-button:hover {
	transform: translateY(-2px);
}

.fkam-button-primary {
	align-items: center;
	background: #fff;
	color: var(--fkam-dark);
	flex: 0 0 auto;
}

.fkam-button-secondary {
	align-items: center;
	color: #fff;
	flex: 1 1 auto;
	padding-left: 0.35rem;
	padding-right: 0.35rem;
	text-decoration: underline;
	text-decoration-color: rgb(255 255 255 / 50%);
	text-underline-offset: 0.2em;
}

.fkam-credit {
	color: #66717e;
	font-size: 0.7rem;
	margin: 0.5rem 0 0;
	text-align: center;
}

.fkam-credit a {
	color: inherit;
}

.fkam-map-fallback {
	display: grid;
	gap: 0.5rem;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	width: 100%;
}

.fkam-map-fallback button {
	background: var(--fkam-soft);
	border: 1px solid rgb(6 72 131 / 18%);
	border-radius: 10px;
	color: var(--fkam-dark);
	cursor: pointer;
	font: inherit;
	font-size: 0.82rem;
	font-weight: 700;
	padding: 0.7rem;
}


.fkam-picker.fkam-picker-standalone {
	display: block;
	margin: 1.75rem 0 0;
	max-width: 420px;
	padding: 0;
	position: relative;
	text-align: left;
}

/* Visible label, if you ever add label="…" to the shortcode. */
.fkam-picker.fkam-picker-standalone > label:not(.fkam-visually-hidden) {
	color: #fff;
	display: block;
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	margin: 0 0 0.55rem;
}

.fkam-picker .fkam-area-select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;

	background-color: #fff;
	/* Chevron drawn in the brand navy so no icon font is needed. */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1.6 1.6 7 7l5.4-5.4' stroke='%230b4a82' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-position: right 1.35rem center;
	background-repeat: no-repeat;
	background-size: 14px 9px;

	border: 0;
	border-radius: 999px;
	box-shadow: 0 12px 28px rgba(4, 38, 66, 0.22);
	color: var(--fkam-dark, #0b4a82);
	cursor: pointer;
	font-family: inherit;
	font-size: 1.0625rem; /* 17px — stays above the iOS zoom-on-focus threshold */
	font-weight: 700;
	line-height: 1.25;
	margin: 0;
	max-width: none;
	min-height: 56px;
	padding: 0.95rem 3.25rem 0.95rem 1.6rem;
	text-overflow: ellipsis;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
	width: 100%;
}

.fkam-picker .fkam-area-select:hover {
	box-shadow: 0 16px 34px rgba(4, 38, 66, 0.28);
	transform: translateY(-1px);
}

.fkam-picker .fkam-area-select:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}

.fkam-picker .fkam-area-select option {
	background-color: #fff;
	color: #303440;
	font-weight: 600;
}

.fkam-picker .fkam-area-select option:checked {
	font-weight: 800;
}


@media (max-width: 767px) {
	.fkam-picker.fkam-picker-standalone {
		margin-top: 1.35rem;
		max-width: none;
	}

	.fkam-picker .fkam-area-select {
		font-size: 1rem;
		min-height: 52px;
		padding: 0.85rem 3rem 0.85rem 1.4rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fkam-picker .fkam-area-select {
		transition: none;
	}

	.fkam-picker .fkam-area-select:hover {
		transform: none;
	}
}

@media (max-width: 860px) {
	.fkam-stage {
		min-height: 0;
	}

	.fkam-map-canvas {
		justify-content: center;
		min-height: 0;
	}

	.fkam-map {
		width: min(100%, 760px);
	}

	.fkam-card {
		margin: 1rem auto 0;
		position: relative;
		right: auto;
		top: auto;
		width: min(100%, 560px);
	}
}

@media (max-width: 560px) {
	.fkam-app {
		padding-left: 0.75rem;
		padding-right: 0.75rem;
	}

	.fkam-picker {
		align-items: stretch;
		flex-direction: column;
	}

	.fkam-area-select {
		max-width: none;
	}

	.fkam-borough {
		stroke-width: 2.75;
	}

	.fkam-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.fkam-button {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fkam-card {
		animation: none;
	}

	.fkam-borough,
	.fkam-button {
		transition: none;
	}
}
