

.kt {
  --kt-reise: 1.5;            
  --kt-pre: 0.5;              
  --kt-band: 22px;            
  --kt-band-smal: 7px;        
  --kt-band-bunn: 26px;       
  --kt-navn-str: 0.8125rem;   
  --kt-hjem-str: 0.9375rem;
  --kt-pin: 0;                
  --kt-smal: 0;               
  --kt-andel: 0.56;           
}

.kt-scene {
  width: min(100% - 2 * var(--marg), var(--bredde));
  margin-inline: auto;
  display: grid;
  gap: var(--gap-stor);
}

.kt-syn {
  display: grid;
  gap: var(--gap-stor);
}

.kt-reise {
  display: none;
}

.kt-tittel {
  max-width: 16ch;
  text-wrap: balance;
}

.kt-ark {
  margin: 0;
}

.kt-vindu {
  position: relative;
  aspect-ratio: var(--kt-forhold);
  background: var(--mork-2);
  border: 1px solid var(--mork-strek);
  overflow: hidden;
}

.kt-flate,
.kt-navn {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.kt-flate {
  outline: 1px solid var(--mork-strek);
  outline-offset: -1px;
}

.kt-navn {
  pointer-events: none;
}

.kt-kart {
  position: absolute;
  display: block;
  max-width: none;
  height: auto;
  user-select: none;
}

.kt-kart-naer {
  display: none;
}

.kt-plan {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.kt-s-linje {
  fill: none;
  stroke: var(--gull);
  stroke-width: 1.25;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
  opacity: 0.9;
}

.kt-s-halo {
  fill: none;
  stroke: var(--mork);
  stroke-width: 9;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}

.kt-s-prikk {
  fill: none;
  stroke: var(--mork-tekst);
  stroke-width: 5.5;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}

.kt-s-hjem {
  fill: none;
  stroke: var(--gull);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}

.kt-s-hjemprikk {
  fill: none;
  stroke: var(--gull);
  stroke-width: 6;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}

.kt-nord {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 20px;
  height: auto;
  overflow: visible;
}

.kt-nord text {
  fill: var(--mork-tekst);
  font: 600 10px var(--font);
}

.kt-nord-fyll {
  fill: var(--mork-tekst);
}

.kt-nord-strek {
  fill: none;
  stroke: var(--mork-tekst);
  stroke-width: 1;
}

.kt-skala {
  position: absolute;
  left: 14px;
  bottom: 14px;
  width: var(--skala);
  height: 20px;
  color: var(--mork-tekst);
  font-size: 0.6875rem;
  line-height: 1;
}

.kt-skala-bar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4px;
  border: 1px solid currentColor;
  background: linear-gradient(to right, currentColor 50%, transparent 50%);
}

.kt-skala-0,
.kt-skala-km {
  position: absolute;
  top: 0;
  text-shadow: 0 0 3px var(--mork), 0 0 6px var(--mork);
}

.kt-skala-0 {
  left: -2px;
}

.kt-skala-km {
  left: 100%;
  transform: translateX(-50%);
  white-space: nowrap;
}

.kt-lerret {
  display: none;
}

.kt-sted {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: 0;
  height: 0;
}

.kt-t {
  position: absolute;
  white-space: nowrap;
  font-size: var(--kt-navn-str);
  font-weight: var(--vekt-halv);
  letter-spacing: 0.01em;
  line-height: 1.15;
  color: var(--mork-tekst);
  text-shadow: 0 0 2px var(--mork), 0 0 4px var(--mork), 0 0 8px var(--mork);
}

.kt-r .kt-t { left: 9px; top: 0; transform: translateY(-52%); }
.kt-l .kt-t { right: 9px; top: 0; transform: translateY(-52%); }
.kt-u .kt-t { left: 0; bottom: 7px; transform: translateX(-50%); }
.kt-d .kt-t { left: 0; top: 7px; transform: translateX(-50%); }
.kt-ru .kt-t { left: 5px; bottom: 4px; }
.kt-rd .kt-t { left: 5px; top: 4px; }
.kt-lu .kt-t { right: 5px; bottom: 4px; }
.kt-ld .kt-t { right: 5px; top: 4px; }

.kt-hjem .kt-t {
  left: 22px;
  font-size: var(--kt-hjem-str);
  color: var(--gull-lys);
}

@media (max-width: 47.99rem) {
  .kt-smal {
    display: none;
  }
}

.kt-strip {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding-top: 9px;
  font-size: 0.8125rem;
  color: var(--tekst-dempet);
}

.kt-teller {
  white-space: nowrap;
}

.kt-tall {
  color: var(--gull);
  font-weight: var(--vekt-halv);
  font-variant-numeric: tabular-nums;
}

.kt-under {
  display: grid;
  gap: clamp(18px, 2.4vw, 28px);
  align-content: start;
}

.kt-ingress {
  margin: 0;
  max-width: 34rem;
  color: var(--tekst-dempet);
}

.kt-liste {
  display: grid;
  gap: 16px;
}

.kt-gruppe-tittel {
  margin: 0 0 6px;
  font-size: var(--merke-str);
  font-weight: var(--vekt-halv);
  letter-spacing: var(--sporing-merke);
  text-transform: uppercase;
  line-height: 1.3;
  color: var(--tekst-dempet);
}

.kt-kommuner {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
}

.kt-kommuner li {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 1.0625rem;
  line-height: 1.35;
}

.kt-kommuner li::before {
  content: "";
  flex: none;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  border: 1px solid var(--gull);
  background: var(--gull);
}

.kt-handling {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 26px;
}

@media (min-width: 960px) {
  .kt-scene {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    grid-template-areas: "topp ark" "under ark";
    grid-template-rows: auto 1fr;
    column-gap: var(--gap-stor);
    row-gap: clamp(20px, 2.6vw, 32px);
    align-items: start;
  }

  .kt-syn {
    display: contents;
  }

  .kt-topp { grid-area: topp; }
  .kt-ark { grid-area: ark; }
  .kt-under { grid-area: under; }
}

.kt-styrt .kt-lerret {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.kt-styrt .kt-flate,
.kt-styrt .kt-navn {
  inset: var(--kt-band) var(--kt-band-smal) var(--kt-band-bunn) var(--kt-band);
}

.kt-styrt .kt-flate {
  outline: 0;
}

.kt-styrt .kt-plan,
.kt-styrt .kt-nord,
.kt-styrt .kt-skala {
  display: none;
}

.kt-styrt .kt-kart {
  left: 0;
  top: 0;
  transform-origin: 0 0;
  will-change: transform, opacity;
  opacity: 0;
}

.kt-styrt .kt-kart-naer {
  display: block;
}

.kt-styrt .kt-sted {
  left: 0;
  top: 0;
  opacity: 0;
  will-change: transform, opacity;
}

.kt-tett .kt-smal {
  display: none;
}

.kt-styrt .kt-kommuner li {
  
  opacity: 0.55;
  transition: opacity 0.45s var(--ease);
}

.kt-styrt .kt-kommuner li::before {
  background: transparent;
  transition: background-color 0.45s var(--ease);
}

.kt-styrt .kt-kommuner li.kt-naadd {
  opacity: 1;
}

.kt-styrt .kt-kommuner li.kt-naadd::before {
  background: var(--gull);
}

@media (prefers-reduced-motion: no-preference) and (max-width: 63.99rem) and (min-height: 34rem) {
  .kt.kt-styrt {
    --kt-pin: 1;
    --kt-smal: 1;
    --kt-reise: 1.4;
    --kt-band: 18px;
    --kt-band-smal: 6px;
    --kt-band-bunn: 24px;
    --kt-navn-str: 0.75rem;
    --kt-hjem-str: 0.875rem;
    padding-block: 0 var(--seksjon-luft);
  }

  .kt-styrt .kt-reise {
    display: block;
    height: calc(var(--kt-reise) * 100svh);
  }

  .kt-styrt .kt-scene {
    position: sticky;
    top: 0;
    display: block;
  }

  .kt-styrt .kt-syn {
    display: flex;
    flex-direction: column;
    gap: clamp(8px, 1.6svh, 14px);
    height: 100svh;
    padding: calc(var(--meny-h) + clamp(10px, 2svh, 18px)) 0 calc(var(--ringelinje-h) + clamp(8px, 1.6svh, 14px));
  }

  .kt-styrt .kt-topp .merke {
    margin-bottom: clamp(4px, 1svh, 10px);
  }

  .kt-styrt .kt-tittel {
    max-width: none;
    font-size: clamp(1.5rem, min(6.4vw, 4.4svh), 2.4rem);
  }

  .kt-styrt .kt-ark {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }

  .kt-styrt .kt-vindu {
    flex: 1 1 auto;
    min-height: 0;
    aspect-ratio: auto;
  }

  .kt-styrt .kt-strip {
    padding-top: 7px;
  }

  .kt-styrt .kt-smal {
    display: none;
  }
}

@media (prefers-reduced-motion: no-preference) and (min-width: 64rem) and (min-height: 30rem) {
  .kt.kt-styrt {
    --kt-pin: 1;
    padding-block: 0;
  }

  .kt-styrt .kt-reise {
    display: block;
    height: calc(var(--kt-reise) * 100svh);
  }

  .kt-styrt .kt-scene {
    position: sticky;
    top: 0;
    width: min(100%, var(--bredde) + 2 * var(--marg));
    height: 100svh;
    padding: calc(var(--meny-h) + clamp(12px, 3svh, 30px)) var(--marg) clamp(12px, 3svh, 30px);
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto minmax(0, 1fr);
    row-gap: clamp(14px, 2.6svh, 28px);
  }

  .kt-styrt .kt-tittel {
    font-size: clamp(1.9rem, min(3.4vw, 6.6svh), 3.25rem);
  }

  
  .kt-styrt .kt-under {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    gap: clamp(12px, 2.4svh, 26px);
    min-height: 0;
  }

  .kt-styrt .kt-liste {
    margin-top: auto;
    gap: clamp(10px, 2.2svh, 22px);
  }

  .kt-styrt .kt-kommuner {
    gap: clamp(4px, 0.9svh, 10px) clamp(16px, 1.8vw, 24px);
  }

  .kt-styrt .kt-kommuner li {
    font-size: clamp(1.0625rem, 2.3svh, 1.3125rem);
  }

  .kt-styrt .kt-ark {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    width: calc((min(100vw, var(--bredde) + 2 * var(--marg)) - 2 * var(--marg)) * var(--kt-andel));
    min-height: 0;
  }

  .kt-styrt .kt-vindu {
    flex: 1 1 auto;
    min-height: 0;
    aspect-ratio: auto;
  }
}
