/* =====================================================================
   site.css — hele sitets design ét sted.

   1. Fælles bund: farver, typografi, menu, knapper, formularer, footer
      samt kursussiderne, der bruger dem uændret.
   2. Sidespecifikke afsnit, bundet til en klasse på <body>:
        body.side-forside    forsiden (hero, CV, tidslinje)
        body.side-admin      admin og ressourcer
        body.side-materiale  kursusmaterialet

   Rettelser i menu, knapper og farver hører hjemme i afsnit 1 og slår
   dermed igennem på alle sider på én gang.
   ===================================================================== */

/* ============ 1. FÆLLES BUND ============ */
:root{
  --font-display:'Schibsted Grotesk',system-ui,sans-serif;
  --font-body:'Hanken Grotesk',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;
  --accent:#1F3A52;      /* Dyb marineblaa */
  --accent-warm:#B96A4A; /* Tegl/kobber */
  --maxw:1120px;
  --card-gap:16px;      /* mellemrum mellem kort */
  --flow-col:64px;      /* pilekolonnen i "Til kontoret" */
  --wide-photo:340px;   /* billedkolonnen i de brede kort */
}
[data-theme="sand"]{
  --bg:#F7F5F0;--surface:#E8DFD2;--surface-2:#AFC0CF;
  --ink:#1F3A52;--muted:#5D7A96;--line:rgba(31,58,82,.16);--on-accent:#F7F5F0;
  --shadow:0 1px 2px rgba(31,58,82,.06),0 14px 40px -22px rgba(31,58,82,.30);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;}
a{color:inherit;}
img{display:block;max-width:100%;}
p{margin:0;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.15;letter-spacing:-.02em;margin:0;}
.muted{color:var(--muted);}
.mono{font-family:var(--font-mono);}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-warm);font-weight:500;}

/* --- nav --- */
header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px) saturate(1.2);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px;}
.brand img.logo{height:30px;width:auto;display:block;}
.navlinks{display:flex;align-items:center;gap:24px;}
.navlinks a:not(.btn){text-decoration:none;font-size:14.5px;color:var(--muted);font-weight:500;transition:color .2s;}
.navlinks a:not(.btn):hover{color:var(--ink);}
.navlinks a.active:not(.btn){color:var(--accent);font-weight:600;}
.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;white-space:nowrap;font-weight:600;font-size:14.5px;border-radius:999px;padding:10px 18px;background:var(--accent);color:var(--on-accent);border:1px solid transparent;cursor:pointer;font-family:var(--font-body);transition:transform .15s,filter .2s;}
.btn:hover{transform:translateY(-1px);filter:brightness(1.05);}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line);}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent);}
@media(max-width:680px){ .navlinks a:not(.btn){display:none;} }

/* --- page --- */
.page{padding:56px 0 80px;}
.page-head{margin-bottom:14px;max-width:760px;}
.page-head h1{font-size:clamp(28px,4vw,42px);margin-bottom:16px;}
.page-lead{font-size:18px;color:var(--muted);}
.breadcrumb{font-family:var(--font-mono);font-size:12px;color:var(--muted);margin-bottom:14px;display:flex;gap:6px;align-items:center;}
.breadcrumb a{text-decoration:none;color:var(--muted);}
.breadcrumb a:hover{color:var(--accent);}

/* --- course cards --- */
.course-card{position:relative;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:26px 26px 22px;box-shadow:var(--shadow);color:var(--ink);display:flex;flex-direction:column;transition:transform .15s,border-color .2s;}
.course-card:hover{transform:translateY(-3px);border-color:var(--accent);}
.course-icon{font-size:30px;line-height:1;margin-bottom:12px;}
.course-photo{display:block;flex:0 0 auto;width:100%;height:210px;object-fit:cover;border-radius:12px;margin-bottom:14px;}
.course-photo.illus{object-fit:contain;background:#fff;padding:6px;}
.course-card h3{font-size:19px;margin-bottom:8px;}
.course-card .tag{font-size:14.5px;color:var(--muted);flex:1;}
.course-meta{display:flex;flex-wrap:wrap;gap:14px;margin-top:18px;font-family:var(--font-mono);font-size:12px;color:var(--muted);}
.card-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.btn.sm{font-size:13px;padding:8px 14px;}
.course-card.anchor{border-color:color-mix(in srgb,var(--accent) 34%,var(--line));background:color-mix(in srgb,var(--accent) 5%,var(--surface));}

/* --- kursus-grupper (rækker) --- */
.group{margin-bottom:52px;}
.group:last-of-type{margin-bottom:8px;}
.group-head{margin-bottom:22px;}
.group-head h2{font-size:clamp(21px,3vw,27px);}
.group-head p{font-size:15px;color:var(--muted);margin-top:6px;max-width:640px;}
/* Samme kortbredde i begge sektioner: grid-2 fyldes med et mellemrum
   på størrelse med pilekolonnen plus dens to gaps. */
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--card-gap) calc(var(--flow-col) + var(--card-gap)*2);}
/* Heldagskurser fylder begge kolonner. */
.course-card.wide{grid-column:1 / -1;}
/* Bredt kort med billede: foto til venstre i samme størrelse som på de
   smalle kort, tekst og knapper til højre. */
.course-card.wide.split{display:grid;grid-template-columns:var(--wide-photo) 1fr;column-gap:24px;align-items:start;}
.course-card.wide.split > .course-photo{margin-bottom:0;}
.wide-body{display:flex;flex-direction:column;align-items:flex-start;}
.wide-body .card-actions{margin-top:14px;}
.row-office{display:grid;grid-template-columns:1fr var(--flow-col) 1fr;align-items:stretch;gap:var(--card-gap);}
.office-stack{display:flex;flex-direction:column;gap:20px;min-width:0;}
.flow-arrow{align-self:stretch;display:flex;flex-direction:column;gap:20px;}
.flow-cell{flex:1;display:flex;align-items:center;justify-content:center;}
.flow-arrow svg{width:var(--flow-col);height:80px;overflow:visible;}
.flow-path{fill:none;stroke:var(--accent);stroke-width:14.4;stroke-linecap:butt;}
.flow-head{fill:var(--accent);}
.cta-panel{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;background:var(--accent);color:var(--on-accent);border-radius:18px;padding:34px 38px;box-shadow:var(--shadow);}
.cta-panel .cta-text{flex:1;min-width:0;}
.cta-panel h3{font-size:22px;margin-bottom:8px;}
.cta-panel p{font-size:15.5px;color:color-mix(in srgb,var(--on-accent) 84%,transparent);max-width:600px;}
.cta-panel .btn{flex:none;background:var(--on-accent);color:var(--accent);}
.cta-panel .btn:hover{filter:brightness(1.04);}
@media(max-width:760px){
  .grid-2{grid-template-columns:1fr;}
  .row-office{grid-template-columns:1fr;gap:20px;}
  .flow-arrow{display:none;}
  .cta-panel{padding:28px 24px;}
}

