/* anonkonform.com – stylesheet (2026-10 redesign)
   Fonts: Inter + DM Serif Display (SIL OFL, self-hosted). Icons: Lucide (ISC, self-hosted). */
@font-face { font-family: "Inter"; src: url(/vendor/fonts/inter-400.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Inter"; src: url(/vendor/fonts/inter-600.woff2) format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Inter"; src: url(/vendor/fonts/inter-700.woff2) format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "DM Serif Display"; src: url(/vendor/fonts/dm-serif-display.woff2) format("woff2"); font-weight: 400; font-display: swap; }

:root {
  --ink: #1d2140; --paper: #f4f6fb; --surface: #ffffff; --line: #dfe4ef; --muted: #5d6585;
  --trans: #2f9fd0; --trans-soft: #5bcefa; --pink: #f5a9b8; --lgbt: #7656b0; --pride: #e0709a; --history: #9a8f7a;
  --ok: #22a565; --exit: #c62f26; --shadow: 0 1px 2px rgba(20,25,60,.06), 0 4px 16px rgba(20,25,60,.06);
  --radius: 14px; --serif: "DM Serif Display", "Iowan Old Style", Georgia, serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  box-sizing: border-box; padding-top: env(safe-area-inset-top, 0px); padding-bottom: env(safe-area-inset-bottom, 0px);
}
@media (prefers-color-scheme: dark) {
  :root { --ink: #e9ecf7; --paper: #12152a; --surface: #1b1f38; --line: #2e3456; --muted: #a2a9c8;
    --trans: #5bcefa; --lgbt: #a98bdf; --pride: #f08cb0; --history: #b9ae98; --shadow: 0 1px 2px rgba(0,0,0,.3), 0 6px 20px rgba(0,0,0,.25); }
  .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) brightness(.85) contrast(.9); }
}
*, *::before, *::after { box-sizing: inherit; }
html, body { margin: 0; }
body { background: var(--paper); color: var(--ink); font: 16px/1.55 var(--sans); -webkit-font-smoothing: antialiased; }
body::before { content: ""; display: block; height: 5px;
  background: linear-gradient(90deg, #5bcefa 0 20%, #f5a9b8 20% 40%, #fff 40% 60%, #f5a9b8 60% 80%, #5bcefa 80%); }
a { color: inherit; text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--trans); }
h1, h2, h3 { line-height: 1.2; }
:focus-visible { outline: 3px solid var(--trans-soft); outline-offset: 2px; border-radius: 4px; }
[hidden] { display: none !important; }
.skip { position: absolute; left: -999px; }
.skip:focus { left: 1rem; top: 1rem; z-index: 2000; background: var(--surface); padding: .5rem 1rem; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.meta, .hint, .count { color: var(--muted); font-size: .86rem; }
.hint, .count { margin: 0; }

/* icons: <span class="ic ic-coffee"></span> – coloured with currentColor */
.ic { display: inline-block; width: 1.1em; height: 1.1em; vertical-align: -.17em; flex: none; background: currentColor;
  -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.ic-map { --ic: url(/vendor/icons/map.svg); } .ic-list { --ic: url(/vendor/icons/list.svg); }
.ic-calendar { --ic: url(/vendor/icons/calendar-days.svg); } .ic-party { --ic: url(/vendor/icons/party-popper.svg); }
.ic-rainbow { --ic: url(/vendor/icons/rainbow.svg); } .ic-help { --ic: url(/vendor/icons/life-buoy.svg); }
.ic-archive { --ic: url(/vendor/icons/archive.svg); } .ic-globe { --ic: url(/vendor/icons/globe.svg); }
.ic-house { --ic: url(/vendor/icons/house.svg); } .ic-coffee { --ic: url(/vendor/icons/coffee.svg); }
.ic-beer { --ic: url(/vendor/icons/beer.svg); } .ic-music { --ic: url(/vendor/icons/music.svg); }
.ic-users { --ic: url(/vendor/icons/users.svg); } .ic-book { --ic: url(/vendor/icons/book-open.svg); }
.ic-ticket { --ic: url(/vendor/icons/ticket.svg); } .ic-drama { --ic: url(/vendor/icons/drama.svg); }
.ic-sparkles { --ic: url(/vendor/icons/sparkles.svg); } .ic-landmark { --ic: url(/vendor/icons/landmark.svg); }
.ic-locate { --ic: url(/vendor/icons/locate-fixed.svg); } .ic-search { --ic: url(/vendor/icons/search.svg); }
.ic-clock { --ic: url(/vendor/icons/clock.svg); } .ic-pin { --ic: url(/vendor/icons/map-pin.svg); }
.ic-ext { --ic: url(/vendor/icons/external-link.svg); } .ic-link { --ic: url(/vendor/icons/link.svg); }
.ic-mail { --ic: url(/vendor/icons/mail.svg); } .ic-rss { --ic: url(/vendor/icons/rss.svg); }
.ic-heart { --ic: url(/vendor/icons/heart.svg); } .ic-flag { --ic: url(/vendor/icons/flag.svg); }
.ic-exit { --ic: url(/vendor/icons/door-open.svg); }
.ic-instagram { --ic: url(/vendor/icons/instagram.svg); } .ic-facebook { --ic: url(/vendor/icons/facebook.svg); }

/* quick exit */
.exit { position: fixed; top: calc(env(safe-area-inset-top, 0px) + .8rem); right: .8rem; z-index: 1500;
  display: inline-flex; align-items: center; gap: .4rem; background: var(--exit); color: #fff; border: 0; border-radius: 999px;
  padding: .55rem 1rem; font: 600 .9rem var(--sans); cursor: pointer; box-shadow: 0 4px 14px rgba(198,47,38,.35); }
.exit:hover { filter: brightness(1.08); }

/* header + navigation */
.top { padding: 1rem 1.25rem .3rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem 1rem; }
.top h1 { margin: 0; font: 400 clamp(1.8rem, 4vw, 2.5rem)/1.1 var(--serif); letter-spacing: .005em; }
.top h1 a { text-decoration: none; }
.top h1::after { content: "."; color: var(--pink); }
.lead { flex-basis: 100%; margin: .25rem 0 0; max-width: 46rem; color: var(--muted); font-size: 1rem; }
.nav { flex-basis: 100%; display: flex; gap: .4rem; overflow-x: auto; padding: .7rem 0 .4rem; margin: 0; scrollbar-width: none; }
.nav::-webkit-scrollbar { display: none; }
.nav a { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; text-decoration: none;
  padding: .45rem .9rem; border-radius: 999px; background: var(--surface); border: 1px solid var(--line);
  font-weight: 600; font-size: .88rem; box-shadow: 0 1px 2px rgba(20,25,60,.04); }
.nav a:hover { border-color: var(--ink); color: inherit; }
.nav a[aria-current] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.nav a[lang] { margin-left: auto; }
/* hero header on content pages */
.top--hero { position: relative; color: #fff; margin: 0 0 1.2rem; padding: 2.2rem 1.25rem .9rem; min-height: 13rem; align-content: end;
  background: linear-gradient(180deg, rgba(18,21,42,.25), rgba(18,21,42,.82)), url(/img/regnbuepladsen-stor.jpg) center 60% / cover, url(/img/regnbuepladsen.jpg) center 60% / cover, #2a2f55; }
.top--hero .lead { color: rgba(255,255,255,.88); }
.top--hero .nav a { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.25); color: #fff; backdrop-filter: blur(6px); }
.top--hero .nav a[aria-current] { background: #fff; color: #1d2140; border-color: #fff; }
.top--hero h1::after { color: var(--pink); }

/* map page */
.layout { display: grid; grid-template-columns: minmax(0, 1fr) 25rem; gap: 1rem; padding: .4rem 1.25rem 1.25rem; height: calc(100vh - 10.5rem); min-height: 34rem; }
.map { border-radius: var(--radius); border: 1px solid var(--line); box-shadow: var(--shadow); min-height: 20rem; overflow: hidden; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 1rem; overflow-y: auto; display: flex; flex-direction: column; gap: .8rem; }
.search { position: relative; display: block; }
.search::before { content: ""; position: absolute; left: .8rem; top: 50%; width: 1rem; height: 1rem; transform: translateY(-50%);
  background: var(--muted); -webkit-mask: url(/vendor/icons/search.svg) center/contain no-repeat; mask: url(/vendor/icons/search.svg) center/contain no-repeat; }
.search input { width: 100%; font: inherit; padding: .65rem .9rem .65rem 2.3rem; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); }
.search input:focus { outline: none; border-color: var(--trans); box-shadow: 0 0 0 3px color-mix(in srgb, var(--trans) 20%, transparent); }
.page .search input { max-width: 32rem; }
.filters { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.filters legend { font-weight: 700; font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: .4rem; padding: 0; }
.chip { display: inline-flex; align-items: center; gap: .35rem; cursor: pointer; user-select: none;
  border: 1px solid var(--line); border-radius: 999px; padding: .28rem .7rem; font-size: .85rem; background: var(--surface); }
.chip input { position: absolute; opacity: 0; pointer-events: none; }
.chip::before { content: ""; width: .9rem; height: .9rem; border-radius: 50%; border: 2px solid var(--line); flex: none; }
.chip:has(input:checked) { background: color-mix(in srgb, var(--ink) 7%, var(--surface)); border-color: var(--ink); font-weight: 600; }
.chip:has(input:checked)::before { background: var(--ink); border-color: var(--ink); box-shadow: inset 0 0 0 2px var(--surface); }
.chip--trans:has(input:checked)::before { background: var(--trans); border-color: var(--trans); }
.chip--lgbt:has(input:checked)::before { background: var(--lgbt); border-color: var(--lgbt); }
.chip:has(input:focus-visible) { outline: 3px solid var(--trans-soft); }
.toggle { font-size: .88rem; display: inline-flex; gap: .45rem; align-items: center; cursor: pointer; }
.toggle input { accent-color: var(--ink); width: 1rem; height: 1rem; }
.row { display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; }
.btn { display: inline-flex; align-items: center; gap: .4rem; font: 600 .86rem var(--sans); cursor: pointer; color: var(--ink);
  background: var(--paper); border: 1px solid var(--line); border-radius: 999px; padding: .45rem .9rem; }
.btn:hover { border-color: var(--ink); }

/* list (sidebar + list page) */
.list h2, .page h2 { font: 400 1.35rem var(--serif); margin: 1.2rem 0 .4rem; display: flex; align-items: baseline; gap: .5rem; }
.list h2 small, .page h2 small { font: 600 .75rem var(--sans); color: var(--muted); background: var(--paper); border: 1px solid var(--line); border-radius: 999px; padding: .05rem .5rem; }
.item { display: flex; gap: .7rem; align-items: flex-start; width: 100%; text-align: left; font: inherit; color: inherit;
  background: none; border: 1px solid transparent; border-radius: 10px; padding: .55rem .6rem; margin: .15rem 0; cursor: pointer; }
.item:hover { background: var(--paper); border-color: var(--line); }
.item .badge { margin-top: .1rem; }
.item strong { display: block; font-size: .95rem; }
.item span.sub { display: block; font-size: .82rem; color: var(--muted); }
.item--stale { opacity: .62; }
.badge { width: 2rem; height: 2rem; border-radius: 9px; display: inline-grid; place-items: center; flex: none; color: #fff; background: var(--lgbt); }
.badge .ic { width: 1.05rem; height: 1.05rem; }
.badge--trans { background: var(--trans); } .badge--pride { background: var(--pride); } .badge--history { background: var(--history); }

/* map pins */
.pin { display: grid; place-items: center; border-radius: 50% 50% 50% 4px; transform: rotate(-45deg); color: #fff;
  background: var(--lgbt); border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.35); }
.pin .ic { transform: rotate(45deg); width: 15px; height: 15px; }
.pin--trans { background: var(--trans); } .pin--lgbt { background: var(--lgbt); }
.pin--pride { background: var(--pride); } .pin--history { background: var(--history); border-style: dashed; }
.pin--stale { opacity: .5; }
.pin--approx { box-shadow: 0 2px 6px rgba(0,0,0,.35), 0 0 0 5px color-mix(in srgb, #fff 35%, transparent); }
.klynge { display: grid; place-items: center; border-radius: 50%; font: 700 .9rem var(--sans); color: #fff;
  background: radial-gradient(circle at 30% 30%, #8a6bd0, #5a3e98); border: 3px solid #fff; box-shadow: 0 0 0 4px rgba(245,169,184,.6), 0 3px 10px rgba(0,0,0,.3); }
.gap { stroke: var(--exit); fill: var(--exit); }
.leaflet-container { font-family: var(--sans); }
.leaflet-popup-content-wrapper { background: var(--surface); color: var(--ink); border-radius: 14px; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.leaflet-popup-tip { background: var(--surface); }
.leaflet-popup-content { margin: .9rem 1rem; font: .92rem/1.5 var(--sans); }
.leaflet-bar a { background: var(--surface); color: var(--ink); border-color: var(--line); }

/* popup content */
.pop h3 { font: 400 1.25rem var(--serif); margin: 0 0 .15rem; }
.pop p { margin: .35rem 0; }
.pop .meta { display: flex; align-items: center; gap: .35rem; }
.pop .fresh { font-size: .8rem; padding: .15rem .55rem; border-radius: 999px; display: inline-block; background: color-mix(in srgb, var(--ok) 14%, transparent); }
.pop .fresh--old { background: color-mix(in srgb, var(--exit) 14%, transparent); }
.next { display: flex; gap: .45rem; align-items: center; background: color-mix(in srgb, var(--trans) 10%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--trans) 30%, transparent); padding: .35rem .6rem; border-radius: 8px; font-size: .88rem; }
.next::before { content: ""; width: 1rem; height: 1rem; flex: none; background: currentColor;
  -webkit-mask: url(/vendor/icons/clock.svg) center/contain no-repeat; mask: url(/vendor/icons/clock.svg) center/contain no-repeat; }
.popimg { margin: -.9rem -1rem .6rem; }
.popimg img { width: 100%; height: 140px; object-fit: cover; display: block; border-radius: 14px 14px 0 0; }
.popimg figcaption { font-size: .68rem; color: var(--muted); padding: .2rem 1rem 0; }
.links { display: flex; flex-wrap: wrap; gap: .35rem; margin: .5rem 0; }
.links a { display: inline-flex; align-items: center; gap: .35rem; text-decoration: none; font-size: .82rem; font-weight: 600;
  padding: .3rem .65rem; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); }
.links a:hover { border-color: var(--ink); color: inherit; }
.links a.src { font-weight: 400; color: var(--muted); }

/* content pages */
.page { max-width: 54rem; padding: 0 1.25rem 2rem; }
.page--wide { max-width: 80rem; }
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); gap: .8rem; }
.org { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: .9rem 1rem; margin: .8rem 0;
  box-shadow: var(--shadow); position: relative; border-top: 4px solid var(--lgbt); }
.cards .org { margin: 0; }
.org--trans { border-top-color: var(--trans); } .org--urgent { border-top-color: var(--exit); } .org--old { border-top-color: var(--history); }
.org--anonkind { border-top-color: var(--trans); background: color-mix(in srgb, var(--trans) 8%, transparent); }
.org h3 { margin: 0 0 .2rem; font: 400 1.18rem var(--serif); display: flex; align-items: center; gap: .55rem; }
.org h3 .badge { width: 1.8rem; height: 1.8rem; }
.org p { margin: .3rem 0; }
.org .phone { font: 700 1.5rem var(--sans); letter-spacing: .02em; }
.maplink, .btn-link { display: inline-flex; align-items: center; gap: .3rem; font-weight: 600; font-size: .88rem; text-decoration: none; color: var(--trans); }
.timeline { list-style: none; padding: 0; margin: 1rem 0; }
.timeline li { position: relative; border-left: 2px solid var(--line); padding: .1rem 0 1rem 1.3rem; }
.timeline li::before { content: ""; position: absolute; left: -7px; top: .35rem; width: 12px; height: 12px; border-radius: 50%; background: var(--pink); border: 2px solid var(--surface); }
.timeline strong { display: block; font: 400 1.05rem var(--serif); }
.page ul { padding-left: 1.2rem; } .page li { margin: .25rem 0; }

/* calendar page */
.calbar { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin: .2rem 0 1rem; }
.today { margin: 0; flex-basis: 100%; font-size: 1.05rem; display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; }
.calfilters { display: flex; flex-wrap: wrap; gap: .35rem; }
.legend { margin: 0; font-size: .82rem; color: var(--muted); display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.sw { width: .8rem; height: .8rem; border-radius: 3px; display: inline-block; margin-left: .5rem; }
.sw-trans { background: var(--trans); } .sw-lgbt { background: var(--lgbt); } .sw-pride { background: var(--pride); } .sw-unsure { border: 2px dashed var(--muted); }
.live-dot { width: .6rem; height: .6rem; border-radius: 50%; background: var(--ok); display: inline-block; margin: 0 .2rem 0 .4rem; animation: pulse 1.8s infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(34,165,101,.55); } 70% { box-shadow: 0 0 0 .5rem rgba(34,165,101,0); } 100% { box-shadow: 0 0 0 0 rgba(34,165,101,0); } }
.calwrap { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem; box-shadow: var(--shadow);
  --fc-border-color: var(--line); --fc-page-bg-color: var(--surface); --fc-neutral-bg-color: var(--paper);
  --fc-list-event-hover-bg-color: var(--paper); --fc-today-bg-color: color-mix(in srgb, var(--trans-soft) 13%, transparent);
  --fc-button-bg-color: var(--surface); --fc-button-border-color: var(--line); --fc-button-text-color: var(--ink);
  --fc-button-hover-bg-color: var(--paper); --fc-button-hover-border-color: var(--ink);
  --fc-button-active-bg-color: var(--ink); --fc-button-active-border-color: var(--ink);
  --fc-now-indicator-color: var(--ok); --fc-event-border-color: transparent; }
.calwrap:empty { display: none; }
.calwrap.fc { font-family: var(--sans); color: var(--ink); }
.calwrap .fc-toolbar-title { font: 400 1.45rem var(--serif); text-transform: capitalize; }
.calwrap .fc-button { border-radius: 999px; font-weight: 600; font-size: .84rem; padding: .38rem .85rem; box-shadow: none !important; text-transform: capitalize; }
.calwrap .fc-button-group > .fc-button { border-radius: 0; }
.calwrap .fc-button-group > .fc-button:first-child { border-radius: 999px 0 0 999px; }
.calwrap .fc-button-group > .fc-button:last-child { border-radius: 0 999px 999px 0; }
.calwrap .fc-button-primary:not(:disabled).fc-button-active, .calwrap .fc-button-primary:not(:disabled):active { color: var(--paper); }
.calwrap .fc-col-header-cell-cushion { color: var(--muted); text-decoration: none; text-transform: uppercase; font-size: .75rem; letter-spacing: .06em; padding: .5rem 0; }
.calwrap .fc-daygrid-day-number, .calwrap .fc-list-day-text, .calwrap .fc-list-day-side-text { color: var(--ink); text-decoration: none; text-transform: capitalize; font-weight: 600; }
.calwrap .fc-day-today .fc-daygrid-day-number { background: var(--ink); color: var(--paper); border-radius: 999px; min-width: 1.7rem; text-align: center; margin: .2rem; }
.calwrap .fc-daygrid-event, .calwrap .fc-timegrid-event { border-radius: 6px; padding: 1px 5px; font-size: .78rem; cursor: pointer; }
.calwrap .ev-trans { --fc-event-bg-color: var(--trans); } .calwrap .ev-lgbt { --fc-event-bg-color: var(--lgbt); } .calwrap .ev-pride { --fc-event-bg-color: var(--pride); }
.calwrap .fc-daygrid-dot-event.ev-trans .fc-daygrid-event-dot, .calwrap .fc-list-event.ev-trans .fc-list-event-dot { border-color: var(--trans); }
.calwrap .fc-daygrid-dot-event.ev-lgbt .fc-daygrid-event-dot, .calwrap .fc-list-event.ev-lgbt .fc-list-event-dot { border-color: var(--lgbt); }
.calwrap .fc-daygrid-dot-event.ev-pride .fc-daygrid-event-dot, .calwrap .fc-list-event.ev-pride .fc-list-event-dot { border-color: var(--pride); }
.calwrap .ev-unsure { opacity: .7; outline: 1px dashed var(--muted); outline-offset: -1px; }
.calwrap .fc-list-event { cursor: pointer; } .calwrap .fc-list-day-cushion { background: var(--paper); }
.calwrap .fc-daygrid-more-link { color: var(--muted); font-size: .78rem; font-weight: 600; }
.calwrap .fc-popover { background: var(--surface); border-radius: 10px; box-shadow: var(--shadow); }
.calnav { display: flex; justify-content: space-between; gap: .5rem; margin-bottom: .5rem; }
.day h2 { text-transform: capitalize; }
button.ev, .ev { display: grid; grid-template-columns: 4.5rem 1fr; gap: .6rem; width: 100%; text-align: left; font: inherit; color: inherit; cursor: pointer;
  background: var(--surface); border: 1px solid var(--line); border-left: 5px solid var(--lgbt); border-radius: 10px; padding: .55rem .7rem; margin: .35rem 0; }
.ev.ev-trans, .ev--trans { border-left-color: var(--trans); } .ev.ev-pride { border-left-color: var(--pride); } .ev.ev-unsure { opacity: .75; border-style: dashed; }
.ev-time { font-variant-numeric: tabular-nums; font-weight: 700; }
.detail { border: 1px solid var(--line); border-radius: 18px; padding: 1.1rem 1.2rem .6rem; max-width: 32rem; width: calc(100% - 2rem);
  background: var(--surface); color: var(--ink); box-shadow: 0 20px 60px rgba(0,0,0,.35); }
.detail::backdrop { background: rgba(18,21,42,.5); backdrop-filter: blur(2px); }
.detail .org { box-shadow: none; margin-top: .4rem; }
.dlg-close { float: right; font-size: 1.6rem; line-height: 1; background: none; border: 0; color: var(--muted); cursor: pointer; }

/* footer */
.foot { padding: 1rem 1.25rem 2.5rem; color: var(--muted); font-size: .86rem; max-width: 70rem; display: flex; flex-wrap: wrap; gap: .3rem 1.5rem; }
.foot p { margin: 0; display: inline-flex; align-items: center; gap: .4rem; }

@media (max-width: 52rem) {
  .layout { grid-template-columns: 1fr; height: auto; }
  .map { height: 58vh; }
  .panel { overflow: visible; }
  .top { padding-top: 3.6rem; }
  .top--hero { padding-top: 4.2rem; min-height: 11rem; }
  .nav a[lang] { margin-left: 0; }
}
@media (max-width: 700px) {
  .calwrap { padding: .45rem; }
  .calwrap .fc-toolbar-title { font-size: 1.1rem; }
  .calwrap .fc-toolbar { gap: .4rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }
.top--pride { background: linear-gradient(180deg, rgba(18,21,42,.2), rgba(18,21,42,.8)), url(/img/regnbuepladsen-7-9.jpg) center / cover, #2a2f55; }
.top--arkiv { background: linear-gradient(180deg, rgba(18,21,42,.3), rgba(18,21,42,.85)), url(/img/regnbuepladsen-2011.jpg) center / cover, #2a2f55; }

/* FullCalendar buttons: explicit colours so they are always readable */
.calwrap .fc-button, .calwrap .fc-button-primary { background: var(--surface) !important; color: var(--ink) !important; border: 1px solid var(--line) !important; opacity: 1 !important; font-size: .9rem; min-width: 2.4rem; }
.calwrap .fc-button:hover { border-color: var(--ink) !important; background: var(--paper) !important; }
.calwrap .fc-button.fc-button-active, .calwrap .fc-button:active { background: var(--ink) !important; color: var(--paper) !important; border-color: var(--ink) !important; }
.calwrap .fc-button:disabled { opacity: .45 !important; }
.calwrap .fc-prev-button, .calwrap .fc-next-button { font-size: 1.05rem; font-weight: 700; }
.top h1 a { text-decoration: none; }

/* ===== calendar layout v13 ===== */
.calgrid { display: grid; grid-template-columns: minmax(0, 1fr) 21rem; gap: 1rem; align-items: start; }
.upcoming { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 1rem; position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow-y: auto; }
.upcoming h2 { font: 400 1.3rem var(--serif); margin: 0 0 .6rem; }
.upcoming h3 { font: 700 .74rem var(--sans); text-transform: uppercase; letter-spacing: .07em; color: var(--muted); margin: 1rem 0 .35rem; }
.upcoming h3:first-of-type { margin-top: .2rem; }
.up { display: grid; grid-template-columns: 3.4rem 1fr; gap: .5rem; width: 100%; text-align: left; font: inherit; color: inherit; background: none; cursor: pointer;
  border: 0; border-left: 4px solid var(--lgbt); border-radius: 0 8px 8px 0; padding: .4rem .5rem; margin: .2rem 0; }
.up:hover { background: var(--paper); }
.up.ev-trans { border-left-color: var(--trans); } .up.ev-pride { border-left-color: var(--pride); } .up.ev-unsure { opacity: .7; }
.up-time { font: 700 .82rem var(--sans); font-variant-numeric: tabular-nums; color: var(--muted); padding-top: .05rem; }
.up-name { font-size: .88rem; font-weight: 600; line-height: 1.3; }
.up-name small { display: block; font-weight: 400; color: var(--muted); font-size: .78rem; }
.up--live { background: color-mix(in srgb, var(--ok) 12%, transparent); }
.up--live .up-time { color: var(--ok); }
/* readable month cells */
.calwrap .fc-daygrid-event { white-space: normal; align-items: flex-start; }
.calwrap .fc-daygrid-dot-event .fc-event-title, .calwrap .fc-daygrid-block-event .fc-event-title { white-space: normal; overflow: visible; line-height: 1.25; }
.calwrap .fc-daygrid-dot-event .fc-daygrid-event-dot { margin-top: .35em; }
.calwrap .fc-daygrid-dot-event .fc-event-time { flex: none; }
.calwrap .fc-daygrid-dot-event:hover { background: var(--paper); }
.calwrap .fc-daygrid-block-event.ev-unsure { background: transparent !important; outline: none; border: 1px dashed var(--muted) !important; }
.calwrap .fc-daygrid-block-event.ev-unsure .fc-event-main { color: var(--ink) !important; }
.calwrap .fc-daygrid-block-event.ev-trans.ev-unsure { border-color: var(--trans) !important; }
.calwrap .fc-daygrid-block-event.ev-lgbt.ev-unsure { border-color: var(--lgbt) !important; }
.calwrap .fc-daygrid-day-frame { min-height: 7rem; }
.calwrap .fc-day-other .fc-daygrid-day-top { opacity: .45; }
.calwrap .fc-scrollgrid { border-radius: 10px; overflow: hidden; }
.calwrap .fc-list-event-title a { text-decoration: none; }
@media (max-width: 64rem) { .calgrid { grid-template-columns: 1fr; } .upcoming { position: static; max-height: none; } }

/* ===== v14: full-width calendar, tidy month cells ===== */
main.page.page--wide { max-width: min(110rem, 100%); width: 100%; }
.calgrid { grid-template-columns: minmax(0, 1fr) clamp(17rem, 24vw, 23rem); }
.calwrap .fc-daygrid-dot-event .fc-event-title, .calwrap .fc-daygrid-block-event .fc-event-title {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: normal; word-break: normal; overflow-wrap: anywhere; }
.calwrap .fc-daygrid-dot-event { padding: 2px 4px; gap: 3px; }
.calwrap .fc-daygrid-dot-event .fc-event-time { font-weight: 700; margin-right: 2px; }
.calwrap .fc-daygrid-event-harness { margin-bottom: 2px; }
.calwrap .fc-daygrid-day-frame { min-height: 6.5rem; }
.calwrap .fc-daygrid-day-number { font-size: .85rem; padding: .25rem .4rem; }
.calwrap .fc-col-header-cell-cushion { font-size: .72rem; }

/* ===== v15: map ↔ calendar flow ===== */
@view-transition { navigation: auto; }
.top { view-transition-name: site-top; }
.nav { view-transition-name: site-nav; }
::view-transition-old(root) { animation: vt-out .16s ease both; }
::view-transition-new(root) { animation: vt-in .3s ease both; }
@keyframes vt-out { to { opacity: 0; } }
@keyframes vt-in { from { opacity: 0; transform: translateY(8px); } }
@media (prefers-reduced-motion: reduce) { ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; } }
.pin--today::after { content: ""; position: absolute; inset: -7px; border-radius: 50%; border: 2px solid var(--ok); animation: ring 2.2s ease-out infinite; pointer-events: none; }
@keyframes ring { 0% { transform: scale(.75); opacity: .9; } 100% { transform: scale(1.7); opacity: 0; } }
.chip--live::before { border-color: var(--ok) !important; }
.chip--live:has(input:checked)::before { background: var(--ok) !important; }
.chip input[type=radio] { position: absolute; opacity: 0; }
.next small { color: var(--muted); }
.btn-link { padding: .35rem .75rem; border-radius: 999px; background: color-mix(in srgb, var(--trans) 12%, transparent); }
.btn-link:hover { background: color-mix(in srgb, var(--trans) 22%, transparent); color: var(--trans); }
.focusbar { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: .6rem .8rem; margin: 0 0 1rem; box-shadow: var(--shadow); animation: vt-in .3s ease both; }
.focusbar > span { flex: 1; min-width: 12rem; }
.detail[open] { animation: pop .2s ease both; }
@keyframes pop { from { opacity: 0; transform: translateY(10px) scale(.98); } }
.leaflet-popup { animation: pop .18s ease both; }

/* ===== v16: posts ===== */
.feed { display: grid; gap: .8rem; max-width: 44rem; }
.post { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: .9rem 1rem; border-left: 5px solid var(--lgbt); animation: vt-in .3s ease both; }
.post--trans { border-left-color: var(--trans); }
.post header { display: flex; gap: .65rem; align-items: center; margin-bottom: .4rem; }
.post header strong { display: block; line-height: 1.25; }
.post-text { margin: .3rem 0 .5rem; white-space: normal; overflow-wrap: anywhere; }
.lastpost { border: 1px solid var(--line); border-radius: 10px; padding: .45rem .6rem; margin: .5rem 0; background: var(--paper); font-size: .86rem; }
.lastpost .meta { display: flex; align-items: center; gap: .3rem; font-size: .78rem; }
.lastpost p { margin: .25rem 0; }
.lastpost a { font-weight: 600; font-size: .82rem; }
.calbar .search { min-width: min(24rem, 100%); flex: 1; }

/* ===== v17: live + new-post pulses ===== */
.pin--live::after { content: ""; position: absolute; inset: -7px; border-radius: 50%; border: 3px solid var(--ok); animation: ring 1.1s ease-out infinite; pointer-events: none; }
.pin--today::after { animation-duration: 3s; opacity: .7; }
.pin--new::before { content: ""; position: absolute; width: 11px; height: 11px; right: -3px; top: -3px; transform: rotate(45deg); border-radius: 50%;
  background: var(--pink); border: 2px solid #fff; animation: blink 1.6s ease-in-out infinite; }
@keyframes blink { 50% { opacity: .25; } }
.maplegend { display: flex; flex-wrap: wrap; gap: .3rem .8rem; font-size: .78rem; color: var(--muted); margin: 0; }
.maplegend span { display: inline-flex; align-items: center; gap: .3rem; }
.dot { width: .65rem; height: .65rem; border-radius: 50%; display: inline-block; }
.dot--live { background: var(--ok); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ok) 35%, transparent); }
.dot--today { border: 2px solid var(--ok); }
.dot--new { background: var(--pink); }

.calwrap .ev-post { outline: 1px dashed var(--pink) !important; }
.safety { border-top-color: var(--ok); }
.stat { display: flex; flex-wrap: wrap; gap: .6rem; margin: .5rem 0; }
.stat div { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: .5rem .8rem; min-width: 8rem; }
.stat b { display: block; font: 400 1.6rem var(--serif); }
.calwrap .ev-feed { box-shadow: inset 3px 0 0 #fff; font-weight: 600; }
.onion code { font-size: .78rem; word-break: break-all; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: .1rem .35rem; }

/* ===== v22: contact form ===== */
.contactform { display: grid; gap: .9rem; max-width: 38rem; border-top-color: var(--trans); }
.contactform label { display: grid; gap: .3rem; font-weight: 600; font-size: .92rem; }
.contactform input, .contactform select, .contactform textarea { font: inherit; font-weight: 400; color: var(--ink); background: var(--paper);
  border: 1px solid var(--line); border-radius: 10px; padding: .6rem .75rem; width: 100%; }
.contactform textarea { resize: vertical; min-height: 8rem; }
.contactform input:focus, .contactform select:focus, .contactform textarea:focus { outline: none; border-color: var(--trans); box-shadow: 0 0 0 3px color-mix(in srgb, var(--trans) 20%, transparent); }
.contactform .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.btn--send { justify-self: start; background: var(--ink); color: var(--paper); border-color: var(--ink); padding: .6rem 1.3rem; font-size: .95rem; }
.formstatus { padding: .7rem 1rem; border-radius: 10px; font-weight: 600; max-width: 38rem; }
.formstatus--tak { background: color-mix(in srgb, var(--ok) 15%, transparent); }
.formstatus--fejl, .formstatus--travlt { background: color-mix(in srgb, var(--exit) 15%, transparent); }

/* ===== v24: calendar on phones ===== */
@media (max-width: 760px) {
  .calbar { gap: .5rem; }
  .calfilters { width: 100%; }
  .calfilters .chip { font-size: .8rem; padding: .25rem .6rem; }
  .legend { font-size: .75rem; }
  .calwrap { padding: .5rem; border-radius: 12px; }
  /* toolbar: title on its own row, buttons below – nothing overlaps */
  .calwrap .fc-header-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .45rem; margin-bottom: .6rem !important; }
  .calwrap .fc-header-toolbar .fc-toolbar-chunk:nth-child(2) { order: -1; flex-basis: 100%; text-align: center; }
  .calwrap .fc-toolbar-title { font-size: 1.1rem !important; line-height: 1.25; }
  .calwrap .fc .fc-button { padding: .3rem .65rem !important; font-size: .8rem !important; min-width: 2.2rem; }
  .calwrap .fc-footer-toolbar { margin-top: .6rem !important; justify-content: center; }
  /* month view on phones: coloured dots only, tap a day to see its list */
  .calwrap .fc-daygrid-day-frame { min-height: 3.6rem; }
  .calwrap .fc-daygrid-dot-event .fc-event-title, .calwrap .fc-daygrid-dot-event .fc-event-time,
  .calwrap .fc-daygrid-block-event .fc-event-title { display: none !important; }
  .calwrap .fc-daygrid-dot-event { display: inline-flex !important; padding: 1px !important; margin: 0 !important; background: none !important; }
  .calwrap .fc-daygrid-event-harness { display: inline-block; margin: 0 1px 1px 0 !important; }
  .calwrap .fc-daygrid-block-event { height: 6px; border-radius: 3px; padding: 0 !important; }
  .calwrap .fc-daygrid-day-events { display: flex; flex-wrap: wrap; align-items: center; padding: 0 2px; min-height: 0 !important; }
  .calwrap .fc-daygrid-day-bottom { font-size: .65rem; }
  .calwrap .fc-daygrid-more-link { font-size: .65rem; }
  .calwrap .fc-col-header-cell-cushion { font-size: .65rem; letter-spacing: .02em; padding: .3rem 0; }
  .calwrap .fc-daygrid-day-number { font-size: .75rem; padding: .15rem .3rem; }
  /* list views: comfortable, wrapping text */
  .calwrap .fc-list-event td { padding: .55rem .5rem !important; font-size: .88rem; }
  .calwrap .fc-list-event-title { white-space: normal; overflow-wrap: anywhere; }
  .calwrap .fc-list-event-time { white-space: nowrap; font-weight: 600; }
  .calwrap .fc-list-day-cushion { padding: .45rem .6rem !important; font-size: .85rem; }
  .upcoming { padding: .8rem; }
  .detail { width: calc(100% - 1rem); max-height: 85vh; overflow-y: auto; padding: 1rem .9rem .5rem; }
  .focusbar { font-size: .88rem; }
  .exit { top: calc(env(safe-area-inset-top, 0px) + .5rem); right: .5rem; padding: .45rem .8rem; font-size: .82rem; }
}

/* ===== v25: compact phone layout on every page ===== */
html { -webkit-text-size-adjust: 100%; }
body { overflow-x: clip; }
img { max-width: 100%; }
.cards { grid-template-columns: repeat(auto-fill, minmax(min(19rem, 100%), 1fr)); }
.org, .post, .item, .lastpost { overflow-wrap: anywhere; }
/* collapsible filter box on the map */
.filterbox { border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.filterbox > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: .5rem; padding: .6rem .8rem; font-weight: 700; font-size: .9rem; user-select: none; }
.filterbox > summary::-webkit-details-marker { display: none; }
.filterbox > summary::after { content: ""; margin-left: auto; width: .5rem; height: .5rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s; }
.filterbox[open] > summary::after { transform: translateY(2px) rotate(-135deg); }
.factive:not(:empty) { background: var(--trans); color: #fff; border-radius: 999px; font-size: .72rem; line-height: 1.5; padding: 0 .45rem; min-width: 1.3rem; text-align: center; }
.filterbody { display: flex; flex-direction: column; gap: .8rem; padding: .1rem .8rem .8rem; }
.quickrow { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }

@media (max-width: 52rem) {
  /* header: one slim row – name left, exit button right, menu below */
  .top, .top--hero { padding: .55rem .8rem .15rem; min-height: 0; margin-bottom: .6rem; }
  .top--hero { padding-top: 1rem; padding-bottom: .4rem; }
  .top h1 { font-size: 1.5rem; max-width: calc(100% - 8.5rem); }
  .top:not(.top--hero) .lead { display: none; }
  .top--hero .lead { font-size: .86rem; line-height: 1.4; margin-top: .15rem;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .nav { gap: .3rem; padding: .5rem 0 .3rem; margin-right: -.8rem; padding-right: 2rem;
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent); }
  .nav a { padding: .38rem .7rem; font-size: .8rem; gap: .3rem; }
  .exit { top: calc(env(safe-area-inset-top, 0px) + .55rem); right: .55rem; padding: .42rem .75rem; font-size: .8rem; }

  /* map page: map first, then search, then the list */
  .layout { padding: 0 .55rem .8rem; gap: .6rem; min-height: 0; }
  .map { height: 54vh; height: 54svh; min-height: 17rem; border-radius: 12px; }
  .panel { padding: .7rem; gap: .6rem; border-radius: 12px; }
  .filters--scroll { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
  .filters--scroll::-webkit-scrollbar { display: none; }
  .filters--scroll legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .filters--scroll .chip { flex: none; }
  .chip { padding: .38rem .75rem; font-size: .84rem; }
  .toggle { font-size: .86rem; padding: .15rem 0; }
  .toggle input { width: 1.15rem; height: 1.15rem; }
  .maplegend { font-size: .74rem; }
  .list h2 { font-size: 1.15rem; margin: .9rem 0 .25rem; }
  .item { padding: .5rem .4rem; gap: .6rem; }
  .item strong { font-size: .92rem; }
  .leaflet-popup-content { margin: .7rem .8rem; font-size: .86rem; }
  .popimg { margin: -.7rem -.8rem .5rem; }
  .popimg img { height: 105px; }
  .pop h3 { font-size: 1.1rem; }
  .links { gap: .3rem; }
  .links a { font-size: .78rem; padding: .32rem .6rem; }

  /* content pages */
  .page, .page--wide { padding: 0 .65rem 1.3rem; }
  .page h2, .list h2 { font-size: 1.2rem; margin-top: 1rem; }
  .page > p, .page li { font-size: .95rem; }
  .cards { grid-template-columns: 1fr; gap: .6rem; }
  .org { padding: .75rem .8rem; margin: .6rem 0; border-radius: 12px; }
  .org h3 { font-size: 1.06rem; gap: .45rem; }
  .org h3 .badge { width: 1.6rem; height: 1.6rem; }
  .org p { font-size: .92rem; }
  .org .phone { font-size: 1.3rem; }
  .stat div { flex: 1 1 40%; min-width: 0; padding: .4rem .6rem; }
  .stat b { font-size: 1.3rem; }
  .feed { gap: .6rem; }
  .post { padding: .75rem .8rem; border-radius: 12px; }
  .post-text { font-size: .93rem; }
  .calbar { margin-bottom: .6rem; }
  .calbar .search { min-width: 100%; }
  .today { font-size: .95rem; }
  .calgrid { gap: .7rem; }
  .timeline li { padding-left: 1rem; }
  .contactform { padding: .9rem; }
  .btn--send { justify-self: stretch; justify-content: center; }
  .foot { padding: .6rem .8rem 1.6rem; font-size: .78rem; flex-direction: column; gap: .35rem; }
  .onion code { font-size: .7rem; }
}
@media (max-width: 380px) {
  .top h1 { font-size: 1.3rem; }
  .exit { padding: .38rem .6rem; font-size: .74rem; }
  .nav a .ic { display: none; }
}
/* the v14 two-column calendar rule came after the narrow-screen rule and won – put one column back on tablets and phones */
@media (max-width: 64rem) {
  .calgrid { grid-template-columns: minmax(0, 1fr); }
  .upcoming { position: static; max-height: none; }
}

/* ===== v25: posts – coming-up strip and source labels ===== */
.soon { margin: .4rem 0 1.2rem; }
.soon h2 { margin-top: .4rem; }
.soonlist { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(17rem, 100%), 1fr)); gap: .5rem; margin-top: .5rem; }
.soonitem { display: grid; grid-template-columns: 3.2rem 1fr; gap: .6rem; align-items: start; text-decoration: none; color: inherit;
  background: var(--surface); border: 1px solid var(--line); border-left: 5px solid var(--lgbt); border-radius: 12px; padding: .55rem .7rem; box-shadow: var(--shadow); }
.soonitem--trans { border-left-color: var(--trans); }
.soonitem:hover { border-color: var(--ink); color: inherit; }
.soondate { display: grid; place-items: center; background: var(--paper); border-radius: 9px; padding: .25rem 0; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.soondate b { font: 400 1.45rem/1 var(--serif); color: var(--ink); }
.soonitem strong { display: block; font-size: .92rem; line-height: 1.25; }
.soonitem small { display: block; font-size: .78rem; color: var(--muted); line-height: 1.35; margin-top: .1rem; }
.via { font-weight: 600; }
.via--web { color: var(--ok); }
.panel > * { flex-shrink: 0; }

/* ===== v26: calendar subscription ===== */
.subscribe { flex-basis: 100%; margin: 0; font-size: .88rem; background: var(--surface); border: 1px solid var(--line); border-left: 4px solid var(--trans); border-radius: 10px; padding: .55rem .75rem; }
.subscribe .ic { margin-right: .3rem; color: var(--trans); }
.subscribe a { font-weight: 600; }
.subscribe small { color: var(--muted); }
.popfoot, .cardfoot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem; font-size: .8rem; margin-top: .4rem; }
.popfoot a, .cardfoot .wrong { color: var(--muted); }
.sharebtn { display: inline-flex; align-items: center; gap: .3rem; font: 600 .8rem var(--sans); color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 999px; padding: .3rem .7rem; cursor: pointer; }
.sharebtn:hover { border-color: var(--ink); }
.subscribe { text-align: left; }
.calbar .subscribe { text-align: left !important; }
.via--soc { color: var(--trans); }

/* ===== v35: gap towns – nearest communities and municipal effort ===== */
.gapnear { margin: .5rem 0 .3rem; font-size: .86rem; line-height: 1.5; }
.gapkom { margin: .3rem 0 0; padding: .4rem .55rem; border-radius: 8px; border-left: 4px solid var(--muted); background: var(--paper); line-height: 1.4; }
.gapkom.tier1, .gapkom.tier2 { border-left-color: var(--ok); }
.gapkom.tier3, .gapkom.tier4 { border-left-color: #6aa84f; }
.gapkom.tier5 { border-left-color: #d9a400; }
.gapkom.tier6, .gapkom.tier7 { border-left-color: var(--exit); }
.tiers { display: grid; gap: .4rem; margin: .6rem 0; }
.tiers div { background: var(--surface); border: 1px solid var(--line); border-left: 5px solid var(--muted); border-radius: 10px; padding: .5rem .7rem; font-size: .88rem; }
.tiers b { display: block; font-size: .92rem; margin-bottom: .15rem; }
.tiers .tier1, .tiers .tier2 { border-left-color: var(--ok); } .tiers .tier3, .tiers .tier4 { border-left-color: #6aa84f; }
.tiers .tier5 { border-left-color: #d9a400; } .tiers .tier6, .tiers .tier7 { border-left-color: var(--exit); }

/* Spørg / Ask (delt med AnonKind) */
.askform { display: grid; gap: .6rem; margin: 0 0 .8rem; }
.askform textarea { width: 100%; box-sizing: border-box; font: inherit; padding: .7rem .8rem; border-radius: 12px; border: 1px solid color-mix(in srgb, currentColor 25%, transparent); background: transparent; color: inherit; }
.askform .btn { justify-self: start; }
.examples { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.examples .chip { cursor: pointer; font: inherit; font-size: .85rem; }
.notice--urgent { border-left: 4px solid var(--exit); }

/* Rettigheder og klage-hjælper (delt med AnonKind, ret.js) */
.ic-scale { --ic: url(/vendor/icons/scale.svg); } .ic-filetext { --ic: url(/vendor/icons/file-text.svg); } .ic-brain { --ic: url(/vendor/icons/brain.svg); }
.ret { margin: .5rem 0 .2rem; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); font-size: .88rem; }
.ret summary { cursor: pointer; padding: .4rem .65rem; font-weight: 600; display: flex; align-items: center; gap: .4rem; list-style: none; }
.ret summary::-webkit-details-marker { display: none; }
.ret summary::after { content: "+"; margin-left: auto; color: var(--muted); }
.ret[open] summary::after { content: "–"; }
.ret ul { margin: 0; padding: 0 .9rem 0 1.9rem; }
.ret li { margin: .25rem 0; line-height: 1.4; }
.ret .retlinks { display: flex; flex-wrap: wrap; gap: .3rem .9rem; padding: .3rem .65rem 0; margin: .2rem 0; font-weight: 600; }
.ret .meta { padding: 0 .65rem .45rem; margin: .2rem 0 0; font-size: .76rem; }
.leaflet-popup-content .ret { font-size: .82rem; }
.rights h2 { scroll-margin-top: 1rem; }
.rights .toc { display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; list-style: none; }
.rights .toc a { display: inline-block; padding: .3rem .7rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); font-size: .85rem; text-decoration: none; color: var(--ink); }
.rights .say { border-left: 4px solid var(--trans); background: var(--surface); border-radius: 0 10px 10px 0; padding: .55rem .8rem; margin: .5rem 0; font-size: 1.02rem; }
.rights ol.steps li, .rights ul.checks li { margin: .3rem 0; }
.klagetool form { display: grid; gap: .7rem; }
.klagetool label.f { display: grid; gap: .25rem; font-weight: 600; }
.klagetool select, .klagetool input[type=text], .klagetool input[type=date], .klagetool textarea { font: inherit; padding: .55rem .7rem; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); width: 100%; box-sizing: border-box; }
.klagetool .wants { display: flex; flex-wrap: wrap; gap: .4rem; }
.klagetool #kl-out { min-height: 18rem; font: .92rem/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; }
.klagetool .klbtns { display: flex; flex-wrap: wrap; gap: .4rem; }
.klagetool .klroute { border-left: 4px solid var(--ok, #2e8b57); }
.klprint { display: none; }
@media print { body.printing * { visibility: hidden; } body.printing .klprint { display: block; visibility: visible; position: absolute; left: 0; top: 0; margin: 0; white-space: pre-wrap; font: 11pt/1.5 Georgia, serif; } }

/* v42: roligere menu – de vigtigste først, AnonKind fremhævet, resten under "Mere" (delt med AnonKind) */
.nav a.navak, .nav a.navak:hover { background: color-mix(in srgb, var(--trans) 20%, var(--surface)); border-color: var(--trans); }
.top--hero .nav a.navak { background: rgba(91,206,250,.30); border-color: rgba(91,206,250,.75); }
.nav a.navak small { font-weight: 500; opacity: .8; }
.nav details.navmore { display: inline-flex; align-items: center; flex: none; }
.nav details.navmore > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap;
  padding: .45rem .9rem; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); font-weight: 600; font-size: .88rem; }
.nav details.navmore > summary::-webkit-details-marker { display: none; }
.nav details.navmore > summary::after { content: "▾"; font-size: .75em; opacity: .7; }
.nav details.navmore[open] > summary::after { content: "▴"; }
.nav details.navmore[open] > summary { border-color: var(--ink); }
.nav .navmore-items { display: inline-flex; gap: .4rem; margin-left: .4rem; }
.top--hero .nav details.navmore > summary { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.25); color: #fff; backdrop-filter: blur(6px); }
@media (max-width: 52rem) { .nav details.navmore > summary { padding: .38rem .7rem; font-size: .8rem; } .nav .navmore-items { gap: .3rem; margin-left: .3rem; } }
/* AnonKind-kort i siden af kortet og kalenderen */
.akside { display: flex; gap: .7rem; align-items: center; margin: 0 0 .7rem; padding: .6rem .8rem; border-radius: 12px; text-decoration: none; color: inherit;
  border: 1px solid var(--trans); background: color-mix(in srgb, var(--trans) 10%, var(--surface)); }
.akside:hover { border-color: var(--ink); color: inherit; }
.akside b { display: block; font-size: .95rem; } .akside span.t { font-size: .8rem; color: var(--muted); line-height: 1.35; }
.akside .ic { width: 1.6rem; height: 1.6rem; color: var(--trans); }
@media (min-width: 52.01rem) {
  .nav { overflow: visible; flex-wrap: wrap; }
  .nav details.navmore { position: relative; }
  .nav .navmore-items { position: absolute; top: calc(100% + .4rem); left: 0; z-index: 1200; flex-direction: column; align-items: stretch; gap: .15rem;
    margin: 0; padding: .4rem; min-width: 15rem; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); }
  .nav .navmore-items a, .top--hero .nav .navmore-items a { background: transparent; border-color: transparent; color: var(--ink); box-shadow: none; backdrop-filter: none; }
  .nav .navmore-items a:hover { background: var(--paper); }
  .nav .navmore-items a[aria-current] { background: var(--ink); color: var(--paper); }
}
.akfloat { display: none; }
@media (min-width: 88rem) { .akfloat { display: flex; position: fixed; right: 1.25rem; top: 15rem; width: 17rem; z-index: 50; box-shadow: var(--shadow); } }
/* Ydelser-tabeller (AnonKind) */
.tablewrap { overflow-x: auto; margin: .6rem 0; }
.ytab { border-collapse: collapse; width: 100%; font-size: .9rem; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; }
.ytab th, .ytab td { text-align: left; vertical-align: top; padding: .5rem .6rem; border-bottom: 1px solid var(--line); }
.ytab th { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.ytab td small { color: var(--muted); }
#kommunetool select { font: inherit; padding: .45rem .6rem; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); }

/* ===== v44: ny kortside (kortui.js, delt med AnonKind) ===== */
/* tændt/slukket skal kunne ses med det samme: tændt = udfyldt med flueben, slukket = tom ramme */
.chip:has(input:checked) { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.chip:has(input:checked)::before { content: "✓"; display: grid; place-items: center; font-size: .7rem; font-weight: 800; background: var(--paper); color: var(--ink); border-color: var(--paper); box-shadow: none; }
.chip--trans:has(input:checked), .chip--lgbt:has(input:checked) { background: var(--ink); }
.toggle input { accent-color: var(--trans); }
.kortui .layout { grid-template-columns: minmax(0, 1fr) 26rem; height: calc(100vh - 9.5rem); }
.kortui .map { border-radius: 16px; }
.klabel { margin: .2rem 0 -.3rem; font-weight: 700; font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.kcats { display: flex; flex-wrap: wrap; gap: .35rem; min-width: 0; max-width: 100%; }
.kcats .kcat { text-align: left; white-space: nowrap; font-size: .84rem; } .kcats .kcat[hidden] { display: none; }
/* når et sted er valgt, fylder kortet om stedet hele panelet */
.panel--card > :not(.kcard):not(#liste):not(#count) { display: none !important; }
.kcat { display: inline-flex; align-items: center; gap: .4rem; font: 600 .86rem var(--sans); color: var(--ink); cursor: pointer;
  padding: .45rem .75rem; border-radius: 999px; border: 1.5px solid var(--line); background: var(--surface); }
.kcat:hover { border-color: var(--ink); }
.kcat[aria-checked="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.kcat .kn { font-size: .72rem; font-weight: 700; padding: .05rem .4rem; border-radius: 999px; background: color-mix(in srgb, currentColor 14%, transparent); }
.kcat--empty:not([aria-checked="true"]) { opacity: .45; }
.kcat:focus-visible, .kswitch input:focus-visible + .track { outline: 3px solid var(--trans-soft); outline-offset: 2px; }
.kswitch { display: flex; align-items: center; gap: .7rem; cursor: pointer; padding: .55rem .7rem; border-radius: 12px; border: 1px solid var(--line); background: var(--paper); }
.kswitch input { position: absolute; opacity: 0; pointer-events: none; }
.kswitch .track { position: relative; width: 2.9rem; height: 1.6rem; flex: none; border-radius: 999px; background: var(--line); transition: background .2s; }
.kswitch .track::after { content: ""; position: absolute; top: .2rem; left: .2rem; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.3); transition: transform .2s; }
.kswitch input:checked + .track { background: var(--ok); }
.kswitch input:checked + .track::after { transform: translateX(1.3rem); }
.kswitch b { display: block; font-size: .95rem; } .kswitch small { display: block; color: var(--muted); font-size: .78rem; }
.kcard { animation: kin .18s ease-out; }
.kcard .kback { margin-bottom: .5rem; }
.kcard .pop h3 { font: 400 1.45rem var(--serif); margin: .3rem 0; }
.kcard .pop p { margin: .35rem 0; }
@keyframes kin { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.item--sel { background: var(--paper); border-color: var(--ink) !important; }
.pin--sel { z-index: 1000 !important; transform: rotate(-45deg) scale(1.35); box-shadow: 0 0 0 4px var(--paper), 0 0 0 7px var(--ink), 0 4px 12px rgba(0,0,0,.45); }
.kctl { display: flex; flex-direction: column; gap: .4rem; }
.kctl button { display: inline-flex; align-items: center; gap: .4rem; font: 600 .85rem var(--sans); color: var(--ink); background: var(--surface); cursor: pointer;
  border: 1px solid var(--line); border-radius: 999px; padding: .5rem .8rem; box-shadow: 0 2px 8px rgba(0,0,0,.2); }
.kctl button:hover { border-color: var(--ink); }
.kctl button.busy { opacity: .6; }
.kmedot { stroke: #fff; fill: #1a73e8; }
.leaflet-bar a { width: 34px !important; height: 34px !important; line-height: 34px !important; }
.leaflet-control-attribution { font-size: .68rem; }
@media (max-width: 52rem) {
  .kortui .layout { height: auto; grid-template-columns: minmax(0, 1fr); }
  .kcats { display: flex; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding: 0 0 .2rem; }
  .kcats::-webkit-scrollbar { display: none; }
  .kcat { flex: none; padding: .45rem .7rem; }
  .kctl button span { display: none; }
  .kctl button { padding: .55rem; }
}

/* roligt kort: OpenStreetMap dæmpet – færre skrigende farver, så nålene står frem */
.kcalm.leaflet-container { background: #e9ecef; }
.kcalm .leaflet-tile-pane { filter: grayscale(.75) saturate(.6) brightness(1.05) contrast(.92); }
@media (prefers-color-scheme: dark) {
  .kcalm.leaflet-container { background: #1b1f2b; }
  .kcalm .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) grayscale(.55) brightness(.82) contrast(.9); }
}
