.sam-statemap { --sam-map:#c8172f; --sam-map-dark:#8c0f21; --sam-ink:#2b2f33; --sam-muted:#7b828a; --sam-line:#d9a0a8; margin:10px 0 28px; }

/* State picker: phones only */
.sam-picker { display:none; margin:0 0 16px; }
.sam-picker label { display:block; font-weight:700; font-size:14px; color:var(--sam-ink); margin-bottom:6px; }
.sam-picker-row { display:flex; gap:8px; }
.sam-picker select { flex:1; min-width:0; height:44px; padding:0 12px; font-size:16px; color:var(--sam-ink); background:#fff; border:1px solid #c9ced4; border-radius:6px; }
.sam-picker select:focus { outline:2px solid var(--sam-map); outline-offset:1px; border-color:var(--sam-map); }
.sam-picker button { height:44px; padding:0 20px; font-size:16px; font-weight:700; color:#fff; background:var(--sam-map); border:0; border-radius:6px; cursor:pointer; }
.sam-picker button:hover, .sam-picker button:focus-visible { background:var(--sam-map-dark); }

/* Map */
.sam-mapwrap { position:relative; }
.sam-usmap { display:block; width:100%; height:auto; overflow:visible; }
.sam-states path { fill:var(--sam-map); stroke:#fff; stroke-width:1.25; vector-effect:non-scaling-stroke; stroke-linejoin:round; transition:fill .15s ease; }
.sam-st-off path { fill:#e3e6ea; }
.sam-st { cursor:pointer; outline:none; }
.sam-st:hover path, .sam-st:focus-visible path, .sam-st.is-hot path { fill:var(--sam-map-dark); }
.sam-st:focus-visible path { stroke:var(--sam-ink); stroke-width:2; }
.sam-callouts line { stroke:var(--sam-line); stroke-width:1; vector-effect:non-scaling-stroke; }
.sam-callouts rect { fill:var(--sam-map); transition:fill .15s ease; }
.sam-callouts text { font:700 20px/1 Arial, Helvetica, sans-serif; letter-spacing:.04em; fill:#fff; text-anchor:middle; pointer-events:none; }
.sam-tab:hover rect, .sam-tab:focus-visible rect, .sam-tab.is-hot rect { fill:var(--sam-map-dark); }
.sam-tab:hover line, .sam-tab.is-hot line { stroke:var(--sam-map-dark); }
.sam-tip { position:absolute; pointer-events:none; transform:translate(-50%, calc(-100% - 12px)); background:var(--sam-ink); color:#fff; font-size:13px; font-weight:600; line-height:1; padding:7px 10px; border-radius:5px; white-space:nowrap; opacity:0; transition:opacity .12s; box-shadow:0 2px 8px rgba(0,0,0,.18); }
.sam-tip.on { opacity:1; }

/* States by region; !important needed to beat the theme's list and h3 rules */
.sam-regions { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:4px 22px; margin-top:22px; padding-top:20px; border-top:1px solid #e6e8eb; }
.sam-region-h { margin:0 0 8px !important; padding:0 0 7px !important; font-size:12px !important; font-weight:700 !important; line-height:1.2 !important; letter-spacing:.09em; text-transform:uppercase; color:var(--sam-muted) !important; border-bottom:2px solid var(--sam-map); cursor:default; background:none !important; }
.sam-region ul { margin:0 !important; padding:0 !important; list-style:none !important; }
.sam-region li { margin:0 !important; padding:0 !important; list-style:none !important; background:none !important; }
.sam-region li a { display:block; padding:4px 0; font-size:14px; line-height:1.35; color:var(--sam-ink) !important; text-decoration:none !important; transition:color .12s, transform .12s; }
.sam-region li a:hover, .sam-region li a:focus-visible, .sam-region li a.is-hot { color:var(--sam-map) !important; transform:translateX(3px); }

@media (max-width: 767px) {
	.sam-picker { display:block; }
	.sam-callouts { display:none; }
	.sam-regions { grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px; }
}
