/* Geography controls; map and city picker inherit the campaign palette. */
.fc-map-tiles { position:absolute; inset:0; pointer-events:none; transform-origin:0 0; }
.fc-map-tiles img { position:absolute; max-width:none!important; border:0; }
.fc-map .fc-map-svg { position:relative; }
.fc-map.has-street-map .fc-map-svg { background:transparent; }
.fc-map.has-street-map .fc-map-sea,.fc-map.has-street-map .fc-map-grid { opacity:0; }
.fc-map.has-street-map .fc-map-country { fill:transparent; stroke:transparent; }
.fc-map.has-street-map .fc-map-country.is-selected { fill:color-mix(in srgb,var(--fc-action) 9%,transparent); stroke:var(--fc-action); stroke-opacity:.5; }
.fc-city-picker .fc-city-options { display:flex; flex-direction:column; max-height:228px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; padding:4px; border:0; border-radius:10px; background:var(--fc-soft,#f3f5f3); box-shadow:none; }
.fc-city-picker .fc-city-options[hidden] { display:none!important; }
.fc-city-picker .fc-city-option { display:flex; flex-direction:column; gap:4px; flex:none; min-height:52px; padding:10px 12px; border:0; border-radius:7px; cursor:pointer; transition:background-color 140ms ease; }
.fc-city-picker .fc-city-option:is(:hover,[aria-selected=true]) { background:color-mix(in srgb,var(--fc-action,#397565) 12%,var(--fc-surface,#fff)); }
.fc-city-picker .fc-city-option-main { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 10px; line-height:1.45; color:var(--fc-text,#26372e); }
.fc-city-picker .fc-city-option-main strong { min-width:0; overflow-wrap:anywhere; font-size:13px; font-weight:600; }
.fc-city-picker .fc-city-postcode { color:var(--fc-action,#397565); font:500 12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace; font-variant-numeric:tabular-nums; }
.fc-city-picker .fc-city-option small { color:var(--fc-muted,#52665a); font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.fc-city-picker .fc-city-credit { align-self:flex-end; color:var(--fc-muted,#52665a); font-size:10px; line-height:1.4; text-decoration:none; }
.fc-city-picker .fc-city-credit:hover { text-decoration:underline; }
.fc-city-picker .fc-city-credit:focus-visible { outline:2px solid var(--fc-focus,#397565); outline-offset:3px; }
@media (prefers-reduced-motion:reduce) { .fc-city-picker .fc-city-option { transition:none; } }
.fc-map { position:relative; width:100%; min-width:0; overflow:hidden; border:1px solid var(--fc-line,#d8ded9); border-radius:9px; background:var(--fc-soft,#f3f5f3); color:var(--fc-text,#26372e); font:11px/1.4 Arial,sans-serif; isolation:isolate; }
.fc-map,.fc-map * { box-sizing:border-box; }
.fc-map [hidden] { display:none!important; }
.fc-map .fc-map-viewport { position:relative; width:100%; min-width:0; height:auto; aspect-ratio:8/5; min-height:200px; max-height:280px; overflow:hidden; background:var(--fc-soft,#f3f5f3); }
.fc-map .fc-map-svg { display:block; width:100%; height:100%; overflow:hidden; touch-action:pan-y; user-select:none; cursor:grab; }
.fc-map.is-dragging .fc-map-svg { cursor:grabbing; }
.fc-map[data-disabled=true] .fc-map-svg { cursor:default; }
.fc-map .fc-map-sea { fill:var(--fc-soft,#f3f5f3); }
.fc-map .fc-map-grid { fill:none; stroke:var(--fc-line,#d8ded9); stroke-width:.6; stroke-opacity:.55; vector-effect:non-scaling-stroke; pointer-events:none; }
.fc-map .fc-map-country { fill:color-mix(in srgb,var(--fc-muted,#52665a) 15%,var(--fc-surface,#fff)); stroke:var(--fc-surface,#fff); stroke-width:.7; vector-effect:non-scaling-stroke; outline:none; transition:fill 140ms ease; }
.fc-map .fc-map-country.is-selected { fill:color-mix(in srgb,var(--fc-action,#397565) 66%,var(--fc-surface,#fff)); stroke:var(--fc-action,#397565); stroke-width:1; }
.fc-map .fc-map-country.is-selectable { cursor:pointer; }
.fc-map .fc-map-country.is-selectable:hover { fill:color-mix(in srgb,var(--fc-action,#397565) 32%,var(--fc-surface,#fff)); }
.fc-map .fc-map-country.is-selected.is-selectable:hover { fill:color-mix(in srgb,var(--fc-action,#397565) 80%,var(--fc-surface,#fff)); }
.fc-map .fc-map-country:focus-visible { stroke:var(--fc-focus,#397565); stroke-width:2.5; }
.fc-map .fc-map-radius { fill:color-mix(in srgb,var(--fc-action,#397565) 12%,transparent); stroke:var(--fc-action,#397565); stroke-width:1.2; stroke-dasharray:3 2; vector-effect:non-scaling-stroke; pointer-events:none; }
.fc-map .fc-map-marker { fill:var(--fc-action,#397565); stroke:var(--fc-surface,#fff); stroke-width:2; vector-effect:non-scaling-stroke; pointer-events:none; }
.fc-map .fc-map-controls { position:absolute; right:9px; bottom:25px; display:flex; flex-direction:column; gap:2px; padding:3px; border:1px solid var(--fc-line,#d8ded9); border-radius:6px; background:var(--fc-surface,#fff); }
.fc-map .fc-map-control { display:grid; place-items:center; width:25px; height:25px; min-height:25px; padding:0; border:0; border-radius:4px; background:transparent; color:var(--fc-text,#26372e); font:16px/1 Arial,sans-serif; cursor:pointer; box-shadow:none; }
.fc-map .fc-map-control:hover:not(:disabled) { background:var(--fc-soft,#f3f5f3); }
.fc-map .fc-map-control:disabled { opacity:.45; cursor:default; }
.fc-map .fc-map-reset { margin-top:4px; padding-top:5px; height:30px; border-top:1px solid var(--fc-line,#d8ded9); border-radius:0 0 4px 4px; }
.fc-map .fc-map-reset svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.2; stroke-linecap:round; }
.fc-map .fc-map-control:focus-visible,.fc-map .fc-map-retry:focus-visible,.fc-map .fc-map-credit:focus-visible,.fc-map .fc-map-place-credit:focus-visible { outline:2px solid var(--fc-focus,#397565); outline-offset:2px; }
.fc-map .fc-map-hover { position:absolute; top:10px; left:10px; max-width:calc(100% - 111px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; border-radius:4px; padding:4px 6px; background:var(--fc-surface,#fff); color:var(--fc-text,#26372e); pointer-events:none; font-size:10px; }
.fc-map .fc-map-credit { position:absolute; bottom:5px; right:8px; color:var(--fc-muted,#52665a); font:9px/1.3 Arial,sans-serif; text-decoration:none; text-underline-offset:2px; }
.fc-map .fc-map-credit:hover { text-decoration:underline; }
.fc-map .fc-map-place-credit { position:absolute; bottom:5px; left:8px; color:var(--fc-muted,#52665a); font:9px/1.3 Arial,sans-serif; text-decoration:none; text-underline-offset:2px; }
.fc-map .fc-map-place-credit:hover { text-decoration:underline; }
.fc-map .fc-map-credit,.fc-map .fc-map-place-credit { border-radius:3px; padding:1px 3px; background:var(--fc-surface,#fff); }
.fc-map .fc-map-loading { position:absolute; inset:0; display:grid; place-items:center; padding:16px 24px; text-align:center; background:var(--fc-soft,#f3f5f3); color:var(--fc-muted,#52665a); }
.fc-map .fc-map-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:43px; padding:7px 10px; background:var(--fc-surface,#fff); border-top:1px solid var(--fc-line,#d8ded9); }
.fc-map .fc-map-caption { display:flex; flex-direction:column; min-width:0; gap:1px; }
.fc-map .fc-map-summary { font-size:11px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fc-map .fc-map-detail { color:var(--fc-muted,#52665a); font-size:10px; line-height:1.35; overflow-wrap:anywhere; }
.fc-map .fc-map-retry { flex:0 0 auto; padding:5px; border:0; background:transparent; color:var(--fc-action,#397565); font:11px/1.2 Arial,sans-serif; text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
.fc-map .fc-map-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (prefers-reduced-motion:reduce) { .fc-map .fc-map-country { transition:none; } }
/* Match the existing compact guided-card breakpoint without shrinking inspector maps. */
@media (max-height:740px) { .fc-nodal-form .fc-map .fc-map-viewport { min-height:160px; max-height:165px; } }
@media (max-width:380px) { .fc-map .fc-map-footer { padding:7px 9px; } }
@media (pointer:coarse) {
  .fc-map .fc-map-control { width:44px; height:44px; min-height:44px; }
  .fc-map .fc-map-viewport { min-height:220px!important; max-height:none!important; }
}
