/* ==========================================================================
   FELLESSKAP — Arkivet
   En arkiveske med seks mapper. Papir, stempler, kartotekkort, kontaktark,
   rulletekst og en tommestokk. Profesjonelt nok til en søknad, men laget
   av de samme materialene som atelieret.
   ========================================================================== */

body.fellesskap {
  background-color: var(--papir); overflow-x: hidden;
  /* arket ligger på et bord ved et vindu: litt lysere oppe til venstre */
  background-image: radial-gradient(ellipse 90% 60% at 20% 0%, rgba(255,253,246,.7), rgba(255,253,246,0) 70%);
  background-attachment: fixed;
}
body.fellesskap::before { /* papirkorn over hele siden */
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background-image: var(--korn); background-size: 240px; opacity: .13; mix-blend-mode: multiply;
}
body.fellesskap > * { position: relative; z-index: 1; }
body.fellesskap .ordmerke, body.fellesskap .skilt { position: absolute; }
body.fellesskap .dor { position: fixed; z-index: 200; }

.leser { font-size: 1.08rem; line-height: 1.62; }
.leser p { margin: 0 0 1.05em; max-width: 36em; }
.leser .innledning { font-size: 1.32rem; line-height: 1.45; font-style: italic; }

/* ---------- Arkivesken (toppen) ---------- */
.eske {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 2vw;
  padding: clamp(110px, 16vh, 170px) clamp(18px, 5vw, 80px) 10vh;
  max-width: 1480px; margin: 0 auto; min-height: 92vh; align-content: start;
}
.eske-tittel {
  grid-column: 1 / 10; grid-row: 1; margin: 0; font: 400 clamp(4.6rem, 14.5vw, 15rem)/.78 var(--f-katalog);
  letter-spacing: -.035em; color: var(--blekk);
}
.eske-tittel span { display: block; }
.eske-tittel .l2 { font-style: italic; padding-left: 2.35em; margin-top: -.02em; letter-spacing: -.02em; }
.eske-ingress { grid-column: 2 / 7; grid-row: 2; margin-top: 7vh; font-size: 1.28rem; line-height: 1.5; }
.eske-ingress p { margin: 0; }
.eske-ingress p::first-letter { font: 400 3.4em/.8 var(--f-katalog); float: left; padding: .06em .08em 0 0; color: var(--signal); }

.kartotekkort {
  grid-column: 9 / 13; grid-row: 1 / 3; align-self: start; margin-top: 3vh; position: relative;
  background-color: #fbf8f0;
  background-image:
    linear-gradient(180deg, transparent 0 46px, rgba(179,38,30,.55) 46px 47.5px, transparent 47.5px),
    repeating-linear-gradient(180deg, transparent 0 27px, rgba(80,110,160,.25) 27px 28px);
  background-position: 0 0, 0 20px;
  padding: 16px 22px 24px; transform: rotate(1.6deg);
  box-shadow: 0 1px 0 rgba(0,0,0,.06), 6px 16px 30px -18px rgba(40,30,20,.55);
}
.kartotekkort::before { /* hullet i kortet */
  content: ""; position: absolute; left: 50%; bottom: 10px; width: 14px; height: 14px; margin-left: -7px; border-radius: 50%;
  background: var(--papir); box-shadow: inset 0 1px 2px rgba(0,0,0,.3);
}
.kartotekkort dl { margin: 0; font-family: var(--f-arkiv); font-size: .78rem; line-height: 28px; }
.kartotekkort dl div { display: grid; grid-template-columns: 6.6rem 1fr; }
.kartotekkort dt { text-transform: uppercase; letter-spacing: .1em; font-weight: 700; font-size: .66rem; color: var(--blekk-2); }
.kartotekkort dd { margin: 0; min-height: 28px; }
.kartotekkort dd.skriver::after { content: "▍"; animation: blink .8s steps(1) infinite; color: var(--blekk-2); }
@keyframes blink { 50% { opacity: 0 } }
.kartotekkort .last-ned { margin-top: 20px; }