/* --- dialog / program --- */
dialog.course-dialog{border:none;padding:0;border-radius:18px;max-width:660px;width:calc(100% - 36px);max-height:calc(100vh - 56px);overflow:hidden;background:var(--bg);color:var(--ink);box-shadow:0 30px 80px -30px rgba(31,58,82,.6);}
dialog.course-dialog::backdrop{background:rgba(31,58,82,.42);backdrop-filter:blur(3px);}
/* Scrollen ligger på .dlg-inner, ikke på <dialog>, så dialogens runde
   hjørner klipper scrollbaren i stedet for at få firkantede kanter. */
/* Fast hoved med titel og lukkeknap; kun .dlg-scroll ruller. */
.dlg-inner{display:flex;flex-direction:column;max-height:calc(100vh - 56px);}
.dlg-top{flex:none;padding:34px 36px 12px;}
.dlg-scroll{flex:1 1 auto;min-height:0;padding:0 36px 30px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--accent) color-mix(in srgb,var(--accent) 14%,transparent);}
.dlg-scroll::-webkit-scrollbar{width:10px;}
.dlg-scroll::-webkit-scrollbar-track{background:color-mix(in srgb,var(--accent) 14%,transparent);border-radius:999px;}
.dlg-scroll::-webkit-scrollbar-thumb{background:var(--accent);border-radius:999px;border:2px solid transparent;background-clip:padding-box;}
.dlg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:6px;}
.dlg-close{flex:none;background:var(--surface);border:1px solid var(--line);border-radius:999px;width:34px;height:34px;font-size:18px;line-height:1;cursor:pointer;color:var(--muted);transition:color .2s,border-color .2s;}
.dlg-close:hover{color:var(--ink);border-color:var(--accent);}
.dlg-inner h2{font-size:clamp(22px,3vw,28px);margin:4px 0 18px;}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px 20px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:8px;}
.fact .flabel{display:block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;}
.fact .fval{font-size:15px;font-weight:600;}
.prog-title{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:24px 0 4px;}
.dlg-intro{margin-top:18px;}
.dlg-intro p{margin-bottom:12px;line-height:1.65;}
.dlg-intro p:last-child{margin-bottom:0;}
.mod{display:grid;grid-template-columns:70px 1fr;gap:16px;padding:15px 0;border-bottom:1px solid var(--line);}
.mod:last-of-type{border-bottom:none;}
.mod-time{font-family:var(--font-mono);font-size:11.5px;color:var(--accent-warm);padding-top:2px;}
.mod h4{font-size:15.5px;margin-bottom:4px;}
.mod p{font-size:14px;color:var(--muted);line-height:1.55;}
/* Fast bundfelt med interesse-formularen; ruller ikke med. */
.dlg-foot{flex:none;padding:20px 36px 26px;border-top:1px solid var(--line);background:var(--surface);}

/* --- interesse-formular --- */
.interest-form{width:100%;}
.if-title{font-family:var(--font-display);font-weight:700;font-size:17px;margin-bottom:4px;}
.if-sub{font-size:13.5px;color:var(--muted);margin-bottom:14px;}
.if-row{display:grid;grid-template-columns:1fr 1fr 96px;gap:10px;margin-bottom:12px;}
.interest-form input[type=text],.interest-form input[type=email]{width:100%;padding:10px 12px;background:var(--bg);border:1px solid var(--line);border-radius:9px;font-family:var(--font-body);font-size:14.5px;color:var(--ink);transition:border-color .2s;}
.interest-form input:focus{outline:none;border-color:var(--accent);}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;}
.if-consent{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;color:var(--muted);line-height:1.45;margin-bottom:14px;cursor:pointer;}
.if-consent input{margin-top:2px;flex:none;}
.if-actions{display:flex;align-items:center;gap:14px;}
.if-status{font-size:13px;color:var(--muted);}
.if-status.err{color:#c0392b;}
@media(max-width:560px){
  .if-row{grid-template-columns:1fr 1fr;}
  .if-row input[name=postnr]{grid-column:1 / -1;}
}

/* --- footer --- */
footer{border-top:1px solid var(--line);padding:30px 0 50px;margin-top:56px;}
.foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-size:13.5px;color:var(--muted);}
.foot .mono{font-family:var(--font-mono);font-size:12px;}

@media(max-width:560px){
  .dlg-top{padding:26px 22px 10px;}
  .dlg-scroll{padding:0 22px 20px;}
  .dlg-foot{padding:16px 22px 20px;}
  .mod{grid-template-columns:56px 1fr;gap:12px;}
}

/* --- kursussider --- */
.kursus-lead{max-width:760px;font-size:16.5px;color:var(--muted);margin-bottom:4px;}
.kursus-lead p{margin-bottom:12px;line-height:1.65;}
.kursus-lead p:last-child{margin-bottom:0;}
.kursus-body{max-width:760px;}
.kursus-form{max-width:760px;margin-top:34px;padding:26px 28px;background:var(--surface);border:1px solid var(--line);border-radius:16px;}
.kursus-back{display:inline-block;margin-top:34px;font-size:14.5px;color:var(--accent);text-decoration:none;font-weight:600;}
.kursus-back:hover{text-decoration:underline;}


