


.seksjon { position: relative; padding: var(--seksjon-luft) 0; background: var(--flate); scroll-margin-top: var(--meny-h); }
.ramme { width: 100%; max-width: var(--maks); margin: 0 auto; padding: 0 var(--marg); }
.seksjon-tittel {
  font-size: var(--str-h2); font-weight: var(--vekt-tittel); letter-spacing: var(--sporing-tittel);
  line-height: 1.04; text-wrap: balance; overflow-wrap: break-word; hyphens: auto;
}
.seksjon h3 { font-size: var(--str-h3); font-weight: 400; letter-spacing: -0.015em; line-height: 1.22; }
.merke-linje { color: var(--bla-tekst); margin-bottom: clamp(0.8rem, 1.6vw, 1.15rem); }
.merke-linje::before { content: ""; width: 1.6rem; height: 1px; background: currentColor; }
.ingress { font-size: var(--str-ingress); line-height: 1.5; color: var(--tekst-dempet); max-width: 36rem; }
.bildetekst { margin-top: 0.8rem; font-size: 0.875rem; line-height: 1.45; color: var(--tekst-dempet); }
.etikett {
  position: absolute; left: 0.75rem; top: 0.75rem; z-index: 2;
  padding: 0.32rem 0.6rem; border-radius: var(--radius);
  font-size: 0.7rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--tekst-lys); background: var(--slor);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.lenke-pil {
  display: inline-flex; align-items: center; gap: 0.6rem; justify-self: start;
  padding-bottom: 0.2rem; border-bottom: 1px solid var(--linje-sterk);
  font-weight: 500; text-decoration: none;
}
.lenke-pil::after { content: "\2192"; content: "\2192" / ""; transition: transform 0.3s var(--mykt); }
.nb { white-space: nowrap; }
html:not(.js) .kun-js { display: none; }
.lenke-pil:hover::after { transform: translateX(4px); }


.tjenester, .slik { color: var(--tekst-lys); --fokus: var(--bla-lys); }
.tjenester .merke-linje, .slik .merke-linje { color: var(--bla-lys); }
.tjenester .ingress, .slik .ingress, .tjenester p { color: var(--tekst-lys-dempet); }



html.js-anim.sider-klar [data-vis] {
  opacity: 0; transform: translateY(26px);
  transition: opacity 0.9s var(--mykt), transform 1.1s var(--mykt);
  transition-delay: var(--forsink, 0s);
}
html.js-anim.sider-klar [data-vis].vist, html.js-anim.sider-klar [data-vis]:focus-within { opacity: 1; transform: none; }

.maske { position: relative; overflow: hidden; }
html.js-anim.sider-klar [data-vis="maske"] { opacity: 1; transform: none; }
html.js-anim.sider-klar [data-vis="maske"] .maske::after {
  content: ""; position: absolute; inset: -1px; z-index: 3; background: var(--flate);
  transform-origin: 100% 50%; transition: transform 1.25s cubic-bezier(0.7, 0, 0.2, 1);
}
html.js-anim.sider-klar [data-vis="maske"][data-fra="hoyre"] .maske::after { transform-origin: 0% 50%; }
html.js-anim.sider-klar [data-vis="maske"].vist .maske::after { transform: scaleX(0); }
html.js-anim.sider-klar [data-vis="maske"] .maske img { transform: scale(1.14); transition: transform 1.7s var(--mykt); }
html.js-anim.sider-klar [data-vis="maske"].vist .maske img { transform: none; }

.drift { height: 100%; }
.drift img { width: 100%; height: 100%; object-fit: cover; }
html.js-anim .drift { height: 112%; margin-top: -6%; transform: translate3d(0, calc((0.5 - var(--p, 0.5)) * 9%), 0); }


