/* Oslo Spektrum, interaktivt salkart (prototype R26, 25.10.2026).
   Salen er første skjerm: tegnet ovenfra, med oppsettene som morfer mellom seg. Fargene følger
   siten (mørk og lys). Gult brukes bare på det valgte feltet og på nøkkeltallene i toppen.
   Egen fil, så css/style.css og de delte komponentene er urørt. */

:root {
  --sk-bygg: #f1f3f7;
  --sk-bygg-linje: #cfd5df;
  --sk-felt: #dfe4ed;
  --sk-felt-hover: #cdd5e3;
  --sk-felt-blekk: #1a1a1a;
  --sk-gulv: #cddaec;
  --sk-gulv-hover: #bccde5;
  --sk-scene: #1a1a1a;
  --sk-scene-blekk: #ffffff;
  --sk-valgt: var(--accent);
  --sk-valgt-blekk: #14161b;
  --sk-tent: #8fa9d6;
  --sk-tent-blekk: #0f1218;
  --sk-draperi-bunn: #2a2f3b;
  --sk-draperi-fold: #1b1f28;
  /* Ferdig blandet (før: #c3c8d4 med 0.8 dekkevne), så teksten står helt dekkende ved redusert bevegelse. */
  --sk-draperi-blekk: #a4a9b5;
  --sk-stol: rgba(26, 36, 58, 0.34);
  --sk-folk: rgba(26, 36, 58, 0.14);
  --sk-ikke: rgba(26, 26, 26, 0.18);
  --sk-lys-a: rgba(70, 110, 200, 0.16);
  --sk-trinn-0: #dce6f6;
  --sk-trinn-1: #bfd0ee;
  --sk-trinn-2: #a1bbe4;
  --sk-trinn-3: #82a3da;
  --sk-trinn-blekk: #12161d;
  --sk-flytt: 820ms;
}

:root[data-theme="dark"] {
  --sk-bygg: #12151c;
  --sk-bygg-linje: #2a303c;
  --sk-felt: #222835;
  --sk-felt-hover: #2f3748;
  --sk-felt-blekk: #e8eaef;
  --sk-gulv: #1a2537;
  --sk-gulv-hover: #22314b;
  --sk-scene: #d3d8e2;
  --sk-scene-blekk: #0c0e12;
  --sk-valgt-blekk: #0c0e12;
  --sk-tent: #3d5a8c;
  --sk-tent-blekk: #ffffff;
  --sk-draperi-bunn: #06070a;
  --sk-draperi-fold: #12151c;
  --sk-draperi-blekk: #828898;
  --sk-stol: rgba(232, 234, 239, 0.26);
  --sk-folk: rgba(232, 234, 239, 0.1);
  --sk-ikke: rgba(232, 234, 239, 0.16);
  --sk-lys-a: rgba(150, 185, 255, 0.2);
  --sk-trinn-0: #2b3a56;
  --sk-trinn-1: #33496f;
  --sk-trinn-2: #3f5b8a;
  --sk-trinn-3: #4e70a8;
  --sk-trinn-blekk: #ffffff;
}

/* ---------- Toppen (identitetsheaderen, slank) ---------- */

.venue-page-hero.sk-hero {
  min-height: 0;
  padding: 16px 0 26px;
}

.sk-hero .container,
.sk .container.sk__rutenett,
.sk > .container {
  max-width: 1340px;
}

.venue-page-hero .sk-hero__rad {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px 40px;
}

.venue-page-hero .sk-hero__rad > * { max-width: none; }

.sk-hero__tekst { min-width: 0; }

.sk-hero .breadcrumb {
  margin-bottom: 4px;
  font-size: 0.8125rem;
}

.venue-page-hero.sk-hero h1 {
  margin: 2px 0 6px;
  font-size: clamp(1.875rem, 1.35rem + 2vw, 2.75rem);
  line-height: 1.05;
  text-wrap: balance;
}