/* --- konkrete hold på kursussiderne --- */
.hold{max-width:760px;margin-top:44px;}
.hold-titel{font-size:22px;margin-bottom:14px;}
.hold-besked{border-radius:10px;padding:10px 14px;margin-bottom:16px;font-size:14.5px;}
.hold-besked.ok{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent);}
.hold-besked.err{background:color-mix(in srgb,var(--accent-warm) 16%,transparent);color:var(--accent-warm);}
.hold-tom{color:var(--muted);font-size:14.5px;margin-bottom:16px;}
.hold-tabel{width:100%;border-collapse:collapse;margin-bottom:22px;font-size:14.5px;}
.hold-tabel th{text-align:left;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);font-weight:400;padding:0 12px 8px 0;border-bottom:1px solid var(--line);}
.hold-tabel td{padding:10px 12px 10px 0;border-bottom:1px solid var(--line);vertical-align:top;}
.hold-tabel .mono{font-family:var(--font-mono);font-size:13px;}
.hold-adresse{color:var(--muted);font-size:13px;}
.hold-rabat{color:var(--accent-warm);font-size:12.5px;font-weight:600;}
.hold-tabel a:not(.btn){color:var(--accent);}
.hold-slet{background:none;border:none;padding:0;font-family:var(--font-body);font-size:13.5px;
  color:var(--accent-warm);cursor:pointer;text-decoration:underline;}
