/* Map module: existing copy and seasonal colour roles remain the source of truth. */
.service-area[data-map-enabled="true"] { display: block; }
.rs-service-area-layout { display: grid; grid-template-columns: minmax(0,.83fr) minmax(0,1.27fr); gap: clamp(24px,4vw,68px); align-items: center; }
.rs-service-area-copy { min-width: 0; }
.service-area[data-map-enabled="true"] .area-heading { padding-right: 0; }
.service-area[data-map-enabled="true"] .area-copy { padding: 0; border-left: 0; }
.service-area[data-map-enabled="true"] .area-copy p { margin: 24px 0 0; max-width: 42ch; }
.service-area[data-map-enabled="true"] .area-link { color: var(--rs-accent); }
.rs-area-map { --rs-map-land: color-mix(in srgb,var(--rs-accent) 11%,var(--rs-surface)); position: relative; min-width: 0; width: 100%; color: var(--rs-text); }
.rs-area-map *, .rs-area-map *::before, .rs-area-map *::after { box-sizing: border-box; }
.rs-area-map__canvas { width: 100%; height: clamp(365px,34vw,510px); overflow: hidden; }
.rs-area-map__svg { display: block; width: 100%; height: 100%; overflow: hidden; }
.rs-area-map__svg text { font-family: Inter,Arial,sans-serif; }
.rs-area-map__land { fill: var(--rs-map-land); stroke: var(--rs-accent); stroke-opacity: .42; stroke-width: .85; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.rs-area-map__brandenburg { stroke-opacity: .78; stroke-width: 1.1; }
.rs-area-map__berlin { fill: color-mix(in srgb,var(--rs-accent) 28%,var(--rs-surface)); stroke-opacity: .9; stroke-width: 1; }
.rs-area-map__route { fill: none; stroke: var(--rs-accent); stroke-width: 1.45; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.rs-area-map__arrow, .rs-area-map__destination { fill: var(--rs-accent); }
.rs-area-map__origin { fill: var(--rs-text); stroke: var(--rs-accent); stroke-width: 2.4; }
.rs-area-map__ring { fill: none; stroke: var(--rs-accent); stroke-width: 1; }
.rs-area-map__leader { fill: none; stroke: var(--rs-accent); stroke-width: .8; stroke-opacity: .85; }
.rs-area-map__origin-label, .rs-area-map__place { fill: var(--rs-text); font-size: 12px; font-weight: 600; paint-order: stroke; stroke: var(--rs-surface); stroke-width: 5; stroke-linejoin: round; }
.rs-area-map__origin-label { font-weight: 700; }
.rs-area-map__region { fill: var(--rs-accent); font-size: 10px; font-weight: 500; letter-spacing: 1.5px; paint-order: stroke; stroke: var(--rs-surface); stroke-width: 3; stroke-linejoin: round; }
.rs-area-map__footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 14px; }
.rs-area-map__note { flex: 1 1 160px; margin: 0; color: var(--rs-text-muted); font: 400 10px/1.6 Inter,Arial,sans-serif; }
.rs-area-map__controls { display: flex; flex-wrap: wrap; gap: 6px; }
.rs-area-map__control { display: inline-flex; align-items: center; justify-content: center; width: 44px; min-height: 44px; padding: 0; border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--rs-text-muted); font: 500 16px/1 Inter,Arial,sans-serif; cursor: pointer; }
.rs-area-map__control:hover { border-color: var(--rs-border); background: var(--rs-accent-soft); color: var(--rs-text); }
.rs-area-map__control:focus-visible, .rs-area-map__credits-toggle:focus-visible, .rs-area-map__credits a:focus-visible { outline: 2px solid var(--rs-focus-outer,var(--rs-text)); outline-offset: 4px; }
.rs-area-map__control:disabled { cursor: default; color: var(--rs-text-subtle,var(--rs-text-muted)); }
.rs-area-map__control[hidden] { display: none; }
.rs-area-map__credits { margin: 20px 0 0; color: var(--rs-text-subtle,var(--rs-text-muted)); font: 400 9px/1.65 Inter,Arial,sans-serif; }
.rs-area-map__credits-toggle { display: flex; align-items: center; gap: 5px; width: fit-content; min-height: 24px; margin-left: auto; padding: 4px 0; list-style: none; cursor: pointer; }
.rs-area-map__credits-toggle::-webkit-details-marker { display: none; }
.rs-area-map__credits-toggle::after { content: '+'; font-size: 11px; }
.rs-area-map__credits[open] .rs-area-map__credits-toggle::after { content: '−'; }
.rs-area-map__credits-toggle:hover, .rs-area-map__credits-toggle:focus-visible { color: var(--rs-text); }
.rs-area-map__credits-copy { max-width: 62ch; margin: 6px 0 0 auto; color: var(--rs-text-muted); text-align: right; font-size: 10px; line-height: 1.65; }
.rs-area-map__credits a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 900px) {
  .rs-service-area-layout { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 24px; }
  .rs-area-map__canvas { height: 390px; }
  .rs-area-map__footer { display: block; }
  .rs-area-map__controls { margin-top: 10px; }
}
@media (max-width: 700px) {
  .rs-service-area-layout { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .service-area[data-map-enabled="true"] .area-copy p { max-width: 52ch; }
  .rs-area-map__canvas { height: clamp(350px,90vw,430px); }
  .rs-area-map__footer { display: flex; }
  .rs-area-map__controls { margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .rs-area-map *, .rs-area-map *::before, .rs-area-map *::after { animation: none !important; transition: none !important; }
}
/* Authenticated module preview uses the existing page without submitting forms. */
.rs-service-area-preview-notice { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; padding: 14px clamp(22px,4vw,54px); border-bottom: 1px solid var(--rs-border); background: var(--rs-surface); color: var(--rs-text-muted); font: 400 12px/1.55 Inter,Arial,sans-serif; }
.rs-service-area-preview-notice strong { color: var(--rs-accent); font-weight: 600; }
.rs-service-area-preview-notice span { flex: 1 1 330px; }
.rs-service-area-preview-notice a { display: inline-flex; align-items: center; min-height: 44px; color: var(--rs-text); text-underline-offset: 3px; }
.rs-service-area-preview-notice a:focus-visible { outline: 2px solid var(--rs-focus-outer); outline-offset: 4px; }
.rs-service-area-preview-notice ~ .website [data-reveal] { opacity: 1 !important; transform: none !important; visibility: visible !important; }
