/*
 * LYNfabrikken – retro prototype v3 (lokal, intern – må ikke offentliggøres)
 * Klassisk Mac / QuarkXPress: monokrom, lysegrå skrivebord, hvide vinduer, 1 px sorte kanter,
 * stribede titelbjælker, 1-bit pixel-ikoner (inline SVG, crispEdges).
 * v3: rød (#AF1214 = live-sitets header-rød) bruges KUN til LYNfabrikken-navnet/logoet. Alt andet er sort/hvid/grå.
 * Fonte (alle selv-hostede i /fonts, se fonts/LICENSES.txt):
 *   chrome (menuer, vinduestitler, knapper, palette): ChiKareGo2 (CC BY, Giles Booth) -> Pixelify Sans (OFL)
 *   brødtekst + overskrifter: Libre Caslon Text (OFL) · labels/priser: IBM Plex Mono (OFL)
 */
@font-face { font-family: "ChiKareGo2"; src: url(/fonts/ChiKareGo2.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Pixelify Sans"; src: url(/fonts/PixelifySans-VF.woff2) format("woff2"); font-weight: 400 700; font-display: swap; }
@font-face { font-family: "Libre Caslon Text"; src: url(/fonts/LibreCaslonText-VF.woff2) format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Libre Caslon Text"; src: url(/fonts/LibreCaslonText-Italic-VF.woff2) format("woff2"); font-weight: 400 700; font-style: italic; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url(/fonts/IBMPlexMono-Regular.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url(/fonts/IBMPlexMono-SemiBold.woff2) format("woff2"); font-weight: 600; font-display: swap; }

:root {
  --ink: #111111;
  --paper: #ffffff;
  --page: #dedede;
  --red: #af1214;   /* LYNfabrikken-rød: live-sitets #header-baggrund (site.css på www.lynfabrikken.dk) */
  --accent: #111111;
  --muted: #666666;
  --hair: #d6d6d6;
  --kv-line: #8a8a8a;
  --fill: #d4d4d4;
  --soft: #f4f4f4;
  --font-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
  --font-sans: "Libre Caslon Text", Georgia, "Times New Roman", serif;
  --font-chrome: "ChiKareGo2", "Pixelify Sans", "Geneva", "Verdana", sans-serif;
  --pal-w: 66px;
  --stripes: repeating-linear-gradient(to bottom, #111 0 1px, transparent 1px 3px);
  --hatch: repeating-linear-gradient(-45deg, #fff 0 3px, #c8c8c8 3px 4px);
  --dither: radial-gradient(#b9b9b9 0.7px, transparent 0.8px);
}

* { box-sizing: border-box; border-radius: 0 !important; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 64px; }
html, body { margin: 0; padding: 0; color: var(--ink); }
body {
  font-family: var(--font-sans); font-size: 17px; line-height: 1.6; min-height: 100vh;
  background-color: var(--page); background-image: var(--dither); background-size: 4px 4px;
}
a { color: inherit; }
p a, li a, dd a, .txt a { text-decoration: underline; text-underline-offset: 2px; }
p a:hover, li a:hover, dd a:hover, .txt a:hover { background: #111; color: #fff; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3 { font-weight: 700; line-height: 1.15; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 0; z-index: 100; background: #111; color: #fff; padding: 8px 12px; font-family: var(--font-mono); }
.skip:focus { left: 8px; }

/* ---------- Prototype-strimmel ---------- */
.proto-bar {
  background: var(--hatch); border-bottom: 1px solid #111; text-align: center;
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; padding: 3px 8px;
}
.proto-bar span { background: #fff; padding: 0 6px; border: 1px solid #111; }

/* ---------- Menubjælke (klassisk Mac) ---------- */
.menubar {
  position: sticky; top: 0; z-index: 50; display: flex; align-items: stretch; min-height: 46px;
  background: #fff; border-bottom: 1px solid #111; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.04em;
}
.brand { display: flex; align-items: center; gap: 9px; padding: 0 14px 0 10px; text-decoration: none; white-space: nowrap; border-right: 1px solid #111; }
.brand img { width: 30px; height: 30px; border: 1px solid #111; }
.brand strong { font-size: 15px; font-weight: 600; letter-spacing: 0; }
.brand small { font-family: var(--font-sans); color: var(--muted); font-size: 13px; text-transform: uppercase; letter-spacing: 0.02em; }
.menus { display: flex; align-items: stretch; margin: 0; padding: 0; list-style: none; }
.menus > li { position: relative; display: flex; }
.menus > li > a, .menus summary {
  display: flex; align-items: center; padding: 0 12px; text-decoration: none; cursor: pointer; white-space: nowrap;
  text-transform: uppercase; font-size: 11px; letter-spacing: 0.07em;
}
.menus summary { list-style: none; height: 100%; }
.menus summary::-webkit-details-marker { display: none; }
.menus > li > a:hover, .menus summary:hover { background: var(--soft); }
.menus > li > a[aria-current="page"], .menus details.is-current > summary { text-decoration: underline; text-underline-offset: 4px; }
.menus details[open] > summary { background: #111; color: #fff; }
.menus details { display: flex; }
.menu-pop {
  position: absolute; top: 100%; left: -1px; z-index: 60; min-width: 250px; background: #fff; border: 1px solid #111;
}
.menu-pop a {
  display: flex; justify-content: space-between; gap: 16px; padding: 10px 12px; border-bottom: 1px solid var(--hair);
  text-decoration: none; text-transform: uppercase; font-size: 12px; letter-spacing: 0.04em;
}
.menu-pop a:last-child { border-bottom: 0; }
.menu-pop a span { color: var(--muted); text-transform: none; }
.menu-pop a:hover { background: #111; color: #fff; }
.menu-pop a:hover span { color: #ccc; }
.menu-pop hr { border: 0; border-top: 1px solid #111; margin: 0; }
.menubar-right { margin-left: auto; display: flex; align-items: stretch; }
.clock { display: flex; align-items: center; padding: 0 12px; color: var(--muted); white-space: nowrap; }
.tel-top {
  display: flex; align-items: center; gap: 8px; padding: 0 16px; border-left: 1px solid #111; text-decoration: none;
  font-family: var(--font-sans); font-weight: 700; font-size: 15px; white-space: nowrap; background: #111; color: #fff;
}
.tel-top:hover { background: var(--accent); }
.mobil-menu { display: none; }

/* ---------- Skrivebord / layout ---------- */
.desk { max-width: 1240px; margin: 0 auto; padding: 18px 16px 90px; }
.crumb {
  font-family: var(--font-mono); font-size: 13px; font-weight: 600; padding: 2px 0 8px; margin: 0 0 18px; border-bottom: 1px solid #111;
}
.crumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.crumb li + li::before { content: "/"; font-weight: 400; margin-right: 6px; }
.crumb a { text-decoration: none; }
.crumb a:hover { text-decoration: underline; }
.grid { display: grid; gap: 18px; }
.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g-hero { grid-template-columns: minmax(0, 1.35fr) minmax(320px, 1fr); align-items: start; }
.span2 { grid-column: span 2; }
.stack > * + * { margin-top: 18px; }

/* ---------- Vindue ---------- */
.win { background: #fff; border: 1px solid #111; min-width: 0; display: flex; flex-direction: column; }
.win + .win { margin-top: 18px; }
.grid > .win + .win, .grid > * + .win { margin-top: 0; }
.titlebar {
  display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 10px; border-bottom: 1px solid #111; background: #fff;
  user-select: none;
}
.stripes { flex: 1; height: 11px; background: var(--stripes); min-width: 10px; }
.wtitle {
  margin: 0; padding: 0 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 72%;
  font-family: var(--font-sans); font-size: 14px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase;
}
.wbox {
  width: 17px; height: 17px; border: 1px solid #111; background: #fff; padding: 0; flex: 0 0 auto; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
}
.wbox:hover, .wbox:active { background: #111; }
.wbox.zoom::after { content: ""; width: 7px; height: 7px; border: 1px solid #111; }
.wbox.zoom:hover::after { border-color: #fff; }
.win.is-shaded > :not(.titlebar) { display: none; }
.win.is-shaded > .titlebar { border-bottom: 0; }
.wbody { padding: 18px 20px; }
.wbody.flush { padding: 0; }
.wfoot {
  border-top: 1px solid #111; padding: 6px 12px; display: flex; justify-content: space-between; gap: 10px;
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); background: var(--soft);
}
.win.dark { background: #111; color: #fff; }
.win.dark .titlebar { background: #111; border-color: #fff; }
.win.dark .stripes { background: repeating-linear-gradient(to bottom, #fff 0 1px, transparent 1px 3px); }
.win.dark .wtitle { color: #fff; }
.win.dark .wbox { background: #111; border-color: #fff; }

/* ---------- Quark-detaljer: linealer, dokumentvindue, paletter ---------- */
.ruler {
  height: 18px; border-bottom: 1px solid #111; background-color: #fff; position: relative; overflow: hidden;
  background-image:
    repeating-linear-gradient(to right, #111 0 1px, transparent 1px 100px),
    repeating-linear-gradient(to right, #777 0 1px, transparent 1px 50px),
    repeating-linear-gradient(to right, #bbb 0 1px, transparent 1px 10px);
  background-size: 100% 18px, 100% 10px, 100% 5px; background-position: 18px 0, 18px 8px, 18px 13px; background-repeat: repeat-x;
}
.ruler span { position: absolute; top: 1px; font-family: var(--font-mono); font-size: 9px; color: #444; }
.qdoc { display: grid; grid-template-columns: 18px minmax(0, 1fr); }
.ruler-y {
  border-right: 1px solid #111; background-color: #fff;
  background-image:
    repeating-linear-gradient(to bottom, #111 0 1px, transparent 1px 100px),
    repeating-linear-gradient(to bottom, #bbb 0 1px, transparent 1px 10px);
  background-size: 18px 100%, 6px 100%; background-position: 0 0, 12px 0; background-repeat: repeat-y;
}
.ruler-corner { width: 18px; height: 18px; border-right: 1px solid #111; border-bottom: 1px solid #111; background: var(--soft); }
.qsheet { padding: 26px 28px 28px; position: relative; min-width: 0;
  background-image: linear-gradient(to right, rgba(0,0,0,.10) 1px, transparent 1px), linear-gradient(to right, rgba(0,0,0,.10) 1px, transparent 1px);
  background-size: 1px 100%, 1px 100%; background-position: 14px 0, calc(100% - 14px) 0; background-repeat: no-repeat;
}
.measure {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid #111; background: #fff;
  font-family: var(--font-mono); font-size: 12px;
}
.measure div { padding: 8px 10px; border-right: 1px solid var(--hair); min-width: 0; }
.measure div:last-child { border-right: 0; }
.measure b { display: block; font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--accent); font-weight: 600; }

/* ---------- Typografi ---------- */
.kicker, .lbl {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); font-weight: 600; margin: 0 0 8px;
}
h1.big { font-size: clamp(32px, 5vw, 58px); letter-spacing: -0.01em; margin: 0 0 14px; }
h1.mid { font-size: clamp(28px, 3.6vw, 42px); margin: 0 0 12px; }
h2.h { font-family: var(--font-mono); font-size: 15px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; margin: 26px 0 10px; }
h2.h:first-child { margin-top: 0; }
h2.sec { font-size: clamp(22px, 2.6vw, 30px); margin: 0 0 10px; }
h3.t { font-family: var(--font-mono); font-size: 14px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; margin: 0 0 6px; }
.lead { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.45; margin: 0 0 16px; max-width: 62ch; }
.txt p { margin: 0 0 12px; max-width: 70ch; }
.muted { color: var(--muted); }
.small { font-size: 14px; }
.mono { font-family: var(--font-mono); }
.price { font-family: var(--font-mono); font-weight: 600; font-size: 26px; letter-spacing: -0.01em; }
.price small { font-family: var(--font-sans); font-size: 14px; font-weight: 400; color: var(--muted); letter-spacing: 0; }

/* ---------- Knapper ---------- */
.btns { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 4px; }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 9px 18px;
  border: 1px solid #111; background: #fff; color: #111; text-decoration: none; cursor: pointer; white-space: nowrap;
  font-family: var(--font-sans); font-weight: 700; font-size: 15px; letter-spacing: 0.03em; text-transform: uppercase;
}
.btn:hover { background: #111; color: #fff; }
.btn.pri { background: #111; color: #fff; box-shadow: inset 0 0 0 2px #fff, 0 0 0 1px #111; border-width: 1px; }
.btn.pri:hover { background: var(--accent); border-color: var(--accent); }
.btn.red { color: var(--accent); border-color: var(--accent); }
.btn.red:hover { background: var(--accent); color: #fff; }
.btn.full { width: 100%; }

/* ---------- Badges, lister, tabeller ---------- */
.badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; padding: 0; list-style: none; }
.badge {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase;
  border: 1px solid #111; padding: 3px 7px; background: #fff; white-space: nowrap;
}
.badge.red { color: var(--accent); border-color: var(--accent); }
.badge.inv { background: #111; color: #fff; }
.checks { list-style: none; margin: 0 0 12px; padding: 0; }
.checks li { position: relative; padding: 7px 0 7px 28px; border-bottom: 1px solid var(--hair); }
.checks li:last-child { border-bottom: 0; }
.checks li::before {
  content: ""; position: absolute; left: 2px; top: 11px; width: 13px; height: 13px; border: 1px solid #111;
  background: linear-gradient(45deg, transparent 45%, #111 45% 55%, transparent 55%), linear-gradient(-45deg, transparent 45%, #111 45% 55%, transparent 55%);
}
.kv { margin: 0 0 14px; border: 1px solid var(--kv-line); background: #fff; }
.kv > div { display: grid; grid-template-columns: minmax(110px, 38%) 1fr; border-bottom: 1px solid var(--hair); min-height: 42px; align-items: center; }
.kv > div:last-child { border-bottom: 0; }
.kv dt { padding: 8px 10px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); }
.kv dd { margin: 0; padding: 8px 10px; overflow-wrap: anywhere; }
.tbl-wrap { overflow-x: auto; }
table.tbl { width: 100%; border-collapse: collapse; font-size: 15px; background: #fff; }
.tbl th, .tbl td { border: 1px solid #111; padding: 9px 10px; text-align: left; vertical-align: top; }
.tbl thead th { background: #111; color: #fff; font-family: var(--font-mono); font-weight: 600; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; }
.tbl tbody th { font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.03em; text-transform: uppercase; }
.tbl tbody tr:hover { background: var(--soft); }
.tbl td.num { font-family: var(--font-mono); white-space: nowrap; }

/* ---------- Billeder / galleri ---------- */
.ph { border: 1px solid #111; background: var(--soft); overflow: hidden; }
.ph img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ph.wide img { aspect-ratio: 16 / 9; }
.ph.free img { aspect-ratio: auto; }
.gallery .main img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; border-bottom: 1px solid #111; }
.thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.thumbs button { padding: 0; border: 0; border-right: 1px solid #111; background: #fff; cursor: pointer; position: relative; }
.thumbs button:last-child { border-right: 0; }
.thumbs img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; filter: grayscale(1) contrast(1.05); }
.thumbs button[aria-pressed="true"] img, .thumbs button:hover img { filter: none; }
.thumbs button[aria-pressed="true"]::after { content: ""; position: absolute; inset: 0; outline: 3px solid #111; outline-offset: -3px; }
figcaption { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; padding: 6px 10px; border-top: 1px solid #111; background: #fff; color: #333; }

/* ---------- Kort (rum/ydelser) ---------- */
.card { border: 1px solid #111; background: #fff; display: flex; flex-direction: column; text-decoration: none; min-width: 0; }
.card .cap { display: flex; justify-content: space-between; align-items: center; gap: 8px; background: #111; color: #fff; padding: 7px 10px; font-family: var(--font-mono); font-size: 13px; font-weight: 600; }
.card .cap small { font-weight: 400; color: #bbb; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; }
.card img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; border-bottom: 1px solid #111; }
.card .cb { padding: 12px 12px 14px; flex: 1; display: flex; flex-direction: column; gap: 6px; }
.card .cb p { margin: 0; font-size: 15px; }
.card .more { margin-top: auto; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.05em; text-transform: uppercase; padding-top: 8px; }
a.card:hover { outline: 3px solid #111; outline-offset: -1px; }
a.card:hover .more { text-decoration: underline; }

/* ---------- Finder-ikoner (forside) ---------- */
.icons { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; padding: 16px; }
.icon { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 4px; text-decoration: none; text-align: center; }
.icon svg { width: 52px; height: 44px; }
.icon span { font-family: var(--font-mono); font-size: 12px; padding: 1px 4px; }
.icon:hover span, .icon:focus span { background: #111; color: #fff; }
.icon:hover svg .ic-fill { fill: #111; }

/* ---------- Formularer ---------- */
.form { display: grid; gap: 12px; }
.form .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form label { display: grid; gap: 4px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--accent); font-weight: 600; }
.form input, .form select, .form textarea {
  width: 100%; border: 1px solid #111; background: #fff; padding: 9px 10px; min-height: 44px; font-family: var(--font-sans);
  font-size: 16px; letter-spacing: 0; text-transform: none; color: var(--ink); font-weight: 400;
}
.form textarea { min-height: 92px; resize: vertical; }
.form input:focus, .form select:focus, .form textarea:focus { outline: 2px solid #111; outline-offset: -2px; }
.form select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #111 50%), linear-gradient(-45deg, transparent 50%, #111 50%); background-position: calc(100% - 16px) 19px, calc(100% - 11px) 19px; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 30px; }
.form fieldset { border: 1px solid var(--kv-line); margin: 0; padding: 8px 10px 10px; }
.form legend { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--accent); font-weight: 600; padding: 0 4px; }
.radios { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.radios label { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); font-family: var(--font-sans); font-size: 15px; text-transform: none; letter-spacing: 0; font-weight: 400; }
.radios input { width: 16px; height: 16px; min-height: 0; accent-color: #111; }
.form .note { font-size: 13px; color: var(--muted); margin: 0; }
.form .err { color: var(--accent); font-family: var(--font-mono); font-size: 12px; margin: 0; min-height: 0; }

/* ---------- Dialog (klassisk alert) ---------- */
.dlg-back { position: fixed; inset: 0; z-index: 90; background: rgba(222,222,222,.6); display: none; align-items: center; justify-content: center; padding: 16px; }
.dlg-back.on { display: flex; }
.dlg { max-width: 440px; width: 100%; background: #fff; border: 1px solid #111; box-shadow: 0 0 0 4px #fff, 0 0 0 5px #111; padding: 18px; display: grid; grid-template-columns: 44px 1fr; gap: 14px; }
.dlg p { margin: 0 0 10px; }
.dlg .btns { grid-column: 1 / -1; justify-content: flex-end; margin: 0; }

/* ---------- Forskellige blokke ---------- */
.callout { border: 1px solid #111; background: var(--hatch); padding: 14px; }
.callout > div { background: #fff; border: 1px solid #111; padding: 14px 16px; }
.facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid #111; background: #fff; }
.facts > div { padding: 12px 14px; border-right: 1px solid #111; min-width: 0; }
.facts > div:last-child { border-right: 0; }
.facts b { display: block; font-family: var(--font-mono); font-size: 22px; font-weight: 600; line-height: 1.1; }
.facts span { font-size: 14px; color: var(--muted); }
.route { list-style: none; margin: 0; padding: 0; counter-reset: s; }
.route li { counter-increment: s; position: relative; padding: 10px 0 10px 46px; border-bottom: 1px solid var(--hair); }
.route li::before { content: counter(s, decimal-leading-zero); position: absolute; left: 0; top: 9px; width: 32px; text-align: center; font-family: var(--font-mono); font-weight: 600; border: 1px solid #111; background: #111; color: #fff; font-size: 12px; padding: 2px 0; }
details.faq { border-bottom: 1px solid #111; }
details.faq:last-child { border-bottom: 0; }
details.faq summary { cursor: pointer; padding: 12px 16px; font-weight: 700; list-style: none; display: flex; justify-content: space-between; gap: 12px; }
details.faq summary::-webkit-details-marker { display: none; }
details.faq summary::after { content: "+"; font-family: var(--font-mono); }
details.faq[open] summary { background: #111; color: #fff; }
details.faq[open] summary::after { content: "–"; }
details.faq > div { padding: 12px 16px 14px; }
.marquee { overflow: hidden; white-space: nowrap; border: 1px solid #111; background: #fff; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; padding: 7px 0; }
.marquee span { display: inline-block; padding-left: 100%; animation: mq 38s linear infinite; }
@keyframes mq { to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) { .marquee span { animation: none; padding-left: 12px; } }

/* ---------- Sidefod ---------- */
.foot { border-top: 1px solid #111; background: #fff; margin-top: 10px; }
.foot-in { max-width: 1240px; margin: 0 auto; padding: 22px 16px 26px; display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 22px; font-size: 15px; }
.foot h2 { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); margin: 0 0 8px; font-weight: 600; }
.foot ul { list-style: none; margin: 0; padding: 0; }
.foot li { padding: 3px 0; }
.foot a { text-decoration: none; }
.foot a:hover { text-decoration: underline; }
.foot address { font-style: normal; }
.foot-base { border-top: 1px solid #111; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); padding: 8px 16px; text-align: center; background: var(--soft); }

/* ---------- Mobil CTA-bjælke ---------- */
.cta-bar { display: none; }

/* ---------- Responsivt ---------- */
@media (max-width: 1060px) {
  .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g-hero { grid-template-columns: 1fr; }
  .foot-in { grid-template-columns: 1fr 1fr; }
  .clock { display: none; }
}
@media (max-width: 900px) {
  .menus { display: none; }
  .brand small { display: none; }
  .mobil-menu { display: flex; margin-left: auto; position: static; }
  .mobil-menu > summary {
    list-style: none; display: flex; align-items: center; padding: 0 14px; border-left: 1px solid #111; cursor: pointer;
    text-transform: uppercase; font-size: 12px; letter-spacing: 0.07em;
  }
  .mobil-menu > summary::-webkit-details-marker { display: none; }
  .mobil-menu[open] > summary { background: #111; color: #fff; }
  .mobil-menu .menu-pop { left: 0; right: 0; top: 100%; min-width: 0; max-height: calc(100vh - 60px); overflow: auto; border-left: 0; border-right: 0; }
  .mobil-menu .menu-pop a { padding: 13px 16px; font-size: 13px; }
  .mobil-menu .menu-pop a.sub { padding-left: 32px; }
  .menubar-right { margin-left: 0; }
  .tel-top { padding: 0 12px; font-size: 0; }
  .tel-top svg { width: 20px; height: 20px; }
  .g3 { grid-template-columns: 1fr 1fr; }
  .facts { grid-template-columns: 1fr 1fr; }
  .facts > div:nth-child(2) { border-right: 0; }
  .facts > div:nth-child(-n+2) { border-bottom: 1px solid #111; }
  .measure { grid-template-columns: 1fr 1fr; }
  .measure div:nth-child(2) { border-right: 0; }
  .measure div:nth-child(-n+2) { border-bottom: 1px solid var(--hair); }
  .cta-bar {
    display: grid; grid-template-columns: 1fr 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 55;
    background: #fff; border-top: 1px solid #111; padding-bottom: env(safe-area-inset-bottom);
  }
  .cta-bar a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 54px; text-decoration: none; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; font-size: 15px; }
  .cta-bar a + a { border-left: 1px solid #111; background: #111; color: #fff; }
  .foot-base { padding-bottom: 70px; }
}
@media (max-width: 620px) {
  body { font-size: 16px; }
  .desk { padding: 12px 10px 80px; }
  .g2, .g3, .g4 { grid-template-columns: 1fr; }
  .span2 { grid-column: auto; }
  .wbody { padding: 14px 14px; }
  .qsheet { padding: 18px 14px 18px; background-image: none; }
  .qdoc { grid-template-columns: 0 minmax(0, 1fr); }
  .ruler-y, .ruler-corner { display: none; }
  .form .row2 { grid-template-columns: 1fr; }
  .foot-in { grid-template-columns: 1fr; gap: 16px; }
  .titlebar { min-height: 36px; }
  .wtitle { font-size: 13px; }
  .brand { padding-right: 10px; }
  .kv > div { grid-template-columns: minmax(96px, 36%) 1fr; }
  .btns .btn { flex: 1 1 auto; }
  .tbl { font-size: 14px; }
}

/* mobil: prototype-bjælken på én linje */
@media (max-width: 620px) {
  .proto-bar { font-size: 9px; letter-spacing: 0.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 2px 6px; }
}
@media (max-width: 620px) { .price small { display: block; margin-top: 4px; } }

/* =====================================================================
   v2 (25.10.2026): pixel-chrome, venstre palette, live-kopi-blokke
   ===================================================================== */
/* 1-bit ikoner */
svg.px { display: inline-block; flex: 0 0 auto; vertical-align: -3px; image-rendering: pixelated; }
.px-k { fill: currentColor; }
.px-w { fill: var(--px-paper, #fff); }

/* Chrome i pixelfont: menuer, vinduestitler, knapper, palette, brødkrummer */
.menubar, .menus summary, .menus > li > a, .menu-pop a, .mobil-menu > summary, .wtitle, .btn, .crumb, .proto-bar, .foot h2, .foot-base,
.tools, .dlg .btns, .qt-bar, .qt-play, .qt-ctl, .g-count, .mm-folder {
  font-family: var(--font-chrome); font-size: 16px; letter-spacing: 0; text-transform: none; font-weight: 400;
  -webkit-font-smoothing: none; font-smooth: never;
}
.proto-bar { font-size: 16px; padding: 2px 8px; line-height: 20px; }
.menubar { min-height: 30px; }
.menus > li > a, .menus summary { padding: 0 10px; display: flex; align-items: center; }
.brand { padding: 0 12px 0 10px; }
.brand img { width: auto; height: 20px; border: 0; }
.menu-pop { min-width: 220px; box-shadow: 2px 2px 0 #111 !important; }
.menu-pop a { justify-content: flex-start; align-items: center; gap: 8px; padding: 5px 12px 5px 8px; font-size: 16px; border-bottom: 0; text-transform: none; letter-spacing: 0; }
.menu-pop a[aria-current="page"] { background: #111; color: #fff; --px-paper: #111; }
.menu-pop a:hover { --px-paper: #111; }
.menus > li > a[aria-current="page"], .menus details.is-current > summary { text-decoration: none; background: #111; color: #fff; }
.wtitle { display: inline-flex; align-items: center; gap: 6px; font-size: 16px; font-weight: 400; line-height: 1.2; }
.titlebar { min-height: 26px; }
.win { box-shadow: 2px 2px 0 #111 !important; }
.btn { font-size: 16px !important; letter-spacing: 0 !important; text-transform: none !important; font-weight: 400 !important; }
.crumb { font-size: 16px; font-weight: 400; }
.foot h2 { color: var(--ink); }
.foot-base { font-size: 16px; text-transform: none; }
.foot-ic a { display: inline-flex; align-items: center; gap: 6px; }
.foot-live p { margin: 0 0 12px; }
.mm-folder { display: flex; align-items: center; gap: 8px; margin: 0; padding: 8px 12px 4px; border-top: 1px solid #111; background: var(--soft); }
.mobil-menu > summary { gap: 6px; }

/* ---------- Værktøjspalette: venstre side (QuarkXPress Tools) ---------- */
.tools { position: fixed; left: 8px; top: 64px; z-index: 40; width: var(--pal-w); background: #fff; border: 1px solid #111; box-shadow: 2px 2px 0 #111 !important; }
.tools .titlebar { min-height: 12px; padding: 0 3px; border-bottom: 1px solid #111; }
.tools .titlebar .stripes { height: 7px; }
.tools .tgrid { display: grid; grid-template-columns: 1fr 1fr; }
.tools .tgrid a { display: flex; align-items: center; justify-content: center; height: 30px; border-right: 1px solid #111; border-bottom: 1px solid #111; text-decoration: none; color: #111; --px-paper: #fff; }
.tools .tgrid a:nth-child(2n) { border-right: 0; }
.tools .tgrid a:nth-last-child(-n+2) { border-bottom: 0; }
.tools .tgrid a:hover, .tools .tgrid a.on { background: #111; color: #fff; --px-paper: #111; }
.tools .tgrid a:focus-visible { outline-offset: -3px; }
/* indhold flyttes til højre, så paletten aldrig dækker noget */
.desk, .foot { margin-left: calc(var(--pal-w) + 16px); }
.desk { margin-right: auto; max-width: 1240px; }
@media (min-width: 1420px) { .desk { margin-left: auto; } }
.foot-in { max-width: none; }

/* ---------- Live-kopi: Squarespace-grid ---------- */
.livewin > .wbody { padding: 0; }
.live { padding: 18px 22px 26px; }
.live h1, .live h2, .live h3, .live h4 { font-family: var(--font-sans); font-weight: 700; line-height: 1.2; margin: 1.1em 0 .45em; }
.live h1 { font-size: 34px; } .live h2 { font-size: 26px; } .live h2.h1x { font-size: 30px; } .live h3 { font-size: 21px; } .live h4 { font-size: 18px; }
.live p { margin: 0 0 1em; }
.live > :first-child > :first-child > :first-child > :first-child { margin-top: 0; }
.live blockquote { margin: 1em 0; padding: 4px 0 4px 16px; border-left: 3px solid #111; font-style: italic; }
.live ul, .live ol { padding-left: 1.3em; }
.live .ext { font-family: var(--font-mono); font-size: .8em; }
.lrow { display: flex; flex-wrap: wrap; gap: 0 26px; }
.lcol { flex: var(--span) 1 0; min-width: 0; }
.lcol.empty { display: none; }
.lb { margin: 0 0 18px; }
.lb.txt > :last-child { margin-bottom: 0; }
.limg { margin: 0 0 18px; border: 1px solid #111; background: #fff; }
.limg img { width: 100%; }
.lgal { display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: 8px; }
.lgal figure { margin: 0; border: 1px solid #111; background: #fff; display: flex; flex-direction: column; }
.lgal figure a { display: block; }
.lgal figure img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.lgal[style*="--cols:1"] figure img { aspect-ratio: auto; }
.lgal > a img { width: 100%; aspect-ratio: 1; object-fit: cover; border: 1px solid #111; }
.lgal figcaption { text-transform: none; font-family: var(--font-chrome); font-size: 16px; letter-spacing: 0; }
.lslide { border: 1px solid #111; background: #fff; }
.lslide .g-main img { width: 100%; max-height: 70vh; object-fit: contain; background: #111; }
.lslide .g-cap:empty { display: none; }
.lslide .thumbs { display: flex; gap: 4px; overflow-x: auto; padding: 6px; border-top: 1px solid #111; background: var(--soft); }
.lslide .thumbs button { flex: 0 0 64px; height: 48px; padding: 0; border: 1px solid #111; background: #fff; cursor: pointer; }
.lslide .thumbs button img { width: 100%; height: 100%; object-fit: cover; }
.lslide .thumbs button.on { outline: 2px solid var(--accent); outline-offset: -2px; }
.lslide .g-count { margin: 0; padding: 3px 8px; border-top: 1px solid #111; }
.lbtn { margin: 0 0 18px; } .lbtn.center { text-align: center; } .lbtn.right { text-align: right; }
.lbtn .btn { text-decoration: none; }
.lhr { border: 0; border-top: 1px solid #111; margin: 18px 0; }
.lspacer { height: 18px; }
.lbanner { position: relative; margin: 0; border-bottom: 1px solid #111; background: #111; }
.lbanner img { width: 100%; max-height: 62vh; object-fit: cover; }
.ldesc { position: absolute; left: 18px; bottom: 18px; max-width: min(640px, 80%); background: #fff; border: 1px solid #111; padding: 10px 14px; font-family: var(--font-sans); font-size: 17px; text-transform: none; letter-spacing: 0; color: var(--ink); box-shadow: 2px 2px 0 #111 !important; }
.ldesc > :last-child { margin-bottom: 0; } .ldesc > :first-child { margin-top: 0; }
.ldesc.plain { position: static; max-width: none; margin: 18px 22px 0; box-shadow: none !important; }
.ldesc h1, .ldesc h2, .ldesc h3 { margin: 0 0 6px; }
.proto-note { display: inline-flex; align-items: center; gap: 6px; background: var(--hatch); border: 1px solid #111; padding: 3px 8px; font-family: var(--font-mono); font-size: 12px; }
.lbanner .proto-note { position: absolute; right: 10px; top: 10px; background: #fff; }
.lbanner .proto-note a { color: inherit; }
/* QuickTime-ramme i stedet for indlejret video */
.qt { margin: 0 0 18px; border: 1px solid #111; background: #fff; box-shadow: 2px 2px 0 #111 !important; }
.qt-bar { display: flex; align-items: center; gap: 6px; padding: 3px 8px; border-bottom: 1px solid #111; background: var(--stripes), #fff; }
.qt-bar span { background: #fff; padding: 0 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qt-screen { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; aspect-ratio: 16 / 9; background: #111; color: #fff; text-decoration: none; --px-paper: #111; background-image: radial-gradient(#444 0.7px, transparent 0.8px); background-size: 4px 4px; }
.qt-screen:hover .qt-play { background: var(--accent); }
.qt-play { border: 1px solid #fff; padding: 4px 10px; background: #111; }
.qt-ctl { display: flex; align-items: center; gap: 8px; padding: 2px 8px; border-top: 1px solid #111; font-size: 12px; }
.qt-ctl i { flex: 1; height: 6px; border: 1px solid #111; background: var(--hatch); }
/* v3.4.2 videovinduer: knap i stedet for link ud, selvhostet plakat, play-ikon ovenpå, fuld skærm-knap i titellinjen */
button.qt-screen { position: relative; width: 100%; border: 0; margin: 0; padding: 0; font: inherit; cursor: pointer; overflow: hidden; -webkit-appearance: none; appearance: none; }
.qt-screen .qt-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; max-width: none; }
button.qt-screen .qt-play { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 40px; padding: 0; border: 2px solid #fff; background: #111; color: #fff; box-shadow: 2px 2px 0 #000; }
button.qt-screen .qt-play svg { width: 20px; height: 20px; fill: currentColor; }
button.qt-screen:hover .qt-play, button.qt-screen:focus-visible .qt-play { background: #fff; color: #111; border-color: #111; }
button.qt-screen:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
.qt-bar .qt-fs { margin-left: auto; flex: none; display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 20px; padding: 0; border: 1px solid #111; background: #fff; color: #111; cursor: pointer; }
.qt-bar .qt-fs svg { width: 12px; height: 12px; fill: currentColor; }
.qt-bar .qt-fs:hover, .qt-bar .qt-fs:focus-visible, .qt-bar .qt-fs[aria-pressed="true"] { background: #111; color: #fff; }
figure.qt:fullscreen { display: flex; flex-direction: column; margin: 0; background: #000; box-shadow: none !important; border: 0; }
figure.qt:-webkit-full-screen { display: flex; flex-direction: column; margin: 0; background: #000; }
figure.qt:fullscreen .qt-screen, figure.qt:-webkit-full-screen .qt-screen { flex: 1; aspect-ratio: auto !important; height: auto; }
figure.qt:fullscreen .qt-ctl, figure.qt:-webkit-full-screen .qt-ctl { display: none; }
figure.qt.qt-ov { position: fixed; inset: 0; z-index: 9999; width: 100vw; height: 100vh; height: 100dvh; margin: 0 !important; display: flex; flex-direction: column; background: #000; border: 0; box-shadow: none !important; }
figure.qt.qt-ov .qt-bar .qt-fs { width: 40px; height: 32px; }
figure.qt.qt-ov .qt-screen { flex: 1; aspect-ratio: auto !important; height: auto; }
figure.qt.qt-ov .qt-ctl { display: none; }
html.qt-ov-on, html.qt-ov-on body { overflow: hidden; }
@media (max-width: 620px) { .qt-bar .qt-fs { width: 32px; height: 28px; } .qt-bar .qt-fs svg { width: 14px; height: 14px; } }
.lembed { display: flex; gap: 12px; align-items: flex-start; border: 1px solid #111; padding: 12px; background: #fff; margin: 0 0 18px; }
.lembed small { display: block; color: var(--muted); font-size: 13px; font-family: var(--font-mono); }
.lsocial { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.lsocial a { display: inline-flex; gap: 6px; align-items: center; border: 1px solid #111; padding: 3px 8px; text-decoration: none; font-family: var(--font-chrome); }
.lsearch input { width: 100%; border: 1px solid #111; padding: 8px; background: var(--soft); }
.lform { border: 1px solid #111; padding: 14px; background: #fff; display: grid; gap: 12px; }
.lform .f-row { display: grid; gap: 4px; border: 0; padding: 0; margin: 0; font-family: var(--font-chrome); font-size: 16px; }
.lform input, .lform textarea, .lform select { width: 100%; border: 1px solid #111; background: #fff; padding: 8px 10px; font-family: var(--font-sans); font-size: 16px; }
.lform .f2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.lform .chk { display: flex; gap: 6px; align-items: center; font-family: var(--font-sans); }
.lform .chk input { width: auto; }
.lform .f-note { margin: 0; display: flex; gap: 6px; align-items: center; font-family: var(--font-mono); font-size: 12px; background: var(--hatch); border: 1px solid #111; padding: 3px 8px; }
.noimg { display: block; padding: 20px; border: 1px dashed #111; font-family: var(--font-mono); font-size: 12px; }

/* ---------- Menubjælke: mobilmenu ved smalle skærme (live-menuen er bred) ---------- */
@media (max-width: 1180px) {
  .menus { display: none; }
  .mobil-menu { display: flex; margin-left: auto; position: static; }
  .mobil-menu > summary { list-style: none; display: flex; align-items: center; padding: 0 14px; border-left: 1px solid #111; cursor: pointer; }
  .mobil-menu > summary::-webkit-details-marker { display: none; }
  .mobil-menu[open] > summary { background: #111; color: #fff; --px-paper: #111; }
  .mobil-menu .menu-pop { left: auto; right: 0; top: 100%; width: min(360px, 100vw); max-height: calc(100vh - 60px); overflow: auto; }
  .mobil-menu .menu-pop a { padding: 8px 14px; font-size: 16px; }
  .mobil-menu .menu-pop a.sub { padding-left: 30px; }
  .menubar-right { margin-left: 0; }
}
@media (max-width: 900px) {
  :root { --pal-w: 34px; }
  .tools { left: 0; top: 56px; border-left: 0; }
  .tools .tgrid { grid-template-columns: 1fr; }
  .tools .tgrid a { height: 30px; border-right: 0; }
  .tools .tgrid a:nth-last-child(2) { border-bottom: 1px solid #111; }
  .desk, .foot { margin-left: calc(var(--pal-w) + 2px); }
  .lrow { display: block; }
  .lgal { grid-template-columns: repeat(min(var(--cols, 4), 2), minmax(0, 1fr)); }
  .lgal[style*="--cols:1"] { grid-template-columns: 1fr; }
  .ldesc { position: static; max-width: none; box-shadow: none !important; border: 0; border-top: 1px solid #111; }
  .lbanner { background: #fff; }
  .lbanner .proto-note { position: static; display: block; margin: 0; border: 0; border-top: 1px solid #111; }
  .mobil-menu .menu-pop { width: 100vw; }
}
@media (max-width: 620px) {
  .desk { padding: 10px 8px 80px; }
  .live { padding: 14px 14px 20px; }
  .live h1 { font-size: 27px; } .live h2 { font-size: 22px; } .live h2.h1x { font-size: 24px; } .live h3 { font-size: 19px; }
  .proto-bar { font-size: 16px; }
  .brand img { height: 16px; }
  .lform .f2 { grid-template-columns: 1fr; }
  .wtitle { font-size: 16px; }
}

/* =====================================================================
   v3 (25.10.2026): rødt navnetræk, flytbare vinduer, harmonisk layout
   ===================================================================== */
:root {
  /* Modulær typeskala, ratio 1.25 (major third) fra 17 px brødtekst */
  --fs-s: 14px; --fs-0: 17px; --fs-1: 21px; --fs-2: 26px; --fs-3: 33px; --fs-4: 41px; --fs-5: 51px;
  --lh: 1.6; --lh-tight: 1.2;
  /* Afstande på 8 px-raster */
  --sp-1: 8px; --sp-2: 16px; --sp-3: 24px; --sp-4: 32px; --sp-5: 48px;
  --measure: 60ch;     /* ca. 65–72 tegn pr. linje i Libre Caslon */
  --pad: 32px;         /* vinduernes indre margin */
  --gutter: 16px;      /* ens mellemrum i billedgitre */
}

/* ---------- Rødt navnetræk ---------- */
.brand img { height: 22px; }
.brandname { color: var(--red); font-weight: 700; }
.foot-live .brandname { font-size: var(--fs-1); line-height: 1.3; display: inline-block; margin-bottom: 2px; }

/* Hover-tilstande uden rød (rød er forbeholdt navnet) */
.btn.pri:hover { background: #fff; color: #111; border-color: #111; box-shadow: inset 0 0 0 2px #111, 0 0 0 1px #111; }
.tel-top:hover { background: #fff; color: #111; }
.qt-screen:hover .qt-play { background: #fff; color: #111; }
.lslide .thumbs button.on { outline: 3px solid #111; outline-offset: -3px; }
.btn.red, .badge.red { color: #111; border-color: #111; }

/* ---------- Typografi: én skala, én rytme ---------- */
body { font-size: var(--fs-0); line-height: var(--lh); }
h1, h2, h3, h4 { line-height: var(--lh-tight); text-wrap: balance; }
p, li { text-wrap: pretty; }
.kicker, .lbl { margin: 0 0 var(--sp-1); letter-spacing: 0.1em; }
h1.big { font-size: clamp(var(--fs-3), 4.4vw, var(--fs-5)); margin: 0 0 var(--sp-2); }
h1.mid { font-size: clamp(var(--fs-2), 3.2vw, var(--fs-4)); margin: 0 0 var(--sp-2); }
h2.sec { font-size: clamp(var(--fs-1), 2.4vw, var(--fs-3)); margin: 0 0 var(--sp-2); }
h2.h { margin: var(--sp-4) 0 var(--sp-2); }
h2.h:first-child { margin-top: 0; }
h3.t { margin: 0 0 var(--sp-1); }
.lead { font-size: var(--fs-1); line-height: 1.45; margin: 0 0 var(--sp-3); max-width: 58ch; }
.txt p, .wbody > p, .qsheet > p, .callout p { max-width: var(--measure); }
.txt p { margin: 0 0 var(--sp-2); }
.small { font-size: var(--fs-s); line-height: 1.5; }
.m0 { margin: 0; }
.ew-p { margin: var(--sp-2) 0 0; }
.note-after { margin: var(--sp-1) 0 0; }
.gap { height: var(--sp-3); }
.wfig { margin: 0; }
.wfig img { width: 100%; }
.alertrow { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: var(--sp-2); align-items: start; }
.alertrow.narrow { max-width: 720px; }

/* ---------- Vinduer: generøs, ens indre margin ---------- */
.wbody { padding: var(--sp-3) var(--pad) var(--pad); }
.wbody.flush { padding: 0; }
.qsheet { padding: var(--pad) calc(var(--pad) + 4px); }
.win + .win { margin-top: var(--sp-3); }
.grid { gap: var(--sp-3); }
.stack > * + * { margin-top: var(--sp-3); }
.btns { gap: 12px; margin: var(--sp-3) 0 0; }
.badges { gap: var(--sp-1); margin: var(--sp-2) 0; }
.checks { margin: 0 0 var(--sp-2); }
.kv { margin: 0 0 var(--sp-3); }
.card .cb { padding: var(--sp-2) var(--sp-2) 20px; gap: var(--sp-1); }
.callout { padding: var(--sp-2); }
.callout > div { padding: var(--sp-3); }
details.faq summary, details.faq > div { padding-left: var(--sp-3); padding-right: var(--sp-3); }
.crumb { margin: 0 0 var(--sp-3); }
.desk { padding-top: var(--sp-3); }

/* ---------- Live-kopi: rytme, linjelængde, gitre ---------- */
.live { padding: var(--sp-4) var(--pad) var(--sp-5); }
.live h1, .live h2, .live h3, .live h4 { margin: var(--sp-5) 0 var(--sp-2); max-width: 30ch; }
.live h1 { font-size: var(--fs-3); }
.live h2, .live h2.h1x { font-size: var(--fs-2); }
.live h3 { font-size: var(--fs-1); margin-top: var(--sp-4); margin-bottom: var(--sp-1); }
.live h4 { font-size: var(--fs-0); margin-top: var(--sp-3); margin-bottom: var(--sp-1); }
.live .lb.txt > :first-child { margin-top: 0; }
.live .lrow:first-child .lb:first-child h1:first-child, .live .lrow:first-child .lb:first-child h2:first-child { margin-top: 0; }
.live p { margin: 0 0 var(--sp-2); }
.live p.sp { margin: 0; line-height: .6; font-size: 0; height: var(--sp-1); }
.live ul, .live ol { margin: 0 0 var(--sp-2); padding-left: 1.3em; }
.live li + li { margin-top: 4px; }
.live li > p { margin: 0; }
.live .lb.txt { max-width: var(--measure); }
.live .lb.txt h1, .live .lb.txt h2 { max-width: none; }
.live blockquote { margin: var(--sp-3) 0; padding: var(--sp-1) 0 var(--sp-1) var(--sp-3); }
.lrow { gap: 0 var(--sp-4); }
.lb, .limg, .lbtn, .qt, .lembed { margin: 0 0 var(--sp-3); }
.lrow:last-child .lcol > .lb:last-child { margin-bottom: 0; }
.lspacer { height: var(--sp-3); }
.lhr { margin: var(--sp-4) 0; }
.lgal { gap: var(--gutter); align-items: stretch; }
.lgal figure { height: 100%; }
.lgal figure a { flex: 0 0 auto; }
.lgal figcaption { margin-top: auto; padding: var(--sp-1) 12px; line-height: 1.25; min-height: 0; }
.lgal > a img { display: block; }
.lslide .thumbs { gap: 6px; padding: var(--sp-1); }
.lbtn { margin-top: var(--sp-1); }
.lform { padding: var(--sp-3); gap: var(--sp-2); }
.ldesc { padding: var(--sp-2) var(--sp-3); left: var(--sp-3); bottom: var(--sp-3); line-height: 1.5; }
.ldesc.plain { margin: var(--sp-3) var(--pad) 0; padding: 0; border: 0; max-width: var(--measure); }
.lbanner .proto-note { right: 12px; top: 12px; }
.limg { background: #fff; }

/* Kort-gitre: ens højder, knapper og "mere"-links på linje */
.grid > .card, .grid > .win { height: 100%; }
.card .cap { padding: var(--sp-1) 12px; }
.card .more { padding-top: 12px; }

/* Sidefod */
.foot-in { gap: var(--sp-4); padding: var(--sp-4) var(--sp-2) var(--sp-4); }
.foot h2 { margin: 0 0 12px; }
.foot-live p { line-height: 1.5; }

/* ---------- Hjælp-knap i menubjælken + tip i prototypebjælken ---------- */
.help-btn { display: flex; align-items: center; gap: 6px; padding: 0 12px; border: 0; border-left: 1px solid #111; background: #fff; cursor: pointer; font-family: var(--font-chrome); font-size: 16px; -webkit-font-smoothing: none; }
.help-btn:hover, .help-btn:focus-visible { background: #111; color: #fff; --px-paper: #111; }
.proto-bar .tip { margin-left: 12px; color: #111; background: transparent; border: 0; padding: 0; }
@media (max-width: 1060px) { .proto-bar .tip { display: none; } }
@media (pointer: coarse) { .proto-bar .tip { display: none; } }

/* Palette: to ekstra knapper (Ryd op + Hjælp) som <button> */
.tools .tgrid button { display: flex; align-items: center; justify-content: center; height: 30px; padding: 0; border: 0; border-right: 1px solid #111; background: #fff; color: #111; cursor: pointer; --px-paper: #fff; }
.tools .tgrid button:last-child { border-right: 0; }
.tools .tgrid button:hover { background: #111; color: #fff; --px-paper: #111; }

/* ---------- Vindueshåndtering (kun body.wm = bred skærm + mus) ---------- */
.wm .wm-win { position: relative; }
.wm .wm-win > .titlebar, .wm .fwin > .titlebar, .wm .tools > .titlebar { cursor: grab; touch-action: none; }
.wm-dragging, .wm-dragging * { cursor: grabbing !important; user-select: none !important; }
.wm .win.is-moved, .wm .win.is-front.wm-win[style*="z-index"] { box-shadow: 3px 3px 0 #111 !important; }
.wm .win.is-closed { display: none; }
.win.is-front:not(.wm-win), .fwin.is-front { box-shadow: 4px 4px 0 #111 !important; }
/* inaktive ekstra vinduer: titelbjælke uden striber (som på klassisk Mac) */
.fwin:not(.is-front) > .titlebar .stripes { background: none; }
.fwin:not(.is-front) > .titlebar .wtitle { color: #777; }
.tools > .titlebar { min-height: 12px; }

.fwin {
  position: absolute; z-index: 30; width: 640px; max-width: calc(100vw - 24px); height: min(70vh, 720px);
  min-width: 300px; min-height: 140px; display: flex; flex-direction: column;
  resize: both; overflow: hidden; background: #fff; border: 1px solid #111;
}
.fwin.fhelp { width: 440px; height: auto; max-height: min(80vh, 720px); }
.fwin.is-shaded { height: auto !important; min-height: 0; resize: none; }
.fwin > .wbody { flex: 1 1 auto; overflow: auto; padding: 0; container-type: inline-size; overscroll-behavior: contain; }
.fwin .wtitle { max-width: 60%; }
.fwin .wbox.wopen { text-decoration: none; color: #111; --px-paper: #fff; margin-right: -4px; }
.fwin .wbox.wopen:hover { color: #fff; --px-paper: #111; }
.fwin .wbox.wopen svg { width: 13px; height: 13px; }
.fcontent { min-height: 100%; }
.fcontent.fpage { padding: var(--sp-3); background: var(--page); background-image: var(--dither); background-size: 4px 4px; }
.fcontent > .wfoot { border-top: 1px solid #111; }
.fhelp .fcontent, .floading { padding: var(--sp-3); margin: 0; }
.floading { font-family: var(--font-chrome); font-size: 16px; }
.help .lead { margin-bottom: var(--sp-2); }
.help kbd { font-family: var(--font-mono); font-size: 13px; border: 1px solid #111; padding: 0 4px; background: var(--soft); white-space: nowrap; }
.help .checks li { padding-top: 6px; padding-bottom: 6px; }
.help p { max-width: none; }
/* Smalt indhold i ekstra vinduer */
@container (max-width: 760px) {
  .lrow { display: block; }
  .g-hero, .g2 { grid-template-columns: 1fr; }
  .g3, .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lgal { grid-template-columns: repeat(min(var(--cols, 4), 2), minmax(0, 1fr)); }
  .lgal[style*="--cols:1"] { grid-template-columns: 1fr; }
  .facts, .measure { grid-template-columns: 1fr 1fr; }
  .live { padding: var(--sp-3) var(--sp-3) var(--sp-4); }
  .ldesc { position: static; max-width: none; box-shadow: none !important; border: 0; border-top: 1px solid #111; }
  .lbanner .proto-note { position: static; display: block; border: 0; border-top: 1px solid #111; }
  .wbody { padding: var(--sp-2) var(--sp-3) var(--sp-3); }
  .span2 { grid-column: auto; }
}
@container (max-width: 480px) {
  .g3, .g4, .facts, .measure, .form .row2 { grid-template-columns: 1fr; }
}

/* Knap: vis lukkede vinduer */
.wm-restore { position: fixed; left: calc(var(--pal-w) + 24px); bottom: 16px; z-index: 45; font-family: var(--font-chrome); font-size: 16px; padding: 6px 12px; border: 1px solid #111; background: #fff; box-shadow: 2px 2px 0 #111 !important; cursor: pointer; -webkit-font-smoothing: none; }
.wm-restore:hover { background: #111; color: #fff; }
.wm-restore[hidden] { display: none; }

/* Smalle skærme / touch: normalt stablet layout, ingen trækning */
@media (max-width: 819px), (pointer: coarse) {
  .win { transform: none !important; }
  .fwin { position: fixed !important; left: 8px !important; right: 8px; top: 56px !important; width: auto !important; max-width: none; height: auto !important; max-height: calc(100vh - 72px); resize: none; z-index: 70 !important; }
}

/* ---------- Responsivt (v3-justeringer) ---------- */
@media (max-width: 900px) {
  :root { --pad: 24px; }
  .help-btn span { display: none; }
  .tools .tgrid button { border-right: 0; }
}
@media (max-width: 620px) {
  :root { --pad: 18px; --fs-3: 28px; --fs-2: 23px; --fs-1: 19px; --fs-0: 16px; }
  .live { padding: var(--sp-3) var(--pad) var(--sp-4); }
  .live h1, .live h2, .live h3 { margin-top: var(--sp-4); }
  .live h1 { font-size: var(--fs-3); }
  .live h2, .live h2.h1x { font-size: var(--fs-2); }
  .live h3 { font-size: var(--fs-1); }
  .lead { font-size: var(--fs-1); }
  .wbody { padding: var(--sp-2) var(--pad) var(--sp-3); }
  :root { --gutter: 12px; }
  .grid { gap: 12px; }
  .brand img { height: 17px; }
  .ldesc.plain { margin: var(--sp-2) var(--pad) 0; }
  .foot-in { gap: var(--sp-3); }
}

/* fed tekst i overskrifter: ingen "bolder" (900 findes ikke i Libre Caslon) */
:is(h1,h2,h3,h4) :is(strong,b) { font-weight: inherit; }

/* ---------- Sociale medier (1-bit logoer, som live-sitets Follow-blok) ---------- */
.soc { list-style: none; margin: 0; padding: 0; display: flex; align-items: stretch; }
.soc li { display: flex; padding: 0; }
.soc a { display: flex; align-items: center; justify-content: center; color: var(--ink, #111); text-decoration: none; --px-paper: #fff; }
.soc a:hover, .soc a:focus-visible { background: #111; color: #fff; --px-paper: #111; outline: 0; }
.soc-top { border-left: 1px solid #111; padding: 0 4px; }
.soc-top a { width: 24px; }
.soc-foot { flex-wrap: wrap; gap: 6px; }
.soc-foot a { width: 30px; height: 30px; border: 1px solid #111; box-shadow: 2px 2px 0 #111; background: #fff; }
.soc-foot a:hover, .soc-foot a:focus-visible { background: #111; }
.soc-foot a:active { box-shadow: none; transform: translate(2px, 2px); }
@media (max-width: 620px) {
  .soc-top { padding: 0 1px; }
  .soc-top a { width: 19px; }
  .soc-top li.is-mail { display: none; }
}

/* ---------- Disclosure-trekant i menuens mapper ---------- */
svg.tri { display: inline-block; width: 8px; height: 8px; margin-left: 5px; fill: currentColor; flex: 0 0 auto; }
.menus details[open] > summary svg.tri { transform: rotate(180deg); }
svg.tri-l { transform: rotate(90deg); margin: 0 6px 0 0; }

/* ---------- Sektionsvindue: Finder-mappe med sektionens sider ---------- */
.secwin { margin-bottom: 18px; }
.secwin .wbody { padding: 0; }
.sec-grid { list-style: none; margin: 0; padding: 10px; display: grid; gap: 8px;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  background-image: radial-gradient(#bbb 1px, transparent 1px); background-size: 8px 8px; }
.sec-grid li { display: flex; min-width: 0; }
.sec-item { flex: 1; display: grid; grid-template-columns: 32px 1fr; grid-template-rows: auto auto; column-gap: 10px; row-gap: 2px; align-items: center;
  padding: 9px 10px; border: 1px solid #111; background: #fff; text-decoration: none; color: inherit; box-shadow: 2px 2px 0 #111; min-width: 0; }
.sec-item .sec-ic { grid-row: 1 / 3; width: 32px; height: 32px; }
.sec-t { font-family: var(--font-chrome); font-size: 16px; -webkit-font-smoothing: none; line-height: 1.15; overflow-wrap: anywhere; }
.sec-t small { font-size: 16px; color: inherit; opacity: .8; }
.sec-l { font-size: 14px; line-height: 1.3; color: var(--muted); }
.sec-item:hover, .sec-item:focus-visible { background: #111; color: #fff; --px-paper: #111; outline: 0; }
.sec-item:hover .sec-l, .sec-item:focus-visible .sec-l { color: #ccc; }
.sec-item:active { box-shadow: none; transform: translate(2px, 2px); }
.sec-item.is-cur { background: #111; color: #fff; --px-paper: #111; box-shadow: none; transform: translate(2px, 2px); }
.sec-item.is-cur .sec-l { color: #ccc; }
.secwin .wfoot .sec-back { display: inline-flex; align-items: center; text-decoration: none; font-weight: 400; }
.secwin .wfoot .sec-back:hover { text-decoration: underline; }
@media (max-width: 620px) {
  .sec-grid { grid-template-columns: 1fr 1fr; padding: 8px; gap: 6px; }
  .sec-item { grid-template-columns: 1fr; padding: 7px 8px; row-gap: 4px; }
  .sec-item .sec-ic { grid-row: auto; width: 16px; height: 16px; }
  .sec-l { display: none; }
  .sec-t { font-size: 16px; }
}
@media (max-width: 620px) { .sec-sub, .sec-count { display: none; } }

/* ---------- Catering-harmonika (details/summary) ---------- */
.cater { margin: 12px 0; border: 1px solid var(--ink, #000); background: var(--paper, #fff); box-shadow: 2px 2px 0 var(--ink, #000); }
.cater-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 8px; border-bottom: 1px solid var(--ink, #000);
  font: 11px/1.3 var(--font-mono); text-transform: uppercase; letter-spacing: .04em;
  background-image: repeating-linear-gradient(0deg, transparent 0 2px, rgba(0,0,0,.07) 2px 3px); }
.cater-bar .btn { margin: 0; }
.cater-i { border-bottom: 1px dotted var(--ink, #000); }
.cater-i:last-child { border-bottom: 0; }
.cater-i > summary { display: grid; grid-template-columns: 12px 1fr auto; align-items: baseline; gap: 8px; padding: 9px 10px; cursor: pointer; list-style: none; user-select: none; }
.cater-i > summary::-webkit-details-marker { display: none; }
.cater-i > summary svg.tri { transform: rotate(-90deg); align-self: center; }
.cater-i[open] > summary svg.tri { transform: none; }
.cater-i > summary:hover, .cater-i > summary:focus-visible { background: var(--ink, #000); color: var(--paper, #fff); outline: none; }
.cater-i > summary:hover svg.tri, .cater-i > summary:focus-visible svg.tri { fill: var(--paper, #fff); }
.cater-i[open] > summary { border-bottom: 1px solid var(--ink, #000); }
.cater-n b { font-family: var(--font-mono); margin-right: 4px; }
.cater-p { font-family: var(--font-mono); white-space: nowrap; font-size: .92em; }
.cater-b { padding: 8px 12px 10px 30px; }
.cater-b > p { margin: 0 0 .45em; }
.cater-b > p:empty, .cater-b > p.sp { display: none; }
.cater-pick { margin-top: .7em !important; }
.live .cater-b > p:first-child { margin-top: 0; }
select.flash { animation: pickflash 1.1s steps(2, end) 2; }
@keyframes pickflash { 50% { background: var(--ink, #000); color: var(--paper, #fff); } }
#lokale, #forespoergsel, #forespoergsel-2-form, #forplejning { scroll-margin-top: 44px; }
.cater-form { align-items: start; }
@media (max-width: 620px) {
  .cater-i > summary { grid-template-columns: 10px 1fr; padding: 9px 8px; row-gap: 2px; }
  .cater-p { grid-column: 2; font-size: .85em; }
  .cater-b { padding: 8px 10px 10px 26px; }
  .cater-bar span { font-size: 10px; }
}

/* ---------- v3.1 Stram footer (8px-grid, små typer fra skalaen) ---------- */
.foot { margin-top: var(--sp-2); }
.foot-in { display: grid; grid-template-columns: 1.1fr 1.1fr .9fr 1.9fr; gap: var(--sp-2) var(--sp-3); padding: var(--sp-2) var(--sp-2) var(--sp-2); font-size: var(--fs-s); line-height: 1.45; align-items: start; }
.foot .fcol { min-width: 0; }
.foot h2 { margin: 0 0 var(--sp-1); font-size: 11px; line-height: 16px; }
.foot h2 .brandname { font-size: inherit; line-height: inherit; margin: 0; }
.foot .fcol p { margin: 0 0 var(--sp-1); }
.foot .fcol p:last-child { margin-bottom: 0; }
.foot-oh { font-family: var(--font-mono); }
.foot-note { font-size: 12px; color: var(--muted); }
.foot-ads { columns: 2; column-gap: var(--sp-2); font-size: 12px; line-height: 16px; }
.foot-ads li { padding: 0 0 4px; break-inside: avoid; }
.foot .soc-foot { margin: 0; }
.foot-base { font-size: 11px !important; line-height: 16px; padding-top: 4px; padding-left: var(--sp-2); padding-right: var(--sp-2); text-transform: none; letter-spacing: .02em; }
@media (max-width: 1060px) { .foot-in { grid-template-columns: 1fr 1fr 1fr; } .foot-proto { grid-column: 1 / -1; } .foot-ads { columns: 3; } }
@media (max-width: 620px) {
  .foot-in { grid-template-columns: 1fr 1fr; gap: var(--sp-2); padding: var(--sp-2); }
  .foot .fcol:nth-child(3) { grid-column: 1 / -1; }
  .foot-proto { grid-column: 1 / -1; border-top: 1px dotted var(--ink); padding-top: var(--sp-1); }
  .foot-ads { columns: 2; }
}
.live p.sep { white-space: nowrap; overflow: hidden; max-width: 100%; }
main .reqwin { max-width: 760px; }

/* =====================================================================
   v3.2 Typografisystem + layout-pass (26.10.2026) – ingen tekst ændret
   Reference: freitag.ch (tæt UI-tekst 11 px mono, store stramme overskrifter med lh < 1.1, vægt 400)
   System: 1) ChiKareGo2 = kun interface-krom, altid 16 px (bitmap-størrelse)
           2) Libre Caslon Text = overskrifter (400, stram) + brødtekst (1.5)
           3) IBM Plex Mono = metadata, rubrik-labels, tal og priser, 11–13 px
   ===================================================================== */
:root {
  --fs-xs: 11px; --fs-s: 14px; --fs-0: 17px; --fs-1: 20px; --fs-2: 24px; --fs-3: 32px; --fs-4: 40px; --fs-5: 48px;
  --lh: 1.5; --lh-tight: 1.08; --lh-meta: 1.2;
  --measure: 62ch;
  --meta-ls: 0.06em;
}
@media (max-width: 620px) {
  :root { --fs-0: 16px; --fs-1: 18px; --fs-2: 21px; --fs-3: 26px; --fs-4: 30px; --fs-5: 32px; --pad: 16px; }
}
body { font-size: var(--fs-0); line-height: var(--lh); }

/* 2) Overskrifter: Caslon, stram linjeafstand, let negativ spatiering (som Freitags 48/46 px) */
h1, h2, h3, h4 { line-height: var(--lh-tight); letter-spacing: -0.01em; text-wrap: balance; }
h1.big, h1.mid, h2.sec, .live h1, .live h2, .live h2.h1x { font-weight: 400; }
h1.big { font-size: clamp(var(--fs-3), 4.2vw, var(--fs-5)); margin: 0 0 var(--sp-2); }
h1.mid { font-size: clamp(var(--fs-3), 3.4vw, var(--fs-4)); margin: 0 0 var(--sp-2); }
h2.sec { font-size: clamp(var(--fs-2), 2.4vw, var(--fs-3)); margin: 0 0 var(--sp-2); }
h2.h { font-family: var(--font-sans); font-size: var(--fs-1); font-weight: 700; letter-spacing: -0.005em; text-transform: none; margin: var(--sp-4) 0 var(--sp-1); }
h3.t { font-family: var(--font-sans); font-size: var(--fs-0); font-weight: 700; letter-spacing: 0; text-transform: none; margin: 0 0 4px; }
.lead { font-size: var(--fs-1); line-height: 1.35; max-width: 52ch; margin: 0 0 var(--sp-3); }

/* 3) Metadata/labels: Plex Mono 11 px, versaler, +0.06em (Freitag: 11.3 px mono, lh 1.15) */
.kicker, .lbl, .kv dt, .form label, .form legend, .tbl thead th, figcaption, .cater-bar, .card .more, .foot h2, .foot-base, .marquee,
.wfoot, .sec-sub, .sec-count {
  font-family: var(--font-mono); font-size: var(--fs-xs); line-height: var(--lh-meta); letter-spacing: var(--meta-ls);
  text-transform: uppercase; font-weight: 400; -webkit-font-smoothing: auto;
}
.kicker, .lbl, .form label, .form legend, .foot h2 { font-weight: 600; }
.foot-base { text-transform: none; letter-spacing: .02em; color: var(--muted); }
.kicker { margin: 0 0 var(--sp-1); }
.form label { gap: 4px; }
.radios label { font-family: var(--font-sans); font-size: var(--fs-s); text-transform: none; letter-spacing: 0; font-weight: 400; }
.price, .tbl td.num, .cater-p, .foot-oh, .facts b { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.foot-oh { font-size: var(--fs-s); }
.foot .fcol p { font-size: var(--fs-s); line-height: 1.45; }

/* 1) Krom: ChiKareGo2 kun i 16 px (aldrig skaleret) */
.menubar, .menus summary, .menus > li > a, .menu-pop a, .mobil-menu > summary, .wtitle, .btn, .crumb, .tools, .sec-t, .help-btn { font-size: 16px; }
.btn.sm { font-size: 16px !important; padding: 2px 10px; min-height: 28px; }

/* Catering: navn i serif, pris i mono */
.cater-i > summary { font-family: var(--font-sans); font-size: var(--fs-0); line-height: 1.25; }
.cater-n b { font-family: var(--font-mono); font-size: var(--fs-s); font-weight: 600; letter-spacing: .02em; }
.cater-p { font-size: var(--fs-s); }
.cater-b { font-size: var(--fs-s); line-height: 1.5; }
/* v3.3.9 Catering-læsbarhed (Jeppe 26.10): luftigere linjer, ren sort, hver linje som egen blok, Plex-labels på præfikser */
.cater-b { font-size: 15px; line-height: 1.5; color: #000; }
.cater-b > p, .live .cater-b > p, .rterms .cater-b p { margin: 0 0 8px; line-height: 1.5; color: #000; }
.cater-b > p.ct-h { font-family: var(--font-mono); font-size: 11.5px; line-height: 1.3; font-weight: 600; letter-spacing: var(--meta-ls); text-transform: uppercase; margin: 12px 0 3px; }
.cater-b > p:first-child.ct-h { margin-top: 0; }
.cater-b .ct-l { display: block; font-family: var(--font-mono); font-size: 11.5px; line-height: 1.3; font-weight: 600; letter-spacing: var(--meta-ls); text-transform: uppercase; margin: 12px 0 3px; }
.cater-b > p:first-child .ct-l { margin-top: 0; }
.cater-b > p.cater-pick { margin: 12px 0 2px !important; }
@media (max-width: 620px) { .cater-b { font-size: 15px; } }
/* v3.4.4 (Jeppe 26.10) fælles række-stil: forplejnings-harmonika, Ekstra tilkøb og formularens FORPLEJNING-liste
   navn: Libre Caslon 15px/1.4 · pris: IBM Plex Mono 13px højrestillet · prikket skillelinje · ordlyd uændret */
html body .cater-i > summary { font-family: var(--font-sans); font-size: 15px; line-height: 1.4; align-items: center; min-height: 36px; padding: 7px 10px; box-sizing: border-box; }
html body .cater-n, html body .cater-n b { font-family: var(--font-sans); font-size: 15px; line-height: 1.4; font-weight: 400; letter-spacing: 0; margin-right: 0;; overflow-wrap: anywhere; }
html body .cater-p, html body .form .cf-p, html body .xt-p { font-family: var(--font-mono); font-size: 13px; line-height: 1.4; font-weight: 400; letter-spacing: 0; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; color: inherit; }
html body .xt { min-height: 36px; padding: 3px 0; gap: 8px; font-family: var(--font-sans); font-size: 15px; line-height: 1.4; border-bottom: 1px dotted #111; box-sizing: border-box; }
html body .xt-t { flex: 1 1 auto; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-family: var(--font-sans); font-size: 15px; line-height: 1.4; min-width: 0; }
html body .xt-n { min-width: 0; }
html body .xt-lead { display: none; }
html body .xt.on .xt-t { font-weight: 400; }
html body .xt.on .xt-n { text-decoration: underline; text-underline-offset: 3px; }
html body .form .cf-opts { border-top: 1px dotted #111; }
html body .form .cf-o { font-family: var(--font-sans); font-size: 15px; line-height: 1.4; min-height: 36px; padding: 7px 6px; gap: 0 8px; align-items: center; border-bottom: 1px dotted #111; box-sizing: border-box; }
html body .form .cf-n { font-family: var(--font-sans); font-size: 15px; line-height: 1.4; white-space: normal; overflow: visible; }
html body .form .cf-o.on .cf-p { color: #fff; }
html body .form .cf-o { column-gap: 10px !important; }
html body .form .cf-o .cf-p { white-space: normal; max-width: 10.5ch; justify-self: end; }
/* udfoldet beskrivelse – formular = harmonika: samme tekststørrelse på alle linjer, hver linje egen blok, 8px luft, fed Plex-label */
html body .cater-b > p, html body .form .cf-box p { font-family: var(--font-sans); font-size: 15px !important; line-height: 1.5 !important; color: #000; margin: 0 0 8px; }
html body .form .cf-box { font-family: var(--font-sans); font-size: 15px; line-height: 1.5; padding: 10px 10px 8px 26px; color: #000; }
html body .form .cf-box p:last-child { margin-bottom: 0; }
html body .cater-b .ct-l, html body .form .cf-box .ct-l, html body .cater-b > p.ct-h, html body .form .cf-box p.ct-h { display: block; font-family: var(--font-mono); font-size: 13px !important; line-height: 1.3 !important; font-weight: 700; letter-spacing: var(--meta-ls); text-transform: uppercase; margin: 12px 0 3px; }
html body .cater-b > p:first-child .ct-l, html body .form .cf-box p:first-child .ct-l, html body .cater-b > p.ct-h:first-child, html body .form .cf-box p.ct-h:first-child { margin-top: 0; }
html body .form .cf-box p.cf-pr { font-family: var(--font-mono); font-size: 13px !important; color: #000; margin-top: 10px; }
html body .cater-b > p.cater-pick { margin: 12px 0 2px !important; }
@media (max-width: 480px) {
  html body .form .cf-o, html body .form .cf-n, html body .xt, html body .xt-t, html body .cater-i > summary, html body .cater-n, html body .cater-n b { font-size: 15px; }
  html body .form .cf-p, html body .cater-p, html body .xt-p { font-size: 13px; letter-spacing: 0; }
  html body .form .cf-o { padding: 7px 4px; }
  html body .form .cf-box { padding: 10px 8px 8px 22px; }
  html body .xt-t { flex-wrap: wrap; column-gap: 8px; row-gap: 0; }
}
/* v3.4.4 kursiv note-tekst under PRISER m.fl. (<p class="note pnote"><em>…</em></p>) */
html body p.pnote { font-size: 14px !important; line-height: 1.45 !important; margin: 0 0 10px; }
html body p.pnote em { font-size: inherit; line-height: inherit; }

/* ---------- Live-sider: læselængde, rytme og gruppering ---------- */
.live .lb.txt { max-width: var(--measure); }
.live h1 { font-size: clamp(var(--fs-3), 3.4vw, var(--fs-4)); margin: var(--sp-5) 0 var(--sp-2); }
.live h2, .live h2.h1x { font-size: var(--fs-3); margin: var(--sp-5) 0 var(--sp-2); }
.live h3 { font-size: var(--fs-2); font-weight: 400; margin: var(--sp-4) 0 var(--sp-1); }
.live h4 { font-size: var(--fs-1); margin: var(--sp-3) 0 var(--sp-1); }
.live p { margin: 0 0 12px; }
.live ul, .live ol { margin: 0 0 var(--sp-2); padding-left: 1.2em; }
.live ul li::marker { content: "▪  "; font-size: .8em; }
.live li + li { margin-top: 2px; }
/* Rubrik-afsnit (kun fed tekst) -> mono-label med hårlinje, som en Quark-rubrik */
.live p.rub { font-family: var(--font-mono); font-size: 12px; line-height: var(--lh-meta); letter-spacing: var(--meta-ls); text-transform: uppercase;
  margin: var(--sp-4) 0 var(--sp-1); padding-bottom: 6px; border-bottom: 1px solid var(--ink); max-width: var(--measure); }
.live p.rub strong { font-weight: 600; }
.live .lb.txt > p.rub:first-child { margin-top: 0; }
/* Skillelinjer (————) vises som en tynd stiplet linje – tegnene ligger stadig i HTML */
.live p.sep { font-size: 0; line-height: 0; height: 0; border-top: 1px dotted var(--ink); margin: var(--sp-3) 0; overflow: hidden; }
/* Fed indledning (første afsnit) som lead */
.live .lb.txt > p:first-child > strong:only-child { font-weight: 600; }
.live .lrow { column-gap: var(--sp-4); }
@media (max-width: 620px) {
  .live h1 { font-size: var(--fs-4); margin-top: var(--sp-4); }
  .live h2, .live h2.h1x { font-size: var(--fs-3); margin-top: var(--sp-4); }
  .live h3 { font-size: var(--fs-2); }
  .live p.rub { font-size: 11px; }
}
.live p.rubb > strong:first-child { display: block; font-family: var(--font-mono); font-size: 12px; line-height: var(--lh-meta); letter-spacing: var(--meta-ls);
  text-transform: uppercase; font-weight: 600; padding-bottom: 6px; margin: var(--sp-3) 0 var(--sp-1); border-bottom: 1px solid var(--ink); }
.live p.rubb > strong:first-child + br { display: none; }
.live .lb.txt > p.rubb:first-child > strong:first-child { margin-top: 0; }
@media (max-width: 620px) { .live p.rubb > strong:first-child { font-size: 11px; } }
.wfoot { flex-wrap: wrap; row-gap: 2px; }
.wfoot > * { min-width: 0; overflow-wrap: anywhere; }
.live { overflow-wrap: break-word; }
.live .lcol, .live .lb { min-width: 0; }
.live iframe, .live video, .live img, .live table { max-width: 100%; }


/* v3.3 Forside: billedkort med knappens tekst i billedtekst-bjælken (hele kortet er et link) */
.lgal.lcards figure.lcard { margin: 0; border: 1px solid #111; box-shadow: 2px 2px 0 #111; background: #fff; }
.lgal.lcards .lcard-a { display: flex; flex-direction: column; height: 100%; color: #111; text-decoration: none; --px-paper: #fff; }
.lgal.lcards .lcard-a img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 0; border-bottom: 1px solid #111; }
.lgal.lcards .lcard-cap { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; padding: 6px 10px;
  font-family: var(--font-chrome); font-size: 16px; line-height: 20px; letter-spacing: 0; text-transform: none; -webkit-font-smoothing: none; }
.lgal.lcards .lcard-arr { flex: 0 0 auto; }
.lgal.lcards .lcard-a:hover .lcard-cap, .lgal.lcards .lcard-a:focus-visible .lcard-cap { background: #111; color: #fff; }
.lgal.lcards .lcard-a:focus-visible { outline: 2px solid #111; outline-offset: 2px; }
.lgal.lcards figure.lcard:active { box-shadow: none; transform: translate(2px, 2px); }

/* v3.3 To videoer side om side (16:9 QuickTime-vinduer), én kolonne under 700 px */
.live .vpair { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); align-items: start; margin: 0 0 var(--sp-3); }
.live .vpair .vcol { min-width: 0; display: flex; flex-direction: column; }
.live .vpair .vcol > .txt h2 { margin-top: 0; }
.live .vpair .qt { margin: 0; width: 100%; }
.live .vpair .qt-screen { aspect-ratio: 16 / 9; height: auto; min-height: 0; }
@media (max-width: 699px) { .live .vpair { grid-template-columns: 1fr; gap: var(--sp-3); } }

/* v3.3 Kompakte Finder-felter i sektionsvinduer: tæt titel + mono-beskrivelse, topjusteret med ikonet */
.sec-grid { padding: 8px; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(176px, 1fr)); }
.sec-item { grid-template-columns: 32px 1fr; grid-template-rows: auto 1fr; column-gap: 8px; row-gap: 2px; align-items: start; align-content: start; padding: 6px 8px; }
.sec-item .sec-ic { grid-row: 1 / 3; align-self: start; }
.sec-t { line-height: 16px; padding-top: 1px; }
.sec-l { font-family: var(--font-mono); font-size: 12px; line-height: 1.2; letter-spacing: 0; color: var(--muted); text-wrap: pretty; }
@media (max-width: 620px) {
  .sec-grid { grid-template-columns: 1fr 1fr; gap: 6px; padding: 6px; }
  .sec-item { grid-template-columns: 16px 1fr; grid-template-rows: auto; column-gap: 6px; padding: 6px; align-items: start; }
  .sec-item .sec-ic { grid-row: auto; margin-top: 1px; }
}
/* Generelt: 2+ videovinduer i træk -> 2 kolonner (16:9), én kolonne under 700 px */
.live .vgrid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3) var(--sp-4); align-items: start; margin: 0 0 var(--sp-3); }
.live .vgrid > .lb { margin: 0; min-width: 0; }
.live .vgrid .qt { margin: 0; width: 100%; }
@media (max-width: 699px) { .live .vgrid { grid-template-columns: 1fr; gap: var(--sp-2); } }

/* ===== v3.3 Workspace-infoblok: rent gitter (Freitag-agtigt), tekst ordret ===== */
.live .wsi-lang { float: right; margin: 0 0 8px 16px; }
.live .wsi-lang .btn { font-size: 16px; padding: 3px 10px; min-height: 0; }
.live .wsinfo { margin: var(--sp-4) 0 var(--sp-4); clear: both; }
.live .wsi-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--gutter, 24px); row-gap: var(--sp-4); align-items: start; }
.live .wsi-sec { border-top: 1px solid #111; padding-top: 10px; min-width: 0; }
.live .wsi-sec.wsi-full { margin-top: var(--sp-4); }
.live .wsinfo .wsi-h { margin: 0 0 12px; font-family: var(--font-mono); font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: #111; }
.live .wsinfo p { margin: 0 0 6px; }
.live .wsi-list { margin: 0; padding-left: 1.2em; }
.live .wsi-list li { padding: 0 0 6px; margin: 0; }
.live .wsi-chips li::marker, .live .fg-grid li::marker { content: none; }
.live .wsinfo .wsi-act { margin: 14px 0 0; }
.live .wsi-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.live .wsi-chips li { margin: 0; padding: 3px 8px; border: 1px solid #111; background: #fff; font-family: var(--font-mono); font-size: 12px; line-height: 16px; }
@media (max-width: 899px) { .live .wsi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) {
  .live .wsi-grid { grid-template-columns: 1fr; row-gap: var(--sp-3); }
  .live .wsi-lang { float: none; margin: 0 0 12px; text-align: right; }
}

/* ===== v3.3 Finder-galleri (genbrugeligt modul: section.fgal[data-fgal]) ===== */
.live .fgal { border: 1px solid #111; background: #fff; box-shadow: 2px 2px 0 #111; margin: var(--sp-4) 0 var(--sp-3); }
.fgal .titlebar { min-height: 30px; }
.fgal .wtitle { max-width: 80%; }
.fg-tool { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 5px 10px; border-bottom: 1px solid #111; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; }
.fg-views { display: inline-flex; border: 1px solid #111; }
.fg-v { font-family: var(--font-chrome); font-size: 16px; line-height: 16px; padding: 3px 8px; background: #fff; color: #111; border: 0; cursor: pointer; text-transform: none; letter-spacing: 0; }
.fg-v + .fg-v { border-left: 1px solid #111; }
.fg-v[aria-pressed="true"] { background: #111; color: #fff; }
.fg-grid { list-style: none; margin: 0; padding: 14px; display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 14px 10px;
  background-color: #fff; background-image: radial-gradient(#bbb 1px, transparent 1px); background-size: 8px 8px; max-height: 620px; overflow-y: auto; }
.fg-grid li { margin: 0; padding: 0; }
.fg-it { display: flex; flex-direction: column; align-items: center; gap: 4px; text-decoration: none; color: #111; outline: none; }
.fg-th { display: block; width: 100%; aspect-ratio: 4 / 3; border: 1px solid #111; background: #fff; padding: 3px; box-shadow: 1px 1px 0 #111; }
.fg-th img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fg-name { font-family: var(--font-chrome); font-size: 16px; line-height: 16px; padding: 1px 4px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; background: #fff; }
.fg-it:hover .fg-th, .fg-it:focus-visible .fg-th { background: #111; }
.fg-it:hover .fg-th img, .fg-it:focus-visible .fg-th img { filter: invert(1); }
.fg-it:hover .fg-name, .fg-it:focus-visible .fg-name { background: #111; color: #fff; }
.fgal.is-show .fg-grid { display: none; }
.fg-show { border-bottom: 0; }
.fg-stage { background: #111; display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 10; max-height: 70vh; overflow: hidden; touch-action: pan-y; }
.fg-stage img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.fg-bar { display: flex; align-items: center; gap: 10px; padding: 6px 10px; border-top: 1px solid #111; font-family: var(--font-chrome); font-size: 16px; }
.fg-bar .fg-fn { flex: 1; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
.fg-prev, .fg-next, .fg-lb .fg-prev, .fg-lb .fg-next { font-family: var(--font-chrome); font-size: 14px; width: 34px; height: 26px; border: 1px solid #111; background: #fff; color: #111; cursor: pointer; box-shadow: 1px 1px 0 #111; }
.fg-prev:hover, .fg-next:hover, .fg-prev:focus-visible, .fg-next:focus-visible { background: #111; color: #fff; }
.fgal .wfoot { border-top: 1px solid #111; }
/* Lysboks: klassisk Mac-vindue */
.fg-lb { position: fixed; inset: 0; z-index: 9000; background: rgba(255,255,255,.55); background-image: radial-gradient(#111 1px, transparent 1px); background-size: 3px 3px; display: flex; align-items: center; justify-content: center; padding: 16px; }
.fg-lb[hidden] { display: none; }
.fg-lbw { background: #fff; border: 1px solid #111; box-shadow: 3px 3px 0 #111; width: min(1100px, 100%); max-height: calc(100vh - 32px); display: flex; flex-direction: column; }
.fg-lbw .titlebar { min-height: 30px; }
.fg-lbw .fg-stage { aspect-ratio: auto; height: min(72vh, 760px); max-height: none; flex: 1 1 auto; }
html.fg-noscroll, html.fg-noscroll body { overflow: hidden; }
@media (max-width: 599px) {
  .fg-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 6px; padding: 8px; max-height: 520px; }
  .fg-name { font-size: 12px; font-family: var(--font-mono); }
  .fg-tool { flex-wrap: wrap; }
  .fg-lb { padding: 6px; }
  .fg-lbw .fg-stage { height: 60vh; }
  .fgal .wfoot span + span { display: none; }
}
.fg-grid { grid-template-columns: repeat(auto-fill, minmax(138px, 1fr)); }
.fg-th { position: relative; }
.fgal .fg-th img { position: absolute; inset: 3px; width: calc(100% - 6px); height: calc(100% - 6px); max-width: none; aspect-ratio: auto; }
.fg-name { padding: 1px 2px; }
@media (max-width: 599px) { .fg-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ===== v3.3 Undersidenavigation som System 7-mapper (Finder-ikonvisning) – erstatter felterne ===== */
.secwin .sec-grid { padding: 14px 12px 10px; gap: 14px 10px; grid-template-columns: repeat(auto-fill, minmax(118px, 132px)); justify-content: start;
  background-color: #fff; background-image: radial-gradient(#c8c8c8 1px, transparent 1px); background-size: 8px 8px; }
.secwin .sec-grid li { display: block; }
.secwin .sec-item { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 3px;
  padding: 0; border: 0; background: transparent; box-shadow: none; transform: none; color: #111; --px-paper: #fff; text-decoration: none; }
.secwin .sec-item .sec-ic { width: 48px; height: 48px; grid-row: auto; margin: 0 0 3px; flex: 0 0 auto; }
.secwin .sec-t { font-family: var(--font-chrome); font-size: 16px; line-height: 16px; padding: 1px 4px; max-width: 100%; overflow-wrap: anywhere; background: #fff; }
.secwin .sec-here { font-family: var(--font-mono); font-size: 10px; line-height: 12px; letter-spacing: .06em; text-transform: uppercase; opacity: 1; }
.secwin .sec-l { display: block; font-family: var(--font-mono); font-size: 11px; line-height: 1.2; letter-spacing: 0; color: var(--muted); max-width: 100%; padding: 0 2px; text-wrap: balance; }
.secwin .sec-item:hover, .secwin .sec-item:focus-visible { background: transparent; color: #111; outline: 0; --px-paper: #fff; }
.secwin .sec-item:hover .sec-t, .secwin .sec-item:focus-visible .sec-t { background: #111; color: #fff; }
.secwin .sec-item:hover .sec-l, .secwin .sec-item:focus-visible .sec-l { color: #111; }
.secwin .sec-item:focus-visible .sec-ic { outline: 1px dotted #111; outline-offset: 2px; }
.secwin .sec-item:active { transform: none; box-shadow: none; }
.secwin .sec-item:active .sec-ic { --px-paper: #111; }
/* valgt mappe: sort fyldt ikon + sort label (som et markeret Finder-ikon) */
.secwin .sec-item.is-cur { background: transparent; color: #111; transform: none; box-shadow: none; --px-paper: #111; }
.secwin .sec-item.is-cur .sec-t { background: #111; color: #fff; }
.secwin .sec-item.is-cur .sec-l { color: #111; }
@media (max-width: 620px) {
  .secwin .sec-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 6px; padding: 10px 6px 8px; }
  .secwin .sec-item .sec-ic { width: 32px; height: 32px; }
  .secwin .sec-l { display: block; font-size: 10px; }
}
.secwin .sec-item .sec-ic { align-self: center; }
.secwin .sec-grid { grid-template-columns: repeat(auto-fill, minmax(128px, 144px)); }
.secwin .sec-l, .secwin .sec-here { background: #fff; }

/* ===== v3.3 /about-meetingrooms: rum-kort, info-vindue, betingelser ===== */
.live .rcards { list-style: none; margin: var(--sp-2) 0 var(--sp-4); padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gutter, 16px); }
.live .rcards li { margin: 0; padding: 0; display: flex; }
.live .rcards li::marker { content: none; }
.rc { flex: 1; display: flex; flex-direction: column; border: 1px solid #111; background: #fff; box-shadow: 2px 2px 0 #111; color: #111; text-decoration: none; }
.rc-bar { display: flex; justify-content: space-between; align-items: center; gap: 6px; padding: 5px 8px; border-bottom: 1px solid #111; font-family: var(--font-chrome); font-size: 16px; line-height: 16px; }
.rc-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-bottom: 1px solid #111; }
.rc-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rc-cap { padding: 6px 8px; font-family: var(--font-mono); font-size: 12px; line-height: 16px; letter-spacing: .02em; }
.rc-br { color: var(--muted); }
.rc:hover .rc-bar, .rc:focus-visible .rc-bar { background: #111; color: #fff; }
.rc:focus-visible { outline: 2px solid #111; outline-offset: 2px; }
.rc:active { box-shadow: none; transform: translate(2px, 2px); }
.live .rinfo { border: 1px solid #111; background: #fff; box-shadow: 2px 2px 0 #111; max-width: 420px; margin: 0 0 var(--sp-3); }
.rinfo .titlebar { min-height: 28px; }
.rinfo-b { padding: 12px 14px; }
.rinfo-b p { margin: 0 0 8px; }
.rinfo-b p:last-child { margin: 0; }
.live .rterms { margin: 0 0 var(--sp-4); max-width: 62ch; }
.rterms .cater-b { padding: 10px 12px 12px; }
.rterms .cater-b p { margin: 0 0 8px; font-style: normal; }
.rterms .ct-i strong { font-weight: 700; }
@media (max-width: 899px) { .live .rcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 499px) { .live .rcards { grid-template-columns: 1fr; } .live .rinfo { max-width: none; } }

/* v3.3 Footer FOLLOW: stramt 3-kolonne-gitter (7 ikoner -> 3/3/1), venstrestillet */
.soc.soc-foot { display: grid; grid-template-columns: repeat(3, 32px); gap: 5px; justify-content: start; width: max-content; }
.soc.soc-foot li { display: block; }
.soc.soc-foot a { width: 30px; height: 30px; }

/* ===== v3.3 Rumsider: forespørgsel øverst til højre (sticky) ≥1000 px, ellers lige efter introen ===== */
.rq-layout { display: block; }
.rq-slot:empty { display: none; }
.rq-slot > .win { margin: var(--sp-3) 0; }
@media (min-width: 1000px) {
  .rq-layout { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 32%, 380px); gap: var(--gutter, 18px); align-items: start; }
  .rq-main { min-width: 0; }
  .rq-side { position: sticky; top: 42px; max-height: calc(100vh - 54px); max-height: calc(100dvh - 54px); overflow-y: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); box-sizing: border-box; }
  .rq-side > .win { margin: 0; max-width: none; }
  main .rq-side .reqwin { max-width: none; }
}
/* kompakt formular i smal kolonne */
.rq-side .wbody, .rq-slot .wbody { padding: 12px 12px 14px; }
.rq-side .form, .rq-slot .form { gap: 9px; }
.rq-side .form .row2 { gap: 8px; }
.rq-side .form input, .rq-side .form select { min-height: 0; height: 38px; padding: 6px 8px; }
.rq-side .form textarea { min-height: 70px; padding: 6px 8px; }
.rq-side .form select { background-position: calc(100% - 16px) 16px, calc(100% - 11px) 16px; }
.rq-side .form fieldset { padding: 6px 8px 8px; }
.rq-side .radios { gap: 4px; }
.rq-side .small { font-size: 13px; line-height: 1.3; margin: 0 0 8px; }
/* DATO / ANTAL PERSONER: ens felthøjde og bundlinje */
.form .row2 { align-items: end; }
.form .row2 > label { grid-template-rows: auto auto; align-content: end; }
.form input[type="date"], .form input[type="number"], .form input[type="tel"], .form input[type="email"], .form input:not([type]) { box-sizing: border-box; height: 44px; line-height: 1.2; -webkit-appearance: none; appearance: none; }
.form input[type="date"]::-webkit-date-and-time-value { text-align: left; }
.rq-side .form input[type="date"], .rq-side .form input[type="number"], .rq-side .form input[type="tel"], .rq-side .form input[type="email"], .rq-side .form input:not([type]) { height: 38px; }
.form input[type="radio"], .form input[type="checkbox"] { height: auto; -webkit-appearance: auto; appearance: auto; }
@keyframes rqflash { 0%, 60% { box-shadow: 0 0 0 3px #111; } 100% { box-shadow: 2px 2px 0 #111; } }
.win.rq-flash { animation: rqflash .9s steps(3) 1; }

/* ===== v3.3 Extras: antal-vælger ===== */
.xtra { list-style: none; margin: 0 0 8px; padding: 0; }
.xtra li::marker { content: none; }
.xt { display: flex; align-items: center; gap: 8px; padding: 4px 0; margin: 0; border-bottom: 1px dotted #111; }
.xt:last-child { border-bottom: 0; }
.xt-t { flex: 0 1 auto; min-width: 0; }
.xt-lead { flex: 1 1 12px; }
.xt-st { flex: 0 0 auto; display: inline-flex; align-items: stretch; border: 1px solid #111; box-shadow: 1px 1px 0 #111; background: #fff; }
.xt-b { width: 28px; height: 28px; padding: 0; border: 0; background: #fff; color: #111; font-family: var(--font-chrome); font-size: 16px; line-height: 1; cursor: pointer; touch-action: manipulation; }
.xt-b:hover, .xt-b:focus-visible { background: #111; color: #fff; outline: 0; }
.xt-b:active { background: #111; color: #fff; }
.xt-q { width: 34px; height: 28px; border: 0; border-left: 1px solid #111; border-right: 1px solid #111; text-align: center; font-family: var(--font-mono); font-size: 13px; padding: 0; -moz-appearance: textfield; appearance: textfield; background: #fff; }
.xt-q::-webkit-inner-spin-button, .xt-q::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.xt.on .xt-t { font-weight: 700; }
.xt.on .xt-q { background: #111; color: #fff; }
/* i formularen */
.form .xf ul, .form .cf-opts { list-style: none; margin: 0; padding: 0; }
.form .xf li { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; padding: 2px 0; border-bottom: 1px dotted var(--kv-line, #999); }
.form .xf li::marker { content: none; }
.form .xf .xf-none { color: var(--muted); border: 0; font-size: 13px; }
.form .xf .xf-s { font-family: var(--font-mono); font-size: 12px; white-space: nowrap; }
.form .xf-tot { margin: 6px 0 0; font-size: 14px; line-height: 1.3; }
.form .xf-tot small { font-size: 12px; color: var(--muted); }
/* forplejning som radioliste */
.form .cf-o { display: grid; grid-template-columns: 18px 1fr auto; align-items: baseline; gap: 6px; padding: 5px 4px; margin: 0; border-bottom: 1px dotted var(--kv-line, #999);
  font-family: var(--font-sans); font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--ink, #111); font-weight: 400; cursor: pointer; }
.form .cf-o input { margin: 0; align-self: center; }
.form .cf-n { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.form .cf-p { font-family: var(--font-mono); font-size: 11px; white-space: nowrap; color: var(--muted); }
.form .cf-o.on { background: #111; color: #fff; }
.form .cf-o.on .cf-p { color: #ddd; }
.form .cf-box { margin: 0 0 6px; padding: 8px 10px; border: 1px solid #111; border-top: 0; background: var(--soft, #f4f4f4); font-size: 13px; line-height: 1.3; }
.form .cf-box p { margin: 0 0 4px; }
.form .cf-box p:last-child { margin: 0; }
@keyframes cfflash { 0%, 50% { outline: 3px solid #111; } 100% { outline: 0 solid transparent; } }
.form .cf.flash { animation: cfflash .8s steps(2) 1; }

/* ===== v3.3 Featured + 3-op: første video fuld bredde, resten 3 kolonner (2 på iPad portræt, 1 under 600 px) ===== */
.live .grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3) var(--gutter, 16px); align-items: start; margin: 0 0 var(--sp-4); }
.live .grid3 > * { margin: 0; min-width: 0; }
.live .grid3 .qt { margin: 0; width: 100%; }
.live .grid3 .qt-screen { aspect-ratio: 16 / 9; height: auto; min-height: 0; }
.live .grid3 .qt-bar { font-size: 16px; }
.live .grid3 figure.limg { margin: 0; border: 1px solid #111; box-shadow: 2px 2px 0 #111; background: #fff; display: flex; flex-direction: column; }
.live .grid3 figure.limg > a { display: block; border-bottom: 1px solid #111; }
.live .grid3 figure.limg img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.live .grid3 figure.limg figcaption { padding: 6px 8px 8px; }
.live .grid3 figure.limg figcaption p { margin: 0 0 4px; font-size: 14px; line-height: 1.25; }
.live .grid3 figure.limg figcaption p.rub { font-size: 14px; }
.live .grid3 figure.limg:hover { background: #111; color: #fff; }
.live .grid3 figure.limg:hover a { color: #fff; }
@media (max-width: 899px) { .live .grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .live .grid3 { grid-template-columns: 1fr; } }

/* ===== v3.3 Sektion-labels (mono, versaler): større og federe, lidt mere luft efter linjen ===== */
.live p.rub, .live p.rubb > strong:first-child, .live .wsinfo .wsi-h {
  font-size: 14px; line-height: 18px; letter-spacing: 0.06em; font-weight: 600; color: var(--ink, #111); }
.live p.rub strong { font-weight: 600; }
.live p.rub { padding-bottom: 7px; margin-bottom: 12px; }
.live p.rubb > strong:first-child { padding-bottom: 7px; margin-bottom: 12px; }
.live .wsinfo .wsi-sec { padding-top: 10px; }
.live .wsinfo .wsi-h { margin-bottom: 12px; }
.live .grid3 figure.limg figcaption p.rub { font-size: 13px; line-height: 17px; margin: 0; padding-bottom: 0; border-bottom: 0; }
@media (max-width: 620px) {
  .live p.rub, .live p.rubb > strong:first-child, .live .wsinfo .wsi-h { font-size: 13px; line-height: 17px; }
}
.foot h2 { font-size: 12px; letter-spacing: 0.06em; font-weight: 600; }
.form label[hidden] { display: none !important; }
.secwin .sec-grid { grid-template-columns: repeat(auto-fill, 124px); }
.secwin .sec-item.is-cur .sec-ic { color: #fff; background: #111; box-shadow: 0 0 0 2px #111; }
@media (min-width: 1000px) { .rq-layout.rq-page { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
.rq-page .rq-side .xt { gap: 6px; }
@media (max-width: 620px) { .secwin .sec-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* v3.3 Lukkeboks: klassisk Mac – markør, hover, trykket tilstand med indre kryds */
.wbox.close { cursor: pointer; position: relative; }
.wbox.close:hover { background: #fff; box-shadow: inset 0 0 0 1px #111; }
.wbox.close:active, .wbox.close.is-pressed { background: #fff;
  background-image: linear-gradient(45deg, transparent 45%, #111 45%, #111 55%, transparent 55%), linear-gradient(-45deg, transparent 45%, #111 45%, #111 55%, transparent 55%);
  background-size: 9px 9px; background-position: center; background-repeat: no-repeat; box-shadow: inset 0 0 0 1px #111; }
.wbox.close:focus-visible { outline: 2px solid #111; outline-offset: 1px; }
.win.dark .wbox.close:hover, .win.dark .wbox.close:active { background-color: #111; }
/* Mac-tooltip ved lukkeboksen: viser destinationen (kun på enheder med hover) */
@media (hover: hover) and (pointer: fine) {
  .wbox.close[data-tip]:hover::after, .wbox.close[data-tip]:focus-visible::after {
    content: attr(data-tip); position: absolute; left: calc(100% + 6px); top: 50%; transform: translateY(-50%); z-index: 50;
    white-space: nowrap; padding: 2px 6px; background: #fff; color: #111; border: 1px solid #111; box-shadow: 2px 2px 0 #111;
    font-family: var(--font-chrome); font-size: 16px; line-height: 16px; letter-spacing: 0; text-transform: none; pointer-events: none; }
}
.titlebar { overflow: visible; }

/* ===== v3.3 Oversigtssider (projects, BOX-arkiv): ens kort som forsidens billedkort ===== */
.live .grid3.plist { align-items: stretch; }
.live .grid3.plist figure.limg { position: relative; height: 100%; }
.live .grid3.plist figure.limg > a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.live .grid3.plist figure.limg > a:focus-visible { outline: 0; }
.live .grid3.plist figure.limg:focus-within { outline: 2px solid #111; outline-offset: 2px; }
.live .grid3.plist figure.limg figcaption { flex: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; padding: 8px 10px 9px; }
.live .grid3.plist figure.limg figcaption::after { content: "→"; font-family: var(--font-chrome); font-size: 16px; line-height: 18px; flex: 0 0 auto; }
.live .grid3.plist figure.limg figcaption p, .live .grid3.plist figure.limg figcaption p.rub {
  font-family: var(--font-mono); font-size: 14px; line-height: 18px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
  margin: 0; padding: 0; border: 0; max-width: none; color: inherit; }
.live .grid3.plist figure.limg figcaption strong { font-weight: 700; }
.live .grid3.plist figure.limg:hover { background: #fff; color: #111; }
.live .grid3.plist figure.limg:hover figcaption { background: #111; color: #fff; }
.live .grid3.plist figure.limg:active { box-shadow: none; transform: translate(2px, 2px); }
@media (max-width: 620px) { .live .grid3.plist figure.limg figcaption p { font-size: 13px; line-height: 17px; } }

/* ===== v3.3 Lange afsnit markeret som H1/H2 på live -> lead-størrelse ===== */
.live h1.hlead, .live h2.hlead, .live h3.hlead, .live h2.h1x.hlead {
  font-size: 23px; line-height: 1.3; font-weight: 400; letter-spacing: 0; max-width: 55ch; margin: 0 0 var(--sp-3); text-wrap: pretty; }
@media (max-width: 620px) { .live h1.hlead, .live h2.hlead, .live h3.hlead { font-size: 20px; } }

/* ===== v3.3 Retro lydafspiller ===== */
.live .lplayer { max-width: 62ch; border: 1px solid #111; background: #fff; box-shadow: 2px 2px 0 #111; margin: 0 0 var(--sp-4); }
.lplayer .titlebar { min-height: 28px; }
.lplayer .wtitle { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-chrome); font-size: 16px; text-transform: none; letter-spacing: 0; }
.lplayer .wtitle strong { font-weight: 400; }
.ap-body { display: flex; align-items: center; gap: 10px; padding: 10px 12px; }
.ap-play { width: 32px; height: 26px; flex: 0 0 auto; border: 1px solid #111; background: #fff; box-shadow: 1px 1px 0 #111; font-family: var(--font-chrome); font-size: 14px; cursor: pointer; padding: 0; color: #111; }
.ap-play:hover, .ap-play:focus-visible, .ap-play[aria-pressed="true"] { background: #111; color: #fff; outline: 0; }
.ap-track { flex: 1 1 auto; height: 10px; border: 1px solid #111; background: repeating-linear-gradient(90deg, #fff 0 3px, #ddd 3px 4px); position: relative; cursor: pointer; min-width: 60px; }
.ap-fill { position: absolute; inset: 0 auto 0 0; width: 0; background: #111; }
.ap-time { font-family: var(--font-mono); font-size: 12px; min-width: 40px; text-align: right; }
.lplayer .ap-ext { white-space: nowrap; }
.ap-status { margin: 0; padding: 4px 12px; border-top: 1px solid #111; background: var(--soft, #f4f4f4); }
.ap-status small { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
@media (max-width: 480px) { .ap-body { flex-wrap: wrap; } .lplayer .ap-ext { margin-left: auto; } }

/* ===== v3.3 Slideshow (.lslide.fslide): pile, tæller, rulbar strimmel, «Vis alle» ===== */
.lslide.fslide .g-main figure { position: relative; }
.fs-ov { position: absolute; left: 0; right: 0; bottom: 8px; display: flex; justify-content: center; align-items: center; gap: 8px; pointer-events: none; }
.fs-ov > * { pointer-events: auto; }
.fs-prev, .fs-next { width: 32px; height: 26px; border: 1px solid #111; background: #fff; color: #111; box-shadow: 1px 1px 0 #111; font-family: var(--font-chrome); font-size: 13px; cursor: pointer; padding: 0; }
.fs-prev:hover, .fs-next:hover, .fs-prev:focus-visible, .fs-next:focus-visible { background: #111; color: #fff; outline: 0; }
.fs-cnt { background: #fff; border: 1px solid #111; padding: 3px 8px; font-family: var(--font-chrome); font-size: 16px; line-height: 18px; min-width: 64px; text-align: center; }
.fs-strip { display: flex; align-items: stretch; border-top: 1px solid #111; background: var(--soft); }
.fs-sl, .fs-sr { display: none; flex: 0 0 22px; border: 0; background: #fff; color: #111; font-size: 10px; cursor: pointer; padding: 0;
  background-image: repeating-linear-gradient(0deg, #fff 0 1px, #fff 1px 2px); }
.fs-sl { border-right: 1px solid #111; } .fs-sr { border-left: 1px solid #111; }
.fs-strip.is-over .fs-sl, .fs-strip.is-over .fs-sr { display: block; }
.fs-sl:hover:not(:disabled), .fs-sr:hover:not(:disabled), .fs-sl:active:not(:disabled), .fs-sr:active:not(:disabled) { background: #111; color: #fff; }
.fs-sl:disabled, .fs-sr:disabled { color: #bbb; cursor: default; }
.lslide.fslide .fs-strip .thumbs { position: relative; flex: 1 1 auto; min-width: 0; border-top: 0; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: thin; overscroll-behavior-x: contain; }
.lslide.fslide .thumbs button { scroll-snap-align: start; }
.lslide.fslide .g-count { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.lslide.fslide .g-count .fs-all { font-size: 16px; padding: 2px 8px; min-height: 0; }
.fs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 6px; padding: 8px; border-top: 1px solid #111; background: var(--soft); }
.fs-grid[hidden] { display: none; }
.fs-grid button { padding: 0; border: 1px solid #111; background: #fff; cursor: zoom-in; aspect-ratio: 4 / 3; overflow: hidden; }
.fs-grid img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fs-grid button:hover img, .fs-grid button:focus-visible img { filter: invert(1); }
.lslide.is-grid .g-main, .lslide.is-grid .fs-strip { display: none; }

/* ===== v3.3 GENEREL VIDEOREGEL: videoer fylder mindre ===== */
/* 2+ videoer i træk: 3 pr. række (2 på iPad portræt, 1 på telefon) */
.live .vgrid, .live .vpair { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3) var(--gutter, 16px); }
@media (max-width: 899px) { .live .vgrid, .live .vpair, .live .grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .live .vgrid, .live .vpair, .live .grid3 { grid-template-columns: 1fr; } }
/* enkeltstående video: højst 2/3 af indholdsbredden (featured/hero undtaget) */
.live .lb:has(> figure.qt:only-child):not(.vfeat) { max-width: min(66%, 62ch); }
.live .vgrid > .lb, .live .grid3 > .lb, .live .vpair .lb { max-width: none !important; }
@media (max-width: 699px) { .live .lb:has(> figure.qt:only-child) { max-width: none; } }
/* slankere video-chrome i små vinduer */
.live .vgrid .qt-screen, .live .vpair .qt-screen, .live .grid3 .qt-screen, .live .lb:not(.vfeat) > .qt .qt-screen { gap: 6px; }
.live .vgrid .qt-screen > svg, .live .vpair .qt-screen > svg, .live .grid3 .qt-screen > svg, .live .lb:not(.vfeat) > .qt .qt-screen > svg { width: 32px; height: 32px; }
.live .vgrid .qt-play, .live .vpair .qt-play, .live .grid3 .qt-play, .live .lb:not(.vfeat) > .qt .qt-play { padding: 2px 6px; font-size: 16px; line-height: 16px; max-width: calc(100% - 16px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.live .vgrid .qt-ctl, .live .vpair .qt-ctl, .live .grid3 .qt-ctl, .live .lb:not(.vfeat) > .qt .qt-ctl { padding: 1px 6px; gap: 6px; font-size: 11px; line-height: 14px; }
.live .vgrid .qt-ctl i, .live .vpair .qt-ctl i, .live .grid3 .qt-ctl i { height: 4px; }
.live .vgrid .qt-bar, .live .vpair .qt-bar, .live .grid3 .qt-bar { padding: 2px 6px; }
.live .vgrid .qt-bar span, .live .vpair .qt-bar span, .live .grid3 .qt-bar span { font-size: 16px; }

/* ===== v3.3 Indlejringsvinduer (Spotify / Instagram) ===== */
.live .xwin { border: 1px solid #111; background: #fff; box-shadow: 2px 2px 0 #111; margin: 0 0 var(--sp-4); }
.live .xwin .titlebar { min-height: 28px; }
.live .xwin .wtitle { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-chrome); font-size: 16px; text-transform: none; letter-spacing: 0; margin: 0; font-weight: 400; }
.live .xwin .wtitle strong { font-weight: 400; }
.xw-body { padding: 14px; }
.xspot .xw-body.has-text { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--gutter, 18px); align-items: start; }
.xw-text > :first-child { margin-top: 0; }
.xw-text h2 { font-size: var(--fs-3, 24px); margin: 0 0 8px; }
.xw-text p:last-child { margin-bottom: 0; }
.xw-player { border: 1px solid #111; background: #fff; }
.xw-player .ap-body { border-bottom: 1px solid #111; }
.xw-player a.ap-play { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.xw-slot { height: 152px; display: flex; align-items: center; justify-content: center; background: #111; background-image: radial-gradient(#444 0.7px, transparent 0.8px); background-size: 4px 4px; }
.xw-slot .btn { background: #fff; }
.xinsta .xw-body { padding: 10px; }
.live .xinsta .lgal { gap: 8px; margin: 0; }
.live .xinsta .lgal > a img { aspect-ratio: 1; object-fit: cover; width: 100%; border: 1px solid #111; display: block; }
.live .xinsta .lgal > a:hover img { filter: invert(1); }
@media (max-width: 699px) { .xspot .xw-body.has-text { grid-template-columns: 1fr; } .live .xinsta .lgal { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* v3.3.1 Videopar med overskrift (forsiden): to lige brede kolonner; overskrifterne deler én række (bundjusteret),
   så begge videovinduer starter i samme højde og har samme størrelse. Tekst uændret. */
@media (min-width: 600px) {
  .live .vpair { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto; row-gap: 0; align-items: stretch; }
  .live .vpair > .vcol { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; }
  .live .vpair > .vcol > .txt { align-self: end; }
  .live .vpair > .vcol > .lb:not(.txt) { align-self: start; }
}
/* v3.3.2 Mappenavigation uden undertekst/«du er her» (fjernet efter ønske): strammere lodret luft */
.secwin .sec-grid { padding: 10px 12px 8px; row-gap: 10px; align-items: start; }
.secwin .sec-item { gap: 2px; }
@media (min-width: 621px) { .secwin .sec-grid { grid-template-columns: repeat(auto-fill, 102px); column-gap: 8px; } }
@media (max-width: 620px) { .secwin .sec-grid { padding: 8px 6px 6px; row-gap: 8px; } }

/* ===== v3.3.6 Forplejning + Extras i formularen: strammere typografi (Jeppe 26.10) ===== */
.form .cf-opts { border-top: 1px dotted var(--kv-line, #999); }
.form .cf-o { grid-template-columns: 14px minmax(0, 1fr) auto; gap: 0 8px; align-items: baseline; padding: 3px 4px;
  font-family: var(--font-mono); font-size: 13px; line-height: 16px; }
.form .cf-o input { width: 12px; height: 12px; align-self: center; accent-color: #111; }
.form .cf-o.on input { accent-color: #fff; }
.form .cf-p { font-size: 12px; line-height: 16px; text-align: right; }
.form .cf-box { margin: 0 0 4px; padding: 5px 8px 6px 26px; font-family: var(--font-sans); font-size: 13px; line-height: 17px; }
.form .cf-box p { margin: 0 0 2px; }
.form .cf-box p.cf-lab { margin: 4px 0 0; font-weight: 700; }
.form .cf-box p.cf-lab:first-child { margin-top: 0; }
.form .cf-box p.cf-pr { margin: 4px 0 0; font-family: var(--font-mono); font-size: 12px; color: var(--muted); }
.form .xf li { font-family: var(--font-mono); font-size: 13px; line-height: 16px; padding: 3px 0; align-items: baseline; }
.form .xf .xf-s { font-size: 12px; text-align: right; }
.form .xf .xf-none { font-family: var(--font-sans); font-size: 13px; }
.form .xf-tot { font-size: 13px; line-height: 17px; margin-top: 4px; }
.form .xf-tot small { font-size: 11px; line-height: 15px; }
/* Extras-rækker (antal-vælger) */
.xt { gap: 6px; padding: 2px 0; font-size: 13px; line-height: 16px; }
.xt-t { font-family: var(--font-mono); font-size: 13px; line-height: 16px; }
.xt-b { width: 24px; height: 24px; font-size: 14px; }
.xt-q { width: 30px; height: 24px; font-size: 12px; }
/* Varighed: én mulighed pr. linje, ens indrykning; tidsfelt for «Andet tidspunkt» */
.form .radios { display: grid; grid-template-columns: 1fr; gap: 4px; }
.form .radios label { display: grid; grid-template-columns: 16px 1fr; align-items: center; gap: 8px; margin: 0; line-height: 1.25; }
.form .radios input { margin: 0; }
.form .radios .vt { display: block; margin: 2px 0 0 24px; }
.form .radios .vt[hidden] { display: none !important; }
.form .radios .vt input { width: 100%; max-width: 220px; height: 34px; box-sizing: border-box; }
.form .cf-o input[type="radio"] { width: 12px !important; height: 12px !important; min-height: 0 !important; padding: 0; border: 0; }
.form .radios input[type="radio"] { width: 16px !important; height: 16px !important; min-height: 0 !important; padding: 0; border: 0; }
@media (max-width: 480px) { .form .cf-o { font-family: var(--font-sans); font-size: 12.5px; gap: 0 4px; padding: 3px 1px; } .form .cf-p { font-family: var(--font-mono); font-size: 11px; letter-spacing: -0.03em; } }
/* v3.3.6 Palette-etiket på touch */
.ptip { position: fixed; z-index: 60; padding: 3px 7px 2px; background: #fff; color: #111; border: 1px solid #111; box-shadow: 2px 2px 0 #111;
  font-family: var(--font-chrome); font-size: 14px; line-height: 16px; white-space: nowrap; pointer-events: none; }
.ptip[hidden] { display: none; }
.ptip::before { content: ""; position: absolute; left: -5px; top: 50%; margin-top: -4px; width: 0; height: 0; border: 4px solid transparent; border-left: 0; border-right: 5px solid #111; }
@media (hover: none), (pointer: coarse) { .tools .tgrid a.tap-armed, .tools .tgrid button.tap-armed { background: #111; color: #fff; --px-paper: #111; } }

/* ===== v3.3.7 TRE TEKSTNIVEAUER på alle sider (Jeppe 26.10) =====
   1 Overskrift: alle H1 · ChiKareGo2 32/40 px (2× bitmap, ingen faux bold)
   2 Underoverskrift: H2/H3/H4, lead-afsnit, fede pseudo-overskrifter (p.ph) · ChiKareGo2 24/30 px
   3 Brødtekst: p, li, dd, blockquote, figcaption i indholdet · Libre Caslon Text 17/26 px (16/24 under 620 px)
   Krom (menu, vinduestitler, mapper, formularer, Plex-labels, knapper, galleri-UI, kort) er uændret.
   Afstand: H1 0/16 · niveau 2 28/10 (0 øverst i et vindue/lige efter H1) · afsnit 0/14 */
:root { --t1-size: 32px; --t1-lh: 40px; --t2-size: 24px; --t2-lh: 30px; --t3-size: 17px; --t3-lh: 26px;
  --t1-mb: 16px; --t2-mt: 28px; --t2-mb: 10px; --t3-mb: 14px; }
@media (max-width: 620px) { :root { --t3-size: 16px; --t3-lh: 24px; --t1-lh: 38px; --t2-lh: 28px; } }
html body .desk h1:not(:is(.form, .cater, .cater-b, .rq-side, .xtra, .qt, .tbl, .sec-grid, .crumb, .menus, .titlebar, .badges, .ap, .g-strip, .gallery, .lgal, .wsi-chips, .wsinfo, .card, .xf, .cf, .rterms, .fhelp) *) { font-family: var(--font-chrome) !important; font-size: var(--t1-size) !important; line-height: var(--t1-lh) !important; font-weight: 400 !important; font-style: normal !important;
  font-synthesis: none; letter-spacing: 0 !important; text-transform: none !important; margin: 0 0 var(--t1-mb) !important; max-width: none !important; -webkit-font-smoothing: none; }
html body .desk :is(h2:not(.wsi-h), h3, h4, p.ph, p.lead):not(:is(.form, .cater, .cater-b, .rq-side, .xtra, .qt, .tbl, .sec-grid, .crumb, .menus, .titlebar, .badges, .ap, .g-strip, .gallery, .lgal, .wsi-chips, .wsinfo, .card, .xf, .cf, .rterms, .fhelp) *) { font-family: var(--font-chrome) !important; font-size: var(--t2-size) !important; line-height: var(--t2-lh) !important; font-weight: 400 !important; font-style: normal !important;
  font-synthesis: none; letter-spacing: 0 !important; text-transform: none !important; margin: var(--t2-mt) 0 var(--t2-mb) !important; max-width: none !important; -webkit-font-smoothing: none; }
html body .desk :is(h1, h2:not(.wsi-h), h3, h4, p.ph, p.lead):not(:is(.form, .cater, .cater-b, .rq-side, .xtra, .qt, .tbl, .sec-grid, .crumb, .menus, .titlebar, .badges, .ap, .g-strip, .gallery, .lgal, .wsi-chips, .wsinfo, .card, .xf, .cf, .rterms, .fhelp) *) :is(strong, b, em, i, span, font) { font: inherit !important; font-weight: 400 !important; }
html body .desk :is(h2:not(.wsi-h), h3, h4, p.ph, p.lead):not(:is(.form, .cater, .cater-b, .rq-side, .xtra, .qt, .tbl, .sec-grid, .crumb, .menus, .titlebar, .badges, .ap, .g-strip, .gallery, .lgal, .wsi-chips, .wsinfo, .card, .xf, .cf, .rterms, .fhelp) *):first-child, html body .desk h1 + :is(h2, h3, h4, p.ph, p.lead) { margin-top: 0 !important; }
html body .desk :is(p, li, dd, blockquote, figcaption):not(.ph):not(.lead):not(.rub):not(.rubb):not(.kicker):not(.mm-folder):not(.g-count):not(.g-cap):not(.cater-pick):not(.xt):not(.badge):not(.err):not(.note):not(.small):not(.mono):not(.ap-status):not(.lb):not(.wsi-lang):not(.wsi-act):not(.price):not(.proto-note):not(.f-note):not(.sep):not(.xf-tot):not(.xf-none):not(.lcard-cap):not(:is(.form, .cater, .cater-b, .rq-side, .xtra, .qt, .tbl, .sec-grid, .crumb, .menus, .titlebar, .badges, .ap, .g-strip, .gallery, .lgal, .wsi-chips, .wsinfo, .card, .xf, .cf, .rterms, .fhelp) *) {
  font-family: var(--font-sans) !important; font-size: var(--t3-size) !important; line-height: var(--t3-lh) !important; letter-spacing: 0 !important; text-transform: none !important; font-weight: 400; }
html body .desk p:not(.ph):not(.lead):not(.rub):not(.rubb):not(.kicker):not(.mm-folder):not(.g-count):not(.g-cap):not(.cater-pick):not(.xt):not(.badge):not(.err):not(.note):not(.small):not(.mono):not(.ap-status):not(.lb):not(.wsi-lang):not(.wsi-act):not(.price):not(.proto-note):not(.f-note):not(.sep):not(.xf-tot):not(.xf-none):not(.lcard-cap):not(:is(.form, .cater, .cater-b, .rq-side, .xtra, .qt, .tbl, .sec-grid, .crumb, .menus, .titlebar, .badges, .ap, .g-strip, .gallery, .lgal, .wsi-chips, .wsinfo, .card, .xf, .cf, .rterms, .fhelp) *) { margin-top: 0 !important; margin-bottom: var(--t3-mb) !important; }
html body .desk :is(p, li, dd, blockquote, figcaption):not(.ph):not(.lead):not(.rub):not(.rubb):not(.kicker):not(.mm-folder):not(.g-count):not(.g-cap):not(.cater-pick):not(.xt):not(.badge):not(.err):not(.note):not(.small):not(.mono):not(.ap-status):not(.lb):not(.wsi-lang):not(.wsi-act):not(.price):not(.proto-note):not(.f-note):not(.sep):not(.xf-tot):not(.xf-none):not(.lcard-cap):not(:is(.form, .cater, .cater-b, .rq-side, .xtra, .qt, .tbl, .sec-grid, .crumb, .menus, .titlebar, .badges, .ap, .g-strip, .gallery, .lgal, .wsi-chips, .wsinfo, .card, .xf, .cf, .rterms, .fhelp) *) :is(span, font, em, i, a, strong, b, small, u):not(.rub):not(.btn):not(.badge) { font-size: inherit !important; line-height: inherit !important; }

/* ===== v3.3.8 Ét fælles galleri: Finder-ikoner + Lysbilleder (n / N, miniature-strimmel, Vis alle) + lysboks ===== */
.fgal { border: 1px solid #111; background: #fff; box-shadow: 2px 2px 0 #111; margin: var(--sp-3) 0; min-width: 0; }
.live .fgal { margin: var(--sp-3) 0; }
.lcol > .fgal:first-child { margin-top: 0; }
.fgal .fg-stage { aspect-ratio: 3 / 2; max-height: 72vh; }
.fgal .fg-stage img { width: auto; height: auto; max-width: 100%; max-height: 100%; }
.fgal .fg-bar { flex-wrap: nowrap; }
.fgal .fg-cnt { white-space: nowrap; min-width: 56px; text-align: center; }
.fgal .fg-all { font-family: var(--font-chrome); font-size: 16px; line-height: 16px; padding: 4px 8px; border: 1px solid #111; background: #fff; color: #111; cursor: pointer; box-shadow: 1px 1px 0 #111; white-space: nowrap; }
.fgal .fg-all:hover, .fgal .fg-all:focus-visible { background: #111; color: #fff; }
.fgal .fg-strip { display: flex; align-items: stretch; border-top: 1px solid #111; background: var(--soft); }
.fgal .fg-strip[hidden] { display: none; }
.fgal .fg-strip.is-over .fs-sl, .fgal .fg-strip.is-over .fs-sr { display: block; }
.fgal .fg-thumbs { display: flex; gap: 6px; padding: 6px; flex: 1 1 auto; min-width: 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; overscroll-behavior-x: contain; }
.fgal .fg-thumbs button { flex: 0 0 72px; height: 54px; padding: 0; border: 1px solid #111; background: #fff; cursor: pointer; scroll-snap-align: start; overflow: hidden; }
.fgal .fg-thumbs button img { width: 100%; height: 100%; object-fit: cover; display: block; max-width: none; }
.fgal .fg-thumbs button.on { outline: 3px solid #111; outline-offset: -3px; }
.fgal .fg-thumbs button:hover img, .fgal .fg-thumbs button:focus-visible img { filter: invert(1); }
.fgal .fg-prev[hidden], .fgal .fg-next[hidden] { display: none; }
@media (max-width: 599px) {
  .fgal .fg-bar { gap: 6px; padding: 5px 6px; }
  .fgal .fg-bar .fg-fn { display: none; }
  .fgal .fg-cnt { flex: 1; }
  .fgal .fg-thumbs button { flex-basis: 60px; height: 45px; }
  .fgal .fg-stage { aspect-ratio: 4 / 3; }
  .fg-v { font-size: 14px; padding: 3px 6px; }
}

/* v3.3.8 Formular-tilstande (form[data-api]) */
.form .hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.form[aria-busy="true"] button[type="submit"] { opacity: .6; cursor: progress; }
.form.is-fail .err { color: #b00; }
.form-ok { border: 1px solid #111; box-shadow: 2px 2px 0 #111; padding: 12px 14px; background: #fff; outline: none; }
.form-ok .ok-h { font-family: var(--font-chrome); font-size: 16px; line-height: 20px; margin: 0 0 6px; }
.form-ok .ok-b { margin: 0; }
.form-ok[hidden], .form-ok .ok-b[hidden] { display: none; }

/* v3.3.9 Pagefind-resultater (Lanceringspunkt 4) */
.lsearch-res { list-style: none; margin: 8px 0 0; padding: 0; border: 1px solid #111; background: #fff; max-height: 60vh; overflow: auto; }
.lsearch-res li { padding: 8px 10px; border-bottom: 1px dotted #111; }
.lsearch-res li:last-child { border-bottom: 0; }
.lsearch-res a { font-weight: 700; display: block; }
.lsearch-res small { display: block; font-size: 14px; line-height: 1.4; margin-top: 2px; }
.lsearch-res mark { background: var(--soft, #ff0); color: inherit; }
.lsearch-res .none { font-style: italic; }

/* v3.4 Rigtige indlejringer (klik-for-at-indlæse) */
.qt-screen.qt-live { display: block; padding: 0; background: #000; }
.qt-live iframe { display: block; width: 100%; height: 100%; border: 0; }
.qt.is-live .qt-ctl { justify-content: flex-end; }
.qt.is-live .qt-ctl a { color: inherit; }
.lembed-frame { border: 1px solid #111; box-shadow: 2px 2px 0 #111; background: #fff; margin: -6px 0 18px; max-width: 100%; }
.lembed-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.xw-player.xw-live { border: 0; background: transparent; }
.xw-player.xw-live iframe { display: block; border: 0; }
.xw-player .xw-link { margin: 8px 0 0; }

/* ===== v3.4.4 (Jeppe 26.10) /workspace/ + /kontorfaelleskab/: typografisk sammenhæng i info-blokken =====
   Brødtekst i kolonnerne = samme niveau som forplejnings-/tilkøbsrækkerne (Caslon 15/1.45); labels = mono-label-stilen; ordlyd uændret */
html body .live .wsinfo .wsi-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); grid-auto-flow: row dense; column-gap: 28px; row-gap: 22px; align-items: start; }
html body .live .wsinfo .wsi-grid > .wsi-sec:first-child { grid-row: span 2; }
html body .live .wsinfo .wsi-sec { border-top: 1px solid #111; padding-top: 10px; margin: 0; }
html body .live .wsinfo .wsi-h { margin: 0 0 10px !important; min-height: 0; }
html body .live .wsinfo :is(p, li) { font-family: var(--font-sans); font-size: 15px; line-height: 1.45; letter-spacing: 0; font-weight: 400; color: #000; }
html body .live .wsinfo p { margin: 0 0 8px; }
html body .live .wsinfo p:last-child { margin-bottom: 0; }
html body .live .wsinfo .wsi-list { margin: 0; padding-left: 1.05em; }
html body .live .wsinfo .wsi-list li { margin: 0; padding: 0 0 4px; }
html body .live .wsinfo .wsi-list li::marker { font-size: 0.9em; }
html body .live .wsinfo .wsi-chips li { font-family: var(--font-mono); font-size: 12px; line-height: 16px; color: #111; }
html body .live .wsi-lang .btn { font-size: 16px; padding: 2px 10px; min-height: 28px; }
@media (max-width: 620px) {
  html body .live .wsinfo .wsi-grid { grid-template-columns: minmax(0, 1fr); row-gap: 18px; }
  html body .live .wsinfo .wsi-grid > .wsi-sec:first-child { grid-row: auto; }
}
/* v3.4.4 (Jeppe 26.10): formular-vinduet i højre kolonne blev klippet i højre side, når vinduet var flyttet/ændret (aside har overflow:auto).
   Flyttet/ændret vindue → kolonnen klipper ikke længere; formularfelter kan aldrig blive bredere end vinduet */
.rq-side:has(> .win:is(.is-moved, .dt-sized, .dt-zoomed)) { overflow: visible; max-height: none; }
.rq-side .form, .rq-side .form label, .rq-side .form :is(input, select, textarea, button) { max-width: 100%; min-width: 0; box-sizing: border-box; }
.rq-side .wfoot { flex-wrap: wrap; min-width: 0; }
.rq-side .wfoot > span { white-space: normal; }

/* v3.4.5 pr.-person-tilkøb (frugtskål): til/fra-boks i stedet for antal; antal = «Antal personer» */
.xt-tg { cursor: pointer; }
.xt-c { -webkit-appearance: none; appearance: none; width: 28px; height: 28px; margin: 0; border: 0; background: #fff; cursor: pointer; display: block; border-radius: 0; }
.xt-c:checked { background: #111 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3 3 7-7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='square'/%3E%3C/svg%3E") center / 16px no-repeat; }
.xt-c:focus-visible { outline: 2px solid #111; outline-offset: 2px; }
.form input[aria-invalid="true"] { border-color: var(--accent, #c00) !important; box-shadow: 0 0 0 2px var(--accent, #c00) !important; }
.form label.is-need { color: var(--accent, #c00); }
/* v3.4.5 Spotify-afspilleren på iPhone: iOS Safari lader iframes vokse til indholdets bredde -> width:1px + min-width:100% */
.xw-player.xw-live { max-width: 100%; min-width: 0; overflow: hidden; border-radius: 12px; }
.xw-player.xw-live iframe { width: 1px !important; min-width: 100% !important; max-width: 100% !important; box-sizing: border-box; }
.xspot .xw-body, .xspot .xw-body > * { min-width: 0; max-width: 100%; }
@media (max-width: 480px) { .xspot .xw-body { padding: 10px; } }

/* v3.5 Catering i formularen (Jeppe 26.10): harmonikaen ER formularens FORPLEJNING – én gang, i højre spalte */
.form fieldset.cf-acc { padding: 0; border: 0; margin: 0; min-width: 0; }
.form fieldset.cf-acc > legend { padding: 0 0 4px; }
.form .cf-acc .cater { margin: 0; box-shadow: 2px 2px 0 var(--ink, #000); }
html body .form .cf-acc .cater-i > summary { grid-template-columns: 16px 10px minmax(0, 1fr) auto; column-gap: 8px; }
html body .form .cf-acc .cater-i.cater-x > summary,
html body .form .cf-acc .cater-i:not([data-k]) > summary { grid-template-columns: 10px minmax(0, 1fr) auto; }
html body .form .cf-acc input.cf-dot { width: 16px; height: 16px; min-height: 0; padding: 0; margin: 0; align-self: center; accent-color: #000; cursor: pointer; }
html body .form .cf-acc .cf-none { display: grid; grid-template-columns: 16px 1fr; gap: 8px; align-items: center; padding: 7px 10px; margin: 0;
  border-bottom: 1px solid var(--ink, #000); text-transform: none; letter-spacing: 0; color: #000; font-weight: 400; cursor: pointer; }
html body .form .cf-acc .cf-none input { width: 16px; height: 16px; min-height: 0; padding: 0; margin: 0; accent-color: #000; }
html body .form .cf-acc .cf-none.on, html body .form .cf-acc .cater-i.on > summary { background: var(--ink, #000); color: var(--paper, #fff); }
html body .form .cf-acc .cater-i.on > summary svg.tri { fill: var(--paper, #fff); }
html body .form .cf-acc .cf-none.on input, html body .form .cf-acc .cater-i.on > summary input.cf-dot { accent-color: #fff; }
html body .form .cf-acc .cater-i.on .cater-pick a { background: var(--ink, #000); color: var(--paper, #fff); }
html body .form .cf-acc .cater-b { padding: 10px 10px 10px 34px; }
html body .form .cf-acc .cater-x .cater-b { padding: 6px 10px 10px; }
/* Extras i formularen: tæller og flueben må ikke arve formularens 100 %-input */
html body .form .cf-acc .xt-q { width: 34px; min-height: 0; height: 28px; padding: 0; font-size: 13px; text-align: center; }
html body .form .cf-acc .xt-c { width: 28px; min-height: 0; height: 28px; padding: 0; }
html body .form .cf-acc label.xt-st { display: inline-flex; gap: 0; color: inherit; text-transform: none; letter-spacing: 0; }
html body .form .cf-acc .xtra { margin: 0; padding: 0; list-style: none; }
/* smal kolonne (højre spalte ≥1000px) og mobil: pris under navnet */
html body .rq-side .form .cf-acc .cater-i > summary { grid-template-columns: 16px 10px minmax(0, 1fr); row-gap: 2px; }
html body .rq-side .form .cf-acc .cater-i > summary .cater-p { grid-column: 3; text-align: left; }
html body .rq-side .form .cf-acc .cater-i.cater-x > summary { grid-template-columns: 10px minmax(0, 1fr) auto; }
html body .rq-side .form .cf-acc .cater-i.cater-x > summary .cater-p { grid-column: auto; text-align: right; }
html body .rq-side .form .cf-acc .cater-b { padding: 10px 8px 10px 30px; }
@media (max-width: 620px) {
  html body .form .cf-acc .cater-i > summary { grid-template-columns: 16px 10px minmax(0, 1fr); row-gap: 2px; }
  html body .form .cf-acc .cater-i > summary .cater-p { grid-column: 3; text-align: left; }
  html body .form .cf-acc .cater-i.cater-x > summary { grid-template-columns: 10px minmax(0, 1fr) auto; }
  html body .form .cf-acc .cater-i.cater-x > summary .cater-p { grid-column: auto; text-align: right; }
  html body .form .cf-acc .cater-b { padding: 10px 8px 10px 30px; }
}
/* v3.5.1 smal højre spalte: tilkøbsnavn over pris */
html body .rq-side .form .cf-acc .xt-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
html body .rq-side .form .cf-acc .xt-t .xt-p { white-space: normal; }

/* ===== v3.6 Typografi-konsistens: alt mappes til 3 niveauer + mono-label + mono-meta + noter + fælles rækkestil =====
   Overskrift   ChiKareGo2 32/40   (h1)                 – var(--t1-*)
   Underoverskr ChiKareGo2 24/30   (h2/h3/h4, p.ph)     – var(--t2-*)
   Brødtekst    Libre Caslon 17/26 (mobil 16/24)        – var(--t3-*)
   Mono-label   Plex Mono 600 UC 14/18 (mobil 13/17)    – p.rub og alle sektion-/kort-labels
   Mono-meta    Plex Mono 600 UC 11/16                  – feltetiketter, tællere, kickers
   Note         Libre Caslon 14/20                      – .note/.small/prisforbehold
   Række        navn Libre Caslon 15/22 · værdi/pris Plex Mono 13/18 (tabular) */
:root { --lbl-size: 14px; --lbl-lh: 18px; --row-size: 15px; --row-lh: 22px; --val-size: 13px; --val-lh: 18px; --note-size: 14px; --note-lh: 20px; --meta-size: 11px; --meta-lh: 16px; }
@media (max-width: 620px) { :root { --lbl-size: 13px; --lbl-lh: 17px; } }

/* Mono-label */
html body:not(#_) .live p.rub, html body:not(#_) .live p.rub strong, html body:not(#_) .live p.rubb > strong:first-child, html body:not(#_) .live .wsinfo .wsi-h,
html body:not(#_) .live .grid3 figure.limg figcaption p.rub, html body:not(#_) .live .grid3.plist figure.limg figcaption p.rub,
html body:not(#_) .cater-b .ct-l, html body:not(#_) .form .cf-box .ct-l, html body:not(#_) .cater-b > p.ct-h, html body:not(#_) .form .cf-box p.ct-h,
html body:not(#_) .card .cap, html body:not(#_) .card a.cap, html body:not(#_) .desk .card .cap * :not(small) {
  font-family: var(--font-mono) !important; font-size: var(--lbl-size) !important; line-height: var(--lbl-lh) !important;
  font-weight: 600 !important; letter-spacing: var(--meta-ls, .06em) !important; text-transform: uppercase !important; font-style: normal !important; }

/* Mono-meta */
html body:not(#_) .form label:not(.cf-o):not(.cf-none):not(.xt-st):not(:has(> input[type=radio])):not(:has(> input[type=checkbox])), html body:not(#_) .form legend,
html body:not(#_) .kicker, html body:not(#_) .fg-count, html body:not(#_) .g-count, html body:not(#_) .card .cap small, html body:not(#_) main small:not(.cater-p),
html body:not(#_) .proto-note, html body:not(#_) .ads b:not(.cater-n b), html body:not(#_) .lb-facts b, html body:not(#_) .facts b, html body:not(#_) form label.f-row {
  font-family: var(--font-mono) !important; font-size: var(--meta-size) !important; line-height: var(--meta-lh) !important;
  font-weight: 600 !important; letter-spacing: var(--meta-ls, .06em) !important; text-transform: uppercase !important; }

/* Noter */
html body:not(#_) main :is(p, span, div).note, html body:not(#_) main :is(p, span, div).small, html body:not(#_) .form .note, html body:not(#_) .rq-side .small,
html body:not(#_) .note-after, html body:not(#_) .f-note, html body:not(#_) .xf-note, html body:not(#_) .cater-b p.small, html body:not(#_) .live p.small {
  font-family: var(--font-sans) !important; font-size: var(--note-size) !important; line-height: var(--note-lh) !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; }
html body:not(#_) main :is(p.note, p.small) a { font: inherit !important; }

/* Rækker: navn */
html body:not(#_) .cater-n, html body:not(#_) .cater-n b, html body:not(#_) .cater-i > summary, html body:not(#_) .form .cf-n, html body:not(#_) .form .cf-o,
html body:not(#_) .xt-n, html body:not(#_) .xt-t, html body:not(#_) .cater-b p:not(.ct-h):not(.cater-pick):not(.small), html body:not(#_) .cater-b li,
html body:not(#_) .form label:has(> input[type=radio]), html body:not(#_) .form label:has(> input[type=checkbox]):not(.xt-st),
html body:not(#_) .live .wsinfo .wsi-list li, html body:not(#_) .live ul.checks li {
  font-family: var(--font-sans) !important; font-size: var(--row-size) !important; line-height: var(--row-lh) !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; }
html body:not(#_) .cater-b p .ct-l { line-height: var(--lbl-lh) !important; }
/* Rækker: værdi/pris */
html body:not(#_) .cater-p, html body:not(#_) .form .cf-p, html body:not(#_) .xt-p, html body:not(#_) .price, html body:not(#_) main p.mono, html body:not(#_) main p.mono.small,
html body:not(#_) .live .wsinfo .wsi-chips li, html body:not(#_) .tbl td.num {
  font-family: var(--font-mono) !important; font-size: var(--val-size) !important; line-height: var(--val-lh) !important; font-weight: 400 !important; letter-spacing: 0 !important; font-variant-numeric: tabular-nums; text-transform: none !important; }

/* Kort-tekst på annonce-/oversigtssider følger rækkestilen */
html body:not(#_) .card :is(p, li):not(.cap):not(.note):not(.small):not(.mono) { font-family: var(--font-sans) !important; font-size: var(--row-size) !important; line-height: var(--row-lh) !important; font-weight: 400 !important; }

/* Brødtekst: rette linjehøjde-afvigelser (fx FAQ-spørgsmål) */
html body:not(#_) main details > summary:not(.cater-i > summary):not(.fhelp summary) { font-family: var(--font-sans); font-size: var(--t3-size) !important; line-height: var(--t3-lh) !important; font-weight: 700 !important; }

/* Overskrifter i komponenter der var undtaget (live-sider uden .desk) */
html body:not(#_) .live :is(h2:not(.wtitle):not(.wsi-h), h3, h4):not(:is(.form, .cater, .titlebar, .ap, .card, .tbl) *) { font-family: var(--font-chrome) !important; font-size: var(--t2-size) !important; line-height: var(--t2-lh) !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; }
html body:not(#_) .live h1:not(:is(.titlebar, .ap, .card) *) { font-family: var(--font-chrome) !important; font-size: var(--t1-size) !important; line-height: var(--t1-lh) !important; font-weight: 400 !important; }

/* UI-chrome (knapper, vinduestitler, galleri-navne, billedtekster): én størrelse 16/20 */
html body:not(#_) .btn, html body:not(#_) .btn.sm, html body:not(#_) a.btn.sm.ap-ext, html body:not(#_) .fg-v, html body:not(#_) .fgal .fg-all, html body:not(#_) .fg-name, html body:not(#_) .wtitle,
html body:not(#_) .lcard figcaption, html body:not(#_) .xt-b { line-height: 20px !important; }
html body:not(#_) .btn:not(.sm), html body:not(#_) .fg-v, html body:not(#_) .fgal .fg-all, html body:not(#_) .wtitle, html body:not(#_) .lcard figcaption { font-size: 16px !important; }
html body:not(#_) .xt-b { font-size: 16px !important; }

/* v3.6 b: resterende afvigere */
html body:not(#_) .wfoot, html body:not(#_) .wfoot span { font-size: var(--meta-size) !important; line-height: var(--meta-lh) !important; }
html body:not(#_) .qt-bar span, html body:not(#_) .fgal .fg-prev, html body:not(#_) .fgal .fg-next, html body:not(#_) .fg-name { font-size: 16px !important; line-height: 20px !important; }
/* v3.9.52: mobil Finder-galleri-filnavne (.fg-name) – 16px !important ovenfor er for stort under ~thumbs på 390px */
@media (max-width: 599px) {
  html body:not(#_) .fg-name {
    font-family: var(--font-mono) !important;
    font-size: 10px !important;
    line-height: 12px !important;
    letter-spacing: 0 !important;
    text-align: center;
    white-space: normal !important;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden !important;
    text-overflow: ellipsis;
    max-width: 100%;
    word-break: break-word;
    overflow-wrap: anywhere;
    padding: 0 1px !important;
  }
}

html body:not(#_) .measure b { font-family: var(--font-mono) !important; font-size: var(--meta-size) !important; line-height: var(--meta-lh) !important; font-weight: 600 !important; letter-spacing: var(--meta-ls, .06em) !important; text-transform: uppercase !important; }
html body:not(#_) .measure > div > div, html body:not(#_) .measure div:not(:has(*)) { font-family: var(--font-mono) !important; font-size: var(--val-size) !important; line-height: var(--val-lh) !important; font-weight: 400 !important; }
html body:not(#_) .sec-item .sec-t { font-family: var(--font-chrome) !important; font-size: 16px !important; line-height: 20px !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; }
html body:not(#_) .tbl td, html body:not(#_) .tbl th:not(thead th), html body:not(#_) .live .wsinfo .wsi-sec p { font-family: var(--font-sans); font-size: var(--row-size) !important; line-height: var(--row-lh) !important; }
html body:not(#_) .tbl td.num { font-family: var(--font-mono) !important; font-size: var(--val-size) !important; line-height: var(--row-lh) !important; }
html body:not(#_) .badge, html body:not(#_) li.badge { font-size: var(--meta-size) !important; line-height: var(--meta-lh) !important; }
html body:not(#_) .card p.ph, html body:not(#_) .card p.ph strong { font-family: var(--font-sans) !important; font-size: var(--row-size) !important; line-height: var(--row-lh) !important; font-weight: 700 !important; }
html body:not(#_) .sec-sub { font-size: var(--meta-size) !important; line-height: var(--meta-lh) !important; }
html body:not(#_) .tbl td.num { line-height: var(--val-lh) !important; }
html body:not(#_) .fgal .fg-cnt, html body:not(#_) .fgal .fg-fn { font-size: 16px !important; line-height: 20px !important; }
html body:not(#_) .measure > div { font-family: var(--font-mono) !important; font-size: var(--val-size) !important; line-height: var(--val-lh) !important; font-weight: 400 !important; }
/* ---------- i18n: DA / EN sprogskifter (øverst til højre i menubjælken) ---------- */
.langsw { display: flex; align-items: center; gap: 2px; padding: 0 10px; border-left: 1px solid #111; font-size: 13px; letter-spacing: 0.06em; white-space: nowrap; }
.langsw a, .langsw .ls-cur { display: inline-flex; align-items: center; min-height: 28px; padding: 0 5px; text-decoration: none; }
.langsw a:hover, .langsw a:focus-visible { background: #111; color: #fff; }
.langsw .ls-cur { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.langsw .ls-sep { color: var(--muted); }
@media (max-width: 620px) { .langsw { padding: 0 6px; font-size: 14px; } .langsw a, .langsw .ls-cur { min-height: 40px; padding: 0 6px; } }

/* ===== v3.7.2 Spotify (Jeppe 27.10): tekst + afspiller i galleri-vindue, halv bredde, venstrestillet (tag-sky droppet) ===== */
.live .xspot { margin: 0 0 var(--sp-4); min-width: 0; }
.xspot > .xw-text { margin: 0 0 12px; max-width: 62ch; }
.xspot .xsp-win { width: 50%; min-width: 320px; max-width: 100%; margin: 0; box-sizing: border-box; }
.xspot .xsp-win .xw-player.xw-live { padding: 10px; border-radius: 0; overflow: hidden; }
.xspot .xsp-win .xw-player.xw-live iframe { border-radius: 12px; }
.xspot .xsp-win .wfoot { display: flex; justify-content: flex-start; padding: 6px 10px; }
.xspot .xsp-win .wfoot .xw-link { margin: 0; }
.xspot > .ap-status { margin-top: 8px; }
@media (max-width: 699px) { .xspot .xsp-win { width: 100%; min-width: 0; } .xspot .xsp-win .xw-player.xw-live { padding: 6px; } }

/* ===== v3.7.2 Formular: tydelig valgt-tilstand, opgradering, rød/hvid-vin, opsummering ===== */
html body:not(#_) .cater-pick a.is-picked, html body:not(#_) .form .cf-acc .cater-i.on .cater-pick a.is-picked { background: #fff !important; color: #000 !important; border: 2px solid #000 !important; box-shadow: inset 0 0 0 1px #000 !important; font-weight: 700; }
html body .form .cf-acc .cater-i.on > summary .cater-n::after { content: " ✓"; }
.form .cf-up { display: flex; align-items: center; gap: 8px; margin: 6px 0 8px; padding: 6px 8px; border: 1px dashed #111; font-size: 14px; line-height: 1.3; cursor: pointer; }
.form .cf-up input { width: 18px; height: 18px; min-height: 0; margin: 0; flex: 0 0 auto; accent-color: #000; }
.form .cf-up.is-off { opacity: .45; cursor: default; }
.xt.xt-grp { border-bottom: 0; }
.xt.xt-sub { padding-left: 14px; }
.form .xf .xf-c { margin: 0 0 6px; }
.form .xf .xf-c li { font-weight: 700; border-bottom: 1px solid #111; }
.form .xf .xf-c li.xf-up { font-weight: 400; border-bottom: 1px dotted var(--kv-line, #999); }
.form .xf.flash { animation: xfflash .9s ease-out 1; }
@keyframes xfflash { 0% { background: #111; color: #fff; } 100% { background: transparent; } }
@media (prefers-reduced-motion: reduce) { .form .xf.flash { animation: none; } }
.rq-side > .win:last-child { margin-bottom: 8px; }

/* ===== v3.7.2 iPhone liggende: viewport-fit=cover + safe-area (notch/Dynamic Island) og paletten skal altid kunne nås ===== */
body { padding-left: env(safe-area-inset-left, 0px); padding-right: env(safe-area-inset-right, 0px); }
.tools { left: calc(8px + env(safe-area-inset-left, 0px)); max-height: calc(100vh - 72px); max-height: calc(100dvh - 72px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; }
.tools::-webkit-scrollbar { display: none; }
@media (max-width: 900px) { .tools { left: env(safe-area-inset-left, 0px); max-height: calc(100vh - 64px); max-height: calc(100dvh - 64px); } }
.cta-bar { padding-left: env(safe-area-inset-left, 0px); padding-right: env(safe-area-inset-right, 0px); }
@media (max-height: 520px) and (orientation: landscape) {
  .tools .tgrid a, .tools .tgrid button { height: 24px; }
  .tools .titlebar { min-height: 8px; }
  .tools { max-height: calc(100vh - 60px); max-height: calc(100dvh - 60px); }
}

/* v3.7.2 – smalle skærme (foldbar ydre skærm 344–360 px): lange danske ord i kort-tekster må ikke skubbe siden bredere */
.lgal.lcards figure.lcard, .lgal.lcards .lcard-a, .lgal.lcards .lcard-cap { min-width: 0; }
.lgal.lcards .lcard-cap > span:first-child { min-width: 0; overflow-wrap: anywhere; hyphens: auto; }

/* v3.7.2 – sidehero (figure.lbanner) på smalle skærme: højere billedformat og titelboks oven på billedets nederste del (som desktop/iPad) */
@container (max-width: 760px) {
  .lbanner img { aspect-ratio: 3 / 2; height: auto; max-height: 70svh; object-position: 50% 40%; }
  .lbanner .ldesc:not(.plain) { position: absolute; left: 10px; right: auto; bottom: 10px; max-width: calc(100% - 20px); margin: 0;
    border: 1px solid #111; border-top: 1px solid #111; box-shadow: 2px 2px 0 #111 !important; padding: 6px 10px; background: #fff; }
}
@container (max-width: 480px) { .lbanner img { aspect-ratio: 4 / 3; } }
@media (max-width: 760px) {
  .lbanner img { aspect-ratio: 3 / 2; height: auto; max-height: 70svh; object-position: 50% 40%; }
  .lbanner .ldesc:not(.plain) { position: absolute; left: 10px; right: auto; bottom: 10px; max-width: calc(100% - 20px); margin: 0;
    border: 1px solid #111; border-top: 1px solid #111; box-shadow: 2px 2px 0 #111 !important; padding: 6px 10px; background: #fff; }
}
@media (max-width: 480px) { .lbanner img { aspect-ratio: 4 / 3; } }
@media (min-width: 761px) and (max-width: 900px) {
  .lbanner img { aspect-ratio: 16 / 9; height: auto; max-height: 60svh; object-position: 50% 40%; }
  .lbanner .ldesc:not(.plain) { position: absolute; left: 10px; right: auto; bottom: 10px; max-width: calc(100% - 20px); margin: 0;
    border: 1px solid #111; border-top: 1px solid #111; box-shadow: 2px 2px 0 #111 !important; padding: 6px 10px; background: #fff; }
}

/* ---------- v3.7.4 Mobil-/iPad-menu som venstre panel (~50 % bredde) – siden forbliver synlig til højre ---------- */
@media (max-width: 1180px) {
  .mobil-menu .menu-pop {
    position: fixed; left: 0; right: auto; top: var(--mm-top, 46px); bottom: auto;
    width: clamp(210px, 50vw, 380px); min-width: 0;
    height: calc(100vh - var(--mm-top, 46px)); height: calc(100dvh - var(--mm-top, 46px)); max-height: none;
    overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
    border: 0; border-right: 2px solid #111; box-shadow: 4px 0 0 #111 !important;
    padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)); padding-left: env(safe-area-inset-left, 0px);
    box-sizing: border-box; z-index: 62;
  }
  .mobil-menu .menu-pop a, .mobil-menu .mm-folder { white-space: normal; overflow-wrap: anywhere; line-height: 1.25; }
  .mobil-menu .menu-pop a svg, .mobil-menu .mm-folder svg { flex: none; }
  .mm-scrim {
    position: fixed; top: var(--mm-top, 46px); right: 0; bottom: 0; left: 0; z-index: 61;
    background: rgba(255,255,255,.35); background-image: radial-gradient(rgba(17,17,17,.35) 1px, transparent 1px); background-size: 4px 4px;
    cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  html.mm-open .menubar { z-index: 58; }
}
@media (min-width: 1181px) { .mm-scrim { display: none; } }

/* ===== v3.7.6 (Jeppe 27.10 «mere luft i teksten, harmoniser det lidt – specielt det viste sidst på siden»)
   Genbrugelig rytme for mønstret «linje + mono-label + indhold» (wsi-sec, p.rubb, p.rub, hr.lhr). Kun afstande/linjehøjde – ordlyd uændret. */
:root { --lr-gap: 32px; --lr-pad: 14px; --lr-label-gap: 14px; --lr-label-lh: 20px; --lr-p-gap: 12px; --lr-chip-gap: 8px; }
@media (max-width: 620px) { :root { --lr-gap: 28px; --lr-pad: 13px; --lr-label-gap: 13px; --lr-label-lh: 19px; --lr-p-gap: 11px; } }
/* labels: lidt mere linjehøjde */
html body:not(#_):not(#__) .live :is(p.rub, p.rub strong, p.rubb > strong:first-child, .wsinfo .wsi-h) { line-height: var(--lr-label-lh) !important; }
/* workspace-infoblokken */
html body:not(#_):not(#__) .live .wsinfo .wsi-grid { row-gap: var(--lr-gap); }
html body:not(#_):not(#__) .live .wsinfo .wsi-sec { padding-top: var(--lr-pad); }
html body:not(#_):not(#__) .live .wsinfo .wsi-sec.wsi-full { margin-top: var(--lr-gap); }
html body:not(#_):not(#__) .live .wsinfo .wsi-h { margin: 0 0 var(--lr-label-gap) !important; }
html body:not(#_):not(#__) .live .wsinfo .wsi-sec > p { margin: 0 0 var(--lr-p-gap) !important; }
html body:not(#_):not(#__) .live .wsinfo .wsi-sec > p:last-child { margin-bottom: 0 !important; }
html body:not(#_):not(#__) .live .wsinfo .wsi-list li { padding-bottom: 7px; }
html body:not(#_):not(#__) .live .wsinfo .wsi-list li:last-child { padding-bottom: 0; }
/* kontaktlinjer som lille liste, fri af linjen nedenfor */
html body:not(#_):not(#__) .live .wsinfo .wsi-sec:has(a[href^="mailto"]) > p { margin-bottom: 8px !important; }
html body:not(#_):not(#__) .live .wsinfo .wsi-sec:has(a[href^="mailto"]) { padding-bottom: 6px; }
html body:not(#_):not(#__) .live .wsinfo a[href^="mailto"], html body:not(#_):not(#__) .live .wsinfo a[href^="tel"] { text-underline-offset: 3px; }
/* tag-chips */
html body:not(#_):not(#__) .live .wsinfo .wsi-chips { gap: var(--lr-chip-gap); }
html body:not(#_):not(#__) .live .wsinfo .wsi-chips li { padding: 5px 10px; }
/* samme mønster andre steder: label med linje under (p.rubb), rub-labels og vandrette linjer */
html body:not(#_):not(#__) .live p.rubb > strong:first-child { margin-top: var(--lr-gap); padding-bottom: 8px; margin-bottom: var(--lr-label-gap); }
html body:not(#_):not(#__) .live .lb.txt > p.rubb:first-child > strong:first-child { margin-top: 0; }
html body:not(#_):not(#__) .live p.rub { padding-bottom: 8px; margin-bottom: var(--lr-label-gap); }
html body:not(#_):not(#__) .live hr.lhr { margin: var(--lr-gap) 0; }

/* ===== TYPE-MOCKUP (branch type-helvetica, kun preview): Helvetica-agtig grotesk i stedet for ChiKareGo2-overskrifter + Libre Caslon-brødtekst
   Font: Inter 4.1 / Inter Display (Rasmus Andersson, SIL OFL 1.1), selv-hostet woff2, Latin-1-subset.
   Retro-krom (menubjælke, palette, vinduestitler, knapper) beholder ChiKareGo2; labels/priser beholder IBM Plex Mono.
   3 niveauer: 1 Overskrift Inter Display 700 34/38 (-0.025em) · 2 Underoverskrift Inter Display 700 22/28 (-0.015em) · 3 Brødtekst Inter 400 16/26 (mobil 15/24) */
@font-face { font-family: "Inter"; src: url(/fonts/Inter-Regular.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url(/fonts/Inter-Italic.woff2) format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Inter"; src: url(/fonts/Inter-SemiBold.woff2) format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url(/fonts/Inter-Bold.woff2) format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter Display"; src: url(/fonts/InterDisplay-Bold.woff2) format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
:root { --font-sans: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif; --font-head: "Inter Display", "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --t1-size: 34px; --t1-lh: 38px; --t2-size: 22px; --t2-lh: 28px; --t3-size: 16px; --t3-lh: 26px; --t2-mt: 30px; --t2-mb: 10px;
  --row-size: 15px; --row-lh: 22px; --note-size: 13.5px; --note-lh: 20px; --measure: 64ch; }
@media (max-width: 620px) { :root { --t1-size: 28px; --t1-lh: 32px; --t2-size: 20px; --t2-lh: 26px; --t3-size: 15px; --t3-lh: 24px; } }
html body:not(#_):not(#__) { font-feature-settings: "cv11" 1, "ss01" 0; -webkit-font-smoothing: antialiased; }
html body:not(#_):not(#__) :is(.desk, .live) h1:not(:is(.form, .cater, .cater-b, .rq-side, .xtra, .qt, .tbl, .sec-grid, .crumb, .menus, .titlebar, .badges, .ap, .g-strip, .gallery, .lgal, .wsi-chips, .wsinfo, .card, .xf, .cf, .rterms, .fhelp) *) { font-family: var(--font-head) !important; font-weight: 700 !important; font-size: var(--t1-size) !important; line-height: var(--t1-lh) !important;
  letter-spacing: -0.025em !important; -webkit-font-smoothing: antialiased !important; font-synthesis: none; }
html body:not(#_):not(#__) :is(.desk, .live) :is(h2:not(.wsi-h):not(.wtitle), h3, h4, p.ph, p.lead):not(:is(.form, .cater, .cater-b, .rq-side, .xtra, .qt, .tbl, .sec-grid, .crumb, .menus, .titlebar, .badges, .ap, .g-strip, .gallery, .lgal, .wsi-chips, .wsinfo, .card, .xf, .cf, .rterms, .fhelp) *) { font-family: var(--font-head) !important; font-weight: 700 !important; font-size: var(--t2-size) !important; line-height: var(--t2-lh) !important;
  letter-spacing: -0.015em !important; -webkit-font-smoothing: antialiased !important; font-synthesis: none; }
html body:not(#_):not(#__) :is(.desk, .live) :is(h1, h2:not(.wsi-h):not(.wtitle), h3, h4, p.ph, p.lead):not(:is(.form, .cater, .cater-b, .rq-side, .xtra, .qt, .tbl, .sec-grid, .crumb, .menus, .titlebar, .badges, .ap, .g-strip, .gallery, .lgal, .wsi-chips, .wsinfo, .card, .xf, .cf, .rterms, .fhelp) *) :is(strong, b, em, i, span, font) { font: inherit !important; font-weight: inherit !important; letter-spacing: inherit !important; }
html body:not(#_):not(#__) :is(.desk, .live) :is(p, li, dd, blockquote, figcaption):not(.rub):not(.rubb):not(.ph):not(.lead) { letter-spacing: 0; }
html body:not(#_):not(#__) main :is(p, li, dd) :is(strong, b) { font-weight: 600; }

/* v3.8.0 – lange knapper i .qdoc (fx /directions/) må ombryde på smalle skærme i stedet for at give vandret scroll */
@media (max-width:620px){
  html body:not(#_) .qdoc .btns .btn{white-space:normal;max-width:100%;text-align:center;height:auto}
}

/* v3.8.1 – palette-etiketten på touch er et link (samme mål som ikonet); usynligt trykfelt på min. 44 px, samme retro-udseende */
html body:not(#_) a.ptip { pointer-events: auto; cursor: pointer; text-decoration: none; color: #111; -webkit-tap-highlight-color: transparent; }
html body:not(#_) a.ptip::after { content: ""; position: absolute; left: -4px; right: -10px; top: 50%; height: 44px; margin-top: -22px; min-width: 44px; }
html body:not(#_) a.ptip:active { background: #111; color: #fff; }

/* v3.8.1 – videovinduer fylder hele indholdskolonnen på telefon/foldbar (≤699px); 16:9 + vindueskrom bevares, desktop uændret */
@media (max-width: 699px) {
  html body:not(#_) .live .lb:has(> figure.qt) { max-width: none; width: 100%; }
  html body:not(#_) .live .lb > figure.qt { width: 100%; max-width: none; }
}
/* v3.8.1 – videogitre (grid3/vgrid/vpair med video) er én kolonne op til 699px (også foldbar 600px), så hver video fylder bredden */
@media (max-width: 699px) {
  html body:not(#_) .live :is(.grid3, .vgrid):has(figure.qt) { grid-template-columns: 1fr; }
  html body:not(#_) .live .vpair { grid-template-columns: 1fr; grid-template-rows: none; row-gap: var(--sp-3); }
  html body:not(#_) .live .vpair > .vcol { display: block; grid-row: auto; }
}
/* v3.8.1 – ingen automatisk orddeling: ord ombrydes hele; dag-/tidsintervaller holdes samlet (span.nw fra _wording.py) */
html body:not(#_) .nw { white-space: nowrap; }
html body:not(#_) .lgal.lcards .lcard-cap > span:first-child { -webkit-hyphens: manual; hyphens: manual; overflow-wrap: break-word; }
html body:not(#_) .live, html body:not(#_) .desk { -webkit-hyphens: manual; hyphens: manual; }
/* v3.8.1 – footer: åbningstider som en skarp to-kolonne-tabel (dage | tider), tabulære tal, ingen tynd/sløret mono */
html body:not(#_) .foot .foot-oh { display: grid; grid-template-columns: 1fr auto; column-gap: 16px; align-items: baseline; max-width: 22rem;
  margin: 0 0 var(--sp-2); padding: 6px 0; border-top: 1px solid #111; border-bottom: 1px solid #111;
  font-family: inherit; font-size: var(--fs-s); line-height: 1.45; font-weight: 500; color: #111;
  font-variant-numeric: tabular-nums lining-nums; font-feature-settings: "tnum" 1, "lnum" 1; -webkit-font-smoothing: antialiased; }
html body:not(#_) .foot .foot-oh .oh-d { justify-self: start; }
html body:not(#_) .foot .foot-oh .oh-t { justify-self: end; text-align: right; white-space: nowrap; }
/* v3.8.1 – "Find us here"/"Find os her" som tydelig retro-knap med kortnål (CSS/SVG, ingen ny tekst), ≥44px trykflade */
html body:not(#_) .foot .foot-links a[href*="maps.google"] { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; box-sizing: border-box;
  padding: 0 14px 0 10px; margin: 0 0 8px; border: 1px solid #111; background: #fff; color: #111; text-decoration: none; font-weight: 600;
  box-shadow: 2px 2px 0 #111; -webkit-tap-highlight-color: transparent; }
html body:not(#_) .foot .foot-links a[href*="maps.google"]::before { content: ""; flex: none; width: 16px; height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' shape-rendering='crispEdges'%3E%3Cpath d='M5 1h6v1h1v1h1v5h-1v2h-1v2h-1v2H9v2H7v-2H6v-2H5v-2H4V8H3V3h1V2h1z' fill='%23111'/%3E%3Cpath d='M7 4h2v1h1v2H9v1H7V7H6V5h1z' fill='%23fff'/%3E%3C/svg%3E") no-repeat center / 16px 16px; }
html body:not(#_) .foot .foot-links a[href*="maps.google"]::after { content: ""; flex: none; width: 8px; height: 8px; margin-left: 2px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8' shape-rendering='crispEdges'%3E%3Cpath d='M2 0h1v1h1v1h1v1h1v2H5v1H4v1H3v1H2V6h1V5h1V3H3V2H2z' fill='%23111'/%3E%3C/svg%3E") no-repeat center / 8px 8px; }
@media (hover: hover) {
html body:not(#_) .foot .foot-links a[href*="maps.google"]:hover { background: #111; color: #fff; text-decoration: none; }
html body:not(#_) .foot .foot-links a[href*="maps.google"]:hover::before, html body:not(#_) .foot .foot-links a[href*="maps.google"]:hover::after { filter: invert(1); }
}
html body:not(#_) .foot .foot-links a[href*="maps.google"]:active { transform: translate(2px, 2px); box-shadow: none; }
html body:not(#_) .foot .foot-links a[href*="maps.google"]:focus-visible { outline: 2px solid #111; outline-offset: 2px; }
html body:not(#_) .foot .foot-links a[href*="maps.google"] + br { display: none; }
html body:not(#_) .foot .foot-links a[href*="findsmiley"] { display: block; }
@media (max-width: 699px) { html body:not(#_) .foot .foot-in > .fcol:nth-child(2) { grid-column: 1 / -1; } }
/* v3.8.1 – Workspace-hero (EN /workspace/, DA /da/kontorfaelleskab/) på telefon/foldbar: beskæring flyttet mod venstre, så personen ved skrivebordet er med (desktop uændret) */
@media (max-width: 760px) {
  html:has(link[rel="canonical"][href$="/workspace/"], link[rel="canonical"][href$="/kontorfaelleskab/"]) body:not(#_) .lbanner img[src*="office-hotel-8c1d5f1e"] { object-position: 14% 40%; }
}
/* v3.8.1 – Kaffe- og vinbar: åbningstidslinjen på én linje under h1 (ombrydes kun før "[…]"), lidt luft til brødteksten */
html body:not(#_) .live .cafe-hours { margin: 4px 0 var(--sp-2); line-height: 1.4; }
html body:not(#_) .live .cafe-hours .ch-a, html body:not(#_) .live .cafe-hours .ch-b { white-space: nowrap; }
@media (max-width: 699px) { html body:not(#_):not(#__):not(#___) .live p.cafe-hours, html body:not(#_):not(#__):not(#___) .live p.cafe-hours em { font-size: clamp(12px, 3.08vw, 15px) !important; letter-spacing: -0.005em; } }
/* v3.8.1 – Spotify-blokken lige under billedgalleriet: tekst over, playliste under, fast mellemrum */
html body:not(#_) .live .cafe-spot { margin-top: var(--sp-3); }
html body:not(#_) .live .cafe-spot .cafe-spot-txt { margin: 0 0 var(--sp-2); }
html body:not(#_) .live .cafe-spot .xspot { margin: 0; max-width: 720px; }

/* ---------- v3.8.2 – sidehero-titelboks i QuarkXPress-stil, variant C (valgt af Jeppe 27.10): sort boks, hvid tekst, forskudt konturskygge, hvide håndtag, side-fane "1" ----------
   Gælder alle figure.lbanner med .ldesc (ikke .plain), EN+DA. Teksten er uændret; "1" er dekoration (kun CSS content). */
html:not(.no-hq) body:not(#_):not(#__):not(#___) .lbanner { overflow: hidden; }
html:not(.no-hq) body:not(#_):not(#__):not(#___) .lbanner .ldesc:not(.plain) {
  z-index: 3; background: #111 !important; color: #fff !important; border: 1px solid #111 !important; overflow: visible; padding: 12px 18px 14px;
  box-shadow: 8px 8px 0 0 #fff, 8px 8px 0 1px #111 !important; }
html:not(.no-hq) body:not(#_):not(#__):not(#___) .lbanner .ldesc:not(.plain) p.ph,
html:not(.no-hq) body:not(#_):not(#__):not(#___) .lbanner .ldesc:not(.plain) p.ph strong,
html:not(.no-hq) body:not(#_):not(#__):not(#___) .lbanner .ldesc:not(.plain) > p {
  font-family: "Inter Display", "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif !important; font-weight: 700 !important; color: #fff !important;
  font-size: clamp(21px, calc(2.6vw + 11px), 36px) !important; line-height: 1.08 !important; letter-spacing: -0.025em !important; text-transform: none !important; margin: 0 !important;
  border: 0 !important; background: transparent !important; overflow: visible !important; padding: 0 !important; box-shadow: none !important; }
html:not(.no-hq) body:not(#_):not(#__):not(#___) .lbanner .ldesc:not(.plain)::before {
  content: ""; position: absolute; inset: -5px; pointer-events: none;
  background:
    linear-gradient(#fff,#fff) left 1px top 1px/7px 7px no-repeat, linear-gradient(#fff,#fff) left 50% top 1px/7px 7px no-repeat, linear-gradient(#fff,#fff) right 1px top 1px/7px 7px no-repeat,
    linear-gradient(#fff,#fff) left 1px top 50%/7px 7px no-repeat, linear-gradient(#fff,#fff) right 1px top 50%/7px 7px no-repeat,
    linear-gradient(#fff,#fff) left 1px bottom 1px/7px 7px no-repeat, linear-gradient(#fff,#fff) left 50% bottom 1px/7px 7px no-repeat, linear-gradient(#fff,#fff) right 1px bottom 1px/7px 7px no-repeat,
    linear-gradient(#111,#111) left top/9px 9px no-repeat, linear-gradient(#111,#111) 50% top/9px 9px no-repeat, linear-gradient(#111,#111) right top/9px 9px no-repeat,
    linear-gradient(#111,#111) left 50%/9px 9px no-repeat, linear-gradient(#111,#111) right 50%/9px 9px no-repeat,
    linear-gradient(#111,#111) left bottom/9px 9px no-repeat, linear-gradient(#111,#111) 50% bottom/9px 9px no-repeat, linear-gradient(#111,#111) right bottom/9px 9px no-repeat; }
html:not(.no-hq) body:not(#_):not(#__):not(#___) .lbanner .ldesc:not(.plain)::after {
  content: "1"; position: absolute; left: -1px; bottom: calc(100% + 6px); pointer-events: none;
  font: 600 10px/1 "IBM Plex Mono", monospace; letter-spacing: 0; color: #111; background: #fff; border: 1px solid #111; padding: 3px 7px; }
@media (min-width: 901px) {
  html:not(.no-hq) body:not(#_):not(#__):not(#___) .lbanner .ldesc:not(.plain) { max-width: min(820px, calc(100% - 60px)) !important; } }
@media (max-width: 900px) {
  html:not(.no-hq) body:not(#_):not(#__):not(#___) .lbanner .ldesc:not(.plain) { left: 14px !important; bottom: 20px !important; max-width: calc(100% - 36px) !important; padding: 9px 13px 10px; } }

/* ---------- v3.8.3 – flydende indholdsbredde på iPad/desktop (Jeppe 28.10.2026: "meget hvidt over til højre")
   Løsning: QuarkXPress-spalter. Indholdsvinduet fyldte allerede bredden; det var brødtekst (62ch) og enkeltvideoer
   (maks. 66 %) der stod smalt i venstre side. Når selve vinduets indholdsfelt er bredere end 840px (beholder-relativt,
   via 100 %-formlen – ikke enhedsbreakpoints), sættes længere tekstblokke (.tcols, markeret i _livepages.py) i to
   spalter med hårstreg, enkeltvideoer får fuld bredde (dog altid inden for skærmhøjden), og to videoer i træk står
   side om side (.vrow, flydende kolonner). Under 701px viewport (iPhone/foldbar) er alt uændret. */
@media (min-width: 701px) {
  html body:not(#_):not(#__):not(#___) .live .lb.txt.tcols {
    max-width: max(var(--measure), (100% - 840px) * 999) !important;
    column-width: 400px; column-count: 2; column-gap: 44px; column-rule: 1px solid #111;
    orphans: 2; widows: 2;
  }
  html body:not(#_):not(#__):not(#___) .live .lb.txt.tcols > :is(h1, h2, blockquote, p.cafe-hours) { column-span: all; }
  html body:not(#_):not(#__):not(#___) .live .lb.txt.tcols > :is(h3, h4) { break-after: avoid; }
  html body:not(#_):not(#__):not(#___) .live .lb.txt.tcols > blockquote { margin-bottom: var(--sp-4); }
  html body:not(#_):not(#__):not(#___) .live .lb.txt.tcols { container: tcols / inline-size; }
  html body:not(#_):not(#__):not(#___) .live .lb:has(> figure.qt:only-child):not(.vfeat) {
    max-width: max(min(66%, 62ch), min(100%, (100% - 840px) * 999, (100svh - 230px) * 1.7778)) !important;
  }
  html body:not(#_):not(#__):not(#___) .live .vgrid > .lb:has(> figure.qt:only-child) { max-width: none !important; }
  /* .vrow: videoer med plakat i træk – flydende kolonner (min. 360px pr. video), ingen enhedsbreakpoints */
  html body:not(#_):not(#__):not(#___) .live .vrow { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: var(--sp-3) var(--sp-4); align-items: start; margin: 0 0 var(--sp-3); }
  html body:not(#_):not(#__):not(#___) .live .vrow > .lspacer { display: none; }
  html body:not(#_):not(#__):not(#___) .live .vrow > .lb:is(.lb, :has(> figure.qt)):not(.vfeat) { margin: 0; min-width: 0; max-width: none !important; }
  html body:not(#_):not(#__):not(#___) .live .vrow .qt { margin: 0; width: 100%; }
}
/* under 701px: .vrow er usynlig for layoutet – videoerne står præcis som før */
.live .vrow { display: contents; }
@container tcols (min-width: 841px) {
  /* kun når blokken faktisk står i to spalter (> 840px). v3.8.4 (Jeppe 28.10 «brødteksten er nogle steder ikke venstre stillet»):
     ingen indrykning – alt venstrestillet med normal afsnitsafstand (kun margin-bottom, så toppen af spalte 2 flugter) */
  html body:not(#_):not(#__):not(#___) .live .lb.txt.tcols > p { margin: 0 0 var(--t3-mb) !important; text-indent: 0 !important; }
  html body:not(#_):not(#__):not(#___) .live .lb.txt.tcols > p.cafe-hours { margin: 0 0 var(--sp-3) !important; }
  html body:not(#_):not(#__):not(#___) .live .lb.txt.tcols > :is(h1, h2) { margin-bottom: var(--sp-3); }
  html body:not(#_):not(#__):not(#___) .live .lb.txt.tcols > p + :is(p.rub, p.rubb) { margin-top: .75em !important; }
}

/* v3.8.8 Takkeside: «Din forespørgsel» i højre side (to kolonner fra 900 px, ellers under beskeden) + print kun af forespørgslen */
.tq-grid { display: grid; gap: var(--sp-3, 16px); align-items: start; }
@media (min-width: 900px) { .tq-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.tq-grid > .win { margin-top: 0; margin-bottom: 0; }
.tq-ph { display: none; }
.tq .tq-h { margin: 0 0 8px; }
.tq .tq-dl { margin: 0 0 10px; }
.tq .tq-dl > div { display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 1fr); gap: 8px; padding: 3px 0; border-bottom: 1px dotted var(--kv-line, #999); font-size: 14px; line-height: 1.35; }
.tq .tq-dl dt { font-weight: 700; }
.tq .tq-dl dd { margin: 0; overflow-wrap: anywhere; }
.tq .tq-l { list-style: none; margin: 0; padding: 0; }
.tq .tq-l li { display: flex; justify-content: space-between; gap: 8px; font-family: var(--font-mono); font-size: 13px; line-height: 16px; padding: 3px 0; border-bottom: 1px dotted var(--kv-line, #999); align-items: baseline; }
.tq .tq-l li::marker { content: none; }
.tq .tq-l .xf-s { font-size: 12px; white-space: nowrap; text-align: right; }
.tq .tq-sub, .tq .tq-tot { margin: 6px 0 0; font-size: 14px; line-height: 1.3; }
.tq .tq-hint { margin: 4px 0 0; }
.tq .tq-btns { margin-top: 12px; }
@media print {
  @page { margin: 16mm; }
  body.has-tq > *:not(main), body.has-tq main > *:not(.tq-grid), body.has-tq .tq-grid > *:not(.tq-win), body.has-tq .tq-win > .titlebar, body.has-tq .tq-btns { display: none !important; }
  body.has-tq, body.has-tq main { background: #fff !important; padding: 0 !important; margin: 0 !important; }
  body.has-tq .tq-grid { display: block !important; }
  body.has-tq .tq-win { border: 0 !important; box-shadow: none !important; transform: none !important; position: static !important; max-width: none !important; width: auto !important; background: #fff !important; }
  body.has-tq .tq-win .wbody { padding: 0 !important; border: 0 !important; }
  body.has-tq .tq-ph { display: block; margin: 0 0 14px; padding-bottom: 8px; border-bottom: 2px solid #000; font-size: 12px; line-height: 1.35; }
  body.has-tq .tq-ph h2 { margin: 0 0 4px; font-size: 18px; }
  body.has-tq .tq-ph p { margin: 0 0 2px; }
  body.has-tq .tq, body.has-tq .tq * { color: #000 !important; }
  body.has-tq .tq-l li, body.has-tq .tq-dl > div { break-inside: avoid; }
}

/* v3.9.7 – forsidens hero: Vimeo-baggrundsvideo oven på stillbilledet (poster/fallback). Cover-beskæring af 16:9 i
   heroens eksisterende ramme via container-enheder; usynlig til Vimeo melder "play"; ingen klik/fokus. */
.lbanner .lvideo { position: absolute; inset: 0; overflow: hidden; pointer-events: none; opacity: 0; transition: opacity .8s ease; container-type: size; background: transparent; }
.lbanner .lvideo.on { opacity: 1; }
.lbanner .lvideo iframe { position: absolute; left: 50%; top: 50%; border: 0; transform: translate(-50%, -50%);
  width: max(100cqw, 177.78cqh); height: max(100cqh, 56.25cqw); }
@media (prefers-reduced-motion: reduce) { .lbanner .lvideo { display: none; } }

/* ===== v3.9.11 «Dit valg / Your selection»: højre kolonne + sticky når formularen er ≥ 600 px bred (klassen .xf-side sættes af site.js via ResizeObserver); smallere = som før (under felterne) ===== */
.form.xf-side { grid-template-columns: minmax(0, 1fr) clamp(220px, 36%, 300px); column-gap: 18px; row-gap: 0; align-items: start; }
.form.xf-side > :not(.xf) { grid-column: 1; margin-bottom: 12px; }
.form.xf-side > :not(.xf):last-child { margin-bottom: 0; }
.form.xf-side > .xf { grid-column: 2; grid-row: 1 / span 40; align-self: start; position: -webkit-sticky; position: sticky; top: 42px; max-height: calc(100vh - 54px); max-height: calc(100dvh - 54px); overflow-y: auto; overscroll-behavior: contain; box-sizing: border-box; min-width: 0; }
.fwin .form.xf-side > .xf { top: 8px; max-height: none; overflow: visible; }
/* rumsider ≥1000 px: formularen står i den smalle sticky højrespalte – «Dit valg» lægger sig i bunden af spalten, mens man scroller gennem forplejning/tilkøb */
@media (min-width: 1000px) {
  .rq-side .form:not(.xf-side) > .xf:not([hidden]) { position: -webkit-sticky; position: sticky; bottom: calc(-16px - env(safe-area-inset-bottom, 0px)); z-index: 2; background: #fff; max-height: 38vh; max-height: 38dvh; overflow-y: auto; box-shadow: 0 -9px 0 #fff, 0 -11px 0 #111; }
  /* bookingsiden: tom højrespalte -> formularvinduet får hele bredden (max 760 px) så «Dit valg» kan stå ved siden af felterne */
  .rq-layout.rq-page:not(:has(> .rq-side)) > .rq-main { grid-column: 1 / -1; }
}

/* ---------- v3.9.14 Samtykkebanner (assets/consent.js) ---------- */
.cbar { position: fixed; z-index: 90; right: 16px; bottom: 16px; width: min(440px, calc(100vw - 32px)); background: #fff; border: 1px solid #111;
  box-shadow: 4px 4px 0 #111; font-size: 15px; line-height: 1.5; }
.cbar[hidden] { display: none; }
.cbar .titlebar { min-height: 30px; }
.cbar-body { padding: 14px 16px 16px; }
.cbar-h { margin: 0 0 6px; font-weight: 700; }
.cbar-b { margin: 0; }
.cbar-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.cbar-btns .btn { width: 100%; }
.cbar-btns .btn[aria-pressed="true"] { box-shadow: inset 0 0 0 2px #fff, 0 0 0 1px #111; }
.linkbtn { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; }
@media (max-width: 560px) { .cbar { right: 8px; left: 8px; bottom: 8px; width: auto; font-size: 14px; } .cbar-body { padding: 12px 12px 14px; } }
@media print { .cbar { display: none; } }
/* v3.9.18 Palette-etiket ved hover/fokus (mus/tastatur): vises straks, samme retro-stil som touch-etiketten */
.ptip.ptip-h { z-index: 100000; pointer-events: none; }
@media (hover: none), (pointer: coarse) { .ptip.ptip-h { display: none; } }

/* v3.9.35 (Jeppe 21:03 «sorte streger ved menuen oppefra så det passer»): det åbne panels sorte højrekant (2px kant + 4px skygge)
   flugter med den sorte Menu-knaps højrekant og fortsætter op gennem menubjælken. --mm-w sættes af site.js (målt knapkant). Kun layout. */
@media (max-width: 1180px) {
  html.mm-align .mobil-menu .menu-pop { width: var(--mm-w); }
  html.mm-align .mobil-menu[open] > summary { position: relative; z-index: 1; box-shadow: 4px 0 0 #111 !important; }
  html.mm-full .mobil-menu .menu-pop { width: 100vw; border-right: 0; box-shadow: none !important; }
}

/* v3.9.37 (Jeppe 4.11 «logoet virker klemt»): logoet forvrænges aldrig – bliver mindre i proportion, når menubaren er trang.
   (flex-shrink:0 + max-width:none ikke sat: menubaren ville flyde over ved 320–390 og 1240–1280 uden at skjule andet.) */
.brand img { object-fit: contain; object-position: left center; }

/* v3.9.38 (Jeppe 4.11 «på mobil»), KUN ≤600px (telefoner) – desktop/tablet uændret:
   sociale ikoner flyttet fra menubaren til en lodret blok lige under værktøjspaletten (samme ramme), så logoet får fuld størrelse;
   .brand mister sin højre streg (den stod som en ekstra løs streg efter «n», når der var luft før Menu-knappens egen venstrekant). */
.tools .tsoc { display: none; }
@media (max-width: 600px) {
  .menubar .soc-top { display: none; }
  .brand { flex-shrink: 0; border-right: 0; }
  .brand img { max-width: none; }
  .tools .tsoc { display: block; border-top: 2px solid #111; }
  .tools .soc-pal { flex-direction: column; }
  .tools .soc-pal li { display: block; }
  .tools .soc-pal li + li { border-top: 1px solid #111; }
  .tools .soc-pal a { width: 100%; height: 30px; }
}
@media (max-width: 600px) and (max-height: 700px) { .tools .soc-pal a { height: 24px; } }
@media (max-width: 360px) { .brand { flex-shrink: 1; min-width: 0; } .brand img { max-width: 100%; } } /* v3.9.38: smalleste telefoner – logoet så stort som pladsen tillader, i proportion (object-fit: contain) */
.tools .soc-pal li.is-mail { display: none; } /* v3.9.40: mail findes allerede som palettens egen knap – ikke to gange */
.tools .tgrid button[data-cleanup]:last-child { grid-column: 1 / -1; border-right: 0; } .tools .tgrid a:nth-last-child(2) { border-bottom: 1px solid #111; } /* v3.9.41: ?-knappen fjernet – «Ryd op» fylder hele sidste række, så der ikke står et tomt felt */
/* v3.9.42 (Jeppe): «LYNfabrikken» øverst i footerens adressekolonne større (20px ≈ 1,67×), samme skrift/farve/versaler/spatiering; skaleres ned til kolonnens bredde på smalle skærme, så det aldrig ombrydes */
.foot .fcol:first-child { container-type: inline-size; }
/* v3.9.43 (Jeppe): overskriften er nu logoet (samme røde ordmærke som i headeren, højopløst kopi lyn-logo-footer-red.webp 1326×160).
   18px højt når der er plads, ellers skaleret til kolonnens bredde (12cqi ≈ 100 % / 8,29) – proportioner bevares, aldrig ud over kolonnen. */
.foot .fcol:first-child h2.foot-logo { margin: 0 0 12px; line-height: 0; }
.foot h2.foot-logo img { display: block; height: min(18px, 12cqi); width: auto; max-width: 100%; object-fit: contain; object-position: left center; }