.hold-form{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px 26px;margin-bottom:22px;}
.hold-raekke{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px;}
.hold-felt{display:flex;flex-direction:column;gap:5px;flex:1 1 170px;margin-bottom:14px;}
.hold-raekke .hold-felt{margin-bottom:0;}
.hold-felt span{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.hold-felt em{font-style:normal;text-transform:none;letter-spacing:0;}
.hold-felt input,.hold-felt select{width:100%;padding:10px 12px;background:var(--bg);border:1px solid var(--line);
  border-radius:9px;font-family:var(--font-body);font-size:14.5px;color:var(--ink);}
.hold-felt input:focus,.hold-felt select:focus{outline:none;border-color:var(--accent);}
.hold-admin{margin-top:34px;padding-top:28px;border-top:1px solid var(--line);}
.hold-liste{margin-top:26px;}
.hold-liste-titel{font-family:var(--font-display);font-weight:700;font-size:16px;margin-bottom:10px;}
.hold-liste-titel .mono{font-family:var(--font-mono);font-size:12.5px;font-weight:400;color:var(--muted);}

/* --- sprogvælger --- */
.lang{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden;}
.lang a:not(.btn),.lang button{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.05em;line-height:1;
  padding:8px 11px;background:transparent;border:none;color:var(--muted);cursor:pointer;text-decoration:none;}
.lang a:not(.btn):hover,.lang button:hover{color:var(--ink);}
.lang a.active:not(.btn),.lang button.active{background:var(--accent);color:var(--on-accent);}

/* Det valgte punkt er halvfedt. For at menuen ikke skifter bredde, når
   markeringen flytter sig, reserverer hvert link plads til sin egen fede
   udgave via en usynlig kopi. */
.navlinks a:not(.btn),.lang a:not(.btn){display:inline-block;text-align:center;}
.navlinks a:not(.btn)::after,.lang a:not(.btn)::after{
  content:attr(data-tekst);display:block;height:0;overflow:hidden;visibility:hidden;
  font-weight:600;pointer-events:none;}

/* De tre elementer til højre i menuen — CTA, sprogvælger og Log ud — har
   samme højde, så de står på linje. Højden sættes på elementet, ikke via
   polstring, fordi skriftstørrelserne er forskellige. */
.navlinks .btn,.navlinks .lang{height:30px;box-sizing:border-box;}
.navlinks .btn{padding-top:0;padding-bottom:0;}
.navlinks .lang a:not(.btn){line-height:28px;padding-top:0;padding-bottom:0;}

/* ============ 2a. FORSIDEN ============ */
body.side-forside [data-font="space"]{--font-display:'Space Grotesk', system-ui, sans-serif;}
body.side-forside [data-font="hanken"]{--font-display:'Hanken Grotesk', system-ui, sans-serif;}
body.side-forside [data-theme="forest"]{--bg:#ECEEE6; --surface:#F6F8F1; --surface-2:#E1E6D9; --ink:#1F241D; --muted:#5B6356; --line:rgba(31,36,29,.14); --on-accent:#F7F9F2; --shadow:0 1px 2px rgba(31,36,29,.05), 0 14px 40px -22px rgba(31,36,29,.30);}
body.side-forside [data-theme="ink"]{--bg:#1A1815; --surface:#221F1B; --surface-2:#2A2621; --ink:#ECE5D8; --muted:#A39A88; --line:rgba(236,229,216,.15); --on-accent:#1A1815; --shadow:0 1px 2px rgba(0,0,0,.3), 0 18px 48px -24px rgba(0,0,0,.7);}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body.side-forside{margin:0; background:var(--bg); color:var(--ink); font-family:var(--font-body); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; transition:background .4s ease, color .4s ease;}
body.side-forside ::selection{background:var(--accent); color:var(--on-accent);}
body.side-forside a{color:inherit;}
body.side-forside img{display:block; max-width:100%;}
body.side-forside .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
body.side-forside .eyebrow{font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-warm); font-weight:500;}
body.side-forside h1,body.side-forside h2,body.side-forside h3{font-family:var(--font-display); font-weight:700; line-height:1.04; letter-spacing:-.02em; margin:0;}
body.side-forside p{margin:0;}
body.side-forside .muted{color:var(--muted);}
body.side-forside /* ---------- header ---------- */ header{position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--bg) 82%, transparent); backdrop-filter:blur(12px) saturate(1.2); border-bottom:1px solid var(--line);}
body.side-forside .nav{display:flex; align-items:center; justify-content:space-between; height:64px;}
body.side-forside .brand{display:flex; align-items:center;}
body.side-forside .brand .logo{display:block; height:30px; width:auto;}
body.side-forside [data-theme="ink"] .brand .logo{filter:invert(1);}
body.side-forside .navlinks{display:flex; align-items:center; gap:24px;}
body.side-forside .navlinks a:not(.btn){text-decoration:none; font-size:14.5px; color:var(--muted); font-weight:500; transition:color .2s;}
body.side-forside .navlinks a:not(.btn):hover{color:var(--ink);}
body.side-forside .navlinks a.active:not(.btn){color:var(--accent);font-weight:600;}
body.side-forside /* Det valgte punkt er halvfedt. For at menuen ikke skifter bredde,body.side-forside når markeringen flytter sig,body.side-forside reserverer hvert link plads til sin egen fede udgave via en usynlig kopi. */ .navlinks a:not(.btn),body.side-forside .lang a:not(.btn){display:inline-block;text-align:center;}
body.side-forside .navlinks a:not(.btn)::after,body.side-forside .lang a:not(.btn)::after{content:attr(data-tekst);display:block;height:0;overflow:hidden;visibility:hidden; font-weight:600;pointer-events:none;}
body.side-forside .btn.sm{font-size:13px; padding:8px 14px;}
body.side-forside .lang{display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:999px; overflow:hidden;}
body.side-forside .lang button{font-family:var(--font-mono); font-size:11.5px; letter-spacing:.05em; line-height:1; padding:8px 11px; background:transparent; border:none; color:var(--muted); cursor:pointer;text-decoration:unset;}
body.side-forside .lang button:hover{color:var(--ink);}
body.side-forside .lang button.active{background:var(--accent); color:var(--on-accent);}
body.side-forside .btn{display:inline-flex; align-items:center; gap:8px; text-decoration:none; white-space:nowrap; font-weight:600; font-size:14.5px; border-radius:999px; padding:10px 18px; background:var(--accent); color:var(--on-accent); border:1px solid transparent; transition:transform .15s ease, filter .2s ease;cursor:unset;font-family:unset;}
body.side-forside .btn:hover{transform:translateY(-1px); filter:brightness(1.05);}
body.side-forside .btn.ghost{background:transparent; color:var(--ink); border-color:var(--line);}
body.side-forside .btn.ghost:hover{border-color:var(--accent); color:var(--accent);}
@media(max-width:680px){
body.side-forside .navlinks a:not(.btn){display:none;text-decoration:unset;font-size:unset;color:unset;font-weight:unset;transition:unset;}
}
body.side-forside /* ---------- hero ---------- */ .hero{padding:88px 0 76px;}
body.side-forside .hero-grid{display:grid; grid-template-columns:1.25fr .9fr; gap:64px; align-items:center;}
body.side-forside .hero h1{font-size:clamp(40px, 6vw, 70px); margin:18px 0 0; font-weight:800;}
body.side-forside .hero .lead{font-size:20px; line-height:1.55; color:var(--ink); margin-top:26px; max-width:30em;}
body.side-forside .hero .lead b{font-weight:600;}
body.side-forside .chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:30px;}
body.side-forside .chip{display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:500; white-space:nowrap; padding:7px 13px; border-radius:999px; background:var(--surface); border:1px solid var(--line); color:var(--ink);}
body.side-forside .chip .dot{width:6px; height:6px; border-radius:50%; background:var(--accent);}
body.side-forside .hero-cta{display:flex; gap:12px; margin-top:34px; flex-wrap:wrap;}
body.side-forside .portrait{position:relative;}
body.side-forside .portrait .frame{position:relative;}
body.side-forside .portrait img{width:100%; aspect-ratio:1/1.06; object-fit:cover; object-position:center 22%; border-radius:20px; box-shadow:var(--shadow); background:var(--surface-2);}
body.side-forside [data-portrait="arch"] .portrait img{border-radius:230px 230px 20px 20px;}
body.side-forside [data-portrait="circle"] .portrait img{border-radius:50%; aspect-ratio:1/1;}
body.side-forside .portrait .tag{position:absolute; left:-14px; bottom:24px; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:11px 15px; box-shadow:var(--shadow); font-size:13px; line-height:1.3;}
body.side-forside .portrait .tag b{font-family:var(--font-display); font-size:15px; display:block;}
body.side-forside .portrait .tag span{font-family:var(--font-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted);}
body.side-forside [data-portrait="circle"] .portrait .tag{left:0; bottom:8px;}
@media(max-width:880px){
body.side-forside .hero-grid{grid-template-columns:1fr; gap:44px;}
body.side-forside .portrait{max-width:380px;}
}
body.side-forside /* ---------- section frame ---------- */ section{scroll-margin-top:84px;}
body.side-forside .section{padding:74px 0; border-top:1px solid var(--line);}
body.side-forside .section-head{display:flex; align-items:baseline; gap:18px; margin-bottom:46px;}
body.side-forside .section-head h2{font-size:clamp(28px,3.4vw,38px);}
body.side-forside .section-num{font-family:var(--font-mono); font-size:13px; color:var(--muted); padding-top:6px;}
body.side-forside /* ---------- profil ---------- */ .profil-grid{display:grid; grid-template-columns:1.15fr 1fr; gap:56px;}
body.side-forside .profil-lead{font-size:21px; line-height:1.6;}
body.side-forside .profil-lead .accent{color:var(--accent-warm); font-weight:600;}
body.side-forside .cols3{display:grid; grid-template-columns:1fr 1fr; gap:30px 36px;}
body.side-forside .deflist h4{font-family:var(--font-mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:500; margin:0 0 12px; padding-bottom:9px; border-bottom:1px solid var(--line);}
body.side-forside .deflist ul{list-style:none; margin:0; padding:0;}
body.side-forside .deflist li{font-size:15px; padding:5px 0; display:flex; gap:9px; align-items:flex-start;}
body.side-forside .deflist li::before{content:""; width:5px; height:5px; border-radius:50%; background:var(--accent); margin-top:8px; flex:none;}
@media(max-width:880px){
body.side-forside .profil-grid{grid-template-columns:1fr; gap:40px;}
}
body.side-forside /* ---------- cv timeline ---------- */ .timeline{position:relative;}
body.side-forside .tl-item{display:grid; grid-template-columns:170px 1fr; gap:30px; padding:24px 0; border-top:1px solid var(--line); position:relative;}
body.side-forside .tl-item:first-child{border-top:none;}
body.side-forside .tl-period{font-family:var(--font-mono); font-size:12.5px; color:var(--muted); padding-top:4px; letter-spacing:.01em;}
body.side-forside .tl-now{color:var(--accent); font-weight:500;}
body.side-forside .tl-role{font-family:var(--font-display); font-size:20px; font-weight:700; letter-spacing:-.01em;}
body.side-forside .tl-org{color:var(--accent); font-weight:600;}
body.side-forside .tl-desc{color:var(--muted); font-size:15.5px; margin-top:8px; max-width:60ch;}
body.side-forside .tl-tags{display:flex; flex-wrap:wrap; gap:6px; margin-top:12px;}
body.side-forside .tl-tags span{font-family:var(--font-mono); font-size:11px; color:var(--ink); background:var(--surface-2); border-radius:5px; padding:3px 8px;}
@media(max-width:680px){
body.side-forside .tl-item{grid-template-columns:1fr; gap:6px;}
body.side-forside .tl-period{padding-top:0;}
}
body.side-forside /* ---------- extra: tillidsposter / uddannelse ---------- */ .extra-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:8px;}
body.side-forside .mini h4{font-family:var(--font-mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:500; margin:0 0 16px;}
body.side-forside .mini-row{display:grid; grid-template-columns:120px 1fr; gap:18px; padding:11px 0; border-top:1px solid var(--line); font-size:15px;}
body.side-forside .mini-row:first-of-type{border-top:none;}
body.side-forside .mini-row .yr{font-family:var(--font-mono); font-size:12.5px; color:var(--muted);}
body.side-forside .mini-row b{font-weight:600;}
body.side-forside .hide-extra .extra-block{display:none;}
@media(max-width:760px){
body.side-forside .extra-grid{grid-template-columns:1fr; gap:34px;}
}
body.side-forside /* ---------- tech ---------- */ .tech-cloud{display:flex; flex-wrap:wrap; gap:9px; max-width:880px;}
body.side-forside .tech-cloud span{font-family:var(--font-mono); font-size:13px; color:var(--ink); border:1px solid var(--line); border-radius:7px; padding:6px 12px; background:var(--surface);}
body.side-forside .hide-tech .tech-block{display:none;}
body.side-forside /* ---------- kontakt ---------- */ .contact{padding:80px 0 90px; border-top:1px solid var(--line);}
body.side-forside .contact-card{background:var(--surface); border:1px solid var(--line); border-radius:22px; padding:54px; box-shadow:var(--shadow); display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:center;}
body.side-forside .contact-card h2{font-size:clamp(30px,4vw,46px);}
body.side-forside .contact-card .sub{color:var(--muted); margin-top:16px; font-size:17px; max-width:32ch;}
body.side-forside .contact-list{display:flex; flex-direction:column; gap:2px;}
body.side-forside .contact-list a,body.side-forside .contact-list div{display:flex; align-items:center; gap:14px; text-decoration:none; padding:14px 0; border-bottom:1px solid var(--line); font-size:16px; transition:color .2s;}
body.side-forside .contact-list a:hover{color:var(--accent);}
body.side-forside .contact-list .lbl{font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); width:74px; flex:none;}
body.side-forside .contact-list .val{font-weight:500;}
@media(max-width:760px){
body.side-forside .contact-card{grid-template-columns:1fr; gap:34px; padding:36px 28px;}
}
body.side-forside /* ---------- footer ---------- */ footer{border-top:1px solid var(--line); padding:30px 0 50px;}
body.side-forside .foot{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; font-size:13.5px; color:var(--muted);}
body.side-forside .foot .mono{font-family:var(--font-mono); font-size:12px;}
body.side-forside .foot a{text-decoration:none;}
body.side-forside .foot a:hover{color:var(--accent);}
body.side-forside /* reveal — content is visible by default; the entrance is a pure,body.side-forside non-blocking CSS animation so throttled/background iframes can never trap it at opacity:0 */ .reveal{animation:revIn .7s cubic-bezier(.2,.7,.2,1) both;}
@keyframes revIn{ from{ opacity:0; transform:translateY(15px); } to{ opacity:1; transform:none; } }
body.side-forside .reveal.in{animation:none; opacity:1; transform:none;}
@media(prefers-reduced-motion:reduce){
body.side-forside .reveal{animation:none;}
html{scroll-behavior:auto;}
}
body.side-forside /* De tre elementer til højre i menuen — CTA,body.side-forside sprogvælger og Log ud — har samme højde,body.side-forside så de står på linje. Højden sættes på elementet,body.side-forside ikke via polstring,body.side-forside fordi skriftstørrelserne er forskellige. */ .navlinks .btn,body.side-forside .navlinks .lang{height:30px;box-sizing:border-box;}
body.side-forside .navlinks .btn{padding-top:0;padding-bottom:0;}
body.side-forside .navlinks .lang a:not(.btn){line-height:28px;padding-top:0;padding-bottom:0;}

