/* Step Studio. Designsystem.
   Farger: turkis og korall er målt i logoen (danseren og ordmerket). Scenesvart er fra forestillingsbildene.
   Skrift: Sofia Sans-familien i tre bredder. Ekstra smal til visning (tynne versaler, som ordmerket),
   halvsmal til data og etiketter (timeplanen), normal til brødtekst. */

@font-face { font-family: 'Sofia Sans'; src: url(/assets/fonts/sofia-sans.2176b732.woff2) format('woff2'); font-weight: 1 1000; font-style: normal; font-display: swap; }
@font-face { font-family: 'Sofia Sans'; src: url(/assets/fonts/sofia-sans-italic.ec48ebc6.woff2) format('woff2'); font-weight: 1 1000; font-style: italic; font-display: swap; }
@font-face { font-family: 'Sofia Sans Extra Condensed'; src: url(/assets/fonts/sofia-sans-xcond.4c0443d7.woff2) format('woff2'); font-weight: 1 1000; font-style: normal; font-display: swap; }
@font-face { font-family: 'Sofia Sans Semi Condensed'; src: url(/assets/fonts/sofia-sans-scond.f00d908c.woff2) format('woff2'); font-weight: 1 1000; font-style: normal; font-display: swap; }

:root {
  --bg: #ffffff;
  --vask: #eef6f5;
  --blekk: #0f2629;
  --blekk-2: #45585b;
  --linje: #d3e1e0;
  --turkis: #3ad0cf;
  --turkis-hover: #2bbdbc;
  --turkis-blekk: #0a6b69;
  --korall: #e28a69;
  --scene: #0b0f13;
  --scene-tekst: #c3cfd1;
  --scene-linje: #26313a;

  /* stilfamilier i timeplanen: flate + prikk */
  --f-barn: #fbefc5;    --p-barn: #d9a514;
  --f-jazz: #cff3f2;    --p-jazz: #1fb5b3;
  --f-street: #fbdccf;  --p-street: #e0764e;
  --f-ballett: #f4dde9; --p-ballett: #d46a9b;
  --f-moderne: #e2ddf6; --p-moderne: #7a63d1;
  --f-stepx: #0f2629;   --p-stepx: #0f2629;

  --ff-vis: 'Sofia Sans Extra Condensed', 'Arial Narrow', 'Avenir Next Condensed', 'Roboto Condensed', sans-serif;
  --ff-tekst: 'Sofia Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ff-smal: 'Sofia Sans Semi Condensed', 'Sofia Sans', system-ui, sans-serif;

  --wrap: 1320px;
  --pad: clamp(20px, 4vw, 56px);
  --seksjon: clamp(72px, 9vw, 136px);
  --r: 4px;
  --topp: 64px;
}
@media (min-width: 64em) { :root { --topp: 76px; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--topp) + 16px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { margin: 0; background: var(--bg); color: var(--blekk); font-family: var(--ff-tekst); font-size: 1.0625rem; line-height: 1.6; font-weight: 400; }
@media (min-width: 64em) { body { font-size: 1.125rem; } }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3, h4 { margin: 0; font-weight: inherit; }
p, ul, ol, dl, figure { margin: 0; }
p + p { margin-top: 1em; }
a { color: var(--turkis-blekk); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--blekk); outline-offset: 3px; border-radius: 2px; }
.scene :focus-visible, .fot :focus-visible { outline-color: #fff; }
button { font: inherit; color: inherit; }

.wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--pad); }
.sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.hopp { position: absolute; left: 12px; top: -100px; z-index: 100; background: var(--blekk); color: #fff; padding: 12px 16px; border-radius: var(--r); font-family: var(--ff-smal); font-weight: 700; }
.hopp:focus { top: 12px; }

/* Typografi */
.vis { font-family: var(--ff-vis); font-weight: 300; text-transform: uppercase; line-height: .86; letter-spacing: .005em; }
.h2 { font-family: var(--ff-vis); font-weight: 300; text-transform: uppercase; font-size: clamp(2.9rem, 1.9rem + 4vw, 5.75rem); line-height: .88; letter-spacing: .005em; }
.ingress { font-size: clamp(1.1875rem, 1.05rem + .5vw, 1.4375rem); line-height: 1.45; max-width: 36ch; }
.liten { font-family: var(--ff-smal); font-size: .9375rem; line-height: 1.45; }
.merknad { font-family: var(--ff-smal); font-size: .8125rem; line-height: 1.4; color: var(--blekk-2); }
.maal { max-width: 62ch; }

/* Knapper og lenker */
.knapp { display: inline-flex; align-items: center; justify-content: center; gap: .55em; min-height: 50px; padding: 14px 22px; border: 0; border-radius: var(--r); background: var(--turkis); color: var(--blekk); font-family: var(--ff-smal); font-weight: 700; font-size: 1.0625rem; line-height: 1.1; text-decoration: none; cursor: pointer; transition: background-color .15s ease; }
.knapp:hover { background: var(--turkis-hover); }
.knapp svg { width: 18px; height: 18px; flex: none; }
.knapp-liten { min-height: 44px; padding: 10px 16px; font-size: .9688rem; }
.pil { display: inline-flex; align-items: center; gap: .45em; color: var(--blekk); font-family: var(--ff-smal); font-weight: 700; text-decoration: none; padding-block: 6px; border-bottom: 2px solid var(--turkis); }
.pil:hover { border-bottom-color: var(--blekk); }
.pil svg { width: 16px; height: 16px; flex: none; }
.scene .pil, .fot .pil { color: #fff; }

/* Toppen */
.topp { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--linje); }
.topp-inner { display: flex; align-items: center; gap: 16px; height: var(--topp); }
.logo { display: block; flex: none; margin-right: auto; padding: 6px 0; }
.logo img { height: 44px; width: auto; }
@media (max-width: 35.99em) { .topp-inner > .knapp { display: none; } }
@media (min-width: 64em) { .logo img { height: 56px; } }
.meny { display: none; }
.meny ul { display: flex; gap: 2px; list-style: none; padding: 0; }
.meny a { display: block; padding: 10px 12px; border-radius: var(--r); color: var(--blekk); font-family: var(--ff-smal); font-weight: 600; font-size: 1rem; text-decoration: none; }
.meny a:hover { background: var(--vask); }
.meny a[aria-current='page'] { box-shadow: inset 0 -2px 0 var(--turkis); border-radius: 0; }
.menyknapp { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 12px; border: 1px solid var(--linje); border-radius: var(--r); background: #fff; font-family: var(--ff-smal); font-weight: 700; font-size: .9688rem; cursor: pointer; }
.menyknapp svg { width: 20px; height: 20px; }
@media (min-width: 64em) {
  .meny { display: block; }
  .menyknapp { display: none; }
}
.mobilmeny { position: fixed; inset: var(--topp) 0 auto 0; z-index: 49; max-height: calc(100dvh - var(--topp)); overflow: auto; background: #fff; border-bottom: 1px solid var(--linje); padding: 8px var(--pad) 28px; box-shadow: 0 24px 48px -24px rgb(15 38 41 / .35); }
.mobilmeny[hidden] { display: none; }
.mobilmeny ul { list-style: none; padding: 0; }
.mobilmeny li + li { border-top: 1px solid var(--linje); }
.mobilmeny a { display: block; padding: 14px 0; color: var(--blekk); font-family: var(--ff-vis); font-weight: 300; text-transform: uppercase; font-size: 2.25rem; line-height: 1; text-decoration: none; }
.mobilmeny .knapp { margin-top: 20px; width: 100%; }
@media (min-width: 64em) { .mobilmeny { display: none !important; } }

/* Helten */
.helt { display: flex; flex-direction: column; }
.helt-tekst { padding: 32px var(--pad) 56px; container-type: inline-size; min-width: 0; }
/* Overskrifta fyller kolonnen, men aldri meir: 44cqi held «SKØYEN» innanfor med den smale skrifta,
   og main.js krympar ho om nettlesaren viser ei breiare reserveskrift. */
.helt h1 { font-size: min(clamp(3.75rem, .75rem + 16.5vw, 9.375rem), 33cqi); margin-left: -.03em; overflow-wrap: normal; }
.helt h1 span { display: block; }
.helt .ingress { margin-top: 28px; }
.helt-handling { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 32px; }
.helt-foto { order: -1; position: relative; aspect-ratio: 5 / 4; background: #2a0b0e; }
.helt-foto img { width: 100%; height: 100%; object-fit: cover; }
.foto-tekst { font-family: var(--ff-smal); font-size: .8125rem; line-height: 1.35; color: var(--blekk-2); margin-top: 10px; }
.helt-foto .foto-tekst { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 40px var(--pad) 14px; color: #fff; background: linear-gradient(to top, rgb(11 15 19 / .7), rgb(11 15 19 / 0)); }
@media (min-width: 60em) {
  .helt { display: grid; grid-template-columns: minmax(var(--pad), 1fr) minmax(0, calc((var(--wrap) - 2 * var(--pad)) * .5)) minmax(0, calc((var(--wrap) - 2 * var(--pad)) * .5)) minmax(var(--pad), 1fr); min-height: min(calc(100svh - var(--topp)), 880px); }
  .helt-tekst { grid-column: 2; grid-row: 1; align-self: center; padding: 64px 48px 72px 0; }
  .helt-foto { grid-column: 3 / 5; grid-row: 1; aspect-ratio: auto; }
  .helt-foto .foto-tekst { padding-inline: 20px; }
}

/* Uka: timeplanen */
.uka { background: var(--vask); padding-block: var(--seksjon); }
.uka-hode { display: grid; gap: 20px 48px; align-items: end; }
.uka-hode p { max-width: 44ch; }
@media (min-width: 64em) { .uka-hode { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.velger { margin-top: 44px; }
.velger-sporsmal { font-family: var(--ff-smal); font-weight: 700; font-size: 1.125rem; margin-bottom: 12px; }
.trinn { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: var(--blekk); border: 1px solid var(--blekk); border-radius: var(--r); overflow: hidden; }
.trinn button { appearance: none; min-height: 58px; padding: 0 6px; border: 0; background: #fff; color: var(--blekk); font-family: var(--ff-vis); font-weight: 400; font-size: 2.125rem; line-height: 1; cursor: pointer; font-variant-numeric: lining-nums; transition: background-color .15s ease; }
.trinn button.ord { font-family: var(--ff-smal); font-weight: 700; font-size: 1rem; }
.trinn button.bred { grid-column: span 2; }
.trinn button:hover { background: var(--vask); }
.trinn button[aria-pressed='true'] { background: var(--turkis); }
.trinn button:focus-visible { outline-offset: -4px; outline-width: 3px; border-radius: 0; }
@media (min-width: 48em) {
  .trinn { grid-template-columns: auto repeat(10, minmax(46px, 1fr)) auto auto; width: max-content; max-width: 100%; }
  .trinn button.bred { grid-column: auto; padding-inline: 16px; }
}
.velger-status { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin-top: 16px; min-height: 44px; }
.velger-status p { font-family: var(--ff-smal); font-weight: 600; }
.nullstill { appearance: none; border: 0; background: none; padding: 10px 0; font-family: var(--ff-smal); font-weight: 700; color: var(--turkis-blekk); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.nullstill[hidden] { display: none; }

.tavle { margin-top: 20px; background: #fff; border: 1px solid var(--linje); border-radius: 8px; padding: 8px 16px 16px; }
.dag { padding-top: 12px; }
.dag + .dag { border-top: 1px solid var(--linje); margin-top: 8px; }
.dag h3 { font-family: var(--ff-smal); font-weight: 800; font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; padding: 6px 0 10px; }
.dag ol { list-style: none; padding: 0; display: grid; gap: 6px; }
.okt a { display: grid; grid-template-columns: 5.6rem minmax(0, 1fr); column-gap: 12px; padding: 12px 14px; border-radius: var(--r); background: var(--f, #eee); color: var(--blekk); text-decoration: none; font-family: var(--ff-smal); line-height: 1.25; transition: opacity .18s ease, box-shadow .15s ease; }
.okt a:hover { box-shadow: inset 0 0 0 2px var(--blekk); }
.okt-tid { grid-row: 1 / span 3; font-size: .9375rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.okt-navn { font-size: 1rem; font-weight: 700; }
.okt-info { font-size: .875rem; color: var(--blekk-2); }
.okt-merk { font-size: .8125rem; font-weight: 700; margin-top: 2px; }
.okt-merk::before { content: ''; display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: var(--p); vertical-align: .1em; }
.f-barn { --f: var(--f-barn); --p: var(--p-barn); }
.f-jazz { --f: var(--f-jazz); --p: var(--p-jazz); }
.f-street { --f: var(--f-street); --p: var(--p-street); }
.f-ballett { --f: var(--f-ballett); --p: var(--p-ballett); }
.f-moderne { --f: var(--f-moderne); --p: var(--p-moderne); }
.f-stepx { --f: var(--f-stepx); --p: var(--turkis); }
.f-stepx a { color: #fff; }
.f-stepx .okt-info { color: #a9c2c4; }
.f-stepx a:hover { box-shadow: inset 0 0 0 2px var(--turkis); }
.tavle.filtrert .okt:not(.passer) { display: none; }
.tavle.filtrert .dag.tom { display: none; }
.tavle.filtrert .dag.tom + .dag { border-top: 0; margin-top: 0; }
.tavle-akse { display: none; }

@media (min-width: 64em) {
  .tavle { --ppm: 2px; --hode: 44px; display: grid; grid-template-columns: 52px repeat(5, minmax(0, 1fr)); padding: 12px 12px 16px 0; }
  .tavle-akse { display: block; position: relative; margin-top: var(--hode); height: calc(435 * var(--ppm)); }
  .tavle-akse span { position: absolute; right: 10px; top: calc(var(--s) * var(--ppm) - .55em); font-family: var(--ff-smal); font-size: .75rem; font-weight: 600; color: var(--blekk-2); font-variant-numeric: tabular-nums; }
  .dag { padding: 0; }
  .dag + .dag { border-top: 0; margin-top: 0; }
  .dag h3 { height: var(--hode); display: flex; align-items: center; padding: 0 8px; border-left: 1px solid var(--linje); }
  .dag ol { display: block; position: relative; height: calc(435 * var(--ppm)); border-left: 1px solid var(--linje); background: repeating-linear-gradient(to bottom, var(--linje) 0 1px, transparent 1px calc(60 * var(--ppm))); }
  .okt { position: absolute; left: 4px; right: 4px; top: calc(var(--s) * var(--ppm) + 2px); height: calc(var(--d) * var(--ppm) - 3px); }
  .okt a { display: flex; flex-direction: column; height: 100%; padding: 6px 9px; overflow: hidden; }
  .okt-tid { font-size: .8125rem; font-weight: 600; color: var(--blekk-2); }
  .f-stepx .okt-tid { color: #a9c2c4; }
  .okt-navn { font-size: .9375rem; line-height: 1.15; }
  .okt-info { font-size: .8125rem; }
  .okt-merk { font-size: .75rem; }
  .tavle.filtrert .okt:not(.passer) { display: block; opacity: .2; }
  .tavle.filtrert .okt:not(.passer) a { pointer-events: none; }
  .tavle.filtrert .okt.passer a { box-shadow: inset 0 0 0 2px var(--blekk); }
  .tavle.filtrert .dag.tom { display: block; }
}
/* Bredere kolonner fra 1280 px: timeplanen kan være lavere */
@media (min-width: 80em) { .tavle { --ppm: 1.7px; } }
.forklaring { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 20px; list-style: none; padding: 0; font-family: var(--ff-smal); font-size: .9375rem; font-weight: 600; }
.forklaring li { display: flex; align-items: center; gap: 8px; }
.forklaring i { width: 14px; height: 14px; border-radius: 3px; background: var(--f); box-shadow: inset 0 0 0 1px rgb(15 38 41 / .12); }
.uka-bunn { display: grid; gap: 16px 48px; margin-top: 28px; align-items: start; }
@media (min-width: 64em) { .uka-bunn { grid-template-columns: minmax(0, 1fr) auto; } }

/* Stilene */
.stiler { padding-block: var(--seksjon); }
.stiler-hode { display: grid; gap: 20px 48px; margin-bottom: 48px; }
@media (min-width: 64em) { .stiler-hode { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: end; } }
.stil { display: grid; gap: 20px 24px; padding-block: 36px; border-top: 1px solid var(--linje); }
.stil-navn { font-family: var(--ff-vis); font-weight: 300; text-transform: uppercase; font-size: clamp(2.5rem, 1.9rem + 2.4vw, 4.25rem); line-height: .88; }
.stil-for { margin-top: 12px; font-family: var(--ff-smal); font-weight: 700; color: var(--turkis-blekk); }
.stil-tekst p { max-width: 58ch; }
.stil-fakta { margin-top: 16px; font-family: var(--ff-smal); font-size: .9375rem; color: var(--blekk-2); }
.stil-fakta b { color: var(--blekk); font-weight: 700; }
.stil-merk { margin-top: 12px; font-family: var(--ff-smal); font-size: .9375rem; }
.stil-bilde img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
@media (min-width: 64em) {
  .stil { grid-template-columns: repeat(12, minmax(0, 1fr)); padding-block: 44px; }
  .stil-hode { grid-column: 1 / span 4; }
  .stil-tekst { grid-column: 5 / span 4; }
  .stil-bilde { grid-column: 9 / span 4; }
  .stil.uten-bilde .stil-tekst { grid-column: 5 / span 6; }
}

/* Forestillingen: scenen */
.scene { background: var(--scene); color: #fff; padding-bottom: var(--seksjon); }
.scene-topp { position: relative; }
.scene-topp img { width: 100%; height: clamp(360px, 62vw, 820px); object-fit: cover; }
.scene-topp::after { content: ''; position: absolute; inset: 40% 0 0 0; background: linear-gradient(to bottom, rgb(11 15 19 / 0), var(--scene)); pointer-events: none; }
.scene-tittel { position: relative; z-index: 1; margin-top: clamp(-9rem, -12vw, -3.5rem); }
.scene-tittel h2 { font-size: clamp(4rem, .5rem + 15vw, 13rem); color: #fff; }
@media (max-width: 40em) { .scene-tittel h2 { font-size: clamp(2.25rem, 12.5vw, 4rem); overflow-wrap: normal; } }
.scene-grid { display: grid; gap: 32px 48px; margin-top: 36px; }
.scene-grid p { color: var(--scene-tekst); }
.scene-grid .ingress { color: #fff; }
.neste { border-top: 1px solid var(--scene-linje); padding-top: 20px; }
.neste dt { font-family: var(--ff-smal); font-weight: 700; color: var(--turkis); }
.neste dd { margin: 6px 0 0; font-family: var(--ff-vis); font-weight: 300; text-transform: uppercase; font-size: clamp(2.25rem, 1.6rem + 2.2vw, 3.5rem); line-height: .95; }
.scene-bilder { display: grid; gap: 24px; margin-top: 56px; }
.scene-bilder img { width: 100%; object-fit: cover; }
.scene .foto-tekst { color: #93a3a6; }
@media (min-width: 64em) {
  .scene-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .scene-grid > :first-child { grid-column: 1 / span 6; }
  .scene-grid > :last-child { grid-column: 8 / span 5; align-self: end; }
  .scene-bilder { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: stretch; }
  .scene-bilder figure { display: flex; flex-direction: column; }
  .scene-bilder figure:first-child { grid-column: 1 / span 7; }
  .scene-bilder figure:last-child { grid-column: 8 / span 5; }
  /* det liggende bildet fyller samme høyde som portrettet ved siden av */
  .scene-bilder figure:first-child picture { position: relative; display: block; flex: 1; min-height: 320px; }
  .scene-bilder figure:first-child img { position: absolute; inset: 0; width: 100%; height: 100%; }
}
.scene-alle { margin-top: 56px; }
.scene-alle img { width: 100%; aspect-ratio: 2.4 / 1; object-fit: cover; }

/* Pedagogene */
.lag-seksjon { padding-block: var(--seksjon); }
.lag-hode { display: grid; gap: 20px 48px; margin-bottom: 44px; }
@media (min-width: 64em) { .lag-hode { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: end; } }
.lag { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; list-style: none; padding: 0; }
@media (min-width: 48em) { .lag { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; } }
.ped img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: var(--vask); }
.ped-navn { margin-top: 14px; font-family: var(--ff-smal); font-weight: 700; font-size: 1.125rem; line-height: 1.2; }
.ped-fag { margin-top: 4px; font-family: var(--ff-smal); font-size: .9375rem; line-height: 1.4; color: var(--blekk-2); }
.lag-flere { display: flex; flex-direction: column; justify-content: flex-end; gap: 14px; aspect-ratio: 4 / 5; padding: clamp(14px, 2vw, 24px); background: var(--vask); }
.lag-flere p { font-family: var(--ff-smal); font-size: 1rem; line-height: 1.4; }

/* Påmelding og priser */
.pamelding { background: var(--vask); padding-block: var(--seksjon); }
.pamelding-grid { display: grid; gap: 56px 48px; }
@media (min-width: 64em) { .pamelding-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .pamelding-grid > :first-child { grid-column: 1 / span 6; } .pamelding-grid > :last-child { grid-column: 8 / span 5; } }
.steg { list-style: none; padding: 0; margin-top: 32px; counter-reset: steg; }
.steg li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 4px 12px; padding: 20px 0; border-top: 1px solid var(--linje); }
.steg li::before { counter-increment: steg; content: counter(steg); grid-row: 1 / span 2; font-family: var(--ff-vis); font-weight: 300; font-size: 3.25rem; line-height: .8; color: var(--turkis-blekk); }
.steg b { font-family: var(--ff-smal); font-weight: 700; font-size: 1.125rem; }
.steg span { color: var(--blekk-2); }
.prove { margin-top: 8px; padding: 18px 20px; background: #fff; border-radius: var(--r); font-family: var(--ff-smal); font-size: 1rem; }
.prove b { font-weight: 700; }
.pamelding .knapp { margin-top: 28px; }
.h3 { font-family: var(--ff-smal); font-weight: 800; font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; }
.pris { margin-top: 18px; border-top: 1px solid var(--blekk); }
.pris div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--linje); font-family: var(--ff-smal); }
.pris dt { font-size: 1rem; }
.pris dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pris-merk { margin-top: 20px; }
.pris-merk li + li { margin-top: 8px; }
.pris-merk { padding-left: 1.1em; font-family: var(--ff-smal); font-size: .9375rem; color: var(--blekk-2); }

/* Om oss */
.om { padding-block: var(--seksjon); }
.om-grid { display: grid; gap: 40px 48px; }
@media (min-width: 64em) { .om-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; } .om-grid > :first-child { grid-column: 1 / span 5; } .om-grid > :last-child { grid-column: 7 / span 6; } }
.om-portrett img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.om-tekst .h2 { margin-bottom: 28px; }
.historie { list-style: none; padding: 0; margin-top: 36px; border-top: 1px solid var(--blekk); }
.historie li { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--linje); align-items: baseline; }
.historie b { font-family: var(--ff-vis); font-weight: 300; font-size: 2.5rem; line-height: .9; }
.aks { margin-top: 36px; display: grid; gap: 16px; }
.aks img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }

/* Finn fram */
.fram { padding-block: 0 var(--seksjon); }
.fram-grid { display: grid; gap: 40px 48px; border-top: 1px solid var(--blekk); padding-top: 40px; }
@media (min-width: 64em) { .fram-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .fram-grid > :nth-child(1) { grid-column: 1 / span 5; } .fram-grid > :nth-child(2) { grid-column: 7 / span 3; } .fram-grid > :nth-child(3) { grid-column: 10 / span 3; } }
.adr { font-style: normal; font-size: 1.1875rem; line-height: 1.5; margin-top: 20px; }
.fram dl { margin-top: 12px; }
.fram dl div { padding: 10px 0; border-bottom: 1px solid var(--linje); }
.fram dt { font-family: var(--ff-smal); font-weight: 700; }
.fram dd { margin: 0; color: var(--blekk-2); }
.kontakt-lenker { list-style: none; padding: 0; margin-top: 16px; display: grid; gap: 4px; }
.kontakt-lenker a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--blekk); font-family: var(--ff-smal); font-weight: 700; font-size: 1.0625rem; text-decoration: none; }
.kontakt-lenker a:hover { text-decoration: underline; }
.kontakt-lenker svg { width: 20px; height: 20px; color: var(--turkis-blekk); }

/* Bunnen */
.fot { background: var(--blekk); color: #fff; padding-block: 64px 40px; font-family: var(--ff-smal); }
.fot-grid { display: grid; gap: 36px 48px; }
@media (min-width: 64em) { .fot-grid { grid-template-columns: minmax(0, 4fr) repeat(3, minmax(0, 2fr)); } }
.fot img { height: 44px; width: auto; }
.fot h2 { font-family: var(--ff-smal); font-weight: 800; font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; color: #a9c2c4; margin-bottom: 14px; }
.fot ul { list-style: none; padding: 0; display: grid; gap: 2px; }
.fot a { color: #fff; text-decoration: none; display: inline-block; padding: 7px 0; }
.fot a:hover { text-decoration: underline; }
.fot p { color: #c3d3d5; }
.fot-bunn { margin-top: 48px; padding-top: 20px; border-top: 1px solid #28474b; display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: .875rem; color: #a9c2c4; }

/* Avsløring ved rulling: bare med JS og uten redusert bevegelse */
@media (prefers-reduced-motion: no-preference) {
  .js .r { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1); }
  .js .r.inn { opacity: 1; transform: none; }
}


/* ================= Viktig info ================= */
.viktig { background: var(--turkis); color: var(--blekk); }
.viktig[hidden] { display: none; }
.viktig-inner { display: flex; align-items: flex-start; gap: 12px; padding-block: 14px; }
.viktig-inner svg { flex: none; margin-top: 3px; }
.viktig-inner p { margin: 0; font-family: var(--ff-smal); font-size: 1.0625rem; line-height: 1.45; }

/* ================= Bilder ================= */
.galleri { padding-block: clamp(64px, 9vw, 120px); border-top: 1px solid var(--linje); }
.galleri-ingress { margin: 18px 0 0; max-width: 46ch; color: var(--blekk-2); }
.galleri-rutenett { list-style: none; margin: 36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 12px; }
.galleri-knapp { display: block; width: 100%; padding: 0; border: 0; background: #e9efef; cursor: zoom-in; border-radius: var(--r); overflow: hidden; }
.galleri-knapp img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .3s ease; }
.galleri-knapp:hover img { transform: scale(1.03); }
.galleri-vis { width: min(96vw, 1400px); max-height: 92vh; padding: 0; border: 0; background: #0b0f13; border-radius: var(--r); overflow: hidden; }
.galleri-vis::backdrop { background: rgb(11 15 19 / .85); }
.galleri-vis img { display: block; width: 100%; max-height: 92vh; object-fit: contain; }
.galleri-vis button { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgb(255 255 255 / .9); color: var(--blekk); font-size: 30px; line-height: 1; cursor: pointer; }
.galleri-forrige { left: 12px; top: 50%; transform: translateY(-50%); }
.galleri-neste { right: 12px; top: 50%; transform: translateY(-50%); }
.galleri-lukk { right: 12px; top: 12px; }
@media (prefers-reduced-motion: reduce) { .galleri-knapp img { transition: none; } }

@media print {
  .topp, .fot, .helt-foto, .scene, .velger, .mobilmeny { display: none !important; }
  .uka { background: #fff; }
}

/* Mindre tomrom under timeplanen: forklaringa og merknaden er det siste i seksjonen. */
.uka { padding-bottom: clamp(40px, 4vw, 64px); }

/* ================= Følg oss i helten ================= */
.helt-sosial { list-style: none; padding: 0; margin: 28px 0 0; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.helt-sosial a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--blekk); font-family: var(--ff-smal); font-weight: 700; text-decoration: none; }
.helt-sosial a:hover { color: var(--turkis-blekk); }
.helt-sosial svg { width: 22px; height: 22px; flex: none; }
.viktig-inner a { color: inherit; font-weight: 700; text-underline-offset: 3px; }

/* ================= Påmeldingsbetingelser ================= */
.vilkar { margin-top: 32px; padding: 22px 24px; background: #fff; border: 1px solid var(--linje); border-radius: var(--r); scroll-margin-top: calc(var(--topp) + 16px); }
.vilkar-liste { margin: 12px 0 0; padding-left: 1.2em; }
.vilkar-liste li { margin-top: 8px; color: var(--blekk-2); }
.vilkar-liste li::marker { color: var(--turkis-blekk); }
.regler { scroll-margin-top: calc(var(--topp) + 16px); }
.lest { margin-top: 24px; }
.lest label, .vilkar-vis label { display: flex; align-items: flex-start; gap: 12px; font-family: var(--ff-smal); font-weight: 700; font-size: 1.0625rem; cursor: pointer; }
.lest input, .vilkar-vis input { flex: none; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--turkis-blekk); }
.pamelding .lest .knapp { margin-top: 18px; }
.knapp[disabled], .knapp[aria-disabled="true"] { opacity: .45; cursor: not-allowed; }

/* Spør om betingelsene før man går til iCapire */
.vilkar-vis { width: min(92vw, 640px); max-height: 90vh; padding: 0; border: 0; border-radius: var(--r); color: var(--blekk); }
.vilkar-vis::backdrop { background: rgb(11 15 19 / .7); }
.vilkar-vis-inner { padding: 28px 24px; display: grid; gap: 18px; }
.vilkar-vis-tekst .vilkar { margin-top: 0; max-height: 42vh; overflow: auto; }
.vilkar-vis-knapper { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.vilkar-vis-knapper .pil { background: none; border-top: 0; border-left: 0; border-right: 0; cursor: pointer; font-size: 1rem; }
.vilkar-tittel { margin: 18px 0 0; font-family: var(--ff-smal); font-weight: 700; font-size: 1.0625rem; }
.vilkar p { margin: 8px 0 0; color: var(--blekk-2); }
.vilkar-mer { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--linje); }
.vilkar-mer summary { cursor: pointer; font-family: var(--ff-smal); font-weight: 700; color: var(--turkis-blekk); min-height: 32px; }

/* Viktig info */
.info-side { max-width: 46rem; }
.info-datoer { list-style: none; padding: 0; margin: 36px 0 0; border-top: 1px solid var(--blekk); }
.info-datoer li { display: grid; grid-template-columns: minmax(7.5rem, 11rem) minmax(0, 1fr); gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--linje); align-items: baseline; }
.info-datoer b { font-family: var(--ff-smal); font-weight: 700; }
.info-del { margin-top: 48px; }
.info-del p { margin-top: 14px; max-width: 65ch; line-height: 1.6; }
.info-handling { margin-top: 48px; display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: center; }
