:root {
  color-scheme: dark;

  --natt: #0b0e14;
  --flate: #171d27;
  --garasje: #1f2632;
  --kort: #2a323f;
  --strek: #36404f;
  --skygge: 0 1.75rem 3rem -0.75rem rgb(0 0 0 / 0.75), 0 0.35rem 0.9rem rgb(0 0 0 / 0.45);
  --tekst: #ece7dc;
  --dempet: #a9a59b;
  --rav: #f2b63c;
  --rust: #d9733f;

  --papir: #efe7d6;
  --papir-strek: #c9bda4;
  --blekk: #1d1b17;
  --blekk-dempet: #5a5448;
  --stempel: #a83c1c;

  --skilt: "DIN Condensed", "Bahnschrift Condensed", Bahnschrift, "Roboto Condensed", "Arial Narrow", "Liberation Sans Narrow", sans-serif-condensed, sans-serif;
  --vanlig: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --maskin: ui-monospace, "Cascadia Mono", Consolas, Menlo, "Courier New", monospace;
}

*, *::before, *::after { box-sizing: border-box; }

html { background: var(--natt); -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--natt);
  color: var(--tekst);
  font: 400 1.0625rem/1.65 var(--vanlig);
}

img { display: block; width: 100%; height: auto; }
figure { margin: 0; }

h1, h2, h3 { font-family: var(--skilt); font-stretch: 75%; font-weight: 700; margin: 0; }

h2 {
  font-size: clamp(2.25rem, 5.5vw, 3.75rem);
  line-height: 1.02;
  text-wrap: balance;
}

p { margin: 0; }
p + p { margin-top: 1em; }

.ramme {
  width: min(100%, 76rem);
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
}

.skjult {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

figcaption {
  margin-top: 0.6rem;
  color: var(--dempet);
  font: 400 0.8125rem/1.5 var(--maskin);
}

/* Bildene ligger som fotografier oppå siden. */
.premiss__bilde, .verksted__bred {
  padding: clamp(0.4rem, 0.8vw, 0.6rem);
  background: linear-gradient(160deg, var(--kort), var(--flate));
  border: 1px solid rgb(255 255 255 / 0.1);
  border-radius: 0.5rem;
  box-shadow: var(--skygge);
}

.premiss__bilde img, .verksted__bred img { border-radius: 0.25rem; }

.premiss__bilde figcaption, .verksted__bred figcaption { padding: 0 0.25rem 0.2rem; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .premiss__bilde, .verksted__bred {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }

  .premiss__bilde:hover, .verksted__bred:hover {
    transform: translateY(-0.25rem);
    box-shadow: 0 2.25rem 3.5rem -0.75rem rgb(0 0 0 / 0.85), 0 0.5rem 1.2rem rgb(0 0 0 / 0.5);
  }
}

main { background: linear-gradient(to bottom, var(--natt), var(--flate) 16rem); }

/* Toppen */

.hero__bilde { position: relative; }

@media (max-width: 700px) {
  .hero__bilde img { aspect-ratio: 4 / 3; object-fit: cover; }
}

.hero__bilde::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgb(11 14 20 / 0) 93%, var(--natt) 100%);
  pointer-events: none;
}

.hero__kommer {
  position: absolute;
  top: 14%;
  left: 50%;
  z-index: 1;
  width: clamp(14rem, 44vw, 42rem);
  padding: clamp(0.5rem, 1.2vw, 1.1rem) clamp(0.65rem, 1.6vw, 1.4rem);
  background: rgb(11 14 20 / 0.8);
  border-radius: 0.25rem;
  transform: translateX(-50%);
}

.hero__kommer svg { display: block; width: 100%; height: auto; }
.hero__kommer .lys { fill: var(--rav); }
.hero__kommer .av { fill: var(--rav); opacity: 0.1; }

.hero__tekst {
  position: relative;
  padding-top: clamp(0.75rem, 2vw, 1.25rem);
  padding-bottom: clamp(3rem, 7vw, 5.5rem);
}