/* ============ 2b. ADMIN OG RESSOURCER ============ */
body.side-admin [data-theme="forest"]{--bg:#ECEEE6;--surface:#F6F8F1;--surface-2:#E1E6D9; --ink:#1F241D;--muted:#5B6356;--line:rgba(31,36,29,.14);--on-accent:#F7F9F2; --shadow:0 1px 2px rgba(31,36,29,.05),0 14px 40px -22px rgba(31,36,29,.30);}
body.side-admin [data-theme="ink"]{--bg:#1A1815;--surface:#221F1B;--surface-2:#2A2621; --ink:#ECE5D8;--muted:#A39A88;--line:rgba(236,229,216,.15);--on-accent:#1A1815; --shadow:0 1px 2px rgba(0,0,0,.3),0 18px 48px -24px rgba(0,0,0,.7);}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body.side-admin{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;}
body.side-admin a{color:inherit;}
body.side-admin img{display:block;max-width:100%;}
body.side-admin p{margin:0;}
body.side-admin h1,body.side-admin h2,body.side-admin h3,body.side-admin h4{font-family:var(--font-display);font-weight:700;line-height:1.1;letter-spacing:-.02em;margin:0;}
body.side-admin .muted{color:var(--muted);}
body.side-admin .mono{font-family:var(--font-mono);}
body.side-admin .wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
body.side-admin .eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-warm);font-weight:500;}
body.side-admin /* --- sprogvælger --- */ .lang{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden;}
body.side-admin .lang a:not(.btn),body.side-admin .lang button{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.05em;line-height:1; padding:8px 11px;background:transparent;border:none;color:var(--muted);cursor:pointer;text-decoration:none;display:unset;text-align:unset;}
body.side-admin .lang a:not(.btn):hover,body.side-admin .lang button:hover{color:var(--ink);}
body.side-admin .lang a.active:not(.btn),body.side-admin .lang button.active{background:var(--accent);color:var(--on-accent);}
body.side-admin /* --- nav --- */ header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px) saturate(1.2);border-bottom:1px solid var(--line);}
body.side-admin .nav{display:flex;align-items:center;justify-content:space-between;height:64px;}
body.side-admin .brand img.logo{height:30px;width:auto;display:block;}
body.side-admin [data-theme="ink"] .brand img.logo{filter:invert(1);}
body.side-admin .navlinks{display:flex;align-items:center;gap:24px;}
body.side-admin .navlinks a:not(.btn){text-decoration:none;font-size:14.5px;color:var(--muted);font-weight:500;transition:color .2s;}
body.side-admin .navlinks a:not(.btn):hover{color:var(--ink);}
body.side-admin .navlinks a.active:not(.btn){color:var(--accent);font-weight:600;}
body.side-admin /* Det valgte punkt er halvfedt. For at menuen ikke skifter bredde,body.side-admin når markeringen flytter sig,body.side-admin reserverer hvert link plads til sin egen fede udgave via en usynlig kopi. */ .navlinks a:not(.btn),body.side-admin .lang a:not(.btn){display:inline-block;text-align:center;}
body.side-admin .navlinks a:not(.btn)::after,body.side-admin .lang a:not(.btn)::after{content:attr(data-tekst);display:block;height:0;overflow:hidden;visibility:hidden; font-weight:600;pointer-events:none;}
body.side-admin .user-chip{font-family:var(--font-mono);font-size:11.5px;color:var(--muted);letter-spacing:.04em;padding:0 4px;}
body.side-admin .btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;white-space:nowrap;font-weight:600;font-size:14.5px;border-radius:999px;padding:10px 18px;background:var(--accent);color:var(--on-accent);border:1px solid transparent;transition:transform .15s,filter .2s;cursor:unset;font-family:unset;}
body.side-admin .btn:hover{transform:translateY(-1px);filter:brightness(1.05);}
body.side-admin .btn.ghost{background:transparent;color:var(--ink);border-color:var(--line);}
body.side-admin .btn.ghost:hover{border-color:var(--accent);color:var(--accent);}
body.side-admin .btn.sm{font-size:13px;padding:8px 14px;}
body.side-admin .btn.danger{background:#c0392b;color:#fff;}
body.side-admin .btn.danger:hover{filter:brightness(1.1);}
body.side-admin /* --- page --- */ .page{padding:60px 0 80px;}
body.side-admin .page-head{margin-bottom:40px;max-width:unset;}
body.side-admin .page-head h1{font-size:clamp(28px,4vw,42px);margin-bottom:unset;}
body.side-admin .breadcrumb{font-family:var(--font-mono);font-size:12px;color:var(--muted);margin-bottom:14px;display:flex;gap:6px;align-items:center;}
body.side-admin .breadcrumb a{text-decoration:none;color:var(--muted);}
body.side-admin .breadcrumb a:hover{color:var(--accent);}
body.side-admin /* --- cards --- */ .card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;}
body.side-admin .card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:var(--shadow);text-decoration:none;display:block;transition:transform .15s,border-color .2s;}
body.side-admin .card:hover{transform:translateY(-2px);border-color:var(--accent);}
body.side-admin .card-icon{font-size:28px;margin-bottom:14px;}
body.side-admin .card h3{font-size:18px;margin-bottom:8px;}
body.side-admin .card p{font-size:14.5px;color:var(--muted);}
body.side-admin .card-meta{margin-top:16px;font-family:var(--font-mono);font-size:11.5px;color:var(--muted);}
body.side-admin /* --- file list --- */ .file-list{display:flex;flex-direction:column;gap:2px;}
body.side-admin .file-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);}
body.side-admin .file-row:first-child{border-top:1px solid var(--line);}
body.side-admin .file-icon{font-size:20px;flex:none;}
body.side-admin .file-info{flex:1;min-width:0;}
body.side-admin .file-info strong{font-size:15px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
body.side-admin .file-info span{font-family:var(--font-mono);font-size:11.5px;color:var(--muted);}
body.side-admin .file-desc{font-size:14px;color:var(--muted);margin-top:2px;}
body.side-admin /* --- article/page block --- */ .article-block{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:28px 32px;margin-bottom:16px;}
body.side-admin .article-block h3{font-size:19px;margin-bottom:12px;}
body.side-admin .article-content{font-size:16px;line-height:1.7;color:var(--ink);}
body.side-admin .article-content p{margin-bottom:12px;}
body.side-admin /* --- forms --- */ .form-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:36px;box-shadow:var(--shadow);}
body.side-admin .form-group{margin-bottom:20px;}
body.side-admin .form-group label{display:block;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-weight:500;}
body.side-admin .form-group input,body.side-admin .form-group select,body.side-admin .form-group textarea{width:100%;padding:11px 14px;background:var(--bg);border:1px solid var(--line);border-radius:8px;font-family:var(--font-body);font-size:15px;color:var(--ink);transition:border-color .2s;}
body.side-admin .form-group input:focus,body.side-admin .form-group select:focus,body.side-admin .form-group textarea:focus{outline:none;border-color:var(--accent);}
body.side-admin .form-group textarea{min-height:120px;resize:vertical;}
body.side-admin .form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
body.side-admin /* --- tables --- */ .data-table{width:100%;border-collapse:collapse;font-size:15px;}
body.side-admin .data-table th{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:10px 14px;text-align:left;border-bottom:2px solid var(--line);}
body.side-admin .data-table td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:middle;}
body.side-admin .data-table tr:last-child td{border-bottom:none;}
body.side-admin .data-table tr:hover td{background:var(--surface-2);}
body.side-admin .badge{font-family:var(--font-mono);font-size:11px;padding:3px 8px;border-radius:5px;font-weight:500;}
body.side-admin .badge.admin{background:var(--accent);color:var(--on-accent);}
body.side-admin .badge.user{background:var(--surface-2);color:var(--muted);}
body.side-admin .badge.inactive{background:var(--surface-2);color:var(--muted);text-decoration:line-through;}
body.side-admin /* --- tabs --- */ .tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:32px;}
body.side-admin .tab-btn{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.05em;padding:10px 18px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;color:var(--muted);font-weight:500;text-decoration:none;line-height:normal;transition:color .2s;}
body.side-admin .tab-btn:hover{color:var(--ink);}
body.side-admin .tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);}
body.side-admin .tab-panel{display:none;}
body.side-admin .tab-panel.active{display:block;}
body.side-admin /* --- alerts --- */ .alert{padding:14px 18px;border-radius:10px;margin-bottom:24px;font-size:15px;}
body.side-admin .alert.ok{background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);}
body.side-admin .alert.err{background:#fdf0f0;border:1px solid #f5c6c6;color:#c0392b;}
body.side-admin [data-theme="ink"] .alert.err{background:#2a1a1a;border-color:#5a2020;color:#e88;}
body.side-admin /* --- section divider --- */ .section-title{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:36px 0 16px;padding-bottom:10px;border-bottom:1px solid var(--line);}
body.side-admin /* --- login page --- */ .login-wrap{min-height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center;padding:40px 20px;}
body.side-admin .login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:44px 40px;box-shadow:var(--shadow);}
body.side-admin .login-card h1{font-size:26px;margin-bottom:6px;}
body.side-admin .login-card .sub{color:var(--muted);font-size:15px;margin-bottom:30px;}
body.side-admin /* --- empty state --- */ .empty{text-align:center;padding:60px 20px;color:var(--muted);}
body.side-admin .empty-icon{font-size:40px;margin-bottom:16px;}
body.side-admin .empty p{font-size:16px;}
body.side-admin /* --- footer --- */ footer{border-top:1px solid var(--line);padding:30px 0 50px;margin-top:unset;}
body.side-admin .foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-size:13.5px;color:var(--muted);}
body.side-admin .foot .mono{font-family:var(--font-mono);font-size:12px;}
@media(max-width:680px){
body.side-admin .form-row{grid-template-columns:1fr;}
body.side-admin .login-card{padding:32px 24px;}
body.side-admin .navlinks .user-chip{display:none;}
}
body.side-admin /* De tre elementer til højre i menuen — CTA,body.side-admin sprogvælger og Log ud — har samme højde,body.side-admin så de står på linje. Højden sættes på elementet,body.side-admin ikke via polstring,body.side-admin fordi skriftstørrelserne er forskellige. */ .navlinks .btn,body.side-admin .navlinks .lang{height:30px;box-sizing:border-box;}
body.side-admin .navlinks .btn{padding-top:0;padding-bottom:0;}
body.side-admin .navlinks .lang a:not(.btn){line-height:28px;padding-top:0;padding-bottom:0;}