.intro { --flate: var(--sand); }
.intro-rad { display: grid; gap: clamp(2.5rem, 6vw, 3.5rem); }
.utsagn {
  font-size: clamp(1.8rem, 1.05rem + 2.5vw, 3.2rem); font-weight: var(--vekt-tittel);
  letter-spacing: -0.03em; line-height: 1.14; text-wrap: pretty; color: var(--tekst);
}
html.js-anim .utsagn .ord { opacity: 0.17; transition: opacity 0.5s var(--mykt); }
html.js-anim .utsagn .ord.lys { opacity: 1; }
.intro-mer {
  display: grid; gap: 0.85rem; max-width: 36rem;
  margin-top: clamp(2rem, 4vw, 3rem); padding-top: clamp(1.5rem, 3vw, 2rem); border-top: 1px solid var(--linje);
}
.intro-mer p { color: var(--tekst-dempet); }
.intro-bilde { position: relative; margin: 0; max-width: 30rem; justify-self: center; width: 100%; }
.intro-bilde .maske { aspect-ratio: 666 / 1001; max-height: 78svh; border-radius: var(--radius); }

.intro-vinkel {
  position: absolute; z-index: 4; left: -1.1rem; top: 16%; height: calc(84% + 1.1rem); width: calc(100% - 1rem);
  pointer-events: none;
  --d: clamp(0, calc((var(--p, 1) - 0.12) * 2.6), 1);
}
.intro-vinkel span { position: absolute; left: 0; background: var(--bla); }
.vinkel-v { top: 0; width: 2px; height: 100%; transform-origin: 50% 0; }
.vinkel-h { bottom: 0; height: 2px; width: 100%; transform-origin: 0 50%; }
html.js-anim .vinkel-v { transform: scaleY(clamp(0, calc(var(--d) * 2), 1)); }
html.js-anim .vinkel-h { transform: scaleX(clamp(0, calc(var(--d) * 2 - 1), 1)); }
@media (max-width: 899px) {
  .intro-vinkel { left: -0.6rem; height: calc(84% + 0.7rem); }   
}
@media (min-width: 900px) {
  .intro-rad { grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); align-items: center; column-gap: clamp(3rem, 7vw, 7.5rem); }
}


.partnere { --flate: var(--dis); --par-b: 10.5rem; --par-h: 6rem; --par-mellom: 0.75rem; --par-tid: 55s; overflow: hidden; }
@media (min-width: 768px) { .partnere { --par-b: 14rem; --par-h: 7.5rem; --par-mellom: 1rem; } }
.par-topp { display: grid; gap: 1.25rem; margin-bottom: clamp(1.75rem, 3.5vw, 2.75rem); }
@media (min-width: 900px) {
  .par-topp { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); align-items: end; column-gap: clamp(3rem, 6vw, 6rem); }
}
.par-tekst .lenke-pil { margin-top: 1rem; }
.par-rekke { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--par-mellom); max-width: var(--maks); margin: 0 auto; padding: 0 var(--marg); }
.par-rekke li { flex: none; display: grid; place-items: center; width: var(--par-b); height: var(--par-h); background: var(--hvit); border-radius: var(--radius); }
.par-rekke img { width: var(--w, 70%); height: auto; }
.par-kopi, .par-bunn { display: none; }
html.js-anim .par-stripe {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}
html.js-anim .par-drift { transform: translateX(calc((0.5 - var(--p, 0.5)) * 8vw)); }
html.js-anim .par-spor { display: flex; width: max-content; animation: par-gli var(--par-tid) linear infinite; }
html.js-anim .par-rekke { flex-wrap: nowrap; max-width: none; margin: 0; padding: 0 var(--par-mellom) 0 0; }
html.js-anim .par-kopi { display: flex; }
html.js-anim .par-bunn { display: flex; justify-content: flex-end; margin-top: 1rem; }
html.js-anim .par-stripe.pause .par-spor { animation-play-state: paused; }
@keyframes par-gli { to { transform: translateX(-50%); } }
.par-pause {
  display: inline-flex; align-items: center; gap: 0.6rem; min-height: 44px; padding: 0.4rem 1rem; font: inherit; font-size: 0.95rem;
  color: var(--tekst); background: transparent; border: 1px solid var(--linje-sterk); border-radius: 999px; cursor: pointer;
  transition: border-color 0.2s var(--mykt);
}
.par-pause:hover { border-color: var(--natt); }
.par-pause:focus-visible { outline: 2px solid var(--fokus); outline-offset: 2px; }
.par-ikon { width: 10px; height: 12px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.par-pause.stoppet .par-ikon { width: 0; height: 0; border-right: 0; border-left: 10px solid currentColor; border-top: 6px solid transparent; border-bottom: 6px solid transparent; }

@media (prefers-reduced-motion: reduce) {
  html.js-anim .par-spor { display: block; width: auto; animation: none; }
  html.js-anim .par-rekke { flex-wrap: wrap; max-width: var(--maks); margin: 0 auto; padding: 0 var(--marg); }
  html.js-anim .par-kopi, html.js-anim .par-bunn { display: none; }
  html.js-anim .par-stripe { -webkit-mask-image: none; mask-image: none; }
  html.js-anim .par-drift { transform: none; }
}



.tjenester { --flate: var(--natt-2); overflow: hidden; }   

#tjenester { scroll-margin-top: calc(var(--meny-h) - var(--seksjon-luft) + 0.75rem); }
.tj-topp { display: grid; gap: 1.25rem; margin-bottom: clamp(1.75rem, 3.5vw, 2.75rem); }
@media (min-width: 900px) {
  .tj-topp { grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr); align-items: end; column-gap: clamp(2rem, 4vw, 4rem); }
}

