/* premiumcasinoguide.com - hovedstilark
   Opbygning: bento-top der bryder ned i sideindholdet, fuldbredde farvebånd
   som højdepunkter, og blokke i vekslende format i stedet for ens afsnit. */

:root {
  --papir: #f7f6f2;
  --papir-varm: #eeeae0;
  --flade: #ffffff;
  --blaek: #10131a;
  --blaek-2: #3b414c;
  --blaek-3: #5e6973;
  --linje: #e0dbd0;

  --sitefarve: #1d4ed8;
  --accent: #1d4ed8;
  --accent-lys: #5b86ff;
  --accent-dyb: #16389d;
  --accent-blod: #eef2ff;
  --top-bund: #0b1020; --top-bund-rgb: 11,16,32;
  --maerke-bund: #1b2233;

  --positiv: #0d7a4f;
  --negativ: #c03a2b;

  --skrift: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;

  --maks: 1200px;
  --luft: 24px;
  --overgang: 320ms cubic-bezier(.22, .61, .36, 1);
  --mikro: .68rem;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  background: var(--papir); color: var(--blaek);
  font-family: var(--skrift); font-size: 18px; line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--blaek); text-decoration: none; }
.brodtekst a, .bundlinje a, .oplysning a {
  color: var(--accent); box-shadow: inset 0 -1px 0 currentColor;
  transition: box-shadow var(--overgang), background var(--overgang);
}
.brodtekst a:hover, .bundlinje a:hover, .oplysning a:hover { box-shadow: inset 0 -2px 0 currentColor; }
.brodtekst a, .oplysning a, .staaende a, .svar a, .regnenote a, .skuffenote a {
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; box-shadow: none;
}
.brodtekst a:hover, .oplysning a:hover, .staaende a:hover, .svar a:hover, .regnenote a:hover, .skuffenote a:hover {
  text-decoration-thickness: 2px; box-shadow: none;
}

/* linjeombrydning: al tekst løber til rammens kant og bryder først, når
   skærmen kræver det. Ingen balance (den forkorter linjerne kunstigt) og
   ingen ch-lofter på brødtekst - bredden styres af rammen alene. */
h1, h2, h3 { line-height: 1.02; font-weight: 800; letter-spacing: -.042em; }
h2 { font-size: clamp(2rem, 5vw, 3.3rem); }
h3 { font-size: 1.16rem; font-weight: 700; letter-spacing: -.02em; line-height: 1.28; }
p, li, dd, dt, figcaption { text-wrap: pretty; }
p { margin-bottom: 18px; }
p:last-child { margin-bottom: 0; }

.ramme { width: 100%; max-width: var(--maks); margin: 0 auto; padding: 0 var(--luft); }
.mikro {
  display: block; font-size: var(--mikro); font-weight: 700;
  text-transform: uppercase; letter-spacing: .17em; color: var(--blaek-3);
}

/* ---------- fremdrift ---------- */
.fremdrift { position: fixed; top: 0; left: 0; height: 3px; width: 0; background: var(--accent-lys); z-index: 90; transition: width 90ms linear; }