/* ============ 2c. KURSUSMATERIALE ============ */
*{box-sizing:border-box;}
body.side-materiale{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;}
body.side-materiale a{color:inherit;}
body.side-materiale p{margin:0;}
body.side-materiale h1,body.side-materiale h2,body.side-materiale h3,body.side-materiale h4{font-family:var(--font-display);font-weight:700;line-height:1.15;letter-spacing:-.02em;margin:0;}
body.side-materiale .muted{color:var(--muted);}
body.side-materiale .mono{font-family:var(--font-mono);}
body.side-materiale .wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
body.side-materiale .eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-warm);font-weight:500;}
body.side-materiale header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px) saturate(1.2);border-bottom:1px solid var(--line);}
body.side-materiale .nav{display:flex;align-items:center;justify-content:space-between;height:64px;}
body.side-materiale .brand img.logo{height:30px;width:auto;display:block;}
body.side-materiale .navlinks{display:flex;align-items:center;gap:24px;}
body.side-materiale .navlinks a:not(.btn){text-decoration:none;font-size:14.5px;color:var(--muted);font-weight:500;transition:unset;}
body.side-materiale .navlinks a:not(.btn):hover{color:var(--ink);}
body.side-materiale .btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;white-space:nowrap;font-weight:600;font-size:14.5px;border-radius:999px;padding:10px 18px;background:var(--accent);color:var(--on-accent);border:1px solid transparent;cursor:pointer;font-family:var(--font-body);transition:transform .15s,filter .2s;}
body.side-materiale .btn:hover{transform:translateY(-1px);filter:brightness(1.05);}
body.side-materiale .btn.ghost{background:transparent;color:var(--ink);border-color:var(--line);}
body.side-materiale .btn.ghost:hover{border-color:var(--accent);color:var(--accent);}
body.side-materiale .btn.sm{font-size:13px;padding:8px 14px;}
body.side-materiale .navlinks a.active:not(.btn){color:var(--accent);font-weight:600;}
body.side-materiale /* Samme markering og sprogvælger som resten af sitet,body.side-materiale så menuen står stille. */ .navlinks a:not(.btn),body.side-materiale .lang a:not(.btn){display:inline-block;text-align:center;font-family:unset;font-size:unset;letter-spacing:unset;line-height:unset;padding:unset;background:unset;border:unset;color:unset;cursor:unset;text-decoration:unset;}
body.side-materiale .navlinks a:not(.btn)::after,body.side-materiale .lang a:not(.btn)::after{content:attr(data-tekst);display:block;height:0;overflow:hidden;visibility:hidden; font-weight:600;pointer-events:none;}
body.side-materiale .lang{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden;}
body.side-materiale .lang a:not(.btn){font-family:var(--font-mono);font-size:11.5px;letter-spacing:.05em;line-height:1; padding:8px 11px;background:transparent;border:none;color:var(--muted);cursor:pointer;text-decoration:none;display:unset;text-align:unset;}
body.side-materiale .lang a:not(.btn):hover{color:var(--ink);}
body.side-materiale .lang a.active:not(.btn){background:var(--accent);color:var(--on-accent);}
body.side-materiale .page{padding:56px 0 80px;}
body.side-materiale .page-head{margin-bottom:30px;max-width:640px;}
body.side-materiale .page-head h1{font-size:clamp(28px,4vw,40px);margin-bottom:14px;}
body.side-materiale .page-lead{font-size:18px;color:var(--muted);}
body.side-materiale .code-card{max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:34px 32px;box-shadow:var(--shadow);}
body.side-materiale .code-card h2{font-size:20px;margin-bottom:6px;}
body.side-materiale .code-card p.sub{font-size:14.5px;color:var(--muted);margin-bottom:22px;}
body.side-materiale .code-input{display:flex;gap:10px;flex-wrap:wrap;}
body.side-materiale .code-input input{flex:1;min-width:160px;padding:12px 14px;background:var(--bg);border:1px solid var(--line);border-radius:10px;font-family:var(--font-mono);font-size:17px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);}
body.side-materiale .code-input input:focus{outline:none;border-color:var(--accent);}
body.side-materiale .alert{padding:13px 16px;border-radius:10px;font-size:14.5px;margin-bottom:20px;max-width:440px;}
body.side-materiale .alert.err{background:#fdf0f0;border:1px solid #f5c6c6;color:#c0392b;}
body.side-materiale .hold-block{margin-bottom:34px;}
body.side-materiale .hold-block h2{font-size:22px;margin-bottom:4px;}
body.side-materiale .hold-block .hb-desc{font-size:14.5px;color:var(--muted);margin-bottom:16px;}
body.side-materiale .file-list{display:flex;flex-direction:column;gap:2px;}
body.side-materiale .file-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;}
body.side-materiale .file-row:first-child{border-top:1px solid var(--line);}
body.side-materiale .file-row:hover{background:color-mix(in srgb,var(--accent) 4%,transparent);}
body.side-materiale .file-icon{font-size:22px;flex:none;padding-left:6px;}
body.side-materiale .file-info{flex:1;min-width:0;}
body.side-materiale .file-info strong{font-size:15.5px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
body.side-materiale .file-info span{font-family:var(--font-mono);font-size:11.5px;color:var(--muted);}
body.side-materiale .file-dl{font-size:13px;font-weight:600;color:var(--accent);flex:none;padding-right:6px;}
body.side-materiale .empty{text-align:center;padding:50px 20px;color:var(--muted);}
body.side-materiale .empty-icon{font-size:38px;margin-bottom:14px;}
body.side-materiale footer{border-top:1px solid var(--line);padding:30px 0 50px;margin-top:56px;}
body.side-materiale .foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-size:13.5px;color:var(--muted);}
body.side-materiale .foot .mono{font-family:var(--font-mono);font-size:12px;}
body.side-materiale /* De tre elementer til højre i menuen — CTA,body.side-materiale sprogvælger og Log ud — har samme højde,body.side-materiale så de står på linje. Højden sættes på elementet,body.side-materiale ikke via polstring,body.side-materiale fordi skriftstørrelserne er forskellige. */ .navlinks .btn,body.side-materiale .navlinks .lang{height:30px;box-sizing:border-box;}
body.side-materiale .navlinks .btn{padding-top:0;padding-bottom:0;}
body.side-materiale .navlinks .lang a:not(.btn){line-height:28px;padding-top:0;padding-bottom:0;}