.tj-rutenett { display: grid; gap: clamp(2.5rem, 5vw, 3.75rem) clamp(1.25rem, 3.2vw, 3rem); }
@media (min-width: 700px) { .tj-rutenett { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tjeneste { position: relative; }
.tj-bilde { position: relative; width: 100%; aspect-ratio: 2 / 1; overflow: hidden; border-radius: var(--radius); background: var(--natt-3); }

html.js-anim .tj-bilde .drift { margin-top: 0; transform: translate3d(0, calc(-5.36% + (0.5 - var(--p, 0.5)) * 9%), 0); }
.tj-bilde img { width: 100%; height: 100%; object-fit: cover; object-position: 50% var(--bilde-y, 50%); }

.tj-par {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fe-glipe);
  overflow: visible; border-radius: 0; background: none;
}
.tj-par > .maske { border-radius: var(--radius); background: var(--natt-3); }
.tj-tekst { padding-top: clamp(1rem, 1.6vw, 1.4rem); }
.tj-nr {
  display: flex; align-items: center; gap: 0.75rem;
  font-size: 0.85rem; font-weight: 600; letter-spacing: 0.12em; color: var(--bla-lys); font-variant-numeric: tabular-nums;
}
.tj-nr::after { content: ""; flex: 0 0 2.25rem; height: 1px; background: currentColor; opacity: 0.6; }
.tjeneste h3 {
  margin-top: 0.4rem; color: var(--tekst-lys);
  font-size: clamp(1.65rem, 1.15rem + 1.35vw, 2.5rem); font-weight: var(--vekt-tittel); letter-spacing: -0.025em; line-height: 1.08;
}
.kort-lenke { text-decoration: none; color: inherit; }
.kort-lenke::after { content: ""; position: absolute; inset: 0; z-index: 4; }
.kort-lenke::before {
  content: "\2192"; content: "\2192" / ""; float: right; margin: 0.15em 0 0 0.75rem; font-size: 0.8em;
  color: var(--bla-lys); transition: transform 0.3s var(--mykt);
}
.tjeneste:hover .kort-lenke::before { transform: translateX(5px); }
.kort-lenke:focus-visible { outline: none; }
.kort-lenke:focus-visible::after { outline: 2px solid var(--fokus); outline-offset: 4px; }
.tjeneste h3 + p { margin-top: 0.6rem; max-width: 34rem; font-size: var(--str-ingress); line-height: 1.5; text-wrap: pretty; }

.tj-fakta { margin: clamp(0.9rem, 1.5vw, 1.2rem) 0 0; border-top: 1px solid var(--linje-lys); }
.tj-fakta > div {
  display: grid; grid-template-columns: 6.75rem minmax(0, 1fr); gap: 1rem; align-items: baseline;
  padding: 0.6rem 0; border-bottom: 1px solid var(--linje-lys);
}
.tj-fakta dt { font-size: var(--str-merke); font-weight: var(--vekt-merke); letter-spacing: var(--sporing-merke); text-transform: uppercase; color: var(--bla-lys); }
.tj-fakta dd { margin: 0; color: var(--tekst-lys); text-wrap: pretty; }
@media (max-width: 699px) {
  .tj-fakta > div { grid-template-columns: 5.75rem minmax(0, 1fr); gap: 0.75rem; }
}


.tj-flere { display: grid; margin-top: clamp(1.75rem, 3vw, 2.5rem); border-top: 1px solid var(--linje-lys); }
.tj-flere li { border-bottom: 1px solid var(--linje-lys); }
.tj-flere a { position: relative; display: grid; gap: 0.3rem; padding: 1.1rem 2.25rem 1.1rem 0; text-decoration: none; color: var(--tekst-lys); }
.tj-flere a::after {
  content: "\2192"; content: "\2192" / ""; position: absolute; right: 0.25rem; top: 1.1rem;
  color: var(--bla-lys); transition: transform 0.3s var(--mykt);
}
.tj-flere a:hover::after { transform: translateX(4px); }
.tj-flere a:focus-visible { outline: 2px solid var(--fokus); outline-offset: 4px; }
.tj-flere-navn { font-size: clamp(1.3rem, 1.05rem + 0.8vw, 1.75rem); font-weight: var(--vekt-tittel); letter-spacing: -0.02em; line-height: 1.18; }
.tj-flere-tekst { color: var(--tekst-lys-dempet); }

@media (min-width: 900px) {
  .tj-flere { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(1rem, 2vw, 1.75rem); border-top: 0; }
  .tj-flere li { border-top: 1px solid var(--linje-lys); border-bottom: 0; }
}
@media (min-width: 1180px) {
  .tj-flere { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}


.mindre { --flate: var(--kalk); }
.mindre-rad { display: grid; gap: clamp(2rem, 5vw, 3rem); }
.mindre-tekst .seksjon-tittel { margin-bottom: 1.1rem; }
.mindre-knapper { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin-top: clamp(1.5rem, 3vw, 2rem); }
.mindre-bilder { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(0.6rem, 1.5vw, 1.1rem); }
.mindre-bilder li { margin: 0; }
.mindre-bilder .maske { aspect-ratio: 4 / 5; border-radius: var(--radius); background: var(--sand); }
.mindre-bilder img { width: 100%; height: 100%; object-fit: cover; }
.mindre-bilder p { margin-top: 0.6rem; font-size: 0.95rem; font-weight: 500; }
.mindre-bilder li:nth-child(2) { margin-top: clamp(1rem, 3vw, 2.5rem); }

html.js-anim.sider-klar .mindre-bilder li[data-vis] { transform: translate3d(0, calc((0.5 - var(--p, 0.5)) * var(--fart, 0px)), 0); will-change: transform; }
@media (min-width: 900px) {
  .mindre-rad { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); align-items: center; column-gap: clamp(3rem, 6vw, 6rem); }
}


.prosjekter { --flate: var(--sand); }
.pr-topp { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: clamp(2rem, 4vw, 3rem); }

.prosjekt-stabel { display: block; }
.prosjekt-kort + .prosjekt-kort { margin-top: clamp(1.5rem, 4svh, 2.5rem); }
.prosjekt-kort {
  position: relative; display: grid; overflow: hidden; border-radius: var(--radius);
  background: var(--natt); color: var(--tekst-lys); --fokus: var(--bla-lys); transform-origin: 50% 0;
}

.prosjekt-kort::after { content: ""; position: absolute; inset: 0; background: var(--natt); opacity: var(--dim, 0); pointer-events: none; }
.pk-bilde { position: relative; margin: 0; overflow: hidden; aspect-ratio: max(var(--ar), 1.2); }
.pk-indre { position: absolute; inset: 0; }
.pk-indre img { width: 100%; height: 100%; object-fit: cover; }
.pk-tekst { display: grid; align-content: center; justify-items: start; gap: 1rem; padding: clamp(1.5rem, 4vw, 4rem); }
.pk-nr { font-size: 0.85rem; font-weight: 600; letter-spacing: 0.08em; font-variant-numeric: tabular-nums; color: var(--bla-lys); }
.pk-tekst h3 { font-size: clamp(1.9rem, 3.4vw, 3.4rem); font-weight: var(--vekt-tittel); letter-spacing: var(--sporing-tittel); line-height: 1.08; }
.pk-tekst p:not(.pk-nr) { max-width: 30em; color: var(--tekst-lys-dempet); }
.pk-merker { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.pk-merker li { padding: 0.3rem 0.7rem; border: 1px solid var(--linje-lys); border-radius: 999px; font-size: 0.85rem; color: var(--tekst-lys-dempet); }
.pk-tekst .lenke-pil { margin-top: 0.25rem; border-bottom-color: var(--linje-lys); }

@media (min-width: 768px) {
  .prosjekt-kort {
    --kort-h: min(calc(100svh - var(--meny-h) - 48px), 760px);
    position: sticky; top: calc(var(--meny-h) + 22px + var(--i) * 14px);
    grid-template-columns: min(56%, calc(var(--kort-h) * var(--ar))) minmax(0, 1fr);
    height: var(--kort-h); min-height: 440px;
  }
  .pk-bilde { aspect-ratio: auto; }
}


.for-etter { --flate: var(--dis); }
.fe-rad { display: grid; gap: clamp(2rem, 5vw, 3rem); }
@media (min-width: 900px) {
  .fe-rad { grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); align-items: center; column-gap: clamp(2.5rem, 5vw, 5rem); }
}
.fe-tekst .seksjon-tittel { font-size: clamp(2rem, 1.2rem + 2.4vw, 3.3rem); margin-bottom: 1.25rem; }
.fe-tekst p { color: var(--tekst-dempet); max-width: 34rem; }
.fe-tekst p + p { margin-top: 0.9rem; }
.fe-tekst .lenke-pil { margin-top: 1.5rem; }
.fe-sitat { margin: 1.75rem 0 0; padding-left: 1.25rem; border-left: 2px solid var(--bla); }
.fe-sitat p { font-size: clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem); line-height: 1.5; color: var(--tekst); }
.fe-sitat footer { margin-top: 0.6rem; font-size: 0.95rem; color: var(--tekst-dempet); }
.fe-figur { margin: 0; }

