/* StatuteWorks State Map — v1.1.0
 * Each state is a <g> group containing a <path> shape and either an inline <text>
 * label (for normal-sized states) or a callout chip (for tiny northeastern states + DC).
 */

.sw-find-state {
	--swsm-bg:        var(--bg, #ffffff);
	--swsm-ink:       var(--ink, #0f172a);
	--swsm-muted:     var(--muted, #475569);
	--swsm-line:      var(--line, #e5e7eb);
	--swsm-surface:   var(--surface, #f8fafc);
	--swsm-accent:    var(--accent, #1e40af);
	--swsm-accent-h:  var(--accent-hover, #1d4ed8);
	--swsm-accent-s:  var(--accent-soft, #eff6ff);
	--swsm-visited:   #dbeafe;
	--swsm-radius:    12px;
	--swsm-radius-sm: 8px;
	color: var(--swsm-ink);
	margin: 0;
	padding: 0;
}

.sw-find-state__head {
	margin-bottom: 32px;
	max-width: 720px;
}
.sw-find-state__title {
	font-size: clamp(28px, 3vw, 36px);
	line-height: 1.15;
	margin: 0 0 12px;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--swsm-ink);
}
.sw-find-state__desc {
	font-size: 17px;
	color: var(--swsm-muted);
	margin: 0;
}

/* Map container */
.sw-find-state__map {
	position: relative;
	max-width: 920px;
	margin: 0 auto 28px;
	padding: 8px 0;
}
.sw-state-map__svg {
	width: 100%;
	height: auto;
	display: block;
	overflow: visible;
}

/* Each state is a clickable group */
.sw-state-map__state {
	cursor: pointer;
	outline: none;
}

/* The state polygon */
.sw-state-map__shape {
	fill: #ffffff;
	stroke: var(--swsm-line);
	stroke-width: 0.75;
	transition: fill 120ms ease, stroke 120ms ease;
}
.sw-state-map__state.is-visited .sw-state-map__shape {
	fill: var(--swsm-visited);
}
.sw-state-map__state:hover .sw-state-map__shape,
.sw-state-map__state.is-active .sw-state-map__shape,
.sw-state-map__state:focus-visible .sw-state-map__shape {
	fill: var(--swsm-accent);
	stroke: #ffffff;
	stroke-width: 1;
}

/* Inline abbreviation label (centered inside the state shape) */
.sw-state-map__label {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 12px;
	font-weight: 600;
	fill: var(--swsm-muted);
	text-anchor: middle;
	dominant-baseline: central;
	letter-spacing: 0.04em;
	pointer-events: none;
	transition: fill 120ms ease;
	user-select: none;
}
.sw-state-map__state.is-visited .sw-state-map__label {
	fill: var(--swsm-accent);
}
.sw-state-map__state:hover .sw-state-map__label,
.sw-state-map__state.is-active .sw-state-map__label,
.sw-state-map__state:focus-visible .sw-state-map__label {
	fill: #ffffff;
}

/* Callout chip — used for RI, NJ, DE, DC */
.sw-state-map__leader {
	stroke: var(--swsm-muted);
	stroke-width: 0.6;
	fill: none;
	pointer-events: none;
}
.sw-state-map__dot {
	fill: var(--swsm-accent);
	stroke: #ffffff;
	stroke-width: 0.75;
	pointer-events: none;
}
.sw-state-map__chip {
	fill: #ffffff;
	stroke: var(--swsm-line);
	stroke-width: 0.75;
	transition: fill 120ms ease, stroke 120ms ease;
}
.sw-state-map__chip-text {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 12px;
	font-weight: 700;
	fill: var(--swsm-ink);
	text-anchor: middle;
	dominant-baseline: central;
	letter-spacing: 0.02em;
	pointer-events: none;
	user-select: none;
}
.sw-state-map__state.is-visited .sw-state-map__chip {
	fill: var(--swsm-visited);
}
.sw-state-map__state:hover .sw-state-map__chip,
.sw-state-map__state.is-active .sw-state-map__chip,
.sw-state-map__state:focus-visible .sw-state-map__chip {
	fill: var(--swsm-accent);
	stroke: var(--swsm-accent);
}
.sw-state-map__state:hover .sw-state-map__chip-text,
.sw-state-map__state.is-active .sw-state-map__chip-text,
.sw-state-map__state:focus-visible .sw-state-map__chip-text {
	fill: #ffffff;
}

/* Keyboard focus ring */
.sw-state-map__state:focus-visible {
	filter: drop-shadow(0 0 0 2px rgba(30, 64, 175, 0.35));
}

/* Tooltip */
.sw-find-state__tooltip {
	position: absolute;
	top: 0;
	left: 0;
	pointer-events: none;
	background: #0f172a;
	color: #ffffff;
	font-size: 13px;
	font-weight: 600;
	padding: 6px 10px;
	border-radius: 6px;
	white-space: nowrap;
	opacity: 0;
	transform: translate(0, 0);
	transition: opacity 120ms ease;
	z-index: 5;
	box-shadow: 0 4px 12px -4px rgba(15, 23, 42, 0.25);
}
.sw-find-state__tooltip.is-visible { opacity: 1; }

/* Alphabetical list — matches the existing .sw-states__grid styling */
.sw-find-state__list {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: 0;
}
.sw-find-state__list li { margin: 0; }
.sw-find-state__item {
	display: block;
	padding: 12px 14px;
	background: #ffffff;
	border: 1px solid var(--swsm-line);
	border-radius: var(--swsm-radius-sm);
	color: var(--swsm-ink);
	font-size: 14px;
	font-weight: 500;
	text-align: center;
	text-decoration: none;
	transiti