/* ============ 3. MOBIL ============
   Sidst i filen, så disse regler vinder over de foregående afsnit. */

/* Menuknappen ses kun på små skærme. */
.nav-toggle{display:none;align-items:center;gap:8px;background:transparent;border:1px solid var(--line);
  border-radius:999px;padding:0 14px;height:30px;font-family:var(--font-body);font-size:13px;
  font-weight:600;color:var(--ink);cursor:pointer;}
.nav-streger{display:inline-block;width:14px;height:2px;background:currentColor;position:relative;}
.nav-streger::before,.nav-streger::after{content:'';position:absolute;left:0;width:14px;height:2px;background:currentColor;}
.nav-streger::before{top:-4px;} .nav-streger::after{top:4px;}

@media(max-width:680px){
  .wrap{padding:0 20px;}
  header .wrap.nav{position:relative;height:60px;}
  .nav-toggle{display:inline-flex;}

  /* Menuen foldes ud som et panel under linjen i stedet for at ligge på række. */
  .navlinks,body.side-forside .navlinks,body.side-admin .navlinks,body.side-materiale .navlinks{
    display:none;position:absolute;top:100%;left:0;right:0;z-index:40;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--bg);border:1px solid var(--line);border-radius:14px;
    padding:10px;box-shadow:var(--shadow);}
  .navlinks.aaben,body.side-forside .navlinks.aaben,
  body.side-admin .navlinks.aaben,body.side-materiale .navlinks.aaben{display:flex;}
  .navlinks a:not(.btn),body.side-forside .navlinks a:not(.btn),
  body.side-admin .navlinks a:not(.btn),body.side-materiale .navlinks a:not(.btn){
    display:block;text-align:left;padding:11px 8px;font-size:16px;}
  .navlinks a:not(.btn)::after{display:none;}      /* pladsreservation er unødig lodret */
  .navlinks .btn{height:auto;padding:11px 16px;margin-top:8px;justify-content:center;}
  .navlinks .lang{height:30px;align-self:flex-start;margin:8px 0 4px;}
  .navlinks .user-chip{padding:8px;}

  /* Kort og gitre står i én spalte. */
  .grid-2,.row-office{grid-template-columns:1fr!important;gap:16px!important;}
  .flow-arrow{display:none;}
  .course-card.wide.split{display:block;}
  .course-card.wide.split > .course-photo{margin-bottom:14px;}
  .office-stack{gap:16px;}

  /* Formularer i én kolonne, felter i fuld bredde. */
  /* Også de sidespecifikke udgaver, som ellers vinder på specificitet.
     Inline grid-template-columns på admin-formularerne mister sin virkning,
     når rækken ikke længere er et gitter. */
  .if-row,.hold-raekke,.form-row,
  body.side-admin .form-row,body.side-forside .form-row,body.side-materiale .form-row{display:block;}
  .hold-felt,.form-group,body.side-admin .form-group{margin-bottom:12px;}
  body.side-admin .card{padding:20px 18px;}
  .if-row input{width:100%;margin-bottom:10px;}
  .cta-panel{flex-direction:column;align-items:flex-start;padding:26px 22px;}

  /* Tabeller: rul vandret i stedet for at sprænge siden. */
  .hold-tabel,.data-table,body.side-admin .data-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;}
  .data-table td,.data-table th{white-space:normal;}
  details .data-table{max-width:100%;}
  .hold-tabel thead th,.data-table thead th{white-space:nowrap;}

  /* Fanebladene i admin ruller vandret i stedet for at sprænge siden. */
  .tabs,body.side-admin .tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;}
  .tab-btn,body.side-admin .tab-btn{white-space:nowrap;flex:0 0 auto;}

  /* Billeder og overskrifter i mobilmål. */
  .course-photo{height:180px;}
  .page-head h1{font-size:clamp(24px,7vw,32px);}
}

@media(max-width:420px){
  .navlinks .btn{width:100%;}
  .kursus-form,.hold-form{padding:20px 18px;}
}