.fe-par { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fe-glipe); }
.fe-par img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius); background: var(--sand); }
.fe-merke {
  position: absolute; top: 0.85rem; z-index: 2; padding: 0.3rem 0.65rem; border-radius: var(--radius);
  font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--tekst-lys); background: var(--slor); pointer-events: none;
}
.fe-merke-for { left: 0.85rem; }
.fe-merke-etter { right: 0.85rem; }


.slik { --flate: var(--natt-2); }
.slik-rad { display: grid; gap: clamp(2rem, 4vw, 3rem); }
.slik-hode .ingress { margin-top: 1.1rem; }
.slik-hode .knapp { margin-top: clamp(1.5rem, 3vw, 2rem); }
.steg { border-top: 1px solid var(--linje-lys); }
.steg li {
  display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; column-gap: 1rem; align-items: baseline;
  padding: clamp(1.25rem, 2.4vw, 1.75rem) 0; border-bottom: 1px solid var(--linje-lys);
  transition: opacity 0.5s var(--mykt);
}
html.sider-klar .steg li { opacity: 0.72; }   
html.sider-klar .steg li.aktiv { opacity: 1; }
html.sider-klar .steg li:not(.aktiv) .steg-nr { color: var(--tekst-lys-dempet); }
.steg-nr { font-size: 0.9rem; font-weight: 600; letter-spacing: 0.06em; color: var(--bla-lys); font-variant-numeric: tabular-nums; }
.steg h3 { color: var(--tekst-lys); font-size: clamp(1.35rem, 1.1rem + 0.8vw, 1.75rem); }
.steg p { margin-top: 0.4rem; color: var(--tekst-lys-dempet); max-width: 32rem; }
.steg .steg-tid { margin: 0; font-weight: 500; color: var(--bla-lys); white-space: nowrap; font-variant-numeric: tabular-nums; }
.slik-sum { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.25rem 1rem; margin-top: clamp(1.25rem, 2.4vw, 1.75rem); }
.slik-sum span { font-size: 1.1rem; color: var(--tekst-lys); }
.slik-sum strong {
  font-size: clamp(1.7rem, 1.2rem + 1.5vw, 2.4rem); font-weight: var(--vekt-tittel); letter-spacing: var(--sporing-tittel);
  color: var(--tekst-lys); white-space: nowrap; font-variant-numeric: tabular-nums;
}
.slik-merk { margin-top: 0.35rem; color: var(--tekst-lys-dempet); }
@media (max-width: 599px) {
  .steg li { grid-template-columns: 2.4rem minmax(0, 1fr); }
  .steg .steg-tid { grid-column: 2; margin-top: 0.55rem; }
}
@media (min-width: 900px) {
  .slik-rad { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); column-gap: clamp(3rem, 7vw, 7rem); align-items: start; }
  .slik-hode { position: sticky; top: calc(var(--meny-h) + 2rem); }
}
@media (min-width: 900px) and (max-height: 720px) {
  .slik-hode { position: static; }   
}