.stikker {
  color: var(--rav);
  font: 500 0.875rem/1.4 var(--maskin);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.merke {
  display: flex;
  align-items: flex-end;
  gap: 0.16em;
  margin: 0.2em 0 0.25em;
  font-size: clamp(4.5rem, 12vw, 8rem);
  line-height: 0.8;
}

.merke__tall { height: 0.8em; width: auto; flex: none; }
.merke__tall .lys { fill: var(--rav); }
.merke__tall .av { fill: var(--rav); opacity: 0.1; }

.merke__navn {
  letter-spacing: 0.01em;
  text-transform: uppercase;
}

.ingress {
  max-width: 44rem;
  font-size: clamp(1.1875rem, 2.2vw, 1.5rem);
  line-height: 1.4;
}

.status {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  margin-top: 1.5rem;
  color: var(--dempet);
  font: 400 0.875rem/1.5 var(--maskin);
}
.status__tag { color: var(--rav); }

/* Premisset */

.premiss {
  display: grid;
  gap: clamp(1.75rem, 4vw, 3.5rem);
  align-items: center;
  padding-block: clamp(2.5rem, 7vw, 6rem);
}

.premiss__tekst h2 { margin-bottom: 1.25rem; }

@media (min-width: 900px) {
  .premiss { grid-template-columns: 5fr 7fr; }
}

/* Verkstedet */

.verksted {
  background: var(--garasje);
  border-block: 1px solid var(--strek);
  padding-block: clamp(2.5rem, 7vw, 6rem);
}

.verksted__ingress {
  max-width: 46rem;
  margin-top: 1.25rem;
}

.verksted__bred { margin-top: clamp(1.75rem, 4vw, 3rem); }

.feil {
  width: 100%;
  margin-top: clamp(2.25rem, 5vw, 4rem);
  border-collapse: collapse;
  font-size: 1rem;
  line-height: 1.4;
}

.feil caption {
  margin-bottom: 0.75rem;
  color: var(--tekst);
  font: 700 clamp(1.5rem, 3vw, 2rem)/1.1 var(--skilt);
  font-stretch: 75%;
  text-align: left;
}

.feil thead th {
  padding: 0.5rem 1rem 0.5rem 0;
  border-bottom: 2px solid var(--rav);
  color: var(--dempet);
  font: 500 0.75rem/1.4 var(--maskin);
  letter-spacing: 0.06em;
  text-align: left;
  text-transform: uppercase;
}

.feil tbody th, .feil td {
  padding: 0.75rem 1rem 0.75rem 0;
  border-bottom: 1px solid var(--strek);
  text-align: left;
  vertical-align: top;
}

.feil tbody th { width: 42%; font-weight: 600; }
.feil td { color: var(--dempet); }

/* Verdenen */

.verden { padding-block: clamp(2.5rem, 7vw, 6rem); }

.verden__tekst {
  display: grid;
  gap: 1.25rem clamp(2rem, 5vw, 4rem);
}

@media (min-width: 900px) {
  .verden__tekst { grid-template-columns: 5fr 7fr; align-items: start; }
}

/* Kontrollseddelen */

.seddel-rom { padding-bottom: clamp(3rem, 8vw, 7rem); }

.seddel {
  padding: clamp(1.25rem, 4vw, 3rem);
  background: var(--papir);
  color: var(--blekk);
  border-top: 6px solid var(--blekk);
  box-shadow: 0 1.5rem 3rem rgb(0 0 0 / 0.45);
}

.seddel__topp {
  display: grid;
  gap: 1rem 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 2px solid var(--blekk);
}

.seddel h2 { text-transform: uppercase; }

.seddel dl {
  grid-column: 1 / -1;
  display: grid;
  gap: 0.25rem 2rem;
  margin: 0;
  font: 400 0.875rem/1.5 var(--maskin);
}

.seddel dl div { display: flex; flex-wrap: wrap; gap: 0 0.75em; }
.seddel dt { color: var(--blekk-dempet); }
.seddel dt::after { content: ":"; }
.seddel dd { margin: 0; font-weight: 600; }

.stempel {
  justify-self: start;
  padding: 0.35em 0.7em;
  border: 3px double var(--stempel);
  color: var(--stempel);
  font: 700 clamp(1.125rem, 2.4vw, 1.625rem)/1.05 var(--skilt);
  font-stretch: 75%;
  letter-spacing: 0.04em;
  text-align: center;
  text-transform: uppercase;
  transform: rotate(-5deg);
}

@media (min-width: 700px) {
  .seddel__topp { grid-template-columns: 1fr auto; align-items: center; }
  .seddel dl { grid-template-columns: repeat(3, auto); justify-content: start; }
  .stempel { justify-self: end; }
}

.seddel__lister {
  display: grid;
  gap: 2rem clamp(2rem, 5vw, 4rem);
  margin-top: 1.5rem;
}

@media (min-width: 800px) {
  .seddel__lister { grid-template-columns: 1fr 1fr; }
}

.seddel h3 {
  font-size: 1.375rem;
  line-height: 1.2;
  text-transform: uppercase;
}

.liste {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  line-height: 1.35;
}

.liste li {
  position: relative;
  padding: 0.45rem 0 0.45rem 1.9rem;
  border-bottom: 1px solid var(--papir-strek);
}

.liste li::before {
  position: absolute;
  left: 0;
  top: 0.45rem;
  width: 1.2rem;
  font: 700 1rem/1.35 var(--maskin);
  text-align: center;
}

.liste--ok li::before { content: "\2713"; color: #2e6b3a; }
.liste--arbeid li::before { content: "\2026"; color: var(--stempel); }

/* Bunnen */

.bunn {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem 3rem;
  padding-bottom: 3rem;
  color: var(--dempet);
  font-size: 0.9375rem;
}
.bunn strong { color: var(--tekst); }
.bunn__tekst { flex: 1 1 22rem; max-width: 40rem; }

.bunn__logoer {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem 2.5rem;
}

.firma p {
  margin-bottom: 0.75rem;
  font: 500 0.75rem/1.4 var(--maskin);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.firma img { width: auto; height: clamp(4.5rem, 8vw, 6.5rem); }

.firma a { display: block; width: fit-content; transition: filter 0.2s ease; }
.firma a:hover { filter: brightness(1.2); }
