/* plakat-motor.css - v1.0.0
   Utsjaanaden til markupen som plakat-motor.js og navnelapper.js lagar. Reglane
   hoeyrer til motorane, ikkje til éi side: elever.html og classroom.html teiknar
   dei same arka og maa difor ha same reglar. Ligg dei berre inline i éi side,
   ser det same kortet ulikt ut dei to stadene.

   Galleri-, dialog- og skjemareglar ligg framleis i sida som eig dei. */

/* ---------- navnelapper ---------- */
.nl2-blokk { display: grid; flex: 0 0 auto; }
.nl2-cellenat { position: relative; }
/* referansenummer i hjørnet i stedet for navn */
.nl2-nr { position: absolute; top: 8px; left: 8px; z-index: 2; background: rgba(255,255,255,.92);
          border: 1px solid #e0e4e8; border-radius: 12px; padding: 1px 9px; font-size: .72rem;
          font-weight: 800; color: #37474f; line-height: 1.6; letter-spacing: .3px;
          box-shadow: 0 1px 3px rgba(0,0,0,.12); white-space: nowrap; }

/* lappen: naturlig størrelse inni en mm-eksakt ramme */
.nl2-nat { position: relative; overflow: hidden; box-sizing: border-box; }
.nl2-nat * { box-sizing: border-box; }
.nl2-felt { position: absolute; display: flex; align-items: center; }
.nl2-navn { white-space: nowrap; line-height: 1; }
.nl2-navn span { display: inline-block; }
.nl2-motiv { position: absolute; display: block; }
img.nl2-motiv { filter: drop-shadow(0 1px 1.5px rgba(0,0,0,.18)); }
.nl2-ikonrad { position: absolute; left: 0; right: 0; top: 9%; height: 42%;
               display: flex; align-items: center; justify-content: center; }
.nl2-disc { display: inline-flex; align-items: center; justify-content: center; }
.nl2-disc img { display: block; filter: drop-shadow(0 1px 1.5px rgba(0,0,0,.22)); }
.nl2-side { position: absolute; top: 58%; transform: translateY(-50%); }
.nl2-v { left: 12%; } .nl2-h { right: 12%; }
.nl2-tag { position: relative; overflow: hidden; flex: 0 0 auto; }
.nl2-skala { transform-origin: top left; }

/* sett-familien (portert fra galleri-mockupen): flex-oppbygde lapper */
.nl2s { display: flex; align-items: center; justify-content: center; border-radius: 12px; }
.nl2s.lay-ikon-hoyre { flex-direction: row-reverse; }
.nl2s.lay-ikon-topp, .nl2s.lay-baand { flex-direction: column; }
.nl2s-felt { position: relative; z-index: 1; display: flex; align-items: center;
             justify-content: center; flex: 0 0 auto; overflow: hidden; }
.nl2s-felt .nl2-navn { line-height: 1.02; text-align: center; }
.nl2s-ikon { position: relative; z-index: 2; display: flex; align-items: center;
             justify-content: center; flex: 0 0 auto; }
.nl2s-ikon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.nl2s-bakikon { position: absolute; z-index: 0; opacity: .16; right: -6%; bottom: -14%;
                pointer-events: none; }
.nl2s-bakikon img { width: 100%; height: 100%; object-fit: contain; }
.nl2s-baand { position: absolute; z-index: 2; display: flex; align-items: center;
              justify-content: space-around; }
.nl2s-baand img { display: block; }
.nl2s-feltsvg { position: absolute; inset: 0; z-index: -1; }
.nl2s-kantsvg { position: absolute; inset: 0; z-index: 4; pointer-events: none; }

/* teltkort: øvre halvdel rotert, bare en tynn linje i bretten */
.nl2-foldunit { position: relative; display: flex; flex-direction: column;
                justify-content: space-between; }