.om { --flate: var(--kalk); }

.om-bilde { margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.om-bilde-ramme, .om-bilde figcaption { width: min(100%, calc((100svh - var(--meny-h) - 7rem) * 16 / 9)); margin-inline: auto; }
.om-bilde-ramme { position: relative; overflow: hidden; border-radius: var(--radius); aspect-ratio: 16 / 9; background: var(--sand); }
.om-bilde-ramme > img, .om-tegning { position: absolute; inset: 0; width: 100%; height: 100%; }
.om-bilde-ramme > img { display: block; object-fit: cover; object-position: 50% 100%; }
.om-tegning { display: none; }
@media (max-width: 767px) { .om-bilde-ramme { aspect-ratio: 4 / 3; } }
html.js-anim .om-scene { height: calc(100svh * 1.6); margin-bottom: clamp(1rem, 3vw, 2rem); }
html.js-anim .om-scene .om-bilde { position: sticky; top: calc(var(--meny-h) + 1.25rem); }
html.js-anim .om-tegning { display: block; }
html.js-anim .om-tegnet {
  --t: clamp(0, calc(var(--p, 1) / 0.62), 1);
  --r: clamp(0, calc((var(--p, 1) - 0.62) / 0.24), 1);
}
html.js-anim .om-foto {
  -webkit-mask-image: linear-gradient(to top, #000 calc(var(--r) * 118% - 18%), transparent calc(var(--r) * 118%));
  mask-image: linear-gradient(to top, #000 calc(var(--r) * 118% - 18%), transparent calc(var(--r) * 118%));
}
.om-tegning path {
  fill: none; stroke: var(--strek-mal); stroke-linecap: round; stroke-width: 3;
  stroke-dasharray: 1 1; stroke-dashoffset: clamp(0, calc((var(--b) - var(--t)) / (var(--b) - var(--a))), 1);
}
.om-tegning .o-d { stroke-width: 2; }
html.js-anim .om-tegning { opacity: calc(1 - clamp(0, calc((var(--p, 1) - 0.8) / 0.12), 1)); }
@media (max-width: 767px) { .om-tegning path { stroke-width: 6; } .om-tegning .o-d { stroke-width: 4; } }
.om-rad { display: grid; gap: clamp(2rem, 5vw, 3rem); }
.om-figur { margin: 0; }
.om-figur .maske { aspect-ratio: 4 / 3; border-radius: var(--radius); background: var(--sand); }
.om-tekst .seksjon-tittel { margin-bottom: 1.25rem; }
.om-tekst .ingress { color: var(--tekst); }
.om-tekst p:not(.ingress):not(.merke) { margin-top: 1rem; color: var(--tekst-dempet); max-width: 36rem; }
.om-tekst .lenke-pil { margin-top: 1.5rem; }
.fakta { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(10rem, 100%), 1fr)); gap: 1.1rem 1.5rem; margin: 0; }
.fakta div { padding-top: 0.85rem; border-top: 1px solid var(--linje); }
.fakta dt { font-size: var(--str-merke); font-weight: var(--vekt-merke); letter-spacing: var(--sporing-merke); text-transform: uppercase; color: var(--bla-tekst); }
.fakta dd { margin: 0.35rem 0 0; font-size: 1.15rem; color: var(--tekst); overflow-wrap: anywhere; }   
.godkjent { display: flex; align-items: center; gap: 1.1rem; margin-top: clamp(1.5rem, 3vw, 2.25rem); padding: 1rem; background: var(--hvit); border-radius: var(--radius); }
.godkjent img { width: 76px; height: auto; flex: none; border-radius: var(--radius); }
.godkjent p { color: var(--tekst); }
@media (min-width: 900px) {
  .om-rad { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); align-items: start; column-gap: clamp(3rem, 6vw, 6rem); }
  .om-figur { grid-row: 1 / span 2; }
  .om-tekst, .om-fakta { grid-column: 2; }
}