/* Oppdatert-merket beholdes (datogaten leser det), men som stille tekst. */
.sk-hero .venue-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 14px;
  margin: 0;
  font-size: 0.8125rem;
}

.sk-hero .venue-hero-meta .badge-verified,
.sk-hero .venue-hero-meta .read-time {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  font: inherit;
  color: var(--hero-ink-muted);
}

.sk-stat {
  display: flex;
  gap: 8px 44px;
  margin: 0;
  font-variant-numeric: tabular-nums;
}

.sk-stat__post {
  display: flex;
  flex-direction: column-reverse;
  gap: 2px;
}

.sk-stat dt {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--hero-ink);
}

.sk-stat__tall {
  min-width: 4.4ch;
  margin: 0;
  font: 800 clamp(2.125rem, 1.6rem + 1.6vw, 3rem)/1 var(--font-display);
  letter-spacing: -0.02em;
  color: var(--accent);
}

.sk-hero__lenker { margin: 0; }

.sk-hero .venue-hero-attribution {
  right: 20px;
  bottom: 3px;
  font-size: 0.75rem;
}

/* ---------- Rammen ---------- */

.sk { padding: 18px 0 6px; }

.sk__rutenett {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 430px);
  gap: 24px 44px;
  align-items: start;
}

.sk__kart-kol,
.sk__side-kol { min-width: 0; }

.sk__flate { min-width: 0; }

.sk-svg {
  display: block;
  width: 100%;
  height: auto;
  max-height: clamp(380px, calc(100svh - 300px), 700px);
  margin: 0 auto;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  -webkit-user-select: none;
}

/* ---------- Tegningen ---------- */

.sk-svg text {
  fill: var(--sk-felt-blekk);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 15px;
  text-anchor: middle;
  dominant-baseline: central;
  pointer-events: none;
}

.sk-svg [data-oppsett-lag]:not([data-oppsett-lag~="staaende"]) { display: none; }
.sk-svg :where(polygon) { fill: var(--sk-felt); stroke: var(--sk-bygg); stroke-width: 1.4; }
.sk-svg :where(.sk-gulv polygon) { fill: var(--sk-gulv); }
.sk-svg .sk-scene rect { fill: var(--sk-scene); }

.sk-bygg {
  fill: var(--sk-bygg);
  stroke: var(--sk-bygg-linje);
  stroke-width: 2;
  stroke-linejoin: round;
}

.sk-lys-a { stop-color: var(--sk-lys-a); stop-opacity: 1; }
.sk-lys-b { stop-color: var(--sk-lys-a); stop-opacity: 0; }
.sk-lysflate { pointer-events: none; }

.sk-stol { fill: var(--sk-stol); }
.sk-folk { fill: var(--sk-folk); }
.sk-fold { fill: var(--sk-draperi-fold); }
.sk-draperi-bunn { fill: var(--sk-draperi-bunn); }
.sk-ikke-strek { fill: var(--sk-ikke); }

.sk-scene rect { fill: var(--sk-scene); }
.sk-scene text,
.sk-svg .sk-scene text {
  fill: var(--sk-scene-blekk);
  font-weight: 700;
  font-size: 19px;
  letter-spacing: 0.08em;
}

.sk-felt {
  cursor: pointer;
  outline: none;
  transform-box: fill-box;
  transform-origin: 50% 50%;
}
.sk-felt[data-origin="v"] { transform-origin: 0% 50%; }
.sk-felt[data-origin="h"] { transform-origin: 100% 50%; }
.sk-felt[data-origin="b"] { transform-origin: 50% 100%; }

.sk-svg .sk-flate {
  fill: var(--sk-felt);
  stroke: var(--sk-bygg);
  stroke-width: 1.6;
  stroke-linejoin: round;
  transition: fill 180ms ease-out;
}

.sk-svg .sk-felt--gulv .sk-flate { fill: var(--sk-gulv); }