/* ---------- top ---------- */
.toplinje { position: sticky; top: -34px; z-index: 60; }
#header { min-height: 112px; }
.topstribe { height: 34px; background: var(--top-bund); }
.topstribe .ramme { display: flex; align-items: center; justify-content: space-between; height: 34px; gap: 16px; }
.stribeord { font-size: .66rem; font-weight: 600; letter-spacing: .05em; color: rgba(255,255,255,.66); white-space: nowrap; }
.stribeord b { color: #fff; font-weight: 800; }
.stribeord a { color: var(--accent-lys); font-weight: 700; }
.stribeord a:hover { color: #fff; }
.topbjaelke { background: rgba(247,246,242,.92); backdrop-filter: blur(14px); border-bottom: 1px solid var(--linje); box-shadow: 0 14px 34px rgba(16,19,26,.05); }
.topbjaelke .ramme { display: flex; align-items: center; justify-content: space-between; height: 78px; gap: 20px; }
.ordmaerke { display: inline-block; text-align: center; line-height: 1; }
.maerkeover {
  display: block; font-size: .5rem; font-weight: 700;
  letter-spacing: .46em; text-indent: .46em; text-transform: uppercase;
  color: var(--blaek-2); padding: 5px 0 4px;
  border-top: 2px solid var(--blaek); border-bottom: 1px solid var(--linje);
}
.maerkenavn {
  display: block; font-size: 1.32rem; font-weight: 800; letter-spacing: -.045em;
  color: var(--blaek); padding: 2px 0 5px; border-bottom: 3px solid var(--sitefarve);
}
.topnav { display: flex; gap: 30px; align-items: center; }
.topnav a { font-size: .86rem; font-weight: 600; color: var(--blaek-2); position: relative; }
/* topniveauet taler samme sprog som mastheadet: små, spatierede versaler */
.topnav > a, .menuknap { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .13em; color: var(--blaek-2); }
.topnav > a:hover { color: var(--blaek); }
.topnav > a::after { content: ""; position: absolute; left: 0; bottom: -5px; height: 2px; width: 0; background: var(--accent); transition: width var(--overgang); }
.topnav > a:hover::after { width: 100%; }
/* samme koboltstreg under foldemenuernes knapper */
.menugruppe::before { content: ""; position: absolute; left: 0; bottom: -5px; height: 2px; width: 0; background: var(--accent); transition: width var(--overgang); }
.menugruppe:hover::before, .menugruppe.aaben::before { width: 100%; }
.skjult { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* ---- anmeldelsesmenu ---- */
.menugruppe { position: relative; }
.menuknap {
  font: inherit; font-size: .68rem; font-weight: 700; color: var(--blaek-2);
  text-transform: uppercase; letter-spacing: .13em;
  background: none; border: 0; padding: 0; cursor: pointer;
  display: inline-flex; align-items: center; gap: 7px;
}
.menuknap:hover { color: var(--blaek); }
.menuknap::after {
  content: ""; width: 6px; height: 6px; margin-top: -3px;
  border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor;
  transform: rotate(45deg); transition: transform var(--overgang);
}
.menugruppe.aaben .menuknap::after { transform: rotate(-135deg) translate(-2px, -2px); }
@keyframes panelind { from { opacity: 0; transform: translateY(-7px); } to { opacity: 1; transform: none; } }
.menupanel {
  display: none; position: absolute; top: calc(100% + 14px); left: -18px; z-index: 5;
  min-width: 228px; background: var(--flade); border: 1px solid var(--linje);
  animation: panelind .2s cubic-bezier(.22,.61,.36,1);
  padding: 8px 0; box-shadow: 0 20px 44px rgba(16, 19, 26, .13);
}
/* usynlig bro over luften mellem knap og panel: uden den mister gruppen :hover,
   når musen krydser mellemrummet, og panelet lukker, før man kan klikke */
.menupanel::before { content: ""; position: absolute; top: -15px; left: 0; right: 0; height: 15px; }
.menugruppe.aaben .menupanel { display: block; }
@media (hover: hover) and (min-width: 761px) {
  .menugruppe:hover .menupanel, .menugruppe:focus-within .menupanel { display: block; }
}
.menupanel a { display: block; padding: 10px 20px; font-size: .89rem; font-weight: 600; color: var(--blaek-2); }
.menupanel a:hover { background: var(--papir-varm); color: var(--blaek); }
.menupanel a.her { color: var(--accent); }

/* ---- menuknap på telefon ---- */
.menuskift { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 40px; height: 40px; padding: 0 8px; background: none; border: 0; cursor: pointer; }
.menuskift span[aria-hidden] { display: block; height: 2px; width: 100%; background: var(--blaek); transition: transform var(--overgang), opacity var(--overgang); }
.menuskift[aria-expanded="true"] span[aria-hidden]:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menuskift[aria-expanded="true"] span[aria-hidden]:nth-child(2) { opacity: 0; }
.menuskift[aria-expanded="true"] span[aria-hidden]:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 760px) {
  .kunbred { display: none; }
  .menuskift { display: flex; }
  .topnav {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; gap: 0; padding: 6px 0 14px;
    background: var(--papir); border-bottom: 1px solid var(--linje);
    box-shadow: 0 18px 34px rgba(16, 19, 26, .1);
  }
  .topnav.aaben { display: flex; }
  .topnav > a, .menuknap { padding: 14px var(--luft); font-size: .8rem; width: 100%; }
  .menugruppe::before { display: none; }
  .menuknap { justify-content: space-between; }
  .menupanel {
    position: static; display: none; min-width: 0; border: 0; box-shadow: none;
    background: transparent; padding: 0 0 6px;
  }
  .menupanel a { padding: 11px var(--luft) 11px calc(var(--luft) + 18px); }
}

/* ---------- bund ---------- */
/* mørk bund, der spejler topstriben: masthead, linkindeks i avissprog,
   ansvarsstribe og kolofon, adskilt af hårlinjer i hvid alpha */
.bundlinje { background: var(--top-bund); color: rgba(255,255,255,.72); margin-top: 0; }
.bundlinje a { color: rgba(255,255,255,.72); box-shadow: none; transition: color var(--overgang), box-shadow var(--overgang); }
.bundlinje a:hover { color: #fff; box-shadow: inset 0 -2px 0 var(--accent-lys); }

.bundtop { display: grid; gap: 26px; padding: 54px 0 40px; align-items: end; }
@media (min-width: 900px) { .bundtop { grid-template-columns: auto 1fr; gap: 60px; } }
.bundordmaerke { display: inline-block; text-align: center; line-height: 1; justify-self: start; }
.bundordmaerke:hover { box-shadow: none; }
.bundordmaerke .maerkeover { color: rgba(255,255,255,.62); border-top-color: #fff; border-bottom-color: rgba(255,255,255,.18); }
.bundordmaerke .maerkenavn { color: #fff; border-bottom-color: var(--accent-lys); font-size: 1.5rem; }
.bundmission { font-size: .92rem; color: rgba(255,255,255,.78); margin: 0; }

.bundgitter { display: grid; gap: 36px 28px; padding: 0 0 48px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 900px) { .bundgitter { grid-template-columns: repeat(4, 1fr); } }
.bundrubrik {
  display: block; font-size: .62rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .17em; color: rgba(255,255,255,.72);
  padding-bottom: 10px; margin-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.14);
}
.bundspalte a { display: block; font-size: .86rem; font-weight: 600; padding: 5px 0; width: fit-content; }

.bundstribe { border-top: 1px solid rgba(255,255,255,.14); padding: 26px 0; }
.bundstribe .ramme { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; }
.bundmaerker { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.bundmaerker img { height: 30px; width: auto; border: 1px solid rgba(255,255,255,.2); background: #fff; }
.bundstribe p { font-size: .8rem; color: rgba(255,255,255,.75); margin: 0; flex: 1; min-width: 260px; }
.bundstribe b { color: rgba(255,255,255,.85); }

.bundbund { border-top: 1px solid rgba(255,255,255,.14); padding: 20px 0 24px; }
.bundbund p { font-size: .78rem; color: rgba(255,255,255,.72); margin: 0; }
@media (max-width: 899px) { .bundtop, .bundbund { text-align: left; } }

/* ============================================================
   TOPBENTO - billedet fylder, og felterne bryder ned i siden
   ============================================================ */
.topbillede {
  position: relative; isolation: isolate; overflow: hidden; color: #fff;
  background: var(--top-bund); padding: 8px 0 0;
}
.topbillede::before {
  content: ""; position: absolute; inset: 0 0 26% 0; z-index: -2;
  background-image: var(--topbillede); background-position: center right; background-size: cover;
  transform: scale(1.04); animation: langsomzoom 32s ease-in-out infinite alternate;
}
/* sløret følger --top-bund-rgb, så hver anmeldelse kan have sin egen mørke tone
   uden at der opstår en kant, hvor lagene slutter */
/* sløret er 44px højere end billedet, fordi langsomzoom skalerer ::before op til
   1,1 og ellers stikker en udækket stribe af billedet ud under det */
.topbillede::after {
  content: ""; position: absolute; inset: 0 0 calc(26% - 44px) 0; z-index: -1;
  background:
    linear-gradient(96deg,
      rgb(var(--top-bund-rgb)) 0%, rgba(var(--top-bund-rgb),.9) 30%,
      rgba(var(--top-bund-rgb),.4) 58%, rgba(var(--top-bund-rgb),0) 88%),
    linear-gradient(0deg, rgb(var(--top-bund-rgb)) 9%, rgba(var(--top-bund-rgb),0) 50%);
}
/* på mobil er heroen meget høj: hold billedet bag overskriften i stedet for at
   strække det ned bag hele bento-gitteret */
@media (max-width: 899px) {
  .topbillede::before { inset: 0 0 auto 0; height: 470px; }
  .topbillede::after  { inset: 0 0 auto 0; height: 514px; }
}
@keyframes langsomzoom { from { transform: scale(1.02); } to { transform: scale(1.1); } }

.topbillede .brodkrumme { padding: 0 0 30px; font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .15em; color: rgba(255,255,255,.5); }
.topbillede .brodkrumme a { color: rgba(255,255,255,.5); transition: color var(--overgang); }
.topbillede .brodkrumme a:hover { color: #fff; }

/* Hero-teksten har ingen breddebegrænsning: den bruger hele spalten og bryder
   først, når skærmen kræver det. Læsbarheden over motivet klares med en blød
   skygge i bundfarven i stedet for en smal spalte eller et tungere slør. */
.topord h1 {
  font-size: clamp(2.25rem, 5.2vw, 4rem); letter-spacing: -.05em; margin: 16px 0 22px;
  text-shadow: 0 2px 30px rgba(var(--top-bund-rgb), .92), 0 1px 4px rgba(var(--top-bund-rgb), .6);
}
/* bylinjen kan blive to linjer på en telefon, så den må ikke låses med nowrap */
.datolinje { color: rgba(255,255,255,.62); }
.datolinje a { color: #fff; box-shadow: inset 0 -1px 0 rgba(255,255,255,.42); transition: box-shadow var(--overgang); }
.datolinje a:hover { box-shadow: inset 0 -2px 0 #fff; }

/* bylinjen i toppen: lille portræt ved siden af navn og dato */
.bylinje { display: flex; align-items: center; gap: 12px; }
.bylinjefoto { width: 36px; height: 36px; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.4); }
@media (max-width: 899px) { .bylinje { justify-content: center; } }
.manchet {
  font-size: clamp(1.04rem, 1.7vw, 1.2rem); color: rgba(255,255,255,.9); line-height: 1.55;
  text-shadow: 0 1px 22px rgba(var(--top-bund-rgb), .95), 0 1px 3px rgba(var(--top-bund-rgb), .7);
}

/* ============================================================
   KARTOTEKET - forsiden som redaktionens sagsarkiv: mapper med
   faner, stemplede karakterer, journallinjer med punkterede
   udfyldningslinjer og en skuffe med resten af feltet.
   ============================================================ */
.kartotekstop { background: var(--papir); padding: 44px 0 10px; }
.kartotekstop h1 { font-size: clamp(2.4rem, 5.4vw, 4.2rem); letter-spacing: -.052em; margin: 16px 0 18px; }
.kartotekstop .staaende { font-size: clamp(1.04rem, 1.6vw, 1.22rem); color: var(--blaek-2); line-height: 1.55; margin: 0; }
.kartotekstop .datolinje { color: var(--blaek-3); }
.kartotekstop .datolinje a { color: var(--blaek); box-shadow: inset 0 -1px 0 var(--linje); }
.kartotekstop .datolinje a:hover { box-shadow: inset 0 -2px 0 var(--blaek); }
.kartotekstop .bylinjefoto { border-color: var(--linje); }

.arkiv { background: var(--papir-varm); border-top: 1px solid var(--linje); border-bottom: 1px solid var(--linje); padding: 30px 0 64px; margin-top: 36px; }
.arkivhoved { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; flex-wrap: wrap; }
.arkivhoved .mikro { color: var(--blaek-3); }

.sagsraekke { display: grid; gap: 26px; margin-top: 46px; }
@media (min-width: 960px) { .sagsraekke { grid-template-columns: repeat(3, 1fr); } }

.sagsmappe {
  position: relative; background: var(--flade);
  border: 1px solid var(--linje); border-top: 3px solid var(--blaek);
  padding: 24px; display: flex; flex-direction: column; gap: 14px;
  transition: transform var(--overgang), box-shadow var(--overgang);
}
.sagsmappe:hover { transform: translateY(-7px); box-shadow: 0 26px 48px rgba(16, 19, 26, .14); }
.sagsmappe::before {
  content: attr(data-fane);
  position: absolute; top: -29px; left: -1px; height: 30px;
  display: flex; align-items: center; padding: 0 16px;
  background: var(--flade); border: 1px solid var(--linje); border-bottom: 0;
  border-top: 3px solid var(--blaek);
  font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .15em; color: var(--blaek-2);
}
.stempel {
  position: absolute; top: 16px; right: 16px; transform: rotate(6deg);
  border: 2.5px solid var(--accent); color: var(--accent);
  padding: 5px 12px 7px; text-align: center; background: var(--flade);
}
.stempel b { display: block; font-size: 1.45rem; font-weight: 800; letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.stempel span { display: block; font-size: .5rem; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; margin-top: 3px; }
.maerkefelt { background: var(--maerke-bund); padding: 16px 22px; margin-right: 84px; width: fit-content; }
.maerkefelt img { width: 128px; }
.sagsmappe h3 { font-size: 1.16rem; letter-spacing: -.03em; }

.journal { display: flex; flex-direction: column; gap: 7px; margin: 2px 0 6px; flex: 1; }
.journalfelt { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; font-size: .85rem; border-bottom: 1px dotted #b9b2a4; padding-bottom: 6px; }
.journalfelt dt { color: var(--blaek-3); white-space: nowrap; }
.journalfelt dd { font-weight: 700; text-align: right; }
.sagsmappe .knap { width: 100%; justify-content: center; text-align: center; padding: 12px 16px; font-size: .88rem; }
.sagslink { font-size: .8rem; font-weight: 700; color: var(--blaek-2); text-align: center; align-self: center; box-shadow: inset 0 -1px 0 var(--linje); transition: color var(--overgang), box-shadow var(--overgang); }
.sagslink:hover { color: var(--blaek); box-shadow: inset 0 -2px 0 var(--accent); }

/* skuffen: resten af feltet som faner, der kan trækkes op */
.skuffe { margin-top: 52px; display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; border-bottom: 3px solid var(--blaek); }
.fanekort {
  display: flex; gap: 10px; align-items: baseline;
  background: var(--flade); border: 1px solid var(--linje); border-bottom: 0;
  padding: 10px 16px 13px; font-size: .84rem; font-weight: 700; color: var(--blaek);
  transition: transform var(--overgang), background var(--overgang);
}
.fanekort .tal { color: var(--accent); font-weight: 800; font-variant-numeric: tabular-nums; }
.fanekort:hover { transform: translateY(-7px); background: var(--papir); }
.skuffenote { font-size: .78rem; color: var(--blaek-3); margin-top: 14px; }
.skuffenote a { color: var(--accent); box-shadow: inset 0 -1px 0 currentColor; }

/* kartotek-heroens sagsfotos: rigtige skærmbilleder som fotobilag */
.kartotekgitter { display: grid; gap: 44px; align-items: center; }
.kartotekknapper { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: 28px; }
.kartotekstop .knap { width: auto; padding: 14px 28px; font-size: .92rem; }
.metodelink { font-size: .84rem; font-weight: 700; color: var(--blaek-2); box-shadow: inset 0 -1px 0 var(--linje); transition: color var(--overgang), box-shadow var(--overgang); }
.metodelink:hover { color: var(--blaek); box-shadow: inset 0 -2px 0 var(--accent); }

.sagsfotos { position: relative; width: 100%; height: 480px; max-width: 620px; margin: 38px auto 0; }
.foto { position: absolute; margin: 0; background: var(--flade); border: 1px solid var(--linje); padding: 9px 9px 30px; box-shadow: 0 20px 44px rgba(16, 19, 26, .18); }
.foto img { display: block; width: 100%; height: auto; }
.foto figcaption { position: absolute; left: 12px; bottom: 9px; font-size: .56rem; font-weight: 700; text-transform: uppercase; letter-spacing: .16em; color: var(--blaek-3); white-space: nowrap; }
.foto-b { width: 58%; right: 0; top: 0; transform: rotate(2.4deg); }
.foto-a { width: 62%; left: 0; bottom: 5%; transform: rotate(-3.2deg); z-index: 2; }
.foto-c { width: 25%; right: 6%; bottom: 0; transform: rotate(5.5deg); z-index: 3; }
.herostempel {
  position: absolute; z-index: 4; top: 38%; left: 3%; transform: rotate(-7deg);
  border: 3px solid var(--messing, var(--accent)); color: var(--messing, var(--accent));
  background: var(--flade); padding: 8px 18px 10px; text-align: center;
  box-shadow: 0 14px 30px rgba(16, 19, 26, .14);
}
.herostempel b { display: block; font-size: 1.18rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.herostempel span { display: block; font-size: .56rem; font-weight: 800; text-transform: uppercase; letter-spacing: .16em; margin-top: 3px; }
@media (min-width: 960px) {
  .kartotekgitter { grid-template-columns: 1.02fr .98fr; }
  .sagsfotos { margin-top: 0; }
}
@media (max-width: 520px) {
  .sagsfotos { height: 360px; }
  .foto { padding: 6px 6px 24px; }
  .foto figcaption { font-size: .5rem; letter-spacing: .12em; }
}

/* temafliserne: genveje med motiver, blok 03 */
.temagitter { display: grid; gap: 14px; margin-top: 10px; }
@media (min-width: 700px) { .temagitter { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1020px) { .temagitter { grid-template-columns: repeat(3, 1fr); } }
.temaflise {
  display: flex; align-items: center; gap: 16px;
  background: var(--flade); border: 1px solid var(--linje); padding: 16px 18px;
  transition: transform var(--overgang), box-shadow var(--overgang);
}
.temaflise img { width: 62px; height: 62px; flex: none; }
.temaflise:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(16, 19, 26, .1); }
.flisetekst { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.flisetekst b { font-size: .95rem; font-weight: 700; letter-spacing: -.015em; }
.flisetekst .mikro { font-size: .6rem; }
.temagitter + .brodtekst { margin-top: 26px; }
.temagitter + .brodtekst p { font-size: .9rem; color: var(--blaek-2); }

/* selve bento-gitteret */
.bento { display: grid; gap: 14px; margin-top: 54px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 900px) {
  .bento {
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: minmax(150px, auto) minmax(122px, auto) auto;
    grid-template-areas:
      "kar mrk mrk bon"
      "kar gen min cta"
      "del del del cta";
  }
  .flise-karakter { grid-area: kar; }
  .flise-maerke   { grid-area: mrk; }
  .flise-bonus    { grid-area: bon; }
  .flise-gennem   { grid-area: gen; }
  .flise-min      { grid-area: min; }
  .flise-dele     { grid-area: del; }
  .flise-cta      { grid-area: cta; }
}

.flise { background: var(--flade); color: var(--blaek); padding: 24px; position: relative; transition: transform var(--overgang), box-shadow var(--overgang); min-width: 0; }
.flise:hover { transform: translateY(-5px); box-shadow: 0 24px 50px rgba(6,10,22,.4); }

/* på smalle skærme fylder de store fliser hele bredden */
@media (max-width: 899px) {
  .flise-karakter, .flise-maerke, .flise-dele, .flise-cta, .flise-min { grid-column: 1 / -1; }
}

/* karakterflisen - stor, i mærkefarven */
.flise-karakter {
  background: var(--accent); color: #fff;
  display: flex; flex-direction: column; justify-content: space-between;
}
.flise-karakter .mikro { color: rgba(255,255,255,.72); }
.flise-karakter b { display: block; font-size: clamp(3.6rem, 9vw, 5.4rem); font-weight: 800; letter-spacing: -.06em; line-height: .86; margin: 10px 0 2px; font-variant-numeric: tabular-nums; }
.flise-karakter i { font-style: normal; font-size: .9rem; color: rgba(255,255,255,.75); }
.flise-karakter p { font-size: .87rem; color: rgba(255,255,255,.88); margin: 14px 0 0; line-height: 1.45; }

/* mærkeflisen */
.flise-maerke { background: var(--maerke-bund); display: flex; align-items: center; justify-content: center; padding: 26px; }
.flise-maerke img { width: 100%; max-width: 200px; }

/* taltiler */
.flise-tal { display: flex; flex-direction: column; justify-content: center; }
.flise-tal b { display: block; font-size: clamp(1.5rem, 2.4vw, 1.95rem); font-weight: 800; letter-spacing: -.04em; margin-top: 10px; font-variant-numeric: tabular-nums; word-break: keep-all; hyphens: none; }
.flise-tal span[data-tal] { color: var(--accent); }

/* delkarakterer */
.flise-dele dl { display: grid; gap: 13px; margin-top: 14px; }
.flise-dele dl > div { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; align-items: baseline; }
.flise-dele dt { font-size: .86rem; color: var(--blaek-2); }
.flise-dele dd { display: contents; }
.flise-dele dd b { font-size: .92rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.spor { display: block; grid-column: 1 / -1; height: 3px; background: var(--linje); overflow: hidden; }
.spor i { display: block; height: 100%; width: 0; background: var(--accent); transition: width 1.1s cubic-bezier(.22,.61,.36,1); }
.synlig .spor i { width: var(--fyld); }

/* CTA-flise */
.flise-cta { background: var(--blaek); color: #fff; display: flex; flex-direction: column; justify-content: center; gap: 14px; }
.flise-cta:hover { box-shadow: 0 24px 50px rgba(6,10,22,.55); }
.flise-cta .mikro { color: rgba(255,255,255,.6); }
.flise-cta b { font-size: 1.5rem; letter-spacing: -.035em; }

.knap {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 17px 26px; background: var(--accent); color: #fff; font-weight: 700; font-size: 1rem;
  letter-spacing: -.01em; border: 0; cursor: pointer; position: relative; overflow: hidden; width: 100%;
  transition: transform var(--overgang);
}
.knap span { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 10px; }
.knap::before { content: ""; position: absolute; inset: 0; background: var(--accent-dyb); transform: translateY(100%); transition: transform var(--overgang); }
.knap:hover { color: #fff; transform: translateY(-2px); }
.knap:hover::before { transform: translateY(0); }
.knap img { width: 17px; height: 17px; transition: transform var(--overgang); }
.knap:hover img { transform: translateX(4px); }
.hvid-ikon { filter: brightness(0) invert(1); }
.knapnote { font-size: .72rem; color: rgba(255,255,255,.55); line-height: 1.45; }

/* ============================================================
   BLOKKE
   ============================================================ */
.blok { padding: 92px 0 0; }
.blok:first-of-type { padding-top: 86px; }
/* en blok der ender i et fuldbredde bånd står tættere på den forrige, og
   teksten efter båndet skal have luft ned fra den mørke flade */
.blok-baand { padding-top: 70px; }
.efter-baand { margin-top: 46px; }
.brodtekst { max-width: none; }
.brodtekst p { color: var(--blaek-2); }

/* blokhoved: venstreskinne med løbenummer og motiv */
.blokhoved { display: grid; gap: 16px; margin-bottom: 36px; align-items: start; }
@media (min-width: 780px) { .blokhoved { grid-template-columns: 132px 1fr; gap: 36px; } }
.blokmaerke { display: flex; align-items: center; gap: 16px; }
@media (min-width: 780px) { .blokmaerke { display: block; } }
.lobenr {
  display: block; font-size: 3.4rem; font-weight: 800; line-height: .8; letter-spacing: -.06em;
  color: transparent; -webkit-text-stroke: 1.5px var(--linje);
}
@media (max-width: 779px) { .lobenr { font-size: 2.4rem; } }
.motiv {
  display: block; width: 132px; height: auto; margin-top: 14px;
  transition: transform 620ms cubic-bezier(.22,.61,.36,1);
}
@media (max-width: 779px) { .motiv { width: 68px; margin-top: 0; } }
.blokhoved:hover .motiv { transform: translateY(-6px) rotate(-3deg); }
.blokhoved p { color: var(--blaek-3); font-size: .98rem; margin: 14px 0 0; }

/* alt indhold flugter med overskriften, så skinnen står frit i marginen.
   Skribentsiden bruger .afsnitshoved i stedet for .blokhoved, men har samme
   skinnebredde, så den skal undtages på nøjagtig samme måde. */
@media (min-width: 780px) {
  .blok > .ramme > *:not(.blokhoved):not(.afsnitshoved) { margin-left: 168px; }
}

/* ---------- fuldbredde farvebånd: regnestykket ---------- */
.baand {
  background: var(--blaek); color: #fff; margin-top: 46px;
  padding: 76px 0 80px; position: relative; overflow: hidden;
}
.baand::before {
  content: ""; position: absolute; right: -8%; top: -40%; width: 62%; height: 190%;
  background: radial-gradient(circle at center, var(--accent) 0%, transparent 62%);
  opacity: .5; filter: blur(30px);
}
.baand .ramme { position: relative; }
.baand .mikro { color: rgba(255,255,255,.6); }
.baand h2 { color: #fff; margin: 14px 0 40px; }
.regnerakke { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 24px 30px; }
.regnebrik b { display: block; font-size: clamp(1.9rem, 4.4vw, 2.7rem); font-weight: 800; letter-spacing: -.05em; line-height: 1; font-variant-numeric: tabular-nums; }
.regnebrik .mikro { margin-top: 9px; color: rgba(255,255,255,.55); }
.regnetegn { font-size: 1.7rem; color: rgba(255,255,255,.35); padding-bottom: 8px; }
.regnesvar { margin-left: auto; text-align: right; }
.regnesvar b { display: block; font-size: clamp(3rem, 9vw, 5.4rem); color: var(--accent-lys); letter-spacing: -.06em; font-weight: 800; line-height: .92; font-variant-numeric: tabular-nums; }
.regnesvar .mikro { color: var(--accent-lys); margin-bottom: 10px; }
/* et tal med en forklaring UNDER sig: den stramme line-height paa b lader
   ellers underskriften lande oven i bogstavernes underlaengder */
.regnesvar b + .mikro { display: block; margin: 16px 0 0; }
@media (max-width: 760px) { .regnesvar { margin-left: 0; text-align: left; width: 100%; } }
.regnenote { font-size: .92rem; color: rgba(255,255,255,.68); border-top: 1px solid rgba(255,255,255,.2); padding-top: 22px; margin-top: 40px; }

/* ---------- tabel ---------- */
.tabelramme { overflow-x: auto; margin: 34px 0; }
table { width: 100%; border-collapse: collapse; font-size: .94rem; min-width: 560px; }
thead th { text-align: left; padding: 0 18px 14px 0; border-bottom: 2px solid var(--blaek); font-size: var(--mikro); text-transform: uppercase; letter-spacing: .16em; color: var(--blaek-3); font-weight: 700; }
tbody td { padding: 18px 18px 18px 0; border-bottom: 1px solid var(--linje); color: var(--blaek-2); vertical-align: top; }
tbody tr { transition: background var(--overgang); }
tbody tr:hover { background: var(--flade); }
tbody td:first-child { color: var(--blaek); font-weight: 700; }
td.uoplyst { color: var(--blaek-3); font-style: italic; }

/* på telefon stables rækkerne, så intet bliver klippet af i en vandret scroller.
   Hver celle henter sin overskrift fra data-etiket. */
@media (max-width: 680px) {
  .tabelramme { overflow-x: visible; }
  .tabelramme table { min-width: 0; }
  .tabelramme thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .tabelramme tbody tr { display: block; padding: 20px 0; border-bottom: 1px solid var(--linje); text-align: center; }
  .tabelramme tbody tr:last-child { border-bottom: 0; }
  .tabelramme tbody td { display: block; padding: 7px 0; border: 0; }
  .tabelramme tbody td::before {
    content: attr(data-etiket); display: block; margin-bottom: 3px;
    font-size: var(--mikro); font-weight: 700; text-transform: uppercase;
    letter-spacing: .16em; color: var(--blaek-3);
  }
  .tabelramme tbody td:first-child { font-size: 1.06rem; }
}

/* ---------- betalingsbånd (marquee) ---------- */
.betalingsbaand { background: var(--flade); border-top: 1px solid var(--linje); border-bottom: 1px solid var(--linje); padding: 30px 0; margin: 40px 0; overflow: hidden; }
.rulle { display: flex; gap: 16px; width: max-content; animation: rul 42s linear infinite; }
.betalingsbaand:hover .rulle { animation-play-state: paused; }
.rulle img { width: 148px; height: 56px; object-fit: contain; border: 1px solid var(--linje); background: #fff; padding: 6px 10px; flex: 0 0 auto; }
@keyframes rul { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- guidefigur (enkeltstaaende skaermbillede i en guide) ---------- */
.guidefigur { margin: 34px 0 8px; }
.guidefigur .billedfelt { border: 1px solid var(--linje); background: var(--flade); }
.guidefigur img { display: block; width: 100%; height: auto; }
.guidefigur figcaption {
  padding: 10px 2px 0; font-size: var(--mikro); color: var(--blaek-3);
  font-weight: 700; text-transform: uppercase; letter-spacing: .14em;
}

/* ---------- skaermgalleri ---------- */
.skaermgalleri { display: grid; gap: 16px; margin: 34px 0; }
@media (min-width: 820px) { .skaermgalleri { grid-template-columns: 1.5fr 1fr 1fr; align-items: stretch; } }
/* Nogle udbydere giver kun to brugbare skaermbilleder - fx naar deres lobby er en
   enkeltsides app, der ikke naar at hente spillefliserne uden login. Saa koeres to
   felter i stedet for tre, i stedet for at efterlade et hul i raekken. */
@media (min-width: 820px) { .skaermgalleri.to-felter { grid-template-columns: 1.3fr 1fr; } }
.skaermfelt { position: relative; display: flex; flex-direction: column; cursor: zoom-in; margin: 0; }
.skaermfelt .billedfelt {
  flex: 1; min-height: 190px; overflow: hidden;
  border: 1px solid var(--linje); background: var(--flade);
}
.skaermfelt img {
  display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center;
  transition: transform 720ms cubic-bezier(.22,.61,.36,1);
}
.skaermfelt:hover img { transform: scale(1.06); }
.skaermfelt figcaption {
  position: absolute; left: 0; bottom: 0; z-index: 2; background: var(--blaek); color: #fff;
  padding: 9px 15px; font-size: var(--mikro); font-weight: 700;
  text-transform: uppercase; letter-spacing: .16em;
}
/* Under 820px serverer <picture> de lodrette mobilskærmbilleder, og de vises
   HELE - et beskåret telefonskærmbillede fortæller ikke, hvordan siden ser ud.
   Tre fulde telefoner under hinanden ville fylde over 2.000px, så rækken
   stryges i stedet: fuldbredde strygefelt med snap på hvert billede. */
@media (max-width: 819px) {
  .skaermgalleri {
    display: flex; gap: 12px;
    margin-left: calc(var(--luft) * -1); margin-right: calc(var(--luft) * -1);
    padding: 2px var(--luft) 6px;
    overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scroll-padding-left: var(--luft);
    scrollbar-width: none; -ms-overflow-style: none;
  }
  .skaermgalleri::-webkit-scrollbar { display: none; }
  .skaermfelt {
    flex: 0 0 min(78vw, 340px); max-width: none; margin: 0;
    scroll-snap-align: start;
  }
  /* fuldt telefonformat, ingen beskæring */
  .skaermfelt .billedfelt { aspect-ratio: 390 / 844; min-height: 0; }
}

.lysboks { position: fixed; inset: 0; z-index: 100; display: none; align-items: center; justify-content: center; padding: 30px; background: rgba(11,16,32,.94); backdrop-filter: blur(6px); }
.lysboks.aaben { display: flex; }
.lysboks img { max-width: 100%; max-height: 88vh; }
.lysboks button { position: absolute; top: 22px; right: 26px; background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.4); width: 46px; height: 46px; font-size: 1.4rem; cursor: pointer; transition: background var(--overgang); }
.lysboks button:hover { background: rgba(255,255,255,.15); }

/* ---------- vejning: to store kontrastfelter ---------- */
.vejning { display: grid; gap: 16px; margin-top: 12px; }
@media (min-width: 820px) { .vejning { grid-template-columns: 1fr 1fr; } }
.vejekort { padding: 38px; }
.godt { background: #0d3b2b; color: #fff; }
.skidt { background: var(--papir-varm); color: var(--blaek); }
.vejekort h3 { font-size: 1.6rem; letter-spacing: -.035em; margin-bottom: 24px; }
.godt h3 { color: #fff; }
.vejekort ul { list-style: none; }
.vejekort li { position: relative; padding-left: 30px; margin-bottom: 17px; font-size: .96rem; line-height: 1.5; }
.vejekort li::before { position: absolute; left: 0; top: -1px; font-weight: 800; font-size: 1.15rem; }
.godt li { color: rgba(255,255,255,.85); }
.godt li::before { content: "+"; color: #4ade9a; }
.skidt li { color: var(--blaek-2); }
.skidt li::before { content: "\2212"; color: var(--negativ); }

/* ---------- licens: mørkt indstik ---------- */
.licensblok { background: var(--maerke-bund); color: #fff; padding: 42px; display: grid; gap: 32px; margin: 34px 0; }
@media (min-width: 780px) { .licensblok { grid-template-columns: 176px 1fr; gap: 46px; align-items: center; } }
.licensmaerke { background: #fff; padding: 16px; }
.licensblok dl { display: grid; gap: 22px; }
@media (min-width: 580px) { .licensblok dl { grid-template-columns: 1fr 1fr; } }
.licensblok dt { margin-bottom: 7px; color: rgba(255,255,255,.55); }
.licensblok dd { font-weight: 700; font-size: 1.04rem; letter-spacing: -.02em; }

/* ---------- sammenligning som kort ---------- */
.sammenkort { display: grid; gap: 14px; margin: 34px 0; }
@media (min-width: 760px) { .sammenkort { grid-template-columns: repeat(4, 1fr); } }
.sammenkort article { background: var(--flade); border: 1px solid var(--linje); padding: 22px; transition: transform var(--overgang), border-color var(--overgang); display: flex; flex-direction: column; }
.sammenkort .knap { margin-top: auto; width: 100%; justify-content: center; text-align: center; padding: 12px 16px; font-size: .88rem; }
.sammenkort dl { margin-bottom: 18px; }
.sammenkort article:hover { transform: translateY(-5px); border-color: var(--blaek); }
.sammenkort article.denne { border: 2px solid var(--accent); }
/* mærkefliserne er gennemsigtige med samme indbyggede luft, så pladen må fylde
   hele kortets bredde - ekstra padding her ville lægge luft oven i luft */
.sammenkort .kortmaerke { background: var(--maerke-bund); margin-bottom: 18px; }
.sammenkort .kortmaerke img { width: 100%; }
.sammenkort h3 { font-size: 1rem; margin-bottom: 12px; }
.sammenkort dl { display: grid; gap: 9px; }
.sammenkort dl > div { display: flex; justify-content: space-between; gap: 10px; font-size: .84rem; border-bottom: 1px solid var(--linje); padding-bottom: 8px; }
.sammenkort dt { color: var(--blaek-3); }
.sammenkort dd { font-weight: 700; text-align: right; }

/* ============================================================
   PENGESIDER
   Anmeldelserne har en moerk hero i maerkets farve. Pengesiderne
   har en LYS top: samme typografi og samme kanter, men paa papir,
   saa laeseren kan se paa afstand, at det er en oversigt og ikke
   en enkelt anmeldelse. Toppen er lav med vilje - toplisten skal
   staa lige under den.
   ============================================================ */
.pengetop {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--papir-varm); color: var(--blaek);
  border-bottom: 1px solid var(--linje); padding: 8px 0 46px;
}
.pengetop::before {
  content: ""; position: absolute; right: 0; top: -20%; width: 52%; height: 150%; z-index: -1;
  background-image: var(--topbillede); background-size: cover; background-position: center;
  opacity: .18;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 55%);
          mask-image: linear-gradient(90deg, transparent 0%, #000 55%);
}
@media (max-width: 899px) { .pengetop::before { display: none; } }
.pengetop .brodkrumme { padding: 0 0 24px; font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .15em; color: var(--blaek-3); }
.pengetop .brodkrumme a { color: var(--blaek-3); transition: color var(--overgang); }
.pengetop .brodkrumme a:hover { color: var(--blaek); }
.pengetop .datolinje { color: var(--blaek-3); }
.pengetop .datolinje a { color: var(--blaek); box-shadow: inset 0 -1px 0 var(--linje); }
.pengetop .datolinje a:hover { box-shadow: inset 0 -2px 0 var(--blaek); }
.pengetop .bylinjefoto { border-color: var(--linje); }
.pengetop h1 { font-size: clamp(2.2rem, 5vw, 3.8rem); letter-spacing: -.05em; margin: 15px 0 20px; text-shadow: none; }
.pengetop .manchet { color: var(--blaek-2); text-shadow: none; }
@media (min-width: 900px) { .pengetop h1, .pengetop .manchet { max-width: 70%; } }

/* hurtige fakta under overskriften, adskilt af haarlinjer i stedet for kasser */
.pengefakta { display: grid; gap: 18px 0; margin-top: 32px; border-top: 1px solid var(--linje); padding-top: 24px; }
@media (min-width: 700px) { .pengefakta { grid-template-columns: repeat(3, 1fr); gap: 0; } }
.pengefakta > div { padding: 0 26px; }
.pengefakta > div:first-child { padding-left: 0; }
@media (min-width: 700px) { .pengefakta > div + div { border-left: 1px solid var(--linje); } }
.pengefakta dt { font-size: var(--mikro); font-weight: 700; text-transform: uppercase; letter-spacing: .17em; color: var(--blaek-3); }
.pengefakta dd { margin-top: 8px; font-size: 1.02rem; font-weight: 700; letter-spacing: -.02em; }
.pengefakta dd b { color: var(--accent); }
@media (max-width: 699px) { .pengefakta { text-align: center; } .pengefakta > div { padding: 0; } }

/* toplistetabellen: raekken ER produktet, saa logo og knap ligger i tabellen */
.toplistetabel { margin: 0 0 34px; }
.toplistetabel table { min-width: 780px; }
.toplistetabel tbody td { vertical-align: middle; padding: 14px 16px 14px 0; }
.toplistetabel .tabellogo { width: 148px; }
.toplistetabel .tabelmaerke { background: var(--maerke-bund); width: 132px; }
.toplistetabel .tabelmaerke img { width: 100%; display: block; }
.toplistetabel .tabelnavn { font-size: 1rem; }
.toplistetabel .tabelnavn a:hover { color: var(--accent); }
.toplistetabel .tabelkarakter { font-size: 1.35rem; font-weight: 800; letter-spacing: -.04em; color: var(--accent); font-variant-numeric: tabular-nums; }
.toplistetabel .tabeldelta { display: block; font-size: .72rem; font-weight: 400; color: var(--blaek-3); letter-spacing: 0; }
.toplistetabel .knap { width: auto; padding: 12px 20px; font-size: .88rem; white-space: nowrap; }
@media (max-width: 680px) {
  .toplistetabel table { min-width: 0; }
  .toplistetabel tbody td { padding: 7px 0; }
  .toplistetabel .tabellogo, .toplistetabel .tabelknap { width: auto; }
  .toplistetabel .tabellogo::before, .toplistetabel .tabelknap::before { display: none; }
  .toplistetabel .tabelmaerke { width: 152px; margin: 0 auto; }
  .toplistetabel .tabelnavn { font-size: 1.16rem; }
  .toplistetabel .knap { width: 100%; margin-top: 8px; }
}

/* ---------- casino for casino (pengesider) ----------
   Tabellen svarer paa "hvem er hurtigst". Det her svarer paa "hvordan ser det ud
   hos netop dem", og skal derfor laese som redaktionel tekst og ikke som ti kort:
   haarlinjer mellem blokkene, ingen kasser, maerket i sin egen smalle spalte. */
.kasinoliste { margin-top: 40px; border-top: 1px solid var(--linje); }
.kasinoblok { padding: 34px 0; border-bottom: 1px solid var(--linje); display: grid; gap: 22px; }
@media (min-width: 900px) { .kasinoblok { grid-template-columns: 186px 1fr; gap: 38px; } }
.kasinoside { display: grid; gap: 14px; align-content: start; }
.kasinoside .tabelmaerke { background: var(--maerke-bund); }
.kasinoside .tabelmaerke img { width: 100%; display: block; }
.kasinoblok h3 { font-size: 1.3rem; letter-spacing: -.03em; margin-bottom: 12px; }
.kasinoblok h3 a:hover { color: var(--accent); }
.kasinoblok p { color: var(--blaek-2); margin-bottom: 14px; }
.kasinoblok p:last-child { margin-bottom: 0; }
.kasinotal { display: flex; align-items: baseline; gap: 9px; border-top: 1px solid var(--linje); padding-top: 12px; }
.kasinotal b { font-size: 1.6rem; font-weight: 800; letter-spacing: -.05em; line-height: 1; color: var(--accent); font-variant-numeric: tabular-nums; }
.kasinotal span { font-size: var(--mikro); font-weight: 700; text-transform: uppercase; letter-spacing: .16em; color: var(--blaek-3); }
.kasinoblok .knap { width: 100%; padding: 13px 14px; font-size: .9rem; }
@media (max-width: 899px) {
  .kasinoside { justify-items: center; text-align: center; }
  .kasinoside .tabelmaerke { width: 172px; }
  .kasinotal { border-top: 0; padding-top: 0; }
}

/* ---------- svarblok (pengesider) ----------
   Svaret oeverst paa siden: de faa udbydere, der rent faktisk har sat et tal
   paa skrift, med tallet stort og kilden under. Resten af feltet staar i
   ranglisten laengere nede. */
.svarblok { display: grid; gap: 14px; margin-top: 34px; }
@media (min-width: 760px) { .svarblok { grid-template-columns: repeat(3, 1fr); } }
.svarkort {
  background: var(--flade); border: 1px solid var(--linje); padding: 26px;
  display: flex; flex-direction: column; gap: 15px;
  transition: transform var(--overgang), border-color var(--overgang);
}
.svarkort:hover { transform: translateY(-5px); border-color: var(--blaek); }
.svarmaerke { background: var(--maerke-bund); }
.svarmaerke img { width: 100%; }
.svarkort b {
  display: block; font-size: clamp(1.9rem, 3.4vw, 2.5rem); font-weight: 800;
  letter-spacing: -.05em; line-height: 1; color: var(--accent);
  font-variant-numeric: tabular-nums; word-break: keep-all; hyphens: none;
}
.svarkort p { font-size: .88rem; color: var(--blaek-2); margin: 0; }
.svarkilde { display: block; margin-top: auto; padding-top: 4px; font-size: .78rem; color: var(--blaek-3); }
@media (max-width: 759px) { .svarkort { text-align: center; } .svarkort p { text-align: left; } }

/* ---------- forfatterboks ----------
   Ligger nederst på hver side, lige over ansvarsblokken. Portrættet har sin
   egen spalte i samme bredde som marginskinnen, så kortets venstrekant flugter
   med resten af siden. Genbruges uændret på alle sider - se pictures.md. */
.forfatterboks {
  background: var(--flade); border: 1px solid var(--linje); padding: 32px;
  display: grid; gap: 22px; margin-top: 76px;
}
@media (min-width: 760px) { .forfatterboks { grid-template-columns: 132px 1fr; gap: 32px; align-items: start; padding: 34px 38px; } }
.forfatterfoto { width: 132px; height: auto; border: 1px solid var(--linje); }
.forfatterboks h2 { font-size: 1.6rem; letter-spacing: -.035em; margin: 9px 0 5px; }
.forfatterrolle { font-size: .89rem; font-weight: 700; color: var(--accent); margin-bottom: 15px; }
.forfatterboks p { font-size: .95rem; color: var(--blaek-2); }
.forfatterfakta {
  display: flex; flex-wrap: wrap; gap: 9px 28px; margin-top: 20px;
  border-top: 1px solid var(--linje); padding-top: 18px; font-size: .82rem; color: var(--blaek-3);
}
.forfatterfakta b { color: var(--blaek); font-weight: 700; }
.forfatterlink { margin-top: 18px; }
.forfatterlink a { color: var(--accent); font-weight: 700; box-shadow: inset 0 -1px 0 currentColor; transition: box-shadow var(--overgang); }
.forfatterlink a:hover { box-shadow: inset 0 -2px 0 currentColor; }
@media (max-width: 759px) {
  .forfatterboks { justify-items: center; text-align: center; }
  .forfatterfakta { justify-content: center; }
  .forfatterboks p:not(.forfatterrolle):not(.forfatterlink) { text-align: left; }
}

/* ---------- ansvar ---------- */
.ansvarsblok { background: var(--papir-varm); padding: 46px; margin-top: 92px; }
.ansvarsblok h2 { font-size: 1.7rem; margin: 12px 0 16px; }
.ansvarsblok p { font-size: .95rem; color: var(--blaek-2); }
.ansvarsmaerker { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-top: 24px; }
.ansvarsmaerker img { height: 36px; width: auto; background: #fff; border: 1px solid var(--linje); }
.aldersmaerke { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 2px solid var(--negativ); color: var(--negativ); font-weight: 800; font-size: .8rem; border-radius: 50%; }
.bundlinje .aldersmaerke { border-color: rgba(255,255,255,.82); color: rgba(255,255,255,.82); }

/* ---------- klaebebar ---------- */
.klaebebar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; background: var(--blaek); color: #fff; transform: translateY(105%); transition: transform 420ms cubic-bezier(.22,.61,.36,1); }
.klaebebar.fremme { transform: translateY(0); }
.klaebebar .ramme { display: flex; align-items: center; gap: 20px; padding-top: 13px; padding-bottom: 13px; }
.klaebebar img.klaebemaerke { width: 104px; }
.klaebetekst { flex: 1; min-width: 0; }
.klaebetekst b { display: block; font-size: 1rem; letter-spacing: -.02em; }
.klaebetekst span { font-size: .75rem; color: rgba(255,255,255,.6); }
.klaebebar .knap { width: auto; padding: 13px 26px; font-size: .92rem; }
@media (max-width: 680px) { .klaebebar img.klaebemaerke, .klaebetekst span { display: none; } }

.oplysning { font-size: .82rem; color: var(--blaek-3); border-top: 1px solid var(--linje); padding-top: 20px; margin-top: 64px; }

.til-toppen { position: fixed; right: 24px; bottom: 96px; z-index: 65; width: 46px; height: 46px; background: var(--blaek); border: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity var(--overgang), transform var(--overgang), background var(--overgang); }
.til-toppen.fremme { opacity: 1; pointer-events: auto; }
.til-toppen:hover { transform: translateY(-3px); background: var(--accent); }
.til-toppen img { width: 19px; height: 19px; filter: brightness(0) invert(1); }

/* ============================================================
   MOBIL: overskrifter, tal og mærker centreres, mens brødtekst
   og lister bliver venstrestillet - lange linjer har brug for
   en fast venstrekant for at kunne læses.
   ============================================================ */
@media (max-width: 899px) {
  .topord { text-align: center; }
  .topord h1, .manchet { margin-left: auto; margin-right: auto; }

  .blokhoved { justify-items: center; text-align: center; }
  .blokmaerke { justify-content: center; }

  .flise-karakter, .flise-tal, .flise-cta { text-align: center; }
  .flise-karakter { justify-content: center; gap: 16px; }
  .flise-cta .knap { justify-content: center; }
  .flise-tal b { margin-top: 6px; }

  .licensblok { justify-items: center; text-align: center; padding: 34px 24px; }
  .licensblok dl { justify-items: center; }

  .ansvarsblok { text-align: center; padding: 38px 24px; }
  .ansvarsblok p { margin-left: auto; margin-right: auto; }
  .ansvarsmaerker, .bundmaerker { justify-content: center; }

  .sammenkort h3 { text-align: center; }
  .skaermfelt figcaption { left: 50%; transform: translateX(-50%); }
}

/* ---------- bevaegelse ---------- */
.js .toner { opacity: 0; transform: translateY(28px); transition: opacity 720ms ease, transform 720ms cubic-bezier(.22,.61,.36,1); }
.js .toner.synlig { opacity: 1; transform: none; }
.js .trin > * { opacity: 0; transform: translateY(20px); transition: opacity 640ms ease, transform 640ms cubic-bezier(.22,.61,.36,1); }
.js .trin.synlig > * { opacity: 1; transform: none; }
.js .trin.synlig > *:nth-child(1) { transition-delay: 50ms; }
.js .trin.synlig > *:nth-child(2) { transition-delay: 120ms; }
.js .trin.synlig > *:nth-child(3) { transition-delay: 190ms; }
.js .trin.synlig > *:nth-child(4) { transition-delay: 260ms; }
.js .trin.synlig > *:nth-child(5) { transition-delay: 330ms; }
.js .trin.synlig > *:nth-child(6) { transition-delay: 400ms; }

/* indtog: hero-teksten glider på plads ved sideindlæsning. Gatet på html.js så
   indholdet står fremme uden JS; fill-mode both undgår et blink før start.
   Bento/hubtal har allerede deres egen trin-stagger og røres ikke her. */
@keyframes indtog { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.js .brodkrumme { animation: indtog .45s cubic-bezier(.22,.61,.36,1) both; }
.js .topord .bylinje, .js .topord > .datolinje { animation: indtog .5s cubic-bezier(.22,.61,.36,1) .07s both; }
.js .topord h1 { animation: indtog .6s cubic-bezier(.22,.61,.36,1) .14s both; }
.js .topord .manchet { animation: indtog .6s cubic-bezier(.22,.61,.36,1) .24s both; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .js .toner, .js .trin > * { opacity: 1; transform: none; }
  .rulle { animation: none; }
  .fremdrift { display: none; }
}

/* ---------- anmeldelseshub ---------- */
/* Talstriben under toppen: faa, efterproevede tal frem for en indledning. */
.hubtal { display: grid; gap: 1px; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.16); margin-top: 34px; }
@media (min-width: 700px) { .hubtal { grid-template-columns: repeat(3, 1fr); } }
.hubtal > div { background: rgba(var(--top-bund-rgb), .72); padding: 22px 26px; }
.hubtal .mikro { color: rgba(255,255,255,.62); }
.hubtal b { display: block; margin-top: 8px; font-size: clamp(1.7rem, 3.2vw, 2.3rem); font-weight: 800;
            letter-spacing: -.05em; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; }
.hubtal i { display: block; margin-top: 9px; font-style: normal; font-size: .82rem; color: rgba(255,255,255,.7); }

/* Ranglisten: én raekke pr. casino, tallene i samme kolonner hele vejen ned. */
.rangliste { display: grid; gap: 14px; margin: 36px 0 0; }
.rangkort { background: var(--flade); border: 1px solid var(--linje); padding: 22px;
            display: grid; gap: 18px; align-items: center; transition: border-color var(--overgang); }
.rangkort:hover { border-color: var(--blaek-3); }
@media (min-width: 900px) { .rangkort { grid-template-columns: 40px 150px 1fr 78px 156px; gap: 20px; padding: 20px 24px; } }
.rangnr { font-size: 2.1rem; font-weight: 800; line-height: 1; letter-spacing: -.06em;
          color: transparent; -webkit-text-stroke: 1.5px var(--linje); font-variant-numeric: tabular-nums; }
.rangmaerke { background: var(--maerke-bund); }
.rangmaerke img { width: 100%; }
.rangkort h3 { font-size: 1.14rem; margin-bottom: 5px; }
.rangkort h3 a:hover { color: var(--accent); }
.rangkort p { font-size: .92rem; color: var(--blaek-2); margin: 0; }
.rangfakta { display: flex; flex-wrap: wrap; gap: 5px 20px; margin-top: 11px; font-size: .78rem; color: var(--blaek-3); }
.rangfakta b { color: var(--blaek); font-weight: 700; font-variant-numeric: tabular-nums; }
.rangkarakter { border: 1px solid var(--linje); padding: 11px 6px 10px; text-align: center; }
.rangkarakter b { display: block; font-size: 1.7rem; font-weight: 800; letter-spacing: -.05em;
                  line-height: 1; color: var(--accent); font-variant-numeric: tabular-nums; }
.rangkarakter span { display: block; margin-top: 6px; }

/* Ofte stillede spoergsmaal. <details> holder svarene i HTML'en, saa de kan laeses
   uden JavaScript - og af soegemaskiner. */
.sporgsmaal { margin-top: 36px; border-top: 1px solid var(--linje); }
.sporgsmaal details { border-bottom: 1px solid var(--linje); }
.sporgsmaal summary { cursor: pointer; list-style: none; position: relative;
                      padding: 22px 46px 22px 0; font-weight: 700; font-size: 1.06rem; letter-spacing: -.02em; }
.sporgsmaal summary::-webkit-details-marker { display: none; }
.sporgsmaal summary:hover { color: var(--accent); }
.sporgsmaal summary::after { content: "+"; position: absolute; right: 8px; top: 50%; margin-top: -14px;
                             font-size: 1.7rem; font-weight: 400; line-height: 1; color: var(--accent);
                             transition: transform var(--overgang); }
.sporgsmaal details[open] summary::after { transform: rotate(45deg); }
.sporgsmaal .svar { padding: 0 0 24px; color: var(--blaek-2); font-size: .96rem; }

/* knappen i ranglisten er smallere end den store CTA, saa teksten holder én linje */
@media (min-width: 900px) { .rangkort .knap { padding: 15px 14px; font-size: .9rem; } }

@media (max-width: 899px) {
  .rangkort { justify-items: center; text-align: center; }
  .rangfakta { justify-content: center; }
  .rangmaerke { width: 172px; }
  .rangkarakter { width: 128px; }
  .rangkort .knap { width: 100%; }
  .hubtal { text-align: center; }
}

/* ============================================================
   SKRIBENTSIDE
   Samme byggeklodser som resten af sitet - mørk fuldbredde top,
   hårde kanter, hårlinjer, 132px skinne i marginen - men et andet
   greb: portrættet får sin egen spalte i stedet for et bento-gitter,
   og skinnen bærer en etiket frem for et løbenummer. Så læseren kan
   se på afstand, at det ikke er en anmeldelse.
   ============================================================ */
.skribenttop {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--top-bund); color: #fff; padding: 8px 0 62px;
}
/* ingen fotobaggrund her: et blødt farveskær gør toppen genkendelig
   som sitets, uden at den ligner en anmeldelses hero */
.skribenttop::before {
  content: ""; position: absolute; left: -14%; top: -58%; width: 74%; height: 210%; z-index: -1;
  background: radial-gradient(circle at center, var(--accent) 0%, transparent 62%);
  opacity: .42; filter: blur(38px);
}
.skribenttop .brodkrumme { padding: 0 0 34px; font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .15em; color: rgba(255,255,255,.5); }
.skribenttop .brodkrumme a { color: rgba(255,255,255,.5); transition: color var(--overgang); }
.skribenttop .brodkrumme a:hover { color: #fff; }

.skribentgitter { display: grid; gap: 34px; align-items: end; }
@media (min-width: 900px) { .skribentgitter { grid-template-columns: 1fr 302px; gap: 60px; } }

.skribentord h1 {
  font-size: clamp(2rem, 4.4vw, 3.3rem); letter-spacing: -.05em; margin: 14px 0 22px;
}
.skribentord .manchet { text-shadow: none; }
.skribentrolle { color: var(--accent-lys); font-weight: 700; }

/* portrættet er et layoutelement med sin egen spalte, aldrig et hoved
   der svæver oven på en baggrund */
.portraet { position: relative; background: var(--flade); padding: 10px; }
.portraet img { width: 100%; height: auto; }
.portraetmaerke {
  position: absolute; left: 10px; bottom: 10px; z-index: 2;
  background: var(--blaek); color: #fff; padding: 9px 15px;
  font-size: var(--mikro); font-weight: 700; text-transform: uppercase; letter-spacing: .16em;
}

/* stamdata: hårlinjer mellem kolonnerne, ingen kasser */
.stamdata { display: grid; gap: 22px 0; margin-top: 44px; border-top: 1px solid rgba(255,255,255,.2); padding-top: 26px; }
@media (min-width: 760px) { .stamdata { grid-template-columns: repeat(4, 1fr); gap: 0; } }
.stamdata > div { padding: 0 26px; }
.stamdata > div:first-child { padding-left: 0; }
@media (min-width: 760px) { .stamdata > div + div { border-left: 1px solid rgba(255,255,255,.2); } }
.stamdata dt { font-size: var(--mikro); font-weight: 700; text-transform: uppercase; letter-spacing: .17em; color: rgba(255,255,255,.55); }
.stamdata dd { margin-top: 9px; font-size: .98rem; font-weight: 700; letter-spacing: -.02em; }
.stamdata dd a { color: #fff; box-shadow: inset 0 -1px 0 rgba(255,255,255,.5); }
.stamdata dd a:hover { box-shadow: inset 0 -2px 0 #fff; }

/* afsnitshoved: samme 132px skinne som anmeldelserne, men den bærer en
   etiket i stedet for et løbenummer og et motiv */
.afsnitshoved { display: grid; gap: 14px; margin-bottom: 34px; align-items: start; }
@media (min-width: 780px) { .afsnitshoved { grid-template-columns: 132px 1fr; gap: 36px; } }
.hangetiket {
  display: block; font-size: var(--mikro); font-weight: 700; text-transform: uppercase;
  letter-spacing: .17em; color: var(--blaek-3);
  border-top: 1px solid var(--blaek); padding-top: 12px;
}
.afsnitshoved p { color: var(--blaek-3); font-size: .98rem; margin: 14px 0 0; }

/* arbejdsgangen: trin i kort, tallet står med kontur som i marginskinnen */
.arbejdsgang { display: grid; gap: 14px; margin-top: 34px; }
@media (min-width: 760px) { .arbejdsgang { grid-template-columns: 1fr 1fr; } }
.skridt { background: var(--flade); border: 1px solid var(--linje); padding: 28px; transition: border-color var(--overgang), transform var(--overgang); }
.skridt:hover { border-color: var(--blaek); transform: translateY(-4px); }
.skridtnr {
  display: block; font-size: 2.6rem; font-weight: 800; line-height: .8; letter-spacing: -.06em;
  color: transparent; -webkit-text-stroke: 1.5px var(--linje); margin-bottom: 20px;
  font-variant-numeric: tabular-nums;
}
.skridt h3 { margin-bottom: 11px; }
.skridt p { font-size: .94rem; color: var(--blaek-2); }

/* reglebåndet: samme fuldbredde mørke flade som regnestykket, andet indhold */
.regelbaand h2 { margin-bottom: 34px; }
.regelkort { display: grid; gap: 14px; }
@media (min-width: 760px) { .regelkort { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .regelkort { grid-template-columns: repeat(4, 1fr); } }
.regelkort > div { border: 1px solid rgba(255,255,255,.22); padding: 26px; }
.regelkort .mikro { color: var(--accent-lys); }
.regelkort b { display: block; margin: 12px 0 10px; font-size: 1.1rem; font-weight: 800; letter-spacing: -.03em; line-height: 1.25; }
.regelkort p { font-size: .88rem; color: rgba(255,255,255,.72); margin: 0; }

/* listen over sider: hårlinjerækker, ikke kort */
.skribentliste { margin-top: 30px; border-top: 1px solid var(--linje); }
.skribentlinje {
  display: grid; gap: 6px 20px; padding: 20px 0; border-bottom: 1px solid var(--linje);
  transition: background var(--overgang);
}
@media (min-width: 760px) { .skribentlinje { grid-template-columns: 1fr 168px 132px; align-items: baseline; } }
.skribentlinje:hover { background: var(--flade); }
.skribentlinje a { font-weight: 700; font-size: 1.04rem; letter-spacing: -.02em; }
.skribentlinje a:hover { color: var(--accent); }
.skribentlinje span { font-size: .84rem; color: var(--blaek-3); }
.skribentlinje time { font-size: .84rem; color: var(--blaek-3); font-variant-numeric: tabular-nums; }

/* underskrift: byline-billedet i sin egen spalte, tekst ved siden af */
.underskrift { display: grid; gap: 20px; margin-top: 40px; border-top: 1px solid var(--linje); padding-top: 34px; }
@media (min-width: 640px) { .underskrift { grid-template-columns: 88px 1fr; gap: 26px; align-items: start; } }
.signaturbrik { border: 1px solid var(--linje); background: var(--flade); padding: 4px; width: 88px; }
.underskrift p { font-size: .96rem; color: var(--blaek-2); }
.underskrift a { color: var(--accent); box-shadow: inset 0 -1px 0 currentColor; transition: box-shadow var(--overgang); }
.underskrift a:hover { box-shadow: inset 0 -2px 0 currentColor; }

@media (max-width: 899px) {
  .skribentord, .stamdata { text-align: center; }
  .skribentord .manchet { margin-left: auto; margin-right: auto; }
  .portraet { max-width: 336px; margin: 0 auto; }
  /* max-content, ellers klipper den absolutte boks sig selv til halvdelen af
     kortet, når den centreres med left:50%, og etiketten knækker i to linjer */
  .portraetmaerke { left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100% - 20px); }
  .afsnitshoved { justify-items: center; text-align: center; }
  .hangetiket { border-top: 0; padding-top: 0; }
  .afsnitshoved p { text-align: left; }
  .skridtnr { text-align: center; }
  .skridt { text-align: center; }
  .skridt p { text-align: left; }
  .underskrift { justify-items: center; text-align: center; }
  .underskrift p { text-align: left; }
}