.lev { display: grid; gap: 0.9rem; margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.lev .merke { color: var(--tekst-dempet); }
.lev-liste { display: flex; flex-wrap: wrap; gap: 0.4rem clamp(1.1rem, 1.9vw, 1.75rem); }
.lev-liste li { font-size: clamp(1.05rem, 0.98rem + 0.25vw, 1.2rem); font-weight: 500; letter-spacing: -0.01em; color: var(--skifer); }
@media (min-width: 1300px) {
  .lev { grid-template-columns: auto minmax(0, 1fr); align-items: baseline; column-gap: 3rem; }
}
.om .lev { padding-top: clamp(1.5rem, 3vw, 2rem); border-top: 1px solid var(--linje); }


.kontakt { --flate: var(--sand); }
.ko-rad { display: grid; gap: clamp(2rem, 5vw, 3rem); }
@media (min-width: 900px) {
  .ko-rad { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: start; column-gap: clamp(3rem, 6vw, 6rem); }
}
.ko-tekst .ingress { margin-top: 1.1rem; }
.ko-liste { margin-top: 2rem; border-top: 1px solid var(--linje); }
.ko-liste li { border-bottom: 1px solid var(--linje); }
.ko-liste a, .ko-linje { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); align-items: baseline; gap: 1rem; padding: 0.95rem 0; text-decoration: none; overflow-wrap: anywhere; }
.ko-liste a:hover span:last-child { text-decoration: underline; text-underline-offset: 3px; }
.ko-etikett { font-size: var(--str-merke); font-weight: var(--vekt-merke); letter-spacing: var(--sporing-merke); text-transform: uppercase; color: var(--tekst-dempet); }
.ko-stor { font-size: clamp(1.35rem, 1.2rem + 0.6vw, 1.7rem); font-weight: 400; letter-spacing: -0.01em; }
.skjema { position: relative; display: grid; gap: 1.1rem; padding: clamp(1.4rem, 3vw, 2.5rem); background: var(--kalk); border-radius: var(--radius); }
.felt { display: grid; gap: 0.45rem; min-width: 0; }
.felt label, .felt legend { font-size: 0.98rem; font-weight: 500; }
.valgfri { font-weight: 400; color: var(--tekst-dempet); }
.felt input, .felt textarea, .felt select {
  width: 100%; min-height: 52px; padding: 0.8rem 0.95rem; font: inherit; font-size: 1.0625rem; color: var(--tekst);
  background: var(--hvit); border: 1px solid var(--linje-sterk); border-radius: var(--radius);
  transition: border-color 0.2s var(--mykt);
}
.felt textarea { min-height: 8rem; resize: vertical; }
.felt input:hover, .felt textarea:hover, .felt select:hover { border-color: var(--skifer); }
.felt input:focus-visible, .felt textarea:focus-visible, .felt select:focus-visible { outline: 2px solid var(--fokus); outline-offset: 1px; border-color: var(--fokus); }
.felt [aria-invalid="true"] { border-color: var(--feil); }
.felt-par { display: grid; gap: 1.1rem; }
@media (min-width: 560px) { .felt-par { grid-template-columns: 1fr 1fr; } }
.valg { margin: 0; padding: 0; border: 0; }
.valg legend { padding: 0; margin-bottom: 0.45rem; }
.valg-liste { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.valg-liste label { position: relative; }
.valg-liste input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.valg-liste span {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0.5rem 1rem;
  border: 1px solid var(--linje-sterk); border-radius: 999px; background: var(--hvit); cursor: pointer;
  font-size: 0.98rem; transition: background-color 0.2s var(--mykt), color 0.2s var(--mykt), border-color 0.2s var(--mykt);
}
.valg-liste span:hover { border-color: var(--natt); }
.valg-liste input:checked + span { background: var(--natt); border-color: var(--natt); color: var(--tekst-lys); }
.valg-liste input:focus-visible + span { outline: 2px solid var(--fokus); outline-offset: 2px; }
.kontroll-felt { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.felt-navn { font-size: 0.98rem; font-weight: 500; }
.bilder-rad { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.felt .bilder-inndata {
  position: absolute; width: 1px; height: 1px; min-height: 0; padding: 0; border: 0;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; opacity: 0;
}
.felt .bilder-knapp {
  display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 18px;
  border: 1px solid var(--linje-sterk); border-radius: var(--radius); background: var(--hvit);
  color: var(--tekst); font-size: 1.0625rem; font-weight: 400; cursor: pointer; transition: border-color 0.2s var(--mykt);
}
.felt .bilder-knapp:hover { border-color: var(--skifer); }
.bilder-knapp svg { flex: none; width: 20px; height: 20px; }
.bilder-inndata:focus-visible + .bilder-knapp { border-color: var(--fokus); outline: 2px solid var(--fokus); outline-offset: 1px; }
.bilder-liste { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; padding: 8px 8px 0 0; list-style: none; }
.bilder-liste li { position: relative; width: 56px; height: 56px; }
.bilder-liste img, .bilde-tom {
  display: block; width: 100%; height: 100%; border: 1px solid var(--linje-sterk); border-radius: var(--radius); object-fit: cover;
}
.bilde-tom { background: var(--sand); }
.bilde-fjern {
  position: absolute; top: -10px; right: -10px; display: grid; place-items: center; width: 28px; height: 28px; padding: 0;
  border: 2px solid var(--hvit); border-radius: 50%; background: var(--natt); color: var(--tekst-lys); cursor: pointer;
}
.bilde-fjern svg { width: 14px; height: 14px; }
.bilde-fjern:focus-visible { outline: 2px solid var(--fokus); outline-offset: 2px; }
.bilder-hint { font-size: 0.9rem; line-height: 1.4; color: var(--tekst-dempet); }
.skjema .knapp { justify-self: start; min-width: 10rem; }
.skjema-status { min-height: 1.5em; font-size: 1rem; color: var(--tekst); }
.skjema-status.feil { color: var(--feil); }
.skjema-status a { white-space: nowrap; }   
@media (max-width: 559px) { .skjema .knapp { justify-self: stretch; } }


.bunn { padding: clamp(3rem, 6vw, 4.5rem) 0 1.5rem; background: var(--natt); color: var(--tekst-lys); --fokus: var(--bla-lys); }
.bunn-rad { display: grid; gap: 2rem; }
@media (min-width: 768px) { .bunn-rad { grid-template-columns: 1.4fr 1fr 1fr; } }
.bunn-logo img { width: 170px; height: auto; }
.bunn-slagord { margin-top: 1rem; max-width: 20rem; color: var(--tekst-lys-dempet); }
.bunn-kol .merke { margin-bottom: 0.9rem; color: var(--bla-lys); }
.bunn-kol li { color: var(--tekst-lys-dempet); overflow-wrap: anywhere; }
.bunn-kol li + li { margin-top: 0.45rem; }
.bunn a { text-decoration: none; color: var(--tekst-lys-dempet); transition: color 0.2s var(--mykt); }
.bunn a:hover { color: var(--tekst-lys); }

.bunn-ordramme { container-type: inline-size; }
.bunn-ord {
  margin-top: clamp(1.75rem, 4vw, 3rem); overflow: hidden; white-space: nowrap; padding-bottom: 0.04em;
  font-size: 12vw; font-size: calc(100cqi / 6.9); font-weight: var(--vekt-tittel); letter-spacing: -0.045em; line-height: 0.92;
  color: var(--tekst-lys);
}
.bunn-ord span { display: inline-block; }
html.js-anim.sider-klar .bunn-ord[data-vis] { opacity: 1; transform: none; }
html.js-anim.sider-klar .bunn-ord span { transform: translate3d(0, 105%, 0); transition: transform 1.3s var(--mykt); }
html.js-anim.sider-klar .bunn-ord span + span { transition-delay: 0.12s; }
html.js-anim.sider-klar .bunn-ord.vist span { transform: none; }
.bunn-linje {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 1.5rem;
  margin-top: clamp(2.5rem, 5vw, 3.5rem); padding-top: 1.25rem; border-top: 1px solid var(--linje-lys);
  font-size: 0.9rem; color: var(--tekst-lys-dempet);
}


@media (prefers-reduced-motion: reduce) {
  .steg li { transition: none; }
}
html:not(.js) .sprak, html:not(.js) .meny-knapp { display: none; }

.tjeneste .maske::after { transition-delay: var(--forsink, 0s); }