.sk-svg .sk-stoler { fill: url(#sk-stoler); stroke: none; pointer-events: none; }
.sk-svg .sk-folkemengde { fill: url(#sk-folk); stroke: none; pointer-events: none; }

.sk-svg .sk-drape {
  fill: url(#sk-draperi);
  stroke: var(--sk-bygg);
  stroke-width: 1.6;
  pointer-events: none;
  transform-box: fill-box;
  transform-origin: 50% 0%;
}

.sk-svg .sk-ikke {
  fill: url(#sk-ikke);
  stroke: none;
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease-out;
}
.sk-svg .er-ikke-i-salg .sk-ikke { opacity: 1; }
.sk-svg .er-ikke-i-salg .sk-flate { fill: transparent; stroke: var(--border-strong); stroke-dasharray: 5 4; }

.sk-svg .sk-navn {
  fill: var(--sk-felt-blekk);
  transition: fill 160ms ease-out, opacity 200ms ease-out;
}
.sk-svg .sk-navn--gulv { font-family: var(--font-sans); font-weight: 600; font-size: 21px; letter-spacing: 0.04em; }

.sk-svg .sk-navn.er-lukket { fill: var(--sk-draperi-blekk); }
/* Lys modus: navnet i de smale, lukkede feltene (301, 302, 401, 402 og sidetribunene) går litt
   utenfor draperiet og ut på den lyse salen. En kant i draperiets farge holder kontrasten. */
:root:not([data-theme="dark"]) .sk-svg .sk-navn.er-lukket {
  paint-order: stroke;
  stroke: var(--sk-draperi-bunn);
  stroke-width: 14px;
  stroke-linejoin: round;
}

.sk-svg .sk-pris {
  fill: var(--sk-felt-blekk);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13.5px;
  opacity: 0;
  transition: opacity 260ms ease-out;
}
.sk-svg .sk-pris.har-pris { opacity: 0.92; }
.sk-svg .sk-pris.sk-pris--gulv { font-size: 25px; }
.er-i-bevegelse .sk-svg .sk-pris,
.er-i-bevegelse .sk-svg .sk-pris.har-pris { opacity: 0; transition-duration: 80ms; }

/* Prisklasser (kilden gir pris per felt): lyst til mørkt etter pris. */
.sk-svg .sk-felt[data-trinn="0"] .sk-flate { fill: var(--sk-trinn-0); }
.sk-svg .sk-felt[data-trinn="1"] .sk-flate { fill: var(--sk-trinn-1); }
.sk-svg .sk-felt[data-trinn="2"] .sk-flate { fill: var(--sk-trinn-2); }
.sk-svg .sk-felt[data-trinn="3"] .sk-flate { fill: var(--sk-trinn-3); }
.sk-svg .sk-navn[data-trinn],
.sk-svg .sk-pris[data-trinn] { fill: var(--sk-trinn-blekk); }

@media (hover: hover) and (pointer: fine) {
  .sk-svg .sk-felt:not(.er-valgt):not(.er-tent):not(.er-lukket):not([data-trinn]):hover .sk-flate { fill: var(--sk-felt-hover); }
  .sk-svg .sk-felt--gulv:not(.er-valgt):not(.er-tent):not(.er-lukket):hover .sk-flate { fill: var(--sk-gulv-hover); }
  .sk-svg .sk-felt[data-trinn]:not(.er-valgt):not(.er-tent):hover .sk-flate { filter: brightness(1.12); }
}

.sk-svg .sk-felt.er-tent .sk-flate { fill: var(--sk-tent); }
.sk-svg .sk-navn.er-tent,
.sk-svg .sk-pris.er-tent { fill: var(--sk-tent-blekk); }

.sk-svg .sk-felt.er-valgt .sk-flate { fill: var(--sk-valgt); filter: none; }
.sk-svg .sk-navn.er-valgt,
.sk-svg .sk-pris.er-valgt { fill: var(--sk-valgt-blekk); }
.sk-svg .sk-felt.er-valgt .sk-stoler,
.sk-svg .sk-felt.er-valgt .sk-folkemengde { opacity: 0; }

[data-har-valg] .sk-svg .sk-felt:not(.er-valgt):not(.er-tent) :is(.sk-flate, .sk-stoler, .sk-folkemengde, .sk-drape) { opacity: 0.55; }

.sk-svg .sk-felt:focus-visible .sk-flate {
  stroke: var(--focus-ring);
  stroke-width: 3.5px;
}

/* ---------- Gulv og størrelse under kartet ---------- */

.sk__styring {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}

.sk-gulvvalg {
  display: flex;
  flex-wrap: wrap;
  gap: 0 22px;
}

.sk-gulvvalg__knapp {
  position: relative;
  appearance: none;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--text-muted);
  font: 700 1.125rem/1 var(--font-display);
  cursor: pointer;
  transition: color 160ms ease-out;
  -webkit-tap-highlight-color: transparent;
}

.sk-gulvvalg__knapp::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 6px;
  height: 3px;
  background: var(--text);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 260ms var(--ease-out-quart);
}

.sk-gulvvalg__knapp[aria-pressed="true"] { color: var(--text); }
.sk-gulvvalg__knapp[aria-pressed="true"]::after { transform: scaleX(1); }

.sk-storrelse { display: flex; gap: 6px; }

.sk-storrelse__valg {
  appearance: none;
  display: grid;
  justify-items: center;
  gap: 2px;
  min-width: 44px;
  min-height: 44px;
  padding: 0 4px 2px;
  border: 0;
  background: none;
  color: var(--text-muted);
  font: 600 0.875rem/1.2 var(--font-sans);
  cursor: pointer;
  transition: color 180ms ease-out, transform 120ms ease-out;
  -webkit-tap-highlight-color: transparent;
}

.sk-mini { opacity: 0.7; transition: opacity 180ms ease-out; }
.sk-storrelse__valg[aria-pressed="true"] { color: var(--text); }
.sk-storrelse__valg[aria-pressed="true"] .sk-mini { opacity: 1; }
.sk-storrelse__valg[aria-pressed="true"] .sk-storrelse__navn { font-weight: 700; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 5px; }
.sk-storrelse__valg:active { transform: scale(0.97); }

@media (hover: hover) and (pointer: fine) {
  .sk-storrelse__valg:hover { color: var(--text); }
  .sk-storrelse__valg:hover .sk-mini { opacity: 1; }
  .sk-gulvvalg__knapp:hover { color: var(--text); }
}

.sk-mini { display: block; width: 84px; height: auto; }
.sk-mini__bygg { fill: var(--sk-bygg); stroke: var(--sk-bygg-linje); stroke-width: 8; }
.sk-mini__f { stroke: none; }
.sk-mini__a { fill: var(--border-strong); }
.sk-mini__g { fill: var(--sk-gulv-hover); }
/* Stengte felt får en kant i draperiets skriftfarge: i mørk modus er draperiet nesten like mørkt som salen. */
.sk-mini__l { fill: var(--sk-draperi-bunn); stroke: var(--sk-draperi-blekk); stroke-width: 10; }
.sk-storrelse__valg[aria-pressed="true"] .sk-mini__bygg { stroke: var(--text); }
.sk-mini__s { fill: var(--sk-scene); }

.sk-feltrad { display: none; }

/* ---------- Overskriften i sidekolonnen ---------- */

.sk__h {
  margin: 0 0 8px;
  font: 800 1.25rem/1.2 var(--font-display);
  color: var(--text);
}

.sk-k__vis:focus-visible,
.sk-rad:focus-visible,
.sk-tekstknapp:focus-visible,
.sk-gulvvalg__knapp:focus-visible,
.sk-storrelse__valg:focus-visible,
.sk-feltrad__valg:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: -2px;
}

/* ---------- Svaret ---------- */

.sk__side-kol { display: flex; flex-direction: column; gap: 16px; }

.sk__svar {
  min-height: 280px;
  padding-top: 14px;
  border-top: 2px solid var(--text);
}

.sk__svar-start {
  margin: 0;
  max-width: 34ch;
  font-size: 1.0625rem;
  line-height: 1.45;
  color: var(--text);
  text-wrap: pretty;
}

.sk-svar__kort > * + * { margin-top: 10px; }

.sk-svar__over {
  margin: 0 0 2px;
  font-size: 0.875rem;
  line-height: 1.3;
  color: var(--text-muted);
  text-wrap: balance;
}

.sk-svar__tittel {
  margin: 0;
  font: 800 clamp(1.75rem, 1.4rem + 1vw, 2.25rem)/1.05 var(--font-display);
  letter-spacing: -0.015em;
  color: var(--text);
  text-wrap: balance;
}

/* Oppsettet uten konsert er en beskrivelse, ikke et navn: mindre enn konsertnavnet. */
.sk-svar__tittel.sk-svar__tittel--oppsett { font-size: clamp(1.375rem, 1.2rem + 0.5vw, 1.625rem); }

.sk-svar__tekst,
.sk-svar__hint {
  margin: 0;
  max-width: 52ch;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--text);
  text-wrap: pretty;
}

.sk-svar__hint { color: var(--text); font-weight: 600; }
.sk-svar__tekst a { color: var(--link-tekst); text-decoration: underline; text-underline-offset: 2px; }

.sk-tekstknapp {
  appearance: none;
  display: inline;
  min-height: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--link-tekst);
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.sk-rader { display: grid; margin-top: 12px; border-top: 1px solid var(--border); }

.sk-rad {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 4px 16px;
  padding: 9px 6px 9px 0;
  border-bottom: 1px solid var(--border);
}

.sk-rad[tabindex] { cursor: pointer; }

@media (hover: hover) and (pointer: fine) {
  .sk-rad[tabindex]:hover { background: var(--bg-elevated); }
}

.sk-rad__venstre { display: grid; gap: 1px; min-width: 0; }
.sk-rad__navn { font-weight: 700; font-size: 1rem; line-height: 1.3; color: var(--text); }
.sk-rad__avg,
.sk-rad__felt { font-size: 0.8125rem; line-height: 1.35; color: var(--text-muted); text-wrap: pretty; }
.sk-rad__pris { font: 800 1.375rem/1.1 var(--font-display); color: var(--text); white-space: nowrap; font-variant-numeric: tabular-nums; }
.sk-rad--stor .sk-rad__pris { font-size: 1.875rem; }

.sk-rad--kat .sk-rad__navn::before {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  margin-right: 0.5em;
  border: 1px solid var(--border-strong);
  border-radius: 2px;
  background: var(--sk-trinn-0);
}
.sk-rad--kat[data-trinn="1"] .sk-rad__navn::before { background: var(--sk-trinn-1); }
.sk-rad--kat[data-trinn="2"] .sk-rad__navn::before { background: var(--sk-trinn-2); }
.sk-rad--kat[data-trinn="3"] .sk-rad__navn::before { background: var(--sk-trinn-3); }

/* Tegnforklaringen under kartet: bare det kartet viser akkurat nå. */
.sk__forklaring {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 20px;
  margin: 10px auto 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.sk__forklaring[hidden] { display: none; }
.sk-forklaring__post { display: inline-flex; align-items: center; gap: 7px; }
.sk-prove { display: block; width: 14px; height: 14px; }
.sk-prove--stengt rect { fill: url(#sk-draperi); stroke: var(--border-strong); stroke-width: 1; }
.sk-prove--ikke rect { fill: url(#sk-ikke); stroke: var(--border-strong); stroke-width: 1; stroke-dasharray: 3 2; }

.sk-svar__lenke { color: var(--link-tekst); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Teksten under kartet ---------- */

.sk-tekst h2 { text-wrap: balance; }
/* Korte avsnitt (tre-fire linjer) under kartet: balanse i stedet for en sluttlinje på 1-3 ord. */
.sk-tekst > p { text-wrap: balance; }

.sk-dl { margin: 18px 0 20px; padding: 0; }
.sk-dl > div {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(0, 2.4fr);
  gap: 4px 28px;
  padding: 12px 0;
  border-top: 1px solid var(--border);
}
.sk-dl > div:last-child { border-bottom: 1px solid var(--border); }
.sk-dl dt { margin: 0; font-weight: 700; color: var(--text); text-wrap: balance; }
.sk-dl dd { margin: 0; color: var(--text); text-wrap: pretty; max-width: 62ch; }

.sk-prisliste summary {
  display: inline-block;
  min-height: 44px;
  padding: 10px 0;
  font-weight: 700;
  color: var(--link-tekst);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.sk-kilder {
  columns: 2 320px;
  column-gap: 40px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--text-muted);
}
.sk-kilder li { break-inside: avoid; padding: 9px 0; border-top: 1px solid var(--border); text-wrap: pretty; }
.sk-kilder strong { font-weight: 600; color: var(--text); }
.sk-kilder a { color: var(--link-tekst); text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Konsertene under kartet ---------- */

.sk-konserter { padding: 30px 0 8px; }
.sk-konserter > .container { max-width: 1340px; }

.sk-konserter__h {
  margin: 0;
  font: 800 clamp(1.5rem, 1.2rem + 1vw, 2rem)/1.15 var(--font-display);
  color: var(--text);
  text-wrap: balance;
}

.sk-mnd { margin-top: 20px; }
.sk-mnd__h {
  margin: 0 0 6px;
  font: 700 1rem/1.3 var(--font-display);
  color: var(--text-muted);
}

.sk-kl { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--border); }

.sk-k {
  display: grid;
  grid-template-columns: 5.25rem minmax(0, 1.05fr) minmax(0, 1.55fr) minmax(0, 1.05fr) 8.5rem;
  gap: 4px 24px;
  align-items: baseline;
  padding: 13px 10px 13px 6px;
  border-bottom: 1px solid var(--border);
  transition: background-color 200ms ease-out;
}
.sk-k.er-vist { background: var(--bg-elevated); }
.sk-k.er-skjult,
.sk-k.er-forbi,
.sk-mnd.er-skjult { display: none; }

.sk-k__dato { margin: 0; font-size: 0.9375rem; font-variant-numeric: tabular-nums; color: var(--text-muted); white-space: nowrap; }
.sk-k__navn { margin: 0; font: 700 1.0625rem/1.25 var(--font-display); color: var(--text); text-wrap: balance; }
.sk-k__notat { margin: 2px 0 0; font-size: 0.8125rem; line-height: 1.3; color: var(--text-muted); }
.sk-k__sal { margin: 0; max-width: 52ch; font-size: 0.9375rem; line-height: 1.45; color: var(--text-muted); text-wrap: pretty; }
.sk-k__sal strong { font-weight: 600; color: var(--text); }
.sk-nw { white-space: nowrap; }

.sk-k__priser { display: grid; gap: 2px; margin: 0; }
.sk-k__priser > div { display: flex; justify-content: space-between; align-items: baseline; gap: 4px 14px; }
.sk-k__priser dt { margin: 0; font-size: 0.9375rem; line-height: 1.35; color: var(--text); }
.sk-k__priser dd { margin: 0; font-size: 0.9375rem; font-weight: 700; line-height: 1.35; color: var(--text); text-align: right; font-variant-numeric: tabular-nums; }
.sk-k__avg { margin: 4px 0 0; font-size: 0.8125rem; line-height: 1.35; color: var(--text-muted); text-wrap: pretty; }

.sk-k__vis {
  justify-self: end;
  appearance: none;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--link-tekst);
  font: 700 0.9375rem/1.2 var(--font-sans);
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
  cursor: pointer;
  transition: transform 120ms ease-out;
  -webkit-tap-highlight-color: transparent;
}
.sk-k__vis[hidden] { display: none; }
.sk-k__vis[aria-pressed="true"] { color: var(--text); text-decoration: none; cursor: default; }
.sk-k__vis:not([aria-pressed="true"]):active { transform: scale(0.97); }

.sk-flere { margin: 6px 0 0; }
.sk-flere .sk-tekstknapp { min-height: 44px; }

@media (max-width: 1199px) {
  .sk-k { grid-template-columns: 4.75rem minmax(0, 1fr); gap: 6px 16px; }
  .sk-k__sal,
  .sk-k__pris,
  .sk-k__vis { grid-column: 2; }
  .sk-k__pris { max-width: 26rem; }
  .sk-k__vis { justify-self: start; }
}

/* ---------- Mobil ---------- */

@media (max-width: 959px) {
  .sk__rutenett { display: flex; flex-direction: column; align-items: stretch; gap: 14px; }
  .sk__kart-kol, .sk__side-kol { display: contents; }

  .sk__flate {
    order: 1;
    position: sticky;
    top: 56px;
    z-index: 20;
    margin-inline: -20px;
    padding: 4px 20px 2px;
    background: var(--bg);
    border-bottom: 1px solid var(--border);
  }
  .sk-svg { max-height: 46svh; }
  .sk__styring { order: 2; margin-top: 0; }
  .sk__forklaring { order: 3; margin: 0; justify-content: flex-start; }
  .sk__svar { order: 5; min-height: 0; }

  .sk__side-kol > .sk__h {
    order: 2;
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  .sk__styring { flex-direction: row; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 4px 28px; }

  .sk__side-kol { gap: 14px; }

  .sk-feltrad {
    display: flex;
    gap: 2px;
    margin: 2px -20px 0;
    padding: 0 20px;
    overflow-x: auto;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
  }
  .sk-feltrad::-webkit-scrollbar { display: none; }
  .sk-feltrad__valg {
    flex: 0 0 auto;
    appearance: none;
    min-width: 44px;
    min-height: 44px;
    padding: 0 8px;
    border: 0;
    background: none;
    color: var(--text-muted);
    font: 700 1rem/1 var(--font-display);
    scroll-snap-align: start;
    cursor: pointer;
  }
  .sk-feltrad__valg[aria-pressed="true"] { color: var(--text); text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 6px; }
  .sk-feltrad__valg.er-lukket { opacity: 0.5; }

  .sk-dl > div { grid-template-columns: minmax(0, 1fr); }
  .sk-stat { gap: 8px 28px; }
}

@media (max-width: 599px) {
  .venue-page-hero.sk-hero { padding: 12px 0 12px; }
  .sk-hero__lenker { display: none; }
  .sk-hero .venue-hero-meta .venue-published { display: none; }
  .sk-hero .venue-hero-attribution { display: none; }
  .sk-stat__tall { font-size: 1.75rem; }
  .sk-stat dt { font-size: 0.75rem; }
  .sk-mini { width: 76px; }
  .sk-gulvvalg {
    flex-wrap: nowrap;
    gap: 0 18px;
    max-width: calc(100% + 40px);
    margin-inline: -20px;
    padding: 0 20px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .sk-gulvvalg::-webkit-scrollbar { display: none; }
  .sk-gulvvalg__knapp { flex: 0 0 auto; font-size: 1.0625rem; }
  .sk-svg .sk-pris { display: none; }
  .sk-svg .sk-navn--liten { display: none; }
  .sk-svg .sk-navn { font-size: 23px; }
  .sk-svg .sk-navn--gulv { font-size: 30px; }
  .sk__styring { justify-content: flex-start; }
}

/* ---------- Redusert bevegelse ---------- */

@media (prefers-reduced-motion: reduce) {
  .sk-gulvvalg__knapp::after { transition: none; }
  .sk-svg .sk-flate,
  .sk-svg .sk-navn,
  .sk-svg .sk-pris,
  .sk-k { transition-duration: 1ms; }
}