.last-ned {
  display: inline-flex; gap: .5em; align-items: center; padding: .7rem 1rem; background: var(--blekk); color: var(--kalk);
  transition: background .4s var(--ease);
}
.last-ned span { color: #a39785; }
.last-ned:hover { background: var(--signal); }

/* ---------- Stempler ---------- */
.stempel {
  display: inline-grid; justify-items: start; gap: 2px; padding: .55rem .85rem .6rem;
  border: 3px solid currentColor; border-radius: 4px; color: var(--signal);
  font-family: var(--f-arkiv); text-transform: uppercase; letter-spacing: .08em; line-height: 1.05;
  transform: rotate(var(--r, -4deg)); filter: url(#blekk); mix-blend-mode: multiply; opacity: .95;
}
.stempel b { font-size: 2.7rem; letter-spacing: -.01em; }
.stempel i { font-weight: 700; }
.stempel i { font-style: normal; font-size: .64rem; max-width: 14em; }
.stempel.rund { border-radius: 50%; width: 9.5rem; height: 9.5rem; justify-items: center; align-content: center; text-align: center; box-shadow: inset 0 0 0 3px #fff0, inset 0 0 0 6px currentColor; border-width: 3px; }
.stempel-kort { position: absolute; right: -18px; bottom: 58px; --r: -14deg; color: #2f4a8a; }
.stempel-kort b { font-size: 1.1rem; }
html.js .stempel.venter { opacity: 0; }
.stempel.slag { animation: stemple .55s cubic-bezier(.3,1.4,.5,1) both; }
@keyframes stemple { 0% { opacity: 0; transform: rotate(var(--r)) scale(1.9) } 55% { opacity: .95; transform: rotate(var(--r)) scale(.94) } 100% { opacity: .95; transform: rotate(var(--r)) scale(1) } }

/* ---------- Arkivet: register + mapper ---------- */
.arkivet {
  display: grid; grid-template-columns: 220px minmax(0, 1fr); column-gap: clamp(24px, 4vw, 70px);
  max-width: 1480px; margin: 0 auto; padding: 0 clamp(18px, 5vw, 80px);
}
.register { position: sticky; top: 90px; align-self: start; padding-top: 16vh; }
.reg-tittel { margin: 0 0 14px; color: var(--blekk-2); font-size: .62rem; }
.register ol { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid rgba(27,23,20,.2); }
.register li a {
  position: relative; display: grid; gap: 2px; padding: 11px 12px 12px 14px; text-decoration: none;
  border-top: 1px solid rgba(27,23,20,.2); background: transparent;
  transition: transform .5s var(--ease), background-color .5s var(--ease);
}
.register li a .arkiv { font-size: .6rem; color: var(--blekk-2); }
.register li a em { font: italic 400 1.22rem/1.1 var(--f-katalog); }
.register li a::before { content: ""; position: absolute; left: -2px; top: 50%; width: 7px; height: 7px; margin-top: -3.5px; border-radius: 50%; background: var(--signal); transform: scale(0); transition: transform .4s var(--ease); }
.register li a:hover { background: rgba(27,23,20,.04); }
.register li a.aktiv { transform: translateX(14px); background: #e6dccb; box-shadow: -3px 3px 0 rgba(27,23,20,.08); }
.register li a.aktiv::before { transform: scale(1); left: -18px; }
.reg-ut { display: flex; justify-content: space-between; margin-top: 18px; font-size: .6rem; }
.reg-ut a { text-decoration: none; color: var(--blekk-2); }
.reg-ut a:hover { color: var(--signal); }

.mapper { min-width: 0; }
.mappe {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 2vw; row-gap: 5vh;
  padding: 16vh 0 10vh; position: relative;
  border-top: 1px solid rgba(27,23,20,.18);
}
.mappe::before { /* mappefane */
  content: attr(id); position: absolute; top: -1px; left: 0; padding: 4px 10px 5px; transform: translateY(-100%);
  font-family: var(--f-arkiv); font-size: .58rem; letter-spacing: .14em; text-transform: uppercase;
  background: #e3d8c4; color: var(--blekk-2); border-radius: 4px 4px 0 0;
}
.m01::before { content: "Mappe 01"; } .m02::before { content: "Mappe 02"; left: 16%; } .m03::before { content: "Mappe 03"; left: 32%; }
.m04::before { content: "Mappe 04"; left: 48%; } .m05::before { content: "Mappe 05"; left: 64%; } .m06::before { content: "Mappe 06"; left: 80%; }

.mappe-hode { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr; align-items: end; column-gap: 1.6rem; }
.mappe-hode .nr { grid-row: 1 / 3; font: 400 clamp(5rem, 10vw, 9.5rem)/.72 var(--f-katalog); color: var(--blekk); letter-spacing: -.04em; }
.mappe-hode .kicker { margin: 0 0 .7rem; color: var(--blekk-2); font-size: .66rem; }
.mappe-hode h2 { margin: 0; font: 400 clamp(2.6rem, 5.4vw, 5rem)/.9 var(--f-katalog); letter-spacing: -.02em; }
.mappe-hode h2 i { color: var(--signal); }
.mappe-hode.lys .nr, .mappe-hode.lys h2 { color: var(--kalk); }
.mappe-hode.lys .kicker { color: #a39785; }
.underfane { margin: 0 0 1.4rem; color: var(--blekk-2); font-size: .64rem; display: flex; gap: .8rem; align-items: center; }
.underfane::before { content: ""; width: 2.2rem; height: 1px; background: currentColor; }

/* ---------- Nº 01 ---------- */
.m01-tekst { grid-column: 1 / 7; grid-row: 2 / 4; }
.montert {
  position: relative; margin: 0; padding: 14px; background: #fbf9f4;
  box-shadow: 0 1px 1px rgba(0,0,0,.10), 0 3px 6px -3px rgba(40,30,20,.25), 10px 22px 40px -26px rgba(40,30,20,.6);
}
.montert img { box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); }
.montert img { width: 100%; height: auto; }
.montert figcaption { margin-top: 12px; font-size: .6rem; color: var(--blekk-2); }
.hjorne { position: absolute; width: 34px; height: 34px; background: #2a2521; z-index: 2; }
.hjorne.a { left: 4px; top: 4px; clip-path: polygon(0 0, 100% 0, 0 100%); }
.hjorne.b { right: 4px; top: 4px; clip-path: polygon(0 0, 100% 0, 100% 100%); }
.hjorne.c { left: 4px; bottom: 34px; clip-path: polygon(0 0, 0 100%, 100% 100%); }
.hjorne.d { right: 4px; bottom: 34px; clip-path: polygon(100% 0, 100% 100%, 0 100%); }
.m01-bilde { grid-column: 8 / 13; grid-row: 2 / 4; margin-top: 8vh; margin-right: -3vw; transform: rotate(1.2deg); }

.utdrag { grid-column: 2 / 10; grid-row: 4; margin: 4vh 0 2vh; position: relative; }
.utdrag p { margin: 0; font: italic 400 clamp(1.9rem, 3.6vw, 3.3rem)/1.08 var(--f-katalog); text-indent: -.42em; }
.utdrag p::before { content: "«"; color: var(--signal); }
.utdrag p::after { content: "»"; color: var(--signal); }

.baerestolper { grid-column: 1 / 13; grid-row: 5; }
.kortbunke { display: flex; padding: 1rem 0 2rem 1rem; }
.indekskort {
  position: relative; flex: 0 0 min(35%, 360px); display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: .6rem; text-align: left;
  white-space: normal; min-height: 230px; padding: 18px 22px 26px; margin-left: -1.6%;
  background-color: #fbf8f0;
  background-image: linear-gradient(180deg, transparent 0 52px, rgba(179,38,30,.5) 52px 53.5px, transparent 53.5px),
    repeating-linear-gradient(180deg, transparent 0 25px, rgba(80,110,160,.2) 25px 26px);
  background-position: 0 0, 0 27px;
  transform: rotate(var(--r)); z-index: var(--i);
  box-shadow: 4px 10px 22px -14px rgba(40,30,20,.55);
  transition: transform .6s var(--ease), box-shadow .6s var(--ease);
}
.indekskort:first-child { margin-left: 0; }
.indekskort:hover { transform: rotate(0deg) translateY(-10px); box-shadow: 8px 22px 34px -16px rgba(40,30,20,.55); }
.indekskort.topp { z-index: 10; }
.indekskort .arkiv { font-size: .6rem; color: var(--signal); }
.indekskort b { font: italic 400 1.5rem/1.02 var(--f-katalog); margin-top: 4px; min-height: 2.1em; display: flex; align-items: flex-end; }
.indekskort .kort-tekst { font-size: .98rem; line-height: 26px; margin-top: 8px; }
.kort-hint { font-size: .58rem; color: var(--blekk-2); opacity: .7; margin: 0; }

.forankring { grid-column: 3 / 12; grid-row: 6; }
.linjert { list-style: none; margin: 0; padding: 0 0 0 2.4rem; border-left: 1.5px solid rgba(179,38,30,.55); }
.linjert li { font-family: var(--f-arkiv); font-size: .9rem; line-height: 1.7; padding: .5rem 0; border-bottom: 1px solid rgba(80,110,160,.25); }
.linjert li::first-letter { text-transform: uppercase; }
.lovtekst { margin: 2.2rem 0 0 2.4rem; font: italic 400 1.35rem/1.35 var(--f-katalog); max-width: 30em; }
.lovtekst .arkiv { font-style: normal; font-size: .6rem; color: var(--blekk-2); display: block; margin-top: .6rem; }

/* ---------- Nº 02 ---------- */
.m02-bilde { grid-column: 1 / 6; grid-row: 2 / 4; }
.lomme {
  position: relative; margin: 0 0 0 -2vw; padding: 18px 18px 14px; transform: rotate(-1.6deg);
  background: rgba(255,255,255,.38); border: 1px solid rgba(255,255,255,.75);
  box-shadow: 0 0 0 1px rgba(27,23,20,.08), 10px 24px 40px -24px rgba(40,30,20,.6);
}
.lomme::after { /* plastlomme: glans */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(115deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.28) 42%, rgba(255,255,255,0) 52%);
}
.lomme img { width: 100%; height: auto; }
.lomme figcaption { font-size: .6rem; color: var(--blekk-2); margin-top: 12px; }
.m02-tekst { grid-column: 7 / 13; grid-row: 2; padding-top: 4vh; }
.stempelark { grid-column: 6 / 13; grid-row: 3; position: relative; min-height: 330px; }
.stempelark .stempel { position: absolute; }
.stempelark .s1 { left: 6%; top: 4%; }
.stempelark .s2 { left: 48%; top: 0; }
.stempelark .s3 { left: 22%; top: 38%; }
.stempelark .s4 { left: 60%; top: 52%; color: #2f4a8a; }

/* ---------- Nº 03 ---------- */
.m03-tekst { grid-column: 1 / 7; grid-row: 2; }
.kontaktark {
  grid-column: 1 / 13; grid-row: 3; position: relative; margin-right: -5vw; margin-left: -1vw;
  background: #141110; padding: 30px 0 34px; transform: rotate(-.6deg);
  box-shadow: 0 30px 50px -30px rgba(0,0,0,.6);
}
.kontaktark::before, .kontaktark::after { /* perforering */
  content: ""; position: absolute; left: 0; right: 0; height: 9px;
  background: repeating-linear-gradient(90deg, transparent 0 9px, #d9d1c1 9px 19px, transparent 19px 26px);
  opacity: .8;
}
.kontaktark::before { top: 10px; } .kontaktark::after { bottom: 10px; }
.stripe { display: flex; gap: 12px; overflow-x: auto; padding: 8px 24px; scroll-snap-type: x mandatory; scrollbar-width: none; }
.stripe::-webkit-scrollbar { display: none; }
.ramme { position: relative; flex: 0 0 auto; scroll-snap-align: start; padding: 0; background: #000; }
.ramme img { height: clamp(210px, 30vh, 300px); width: auto; aspect-ratio: 2 / 3; object-fit: cover; object-position: var(--op, 50% 50%); filter: saturate(.92); transition: filter .5s; }
.ramme:hover img { filter: saturate(1.1) brightness(1.06); }
.ramme .arkiv { position: absolute; left: 6px; bottom: -22px; font-size: .58rem; color: #d98c2b; letter-spacing: .1em; }
.ramme .arkiv::before { content: "▸ "; }
.fettstift { position: absolute; inset: -18px -16px; width: calc(100% + 32px); height: calc(100% + 36px); overflow: visible; pointer-events: none; }
.fettstift path { fill: none; stroke: #e0301f; stroke-width: 4.5; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 700; stroke-dashoffset: 700; opacity: .9; }
.kontaktark.tegnet .fettstift path { transition: stroke-dashoffset 1.6s var(--ease) .3s; stroke-dashoffset: 0; }
.fettstift-notat { position: absolute; right: 8%; top: -2.2rem; margin: 0; font: italic 400 1.9rem/1 var(--f-katalog); color: #c62a1b; transform: rotate(-8deg); opacity: 0; transition: opacity .6s 1.6s; }
.kontaktark.tegnet .fettstift-notat { opacity: 1; }

/* ---------- Nº 04 — rulletekst ---------- */
.m04 { padding-top: 12vh; }
.lerret {
  grid-column: 1 / 13; margin: 0 -5vw 0 -2vw; padding: 12vh 6vw 10vh; background: #100d0c; color: var(--kalk);
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: 4vw; align-items: center;
}
.lerret .mappe-hode { grid-column: 1; align-self: start; }
.rulletekst {
  grid-column: 2; position: relative; height: 62vh; overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 18%, #000 82%, transparent);
          mask-image: linear-gradient(180deg, transparent, #000 18%, #000 82%, transparent);
}
.rull { margin: 0; padding: 0; animation: rull 34s linear infinite; animation-play-state: paused; }
.rulletekst.i-bilde .rull { animation-play-state: running; }
.rulletekst:hover .rull { animation-play-state: paused; }
@keyframes rull { from { transform: translateY(62vh) } to { transform: translateY(-100%) } }
.rull div { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.6rem; margin-bottom: 2.4rem; }
.rull dt { text-align: right; font-family: var(--f-arkiv); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: #a39785; padding-top: .55rem; }
.rull dd { margin: 0; font: 400 clamp(1.5rem, 2.4vw, 2.2rem)/1.1 var(--f-katalog); }
.rull dd small { display: block; font-family: var(--f-arkiv); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; color: #a39785; margin-top: .3rem; }
.rull .slutt dd { font-style: italic; color: var(--gull); }

/* ---------- Nº 05 — tommestokken ---------- */
.stokk-hint { grid-column: 1 / 13; grid-row: 2; margin: 0; font-size: .62rem; color: var(--blekk-2); }
.stokk-vindu { grid-column: 1 / 13; grid-row: 3; position: relative; overflow: visible; }
.stokk {
  list-style: none; margin: 0; padding: 170px 0 190px; position: relative;
}
.stokk-tre { position: absolute; left: 0; top: 170px; height: 46px; width: 100%; pointer-events: none; }
.ledd {
  position: absolute; left: 100%; top: 0; height: 46px; width: 100%;
  transform-origin: 0 50%; transform: rotate(var(--vinkel, 0deg));
}
.ledd-forste { left: 0; }
.ledd > .flate {
  position: absolute; inset: 0; border-radius: 3px;
  background-color: #efdb94;
  background-image:
    repeating-linear-gradient(90deg, rgba(30,20,10,.85) 0 1px, transparent 1px 10%),
    repeating-linear-gradient(90deg, rgba(30,20,10,.55) 0 1px, transparent 1px 2%),
    linear-gradient(180deg, rgba(255,255,255,.35), rgba(0,0,0,.06));
  background-size: 100% 16px, 100% 9px, 100% 100%;
  background-repeat: no-repeat;
  box-shadow: 0 1px 0 rgba(0,0,0,.18), 0 6px 12px -8px rgba(40,30,10,.6);
}
.ledd > .flate::after { /* hengsel */
  content: ""; position: absolute; right: -6px; top: 50%; width: 12px; height: 12px; margin-top: -6px; border-radius: 50%;
  background: radial-gradient(circle at 40% 35%, #e7d7a6, #8a7236 70%); z-index: 2;
}
.ledd > .flate span {
  position: absolute; left: 6px; bottom: 5px; font-family: var(--f-arkiv); font-weight: 700; font-size: .72rem; color: #231a10;
}
.ledd > .flate span.rod { color: #b3261e; }
.stokk li {
  position: absolute; top: 0; left: calc((var(--aar) - 2006) / 20 * 100%); width: 0; height: 100%;
  opacity: 0; transition: opacity .7s var(--ease);
}
.stokk li.vis { opacity: 1; }
.stokk li::before { /* strek fra stokken */
  content: ""; position: absolute; left: 0; width: 1px; background: var(--blekk);
}
.stokk li:nth-child(odd)::before { top: 118px; height: 52px; }
.stokk li:nth-child(even)::before { top: 216px; height: 52px; }
.stokk li b, .stokk li span { position: absolute; left: -1px; width: 15rem; }
.stokk li:nth-child(odd) b { top: 0; }
.stokk li:nth-child(odd) span { top: 44px; }
.stokk li:nth-child(even) b { top: 270px; }
.stokk li:nth-child(even) span { top: 314px; }
.stokk li b { font: 400 2.4rem/1 var(--f-katalog); padding-left: 10px; }
.stokk li span { font-size: .95rem; line-height: 1.4; padding-left: 10px; border-left: 1px solid var(--blekk); max-width: 14rem; }
.stokk li:nth-child(odd) span { border-left: 0; }
.stokk li:last-child b, .stokk li:last-child span { left: auto; right: 0; text-align: right; padding-left: 0; padding-right: 10px; }
.stokk li:last-child b { font-style: italic; color: var(--signal); }
.stokk li:nth-child(4) b, .stokk li:nth-child(4) span { left: auto; right: 0; text-align: right; padding-left: 0; padding-right: 10px; border-left: 0; border-right: 1px solid var(--blekk); }
.stokk li:nth-child(4) b { border-right: 0; }
.stokk li:nth-child(5) span { max-width: 12rem; }

/* ---------- Nº 06 ---------- */
.m06-tekst { grid-column: 1 / 7; grid-row: 2; }
.tilbud { grid-column: 8 / 13; grid-row: 2; list-style: none; margin: 0; padding: 0; align-self: start; }
.tilbud li { display: grid; grid-template-columns: 2rem 1fr; padding: .9rem 0; border-top: 1px solid rgba(27,23,20,.18); font-size: 1.02rem; line-height: 1.45; }
.tilbud li:last-child { border-bottom: 1px solid rgba(27,23,20,.18); }
.tilbud li .arkiv { color: var(--signal); padding-top: .2rem; }
.skilt-ingen { grid-column: 3 / 12; grid-row: 3; margin: 6vh 0 2vh; position: relative; }
.skilt-ingen p {
  margin: 0; font: 400 clamp(3rem, 8vw, 7.5rem)/.9 var(--f-katalog); letter-spacing: -.03em; transform: rotate(-2.4deg); transform-origin: 0 100%;
}
.skilt-ingen i { color: var(--signal); display: block; padding-left: 1.4em; }
.kontakt { grid-column: 1 / 9; grid-row: 4; font-style: normal; display: grid; gap: .8rem; justify-items: start; }
.kontakt .epost { font: italic 400 clamp(1.8rem, 4.2vw, 3.6rem)/1 var(--f-katalog); text-decoration: none; border-bottom: 2px solid var(--signal); padding-bottom: .2rem; }
.kontakt .epost:hover { color: var(--signal); }
.kontakt a.arkiv, .kontakt .arkiv a { text-decoration: none; }
.kontakt a.arkiv:hover, .kontakt .arkiv a:hover { color: var(--signal); }
.kontakt > .arkiv { font-size: .78rem; }
.avslutning { grid-column: 9 / 13; grid-row: 4; align-self: end; display: grid; gap: 1rem; justify-items: start; }
.tilbake { color: var(--blekk-2); text-decoration: none; font-size: .64rem; }
.tilbake:hover { color: var(--signal); }

.kolofon { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; max-width: 1480px; margin: 0 auto; padding: 5vh clamp(18px, 5vw, 80px) 6vh; font-size: .58rem; color: var(--blekk-2); border-top: 1px solid rgba(27,23,20,.18); }

/* ---------- Lysbordet ---------- */
.lysbord { position: fixed; inset: 0; z-index: 150; display: grid; place-items: center; background: rgba(16,13,12,.95); opacity: 0; transition: opacity .5s var(--ease); }
.lysbord[hidden] { display: none; }
.lysbord.vis { opacity: 1; }
.lysbord figure { margin: 0; display: grid; gap: 14px; justify-items: start; }
.lysbord img { max-width: 88vw; max-height: 80vh; width: auto; height: auto; box-shadow: 0 30px 60px -20px rgba(0,0,0,.7); }
.lysbord figcaption { color: #bfb29b; font-size: .62rem; }
.lb-lukk { position: absolute; right: 24px; top: 20px; color: var(--kalk); padding: .4rem 0; border-bottom: 1px solid rgba(231,221,201,.3); }
.lb-lukk span { color: #7c705f; }

.mob { display: none; }

/* ==========================================================================
   MOBIL — arkivet i lomma
   · Registeret blir faner som stikker opp i toppen
   · Kortbunken blir en bunke du sveiper i
   · Kontaktarket og tommestokken går sidelengs, som på et bord
   ========================================================================== */
@media (max-width: 860px) {
  .desk { display: none; }
  .mob { display: inline; }
  .eske { grid-template-columns: repeat(6, minmax(0, 1fr)); padding-top: 104px; min-height: 0; padding-bottom: 6vh; }
  .eske-tittel { grid-column: 1 / -1; font-size: clamp(4rem, 23vw, 8rem); }
  .eske-tittel .l2 { padding-left: 1.1em; }
  .eske-ingress { grid-column: 1 / -1; grid-row: 2; margin-top: 4vh; font-size: 1.1rem; }
  .kartotekkort { grid-column: 1 / -1; grid-row: 3; margin: 6vh 8px 0 18px; }

  .arkivet { display: block; padding: 0; }
  .register {
    position: sticky; top: 0; z-index: 40; padding: 0; background: var(--papir);
    box-shadow: 0 8px 16px -14px rgba(0,0,0,.5);
  }
  .reg-tittel, .reg-ut { display: none; }
  .register ol { display: flex; overflow-x: auto; scrollbar-width: none; border: 0; padding: 10px 12px 0; gap: 4px; }
  .register ol::-webkit-scrollbar { display: none; }
  .register li { flex: 0 0 auto; }
  .register li a { border: 0; border-radius: 6px 6px 0 0; background: #e3d8c4; padding: 8px 12px 9px; display: flex; gap: 8px; align-items: baseline; }
  .register li a em { font-size: 1rem; white-space: nowrap; }
  .register li a.aktiv { transform: translateY(0); background: var(--blekk); color: var(--kalk); box-shadow: none; }
  .register li a.aktiv .arkiv { color: #a39785; }
  .register li a.aktiv::before { display: none; }

  .mappe { display: block; padding: 11vh 18px 8vh; }
  .mappe::before { display: none; }
  .mappe > * { margin-bottom: 5vh; }
  .mappe-hode { column-gap: 1rem; }
  .mappe-hode .nr { font-size: 4.6rem; }
  .leser .innledning { font-size: 1.18rem; }
  .m01-bilde { margin: 6vh -30px 6vh 34px; }
  .utdrag p { font-size: 2rem; }
  .kortbunke { overflow-x: auto; scroll-snap-type: x mandatory; padding: 1rem 18px 2rem; margin: 0 -18px; scrollbar-width: none; }
  .kortbunke::-webkit-scrollbar { display: none; }
  .indekskort { flex: 0 0 76%; margin-left: -8%; scroll-snap-align: center; }
  .lovtekst { margin-left: 0; }
  .linjert { padding-left: 1.2rem; }
  .lomme { margin: 0 18px 0 -8px; }
  .stempelark { min-height: 380px; margin: 0 -8px; }
  .stempelark .s1 { left: 0; top: 2%; }
  .stempelark .s2 { left: 44%; top: 24%; }
  .stempelark .s3 { left: 4%; top: 46%; }
  .stempelark .s4 { left: 46%; top: 74%; }
  .stempel.rund { width: 8.4rem; height: 8.4rem; }
  .kontaktark { margin: 0 -18px; transform: none; }
  .fettstift-notat { right: 10%; top: -1.8rem; }
  .lerret { display: block; margin: 0 -18px; padding: 9vh 22px 8vh; }
  .rulletekst { height: 58vh; margin-top: 5vh; }
  .rull div { grid-template-columns: 1fr; margin-bottom: 1.8rem; }
  .rull dt { text-align: left; padding: 0; margin-bottom: .3rem; }
  @keyframes rull { from { transform: translateY(58vh) } to { transform: translateY(-100%) } }
  .stokk-vindu { overflow-x: auto; margin: 0 -18px; padding: 0 18px; scrollbar-width: none; }
  .stokk-vindu::-webkit-scrollbar { display: none; }
  .stokk { width: 980px; }
  .skilt-ingen p { font-size: 3.4rem; }
  .avslutning { margin-top: 5vh; }
  .kolofon { padding: 4vh 18px 5vh; }
}

/* ==========================================================================
   UTSKRIFT / PDF — mappen som dokument til søknader
   ========================================================================== */
@media print {
  @page { size: A4; margin: 16mm 16mm 18mm; }
  html, body { background: #fff !important; }
  body.fellesskap::before, .skilt, .register, .last-ned, .tilbake, .kort-hint, .stokk-hint, .lysbord, .dor, .fettstift-notat { display: none !important; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .ordmerke { position: static; margin-bottom: 8mm; }
  .eske { display: block; min-height: 0; padding: 0; }
  .eske-tittel { font-size: 64pt; }
  .eske-ingress { margin: 8mm 0; font-size: 13pt; max-width: 150mm; }
  .kartotekkort { transform: none; max-width: 120mm; box-shadow: none; border: 1px solid #ccc; }
  .arkivet { display: block; padding: 0; }
  .mappe { display: block; padding: 0; border: 0; break-before: page; }
  .mappe::before { display: none; }
  .mappe > * { margin-bottom: 7mm; }
  .mappe-hode .nr { font-size: 56pt; }
  .mappe-hode h2 { font-size: 34pt; }
  .leser { font-size: 10.5pt; }
  .m01-bilde, .m02-bilde { max-width: 80mm; margin: 0; transform: none; box-shadow: none; }
  .utdrag p { font-size: 20pt; }
  .kortbunke { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4mm; padding: 0; }
  .indekskort { margin: 0; transform: none; min-height: 0; box-shadow: none; border: 1px solid #ddd; }
  .stempelark { min-height: 0; display: flex; flex-wrap: wrap; gap: 6mm; }
  .stempelark .stempel { position: static; filter: none; opacity: 1 !important; animation: none !important; }
  .kontaktark { margin: 0; transform: none; }
  .stripe { flex-wrap: wrap; overflow: visible; }
  .ramme img { height: 45mm; }
  .fettstift path { stroke-dashoffset: 0; }
  .lerret { display: block; background: #fff; color: #000; margin: 0; padding: 0; }
  .mappe-hode.lys .nr, .mappe-hode.lys h2 { color: #000; }
  .rulletekst { height: auto; overflow: visible; -webkit-mask-image: none; mask-image: none; }
  .rull { animation: none !important; transform: none !important; }
  .rull div { grid-template-columns: 50mm 1fr; margin-bottom: 3mm; }
  .rull dt { text-align: left; color: #555; }
  .rull dd { font-size: 14pt; }
  .stokk-vindu { overflow: visible; }
  .stokk { padding: 0; width: auto !important; }
  .stokk-tre { display: none; }
  .stokk li { position: static; width: auto; height: auto; opacity: 1 !important; display: grid; grid-template-columns: 25mm 1fr; margin-bottom: 3mm; }
  .stokk li::before { display: none; }
  .stokk li b, .stokk li span { position: static !important; width: auto; text-align: left !important; padding: 0 !important; border: 0 !important; max-width: none; }
  .stokk li b { font-size: 16pt; }
  .skilt-ingen p { font-size: 34pt; transform: none; }
  .kolofon { border: 0; padding: 8mm 0 0; }
}