.nl2-flip { transform: rotate(180deg); }
.nl2-foldline { border-top: .2mm solid #b0bec5; height: 0; }

/* ---------- plakat-motor (bokframside, bursdagsplakat, klassereglar) ---------- */
.pl-nat { position: relative; overflow: hidden; box-sizing: border-box; }
.pl-nat * { box-sizing: border-box; }

/* pl-felt: ei linje som aldri skal brekke (namn, overskrift).
   pl-topp: same boks, men teksten får gå over fleire linjer, og då blir
   han målt både i breidd og høgd. */
.pl-felt { position: absolute; display: flex; align-items: center; }
.pl-topp { position: absolute; display: flex; align-items: center; justify-content: center; }
.pl-tekst { white-space: nowrap; line-height: 1.05; }
.pl-felt > .pl-tekst { line-height: 1; }
.pl-tekst span { display: inline-block; }
/* Eit namn er eitt ord og skal aldri brekkast. Ein regel er ei setning som
   må kunne gå over to linjer, og då må teksten få bryte. */
.pl-bryt, .pl-topp .pl-tekst { display: block; min-width: 0; max-width: 100%;
                               white-space: normal; overflow-wrap: break-word;
                               line-height: 1.16; }
.pl-bryt { flex: 1; }

.pl-motiv { position: absolute; display: block; }
img.pl-motiv { filter: drop-shadow(0 1px 2px rgba(0,0,0,.16)); }

/* Ei liste blir krympa som eitt objekt, så alle radene får same
   skriftstorleik. Elles ville «Mia» og «Ingeborg-Marie» stått ulikt. */
.pl-liste { position: absolute; display: flex; flex-direction: column; }
.pl-rad { display: flex; align-items: center; max-width: 100%; }
.pl-dag { display: inline-flex; align-items: center; justify-content: center;
          font-weight: 800; flex: 0 0 auto; line-height: 1; font-family: 'Nunito', sans-serif; }
.pl-leder { flex: 1; border-bottom: 2px dotted currentColor; opacity: .4;
            margin: 0 .3em .28em; min-width: 10px; }
/* Talet, prikken, stjerna eller haken framfor ein klasseregel */
.pl-merke { display: inline-flex; align-items: center; justify-content: center;
            flex: 0 0 auto; line-height: 1; font-weight: 800; font-family: 'Nunito', sans-serif; }
.pl-kicker { position: absolute; text-align: center; font-family: 'Nunito', sans-serif;
             font-weight: 800; text-transform: uppercase; white-space: nowrap; line-height: 1; }
.pl-kantsvg { position: absolute; inset: 0; pointer-events: none; z-index: 5; }

/* Bokframsidene legg linjene i flyten i staden for å plassere dei
   absolutt, så dei må slå av det plasserte oppsettet over. */
.pl-nat.pl-bf { background: #fff; box-shadow: inset 0 0 0 .5px rgba(0,0,0,.13); }
.pl-bf-lag { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.pl-bf-inn { position: absolute; inset: 0; z-index: 3; display: flex;
             flex-direction: column; align-items: center; justify-content: center;
             padding: 30px 26px; text-align: center; }
.pl-liste.pl-bf-l { position: static; display: block; width: 100%; height: auto;
                    inset: auto; margin: 0; padding: 0; overflow: visible; flex: 0 0 auto; }
.pl-tekst.pl-bf-t { display: inline-block; max-width: 100%; white-space: nowrap;
                    line-height: 1.05; }
/* Eit langt fagnamn skal krympe, ikkje delast midt i ordet:
   «Matematikk» blei til «Matematik» + «k». Fleirordsnamn som
   «Kunst og håndverk» får framleis bryte mellom orda. */
.pl-tekst.pl-bf-t.pl-bf-bryt { white-space: normal; overflow-wrap: normal;
                               word-break: keep-all; hyphens: none; }
.pl-tekst.pl-bf-t span { display: inline-block; }
.pl-bf-motiv { display: block; }
