/* ==========================================================================
   Beauty & Style — designsystem (2026-10-11)
   Kilde: Figma "beautyandstyle", frame "Uddannelser / Kosmetolog" (2007:459).

   Alle klasser hedder ds-* og kolliderer ikke med temaets gamle stil.
   Sider der kører på det nye design har klassen ds-ny på <body> — den
   sætter baggrund og skrift. Komponenterne virker også uden.

   Indhold
   1. Skrifttyper        6. Kort og fanekort      11. Skema
   2. Designværdier      7. Billede med hak       12. Prispakker
   3. Grundlag (ds-ny)   8. Ikoner og ringe       13. Udtalelse
   4. Layout             9. Lister og punkter     14. FAQ
   5. Typografi/knapper 10. Trin og tags          15. Kontakt og formular
   ========================================================================== */

/* 1. Skrifttyper — selvhostet (OFL). Ingen kald til Googles servere. */
@font-face {
  font-family: "Gloock";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/gloock-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Gloock";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/gloock-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../fonts/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../fonts/inter-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* 2. Designværdier — skift dem her, så følger hele sitet med. */
:root {
  --ds-bg: #f8f3ef;               /* sidebaggrund (beige) */
  --ds-flade: #fff;               /* kort */
  --ds-moerk: #182127;            /* tekst, mørke knapper og mærker */
  --ds-daempet: #696b69;          /* brødtekst og underlinjer */
  --ds-streg: #e4e1db;            /* kanter og skillelinjer */
  --ds-streg-svag: rgba(24, 33, 39, .1);
  --ds-toning: rgba(24, 33, 39, .08);       /* lyse knapper, ikonringe */
  --ds-toning-svag: rgba(24, 33, 39, .06);  /* tags og tider */
  --ds-toning-staerk: rgba(24, 33, 39, .12);
  --ds-paa-moerk: #fff;
  --ds-paa-moerk-daempet: #c7cccf;
  --ds-streg-paa-moerk: rgba(255, 255, 255, .15);

  --ds-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --ds-font-titel: "Gloock", Georgia, "Times New Roman", serif;

  --ds-radius: 24px;              /* kort */
  --ds-radius-stor: 30px;         /* store kort, billeder, formular */
  --ds-radius-felt: 16px;         /* formularfelter */
  --ds-pille: 999px;

  --ds-container: 1200px;
  --ds-kant: 24px;                /* sidemargin på smalle skærme */
  --ds-sektion: 90px;             /* luft mellem sektioner (140px → 90px, 12/10-2026) */

  --ds-hak-bg: var(--ds-bg);      /* farven i hakket i fanekort og billeder */
}
@media (max-width: 1023px) { :root { --ds-sektion: 56px; } }
@media (max-width: 767px)  { :root { --ds-sektion: 40px; --ds-kant: 16px; } }
@media (min-width: 2000px) { :root { --ds-container: 1680px; --ds-kant: 48px; } }

/* 3. Grundlag for sider på det nye design */
body.ds-ny {
  padding-top: 0;                 /* temaets faste header findes ikke her */
  background: var(--ds-bg);
  font-family: var(--ds-font);
  color: var(--ds-moerk);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
.ds-ny .ds-hovedindhold { overflow-x: clip; }

/* 4. Layout */
.ds-container {
  width: 100%;
  max-width: calc(var(--ds-container) + 2 * var(--ds-kant));
  margin-inline: auto;
  padding-inline: var(--ds-kant);
}
.ds-sektion { padding-block: calc(var(--ds-sektion) / 2); }
.ds-sektion--top { padding-top: var(--ds-sektion); }

/* To kolonner. Varianterne svarer til designets bredder i en 1200px-container. */
.ds-split {
  display: grid;
  align-items: center;
  column-gap: 24px;
  row-gap: 40px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);          /* 588 / 588 */
}
.ds-split--smal-bred  { grid-template-columns: minmax(0, 486fr) minmax(0, 690fr); }
.ds-split--bred-smal  { grid-template-columns: minmax(0, 690fr) minmax(0, 486fr); }
.ds-split--tekst-foto { grid-template-columns: minmax(0, 644fr) minmax(0, 486fr); column-gap: 70px; }
.ds-split--bund { align-items: end; }

.ds-gitter { display: grid; gap: 24px; }
.ds-gitter--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ds-gitter--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ds-gitter--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ds-stak { display: flex; flex-direction: column; align-items: flex-start; gap: 32px; }
.ds-stak--20 { gap: 20px; }
.ds-stak--12 { gap: 12px; }

@media (max-width: 1023px) {
  .ds-split,
  .ds-split--smal-bred,
  .ds-split--bred-smal,
  .ds-split--tekst-foto { grid-template-columns: minmax(0, 1fr); }
  .ds-gitter--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-gitter--3 { grid-template-columns: minmax(0, 1fr); max-width: 560px; }
}
@media (max-width: 767px) {
  .ds-gitter--2 { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 479px) {
  .ds-gitter--4 { grid-template-columns: minmax(0, 1fr); }
}

/* 5. Typografi — klasser, så temaets body h1-h6/p ikke rammes */
.ds-titel-1,
.ds-titel-2 {
  font-family: var(--ds-font-titel);
  font-weight: 400;
  letter-spacing: 0;
  color: var(--ds-moerk);
  margin: 0;
  text-wrap: balance;
}
.ds-titel-1 { font-size: 62px; line-height: 1; }
.ds-titel-2 { font-size: 42px; line-height: 1.5; }
.ds-titel-3,
.ds-titel-4 {
  font-family: var(--ds-font);
  font-weight: 700;
  letter-spacing: 0;
  color: var(--ds-moerk);
  margin: 0;
}
.ds-titel-3 { font-size: 24px; line-height: 1.4; }
.ds-titel-4 { font-size: 20px; line-height: 1.4; }
.ds-tal { font: 700 28px/1.3 var(--ds-font); color: var(--ds-moerk); margin: 0; }
.ds-tekst {
  font: 400 16px/1.5 var(--ds-font);
  color: var(--ds-daempet);
  margin: 0;
}
.ds-tekst + .ds-tekst { margin-top: 24px; }
.ds-stak > .ds-tekst + .ds-tekst { margin-top: 0; }   /* stakken har allerede afstand */
/* Tekstfelter giver <p>-afsnit; temaets body p må ikke give dem en anden farve */
.ds-tekst p { color: inherit; font: inherit; margin: 0; }
.ds-tekst p + p { margin-top: 20px; }
.ds-tekst--lille { font-size: 14px; }
.ds-tekst--stor { font-size: 18px; }
.ds-tekst strong, .ds-staerk { font-weight: 700; color: var(--ds-moerk); }

.ds-sektionshoved { display: flex; flex-direction: column; gap: 20px; max-width: 690px; margin-bottom: 56px; }
.ds-sektionshoved--midt { margin-inline: auto; text-align: center; align-items: center; max-width: 792px; margin-bottom: 80px; }
.ds-sektionshoved--luft { margin-bottom: 80px; }

@media (max-width: 1023px) {
  .ds-titel-1 { font-size: 46px; }
  .ds-titel-2 { font-size: 34px; line-height: 1.3; }
  .ds-sektionshoved, .ds-sektionshoved--midt, .ds-sektionshoved--luft { margin-bottom: 40px; }
}
@media (max-width: 767px) {
  .ds-titel-1 { font-size: 38px; }
  .ds-titel-2 { font-size: 30px; }
}

/* Knapper */
.ds-knap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 16px;
  border: 0;
  border-radius: var(--ds-pille);
  font: 400 16px/1.2 var(--ds-font);
  letter-spacing: 0;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.ds-knap svg { width: 16px; height: 16px; flex: none; }
.ds-knap:focus-visible { outline: 2px solid var(--ds-moerk); outline-offset: 3px; }
.ds-knap--primaer { background: var(--ds-moerk); color: #fff; }
.ds-knap--primaer:hover { background: #000; color: #fff; }
.ds-knap--sekundaer { background: var(--ds-toning); color: var(--ds-moerk); }
.ds-knap--sekundaer:hover { background: var(--ds-toning-staerk); color: var(--ds-moerk); }
.ds-knap--hvid { background: #fff; color: var(--ds-moerk); }
.ds-knap--hvid:hover { background: var(--ds-bg); color: var(--ds-moerk); }
.ds-knap--fuld { width: 100%; }
.ds-knaprk { display: flex; flex-wrap: wrap; gap: 12px; }

/* Rund ikonknap (karrusel-pile, kontakt) */
.ds-ikonknap {
  display: inline-grid;
  place-items: center;
  width: 54px;
  height: 54px;
  flex: none;
  border: 0;
  border-radius: var(--ds-pille);
  background: var(--ds-moerk);
  color: #fff;
  cursor: pointer;
  transition: background-color .15s ease, opacity .15s ease;
}
.ds-ikonknap svg { width: 24px; height: 24px; }
.ds-ikonknap--lys { background: var(--ds-toning-staerk); color: #fff; }
.ds-ikonknap:disabled { cursor: default; opacity: .9; }
.ds-ikonknap:focus-visible { outline: 2px solid var(--ds-moerk); outline-offset: 3px; }

/* 6. Kort */
.ds-kort {
  background: var(--ds-flade);
  border-radius: var(--ds-radius);
  padding: 28px 24px;
}
.ds-kort--stor { border-radius: var(--ds-radius-stor); padding: 40px; }
.ds-kort--kant { background: transparent; border: 1px solid var(--ds-streg); padding: 24px; }
.ds-kort--hvid-kant { background: var(--ds-flade); border: 1px solid var(--ds-streg); }
.ds-kort--moerk { background: var(--ds-moerk); color: var(--ds-paa-moerk); }

/* Nøgletal: ikon, tal og forklaring */
.ds-noegletal { display: flex; flex-direction: column; gap: 20px; height: 100%; }
.ds-noegletal__tekst { display: flex; flex-direction: column; gap: 4px; }

/* Fanekort: kort med et mærke ("16 måneder") i et hak øverst til højre.
   Hakket tegnes med sidens baggrundsfarve, så kortet skal stå på --ds-hak-bg. */
.ds-fanekort {
  position: relative;
  background: var(--ds-flade);
  border-radius: var(--ds-radius-stor);
  padding: 40px;
}
.ds-fanekort__fane {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  padding: 0 0 14px 16px;
  background: var(--ds-hak-bg);
  border-bottom-left-radius: 24.5px;
}
.ds-fanekort__fane::before,
.ds-fanekort__fane::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.ds-fanekort__fane::before {          /* kortets kant der bøjer ned i hakket */
  top: 0;
  right: 100%;
  width: 24.5px;
  height: 24.5px;
  background: radial-gradient(circle at 0 100%, transparent 24px, var(--ds-hak-bg) 24.5px);
}
.ds-fanekort__fane::after {           /* kortets hjørne under hakket */
  top: 100%;
  right: 0;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle at 0 100%, transparent 29.5px, var(--ds-hak-bg) 30px);
}
.ds-fanekort--moerk { background: var(--ds-moerk); color: var(--ds-paa-moerk); }

/* Mærke (mørk pille i hakket) og tags */
.ds-maerke {
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: var(--ds-pille);
  background: var(--ds-moerk);
  color: #fff;
  font: 400 16px/1.2 var(--ds-font);
  white-space: nowrap;
}

/* 7. Billede med hak nederst til venstre (hero, udtalelse, jobgaranti) */
.ds-hakbillede {
  position: relative;
  overflow: hidden;
  border-radius: var(--ds-radius-stor);
  background: var(--ds-toning);
  aspect-ratio: var(--ds-format, 588 / 460);
}
.ds-hakbillede > img,
.ds-hakbillede > picture > img,
.ds-hakbillede > video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ds-hakbillede__hak {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  padding: 16px 24px 0 0;
  background: var(--ds-hak-bg);
  border-top-right-radius: 30px;
}
.ds-hakbillede__hak::before,
.ds-hakbillede__hak::after {
  content: "";
  position: absolute;
  width: 30px;
  height: 30px;
  pointer-events: none;
  background: radial-gradient(circle at 100% 0, transparent 29.5px, var(--ds-hak-bg) 30px);
}
.ds-hakbillede__hak::before { left: 0; bottom: 100%; }
.ds-hakbillede__hak::after { left: 100%; bottom: 0; }
.ds-hakbillede__hak--taet { padding: 8px 12px 0 0; }
/* Hjørnet bag hakket er skjult af hakkets farve; afrundet gav det en tynd bue i kanten */
.ds-hakbillede:has(> .ds-hakbillede__hak) { border-bottom-left-radius: 0; }
@media (max-width: 767px) {
  /* Smalle skærme: højere billede, så hakket ikke dækker motivet */
  .ds-hakbillede { aspect-ratio: var(--ds-format-mobil, 1 / 1); }
  .ds-udmaerkelse__titel { font-size: 24px; }
}

/* Hero-mærket "Niveau 5" */
.ds-udmaerkelse { display: flex; align-items: center; gap: 16px; }
.ds-udmaerkelse svg { width: 32px; height: 32px; flex: none; color: var(--ds-moerk); }
.ds-udmaerkelse__tekst { display: flex; flex-direction: column; gap: 2px; line-height: 1.5; }
.ds-udmaerkelse__titel { font: 700 28px/1.3 var(--ds-font); color: var(--ds-moerk); }

/* Logo eller badge i hvidt kort (AKKR) */
.ds-logokort {
  background: var(--ds-flade);
  border: 1px solid var(--ds-streg);
  border-radius: var(--ds-radius-stor);
  padding: 40px;
}
.ds-logokort img { display: block; width: 100%; height: auto; }
@media (max-width: 1023px) { .ds-logokort { max-width: 486px; } }

/* 8. Ikoner */
.ds-ikon { display: inline-block; width: 24px; height: 24px; flex: none; color: var(--ds-moerk); }
.ds-ikon--20 { width: 20px; height: 20px; }
.ds-ikon--16 { width: 16px; height: 16px; }
.ds-ikonring {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  flex: none;
  border-radius: var(--ds-pille);
  background: var(--ds-toning);
  color: var(--ds-moerk);
}
.ds-ikonring svg { width: 24px; height: 24px; }
.ds-ikonring--stor { width: 54px; height: 54px; }
.ds-ikonring--moerk { background: var(--ds-moerk); color: #fff; }
.ds-ikonring--lille { width: 32px; height: 32px; }
.ds-ikonring--lille svg { width: 16px; height: 16px; }

/* 9. Lister og punkter */
/* Punkt med ikon: callout, info-note, fordel */
.ds-punkt { display: flex; align-items: flex-start; gap: 16px; }
.ds-punkt__tekst { display: flex; flex-direction: column; gap: 4px; flex: 1 1 auto; min-width: 0; font: 400 16px/1.5 var(--ds-font); }
.ds-punkt__titel { font-weight: 700; color: var(--ds-moerk); margin: 0; }
.ds-punkt__tekst > p:not(.ds-punkt__titel) { color: var(--ds-daempet); margin: 0; }
.ds-punkter { display: flex; flex-direction: column; gap: 16px; list-style: none; margin: 0; padding: 0; }
.ds-punkter .ds-punkt__tekst { gap: 2px; }

/* Tjekliste */
.ds-tjekliste { display: flex; flex-direction: column; gap: 14px; list-style: none; margin: 0; padding: 0; }
.ds-tjekliste li { display: flex; align-items: flex-start; gap: 12px; margin: 0; font: 400 16px/1.5 var(--ds-font); color: var(--ds-daempet); }
.ds-tjekliste svg { width: 20px; height: 20px; flex: none; margin-top: 2px; color: var(--ds-moerk); }

.ds-skillelinje { display: block; height: 1px; border: 0; margin: 0; background: var(--ds-streg); }

/* 10. Trin og tags */
.ds-trin { display: flex; align-items: center; gap: 12px; list-style: none; margin: 0; padding: 0; }
.ds-trin__punkt { display: flex; align-items: center; gap: 10px; margin: 0; font: 500 16px/1.2 var(--ds-font); color: var(--ds-moerk); white-space: nowrap; }
.ds-trin__nr {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: none;
  border-radius: var(--ds-pille);
  background: var(--ds-moerk);
  color: #fff;
  font: 600 14px/1 var(--ds-font);
}
.ds-trin__streg { flex: 1 1 24px; height: 1px; background: var(--ds-streg); }
@media (max-width: 767px) {
  .ds-trin { flex-direction: column; align-items: flex-start; gap: 12px; }
  .ds-trin__streg { display: none; }
}

.ds-tags { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.ds-tag {
  display: inline-flex;
  padding: 8px 14px;
  border-radius: var(--ds-pille);
  background: var(--ds-toning-svag);
  color: var(--ds-moerk);
  font: 500 14px/1.2 var(--ds-font);
  white-space: nowrap;
  margin: 0;
}

/* Programkortet (forløb, fag, callout) */
.ds-program { display: flex; flex-direction: column; gap: 28px; }
.ds-program__del { display: flex; flex-direction: column; gap: 20px; }
.ds-program__del--tags { gap: 16px; }

/* 11. Skema */
.ds-skema__hoved { display: flex; flex-direction: column; gap: 4px; margin-bottom: 24px; padding-right: 120px; }
.ds-skema__dage { list-style: none; margin: 0; padding: 0; }
.ds-skema__dag {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 52px;
  margin: 0;
  border-bottom: 1px solid var(--ds-streg);
  font: 500 16px/1.2 var(--ds-font);
  color: var(--ds-moerk);
}
.ds-skema__dag:last-child { border-bottom: 0; }
.ds-skema__tid {
  padding: 6px 12px;
  border-radius: var(--ds-pille);
  background: var(--ds-toning-svag);
  font: 600 14px/1.2 var(--ds-font);
  white-space: nowrap;
}
.ds-skema__dag--fri { color: var(--ds-daempet); }
.ds-skema__fri { font: 400 14px/1.2 var(--ds-font); }

/* 12. Prispakker */
.ds-pakke { display: flex; flex-direction: column; justify-content: space-between; gap: 28px; padding: 40px 32px 32px; height: 100%; }
.ds-pakke__top { display: flex; flex-direction: column; gap: 28px; }
.ds-pakke__navn { font: 600 16px/1.2 var(--ds-font); letter-spacing: 0; color: var(--ds-daempet); margin: 0 0 8px; }
.ds-pakke__beloeb { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; margin: 0; }
.ds-pakke__pris { font: 700 40px/1.2 var(--ds-font); color: var(--ds-moerk); }
.ds-pakke__enhed { font: 400 16px/1.2 var(--ds-font); color: var(--ds-daempet); }
.ds-pakke__linjer { list-style: none; margin: 0; padding: 0; }
.ds-pakke__linje {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding: 16px 0;
  margin: 0;
  border-top: 1px solid var(--ds-streg-svag);
  font: 600 16px/1.5 var(--ds-font);
  color: var(--ds-moerk);
}
.ds-pakke__label { display: flex; flex-direction: column; gap: 2px; font-weight: 500; }
.ds-pakke__label small { font: 400 14px/1.5 var(--ds-font); color: var(--ds-daempet); }
.ds-pakke__vaerdi { white-space: nowrap; }
/* Den fremhævede pakke er mørk */
.ds-fanekort--moerk .ds-pakke__navn,
.ds-fanekort--moerk .ds-pakke__enhed,
.ds-fanekort--moerk .ds-pakke__label small { color: var(--ds-paa-moerk-daempet); }
.ds-fanekort--moerk .ds-pakke__pris,
.ds-fanekort--moerk .ds-pakke__linje { color: var(--ds-paa-moerk); }
.ds-fanekort--moerk .ds-pakke__linje { border-top-color: var(--ds-streg-paa-moerk); }
@media (max-width: 767px) { .ds-pakke__pris { font-size: 34px; } }

/* Karrierekort */
.ds-karriere { display: flex; flex-direction: column; gap: 24px; padding: 32px 32px 36px; height: 100%; }

/* 13. Udtalelse med karrusel */
.ds-anmeldelser {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 20px;
  border: 1px solid var(--ds-streg);
  border-radius: 20px;
  background: var(--ds-flade);
  color: var(--ds-moerk);
  text-decoration: none;
}
.ds-anmeldelser:hover { color: var(--ds-moerk); border-color: var(--ds-daempet); }
.ds-anmeldelser__top { display: flex; justify-content: space-between; align-items: flex-start; }
.ds-avatarer { display: flex; }
.ds-avatarer > * {
  width: 42px;
  height: 42px;
  margin-right: -12px;
  border: 2px solid #fff;
  border-radius: var(--ds-pille);
  object-fit: cover;
  background: var(--ds-moerk);
  color: #fff;
  display: grid;
  place-items: center;
}
.ds-avatarer > :last-child { margin-right: 0; }
.ds-avatarer svg { width: 24px; height: 24px; }
.ds-anmeldelser__score { display: flex; align-items: center; gap: 8px; font: 500 18px/1.3 var(--ds-font); }
.ds-anmeldelser__score img, .ds-anmeldelser__score svg { width: 24px; height: 24px; flex: none; }

.ds-udtalelse { --ds-format: 486 / 520; }
.ds-udtalelse__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s; }
.ds-udtalelse__slide.is-aktiv { opacity: 1; visibility: visible; }
.ds-udtalelse__slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ds-udtalelse__slide::after {        /* mørk toning bag teksten */
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(24, 33, 39, 0) 42%, rgba(24, 33, 39, .55) 68%, rgba(24, 33, 39, .92) 100%);
}
.ds-udtalelse__citat {
  position: absolute;
  left: 37px;
  right: 40px;
  bottom: 36px;          /* nederst, så ansigtet ses */
  z-index: 1;
  margin: 0;
  color: #fff;
  font: 400 16px/1.5 var(--ds-font);
}
.ds-udtalelse__navn { display: block; margin-bottom: 8px; font: 800 24px/1.5 var(--ds-font); }
.ds-udtalelse__pile { display: flex; gap: 24px; padding: 12px 24px 0 0; }
/* Med pile i hakket nederst til venstre skal teksten stå over hakket */
.ds-udtalelse:has(.ds-udtalelse__pile) .ds-udtalelse__citat { bottom: 96px; }
@media (max-width: 767px) {
  .ds-udtalelse { --ds-format-mobil: 3 / 4; }
  .ds-udtalelse__citat { left: 24px; right: 24px; bottom: 24px; font-size: 15px; }
}

/* 14. FAQ — <details>, virker uden JavaScript */
.ds-faq { display: flex; flex-direction: column; gap: 24px; max-width: 792px; margin-inline: auto; }
.ds-faq__punkt {
  background: var(--ds-flade);
  border-radius: var(--ds-radius);
  padding: 24px 24px 24px 28px;
}
.ds-faq__spoergsmaal {
  display: flex;
  align-items: center;
  gap: 24px;
  list-style: none;
  cursor: pointer;
  font: 600 18px/1.5 var(--ds-font);
  color: var(--ds-moerk);
}
.ds-faq__spoergsmaal::-webkit-details-marker { display: none; }
.ds-faq__spoergsmaal:focus-visible { outline: 2px solid var(--ds-moerk); outline-offset: 6px; border-radius: 8px; }
.ds-faq__spoergsmaal > span:first-child { flex: 1 1 auto; min-width: 0; }
.ds-faq__knap {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: var(--ds-pille);
  background: var(--ds-toning);
  color: var(--ds-moerk);
  transition: background-color .15s ease, color .15s ease;
}
.ds-faq__knap svg { width: 20px; height: 20px; }
.ds-faq__knap .ds-faq__minus { display: none; }
.ds-faq__punkt[open] .ds-faq__knap { background: var(--ds-moerk); color: #fff; }
.ds-faq__punkt[open] .ds-faq__plus { display: none; }
.ds-faq__punkt[open] .ds-faq__minus { display: block; }
.ds-faq__svar { max-width: 660px; margin-top: 12px; color: var(--ds-daempet); font: 400 16px/1.5 var(--ds-font); }
.ds-faq__svar > :first-child { margin-top: 0; }
.ds-faq__svar > :last-child { margin-bottom: 0; }
.ds-faq__svar p { color: inherit; }
@media (max-width: 767px) {
  .ds-faq__punkt { padding: 20px; }
  .ds-faq__spoergsmaal { font-size: 16px; gap: 16px; }
}

/* 15. Kontakt og formular */
.ds-kontakter { display: flex; flex-direction: column; gap: 12px; width: 100%; }
.ds-kontakt {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 24px 16px 16px;
  border-radius: var(--ds-radius);
  background: var(--ds-flade);
  color: var(--ds-moerk);
  text-decoration: none;
}
.ds-kontakt:hover { color: var(--ds-moerk); }
.ds-kontakt__tekst { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ds-kontakt__label { font: 500 14px/1.2 var(--ds-font); color: var(--ds-daempet); }
.ds-kontakt__vaerdi { font: 700 20px/1.4 var(--ds-font); color: var(--ds-moerk); overflow-wrap: anywhere; }

.ds-formular { background: var(--ds-flade); border-radius: var(--ds-radius-stor); padding: 40px; }
.ds-formular__hoved { display: flex; flex-direction: column; gap: 6px; margin-bottom: 24px; }
.ds-felter { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
.ds-felt { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ds-felt--fuld { grid-column: 1 / -1; }
.ds-felt label, .ds-felt__label { font: 500 14px/1.2 var(--ds-font); color: var(--ds-moerk); }
.ds-input,
.ds-formular input[type="text"],
.ds-formular input[type="email"],
.ds-formular input[type="tel"],
.ds-formular select,
.ds-formular textarea {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid var(--ds-streg);
  border-radius: var(--ds-radius-felt);
  background: var(--ds-bg);
  color: var(--ds-moerk);
  font: 400 16px/1.2 var(--ds-font);
  -webkit-appearance: none;
  appearance: none;
}
.ds-formular select {
  padding-right: 44px;
  background-image: url("../img/ds/chevron-ned.svg");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 20px;
}
.ds-formular ::placeholder { color: var(--ds-daempet); opacity: .7; }
.ds-formular select:has(option[value=""]:checked) { color: rgba(105, 107, 105, .7); }
.ds-formular :is(input, select, textarea):focus-visible { outline: 2px solid var(--ds-moerk); outline-offset: 1px; }
.ds-formular__bund { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 56px; }
@media (max-width: 767px) {
  .ds-formular, .ds-kort--stor, .ds-fanekort { padding: 28px 20px; }
  .ds-felter { grid-template-columns: minmax(0, 1fr); }
  .ds-formular__bund { flex-direction: column-reverse; align-items: stretch; margin-top: 32px; }
  .ds-skema__hoved { padding-right: 0; padding-top: 28px; }
  .ds-fanekort.ds-pakke { padding: 56px 20px 24px; }
  .ds-fanekort.ds-karriere { padding: 56px 20px 28px; }
}

/* 16. Header (template-parts/ds/header.php) */
.ds-header { position: relative; z-index: 50; padding-top: 80px; }
.ds-header__indre { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ds-header__logo { display: block; flex: none; color: var(--ds-moerk); }
.ds-header__logo img { display: block; width: 207px; height: auto; } /* vektorlogo (SVG, 1694×484), 12/10-2026 */
/* Plads til det større logo: menupillen og mellemrummene strammes, så headeren altid holder sig inden for 1200 px */
@media (min-width: 1180px) {
  .ds-header .ds-mega__top, .ds-header .ds-nav__liste > li > a { padding-inline: 14px; }
  .ds-header .ds-nav__liste { gap: 4px; }
  .ds-header .ds-header__indre, .ds-header .ds-header__knapper { gap: 20px; }
}
@media (min-width: 1180px) and (max-width: 1299px) {
  .ds-header__logo img { width: 172px; }
  .ds-header .ds-mega__top, .ds-header .ds-nav__liste > li > a { padding-inline: 10px; font-size: 15px; }
  .ds-header .ds-header__indre, .ds-header .ds-header__knapper { gap: 16px; }
}
.ds-nav { display: flex; align-items: center; }
.ds-nav__liste {
  display: flex;
  gap: 8px;
  margin: 0;
  padding: 4px;
  list-style: none;
  background: var(--ds-flade);
  border: 1px solid var(--ds-streg);
  border-radius: var(--ds-pille);
}
.ds-nav__liste li { position: relative; margin: 0; }
.ds-nav__liste > li > a {
  display: block;
  padding: 12px 16px;
  border-radius: var(--ds-pille);
  font: 400 16px/1.2 var(--ds-font);
  letter-spacing: 0;
  color: #171a1c;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .15s ease;
}
.ds-nav__liste > li > a:hover { background: var(--ds-toning-svag); color: #171a1c; }
.ds-nav__liste > li.current-menu-item > a,
.ds-nav__liste > li.current-menu-ancestor > a,
.ds-nav__liste > li.current-menu-parent > a,
.ds-nav__liste > li.current-page-ancestor > a { background: var(--ds-toning); font-weight: 600; }
.ds-nav__liste a:focus-visible { outline: 2px solid var(--ds-moerk); outline-offset: 2px; }
/* Undermenu som kort */
.ds-nav__liste .sub-menu {
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  z-index: 10;
  min-width: 260px;
  margin: 0;
  padding: 8px;
  list-style: none;
  background: var(--ds-flade);
  border: 1px solid var(--ds-streg);
  border-radius: var(--ds-radius);
  box-shadow: 0 16px 40px rgba(24, 33, 39, .08);
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
  transition: opacity .15s ease, transform .15s ease, visibility .15s;
}
.ds-nav__liste .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }  /* bro, så musen kan nå kortet */
.ds-nav__liste > li > .sub-menu { max-height: min(70vh, 640px); overflow-y: auto; overscroll-behavior: contain; }
/* Tredje niveau står indrykket inde i samme kort */
.ds-nav__liste .sub-menu .sub-menu {
  position: static;
  min-width: 0;
  margin: 0;
  padding: 0 0 6px 12px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  opacity: 1;
  visibility: inherit;
  transform: none;
  max-height: none;
  overflow: visible;
}
.ds-nav__liste .sub-menu .sub-menu::before { display: none; }
.ds-nav__liste .sub-menu .sub-menu a { padding: 7px 12px; font-size: 14px; color: var(--ds-daempet); }
.ds-nav__liste > li:hover > .sub-menu,
.ds-nav__liste > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.ds-nav__liste .sub-menu a {
  display: block;
  padding: 10px 14px;
  border-radius: 14px;
  font: 400 15px/1.3 var(--ds-font);
  color: var(--ds-moerk);
  text-decoration: none;
}
.ds-nav__liste .sub-menu a:hover,
.ds-nav__liste .sub-menu .current-menu-item > a { background: var(--ds-toning-svag); color: var(--ds-moerk); }
.ds-nav__book { display: none; }
.ds-header__knapper { display: flex; align-items: center; gap: 24px; flex: none; }
.ds-header__burger { display: none; }
/* WooCommerces mini-kurv som rund knap */
.ds-header__kurv .wc-block-mini-cart__button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 43px;
  padding: 12px 16px;
  border: 0;
  border-radius: var(--ds-pille);
  background: var(--ds-toning);
  color: var(--ds-moerk);
  font: 400 14px/1 var(--ds-font);
}
.ds-header__kurv .wc-block-mini-cart__button:hover { background: var(--ds-toning-staerk); }
.ds-header__kurv .wc-block-mini-cart__icon { width: 18px; height: 18px; }
.ds-header__kurv .wc-block-mini-cart__badge { background: var(--ds-moerk); color: #fff; }

@media (max-width: 1179px) {
  .ds-header { padding-top: 24px; }
  .ds-header__logo img { width: 172px; }
  .ds-header__book { display: none; }
  .ds-header__knapper { gap: 8px; }
  .ds-header__burger {
    display: inline-grid;
    place-items: center;
    width: 43px;
    height: 43px;
    padding: 0;
    border: 0;
    border-radius: var(--ds-pille);
    background: var(--ds-moerk);
    cursor: pointer;
  }
  .ds-header__burger-streger,
  .ds-header__burger-streger::before,
  .ds-header__burger-streger::after {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: #fff;
    transition: transform .2s ease, background-color .2s ease;
  }
  .ds-header__burger-streger { position: relative; }
  .ds-header__burger-streger::before,
  .ds-header__burger-streger::after { content: ""; position: absolute; left: 0; }
  .ds-header__burger-streger::before { top: -6px; }
  .ds-header__burger-streger::after { top: 6px; }
  .ds-header.is-aaben .ds-header__burger-streger { background: transparent; }
  .ds-header.is-aaben .ds-header__burger-streger::before { transform: translateY(6px) rotate(45deg); }
  .ds-header.is-aaben .ds-header__burger-streger::after { transform: translateY(-6px) rotate(-45deg); }
  .ds-header__burger:focus-visible { outline: 2px solid var(--ds-moerk); outline-offset: 3px; }

  .ds-nav {
    position: absolute;
    top: calc(100% + 12px);
    left: var(--ds-kant);
    right: var(--ds-kant);
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    max-height: calc(100dvh - 110px);
    overflow-y: auto;
    padding: 12px;
    background: var(--ds-flade);
    border: 1px solid var(--ds-streg);
    border-radius: var(--ds-radius);
    box-shadow: 0 16px 40px rgba(24, 33, 39, .1);
  }
  .ds-header.is-aaben .ds-nav { display: flex; }
  .ds-nav__liste { flex-direction: column; gap: 2px; padding: 0; border: 0; border-radius: 0; background: none; }
  .ds-nav__liste > li > a { padding: 12px 14px; border-radius: 14px; font-size: 17px; font-weight: 600; }
  .ds-nav__liste .sub-menu {
    position: static;
    min-width: 0;
    padding: 0 0 8px 12px;
    border: 0;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
  }
  .ds-nav__liste .sub-menu::before { display: none; }
  .ds-nav__liste .sub-menu a { color: var(--ds-daempet); }
  .ds-nav__book { display: inline-flex; align-self: flex-start; margin: 0 2px 4px; }
}
@media (max-width: 1179px) and (prefers-reduced-motion: no-preference) {
  .ds-header.is-aaben .ds-nav { animation: ds-ind .18s ease; }
}
@keyframes ds-ind { from { opacity: 0; transform: translateY(-4px); } }

/* 17. Footer (template-parts/ds/footer.php) */
.ds-footer { margin-top: calc(var(--ds-sektion) / 2); padding: 56px 0 32px; border-top: 1px solid var(--ds-toning-staerk); background: var(--ds-bg); color: var(--ds-moerk); text-align: left; }
.ds-footer__nyhedsbrev { padding-bottom: 48px; margin-bottom: 48px; border-bottom: 1px solid var(--ds-toning-staerk); }
.ds-footer__nyhedsbrev .bs-nyhedsbrev { margin: 0 auto; text-align: center; }
.ds-footer__nyhedsbrev .bs-nyhedsbrev__titel {
  font-family: var(--ds-font-titel) !important;   /* pluginets egen stil bruger !important */
  font-weight: 400 !important;
  font-size: 34px !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  color: var(--ds-moerk);
}
.ds-footer__nyhedsbrev .bs-nyhedsbrev__form { text-align: left; }
.ds-footer__nyhedsbrev .bs-nyhedsbrev__email { border-color: var(--ds-streg); border-radius: var(--ds-radius-felt); padding: 12px 16px; }
.ds-footer__nyhedsbrev .bs-nyhedsbrev__knap { border-radius: var(--ds-pille); background: var(--ds-moerk); font-weight: 400; padding: 12px 18px; }
.ds-footer__intro { display: flex; flex-direction: column; align-items: center; gap: 24px; max-width: 588px; margin: 0 auto 48px; text-align: center; }
.ds-footer__logo img { display: block; width: 180px; height: auto; }
.ds-footer__intro .ds-tekst p { margin: 0; }
.ds-footer__kolonner { display: flex; justify-content: space-between; gap: 48px; max-width: var(--ds-container); margin: 0 auto; }
@media (min-width: 1180px) {
  .ds-footer__titel, .ds-footer__links a, .ds-footer__adresser strong { white-space: nowrap; }
}
.ds-footer__titel { margin: 0 0 20px; font: 700 24px/28px var(--ds-font); letter-spacing: 0; color: var(--ds-moerk); }
.ds-footer__links,
.ds-footer__adresser { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
/* Afdelingerne i to kolonner, så footeren bliver lavere */
.ds-footer__adresser--afdelinger { display: grid; grid-template-columns: repeat(2, max-content); gap: 14px 40px; }
.ds-footer__links li, .ds-footer__adresser li { margin: 0; }
.ds-footer__links a { font: 500 16px/1.2 var(--ds-font); color: var(--ds-daempet); text-decoration: none; }
.ds-footer__links a:hover { color: var(--ds-moerk); }
.ds-footer__adresser { font: 500 16px/1.5 var(--ds-font); color: var(--ds-daempet); }
.ds-footer__adresser strong { display: block; font-weight: 700; color: var(--ds-moerk); }
.ds-footer__adresser a { color: inherit; text-decoration: none; }
.ds-footer__adresser a:hover { color: var(--ds-moerk); }
.ds-footer__socialt { display: inline-flex; align-items: center; gap: 12px; }
.ds-footer__socialt svg { width: 20px; height: 18px; color: var(--ds-moerk); }
.ds-footer__bund { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; margin-top: 40px; font: 400 14px/1.4 var(--ds-font); color: var(--ds-daempet); }
.ds-footer__bund a { color: inherit; }
@media (max-width: 1179px) { /* fire kolonner + afdelinger i to kræver ca. 1100 px */
  .ds-footer__kolonner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 24px; }
  .ds-footer__titel { font-size: 20px; margin-bottom: 20px; }
  .ds-footer__links, .ds-footer__adresser { gap: 12px; }
}
@media (max-width: 479px) {
  .ds-footer__kolonner { grid-template-columns: minmax(0, 1fr); }
  .ds-footer__nyhedsbrev .bs-nyhedsbrev__titel { font-size: 28px !important; }
  .ds-footer__adresser--afdelinger { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
}

/* 18. Formidable-formularer inde i .ds-formular (fx Elevformular Kosmetolog).
   Formidables eget stylesheet er slået fra; temaets regler (style.css) er meget
   specifikke (".frm_forms form .frm_form_fields fieldset ..."), så F nedenfor
   starter med to ds-klasser + .frm_forms form for at vinde uden !important. */
.ds-formular--formidable .frm_forms { max-width: none; margin: 0; }
.ds-formular.ds-formular--formidable .frm_forms form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 16px;
}
.ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container .frm_form_field { grid-column: auto; width: auto; margin: 0; padding: 0; }
/* Formularens egne overskrifter og tomme HTML-felter erstattes af kortets hoved */
.ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container .frm_html_container:has(> :is(h1, h2, h3, h4, h5):only-child),
.ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container .frm_html_container:has(> br:only-child),
.ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container .frm_html_container:empty,
.ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container > div:not(.frm_form_field) { display: none; }
.ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container .frm_html_container,
.ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container .frm_form_field:has(.frm_submit),
.ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container .frm_full { grid-column: 1 / -1; }
.ds-formular.ds-formular--formidable .frm_forms form .frm_primary_label { display: block; margin: 0 0 8px; padding: 0; font: 500 14px/1.2 var(--ds-font); color: var(--ds-moerk); }
.ds-formular.ds-formular--formidable .frm_forms form .frm_required { color: var(--ds-moerk); }
.ds-formular.ds-formular--formidable .frm_forms form .frm_form_field :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], select, textarea) {
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
  padding: 14px 16px;
  border: 1px solid var(--ds-streg);
  border-radius: var(--ds-radius-felt);
  background-color: var(--ds-bg);
  box-shadow: none;
  color: var(--ds-moerk);
  font: 400 16px/1.2 var(--ds-font);
  -webkit-appearance: none;
  appearance: none;
}
.ds-formular.ds-formular--formidable .frm_forms form .frm_form_field select { padding-right: 44px; background-image: url("../img/ds/chevron-ned.svg"); background-repeat: no-repeat; background-position: right 16px center; background-size: 20px; }
.ds-formular.ds-formular--formidable .frm_forms form .frm_form_field :is(input, select, textarea):focus { border-color: var(--ds-moerk); outline: 0; box-shadow: 0 0 0 1px var(--ds-moerk); }
.ds-formular.ds-formular--formidable .frm_forms form .frm_html_container { font: 400 14px/1.5 var(--ds-font); color: var(--ds-daempet); }
.ds-formular.ds-formular--formidable .frm_forms form .frm_html_container p { color: inherit; margin: 0; }
.ds-formular.ds-formular--formidable .frm_forms form .frm_submit { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 32px; }
/* Noten fra designet står til venstre for knappen */
.ds-formular.ds-formular--formidable .frm_forms form .frm_submit::before {
  content: "Felter markeret med * skal udfyldes.";
  font: 400 14px/1.4 var(--ds-font);
  color: var(--ds-daempet);
}
.ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container .frm_submit .frm_button_submit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 12px 20px;
  border: 0;
  border-radius: var(--ds-pille);
  background: var(--ds-moerk);
  box-shadow: none;
  color: #fff;
  font: 400 16px/1.2 var(--ds-font);
  transform: none;
  cursor: pointer;
}
.ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container .frm_submit .frm_button_submit::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask: url("../img/ds/pil-op-hoejre.svg") center / 16px no-repeat;
  mask: url("../img/ds/pil-op-hoejre.svg") center / 16px no-repeat;
}
.ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container .frm_submit .frm_button_submit:hover { background: #000; transform: none; }
.ds-formular.ds-formular--formidable .frm_forms form :is(.frm_error, .frm_error_style) { display: block; margin: 6px 0 0; padding: 0; border-radius: 0; background: none; font: 400 14px/1.4 var(--ds-font); color: #a12c2c; }
.ds-formular--formidable .frm_message { padding: 16px 20px; border-radius: var(--ds-radius-felt); background: var(--ds-toning-svag); color: var(--ds-moerk); }
.ds-formular--formidable .frm_message p { margin: 0; color: inherit; }
@media (max-width: 767px) {
  .ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container { grid-template-columns: minmax(0, 1fr); }
  .ds-formular.ds-formular--formidable .frm_forms form .frm_submit { flex-direction: column-reverse; align-items: stretch; }
  .ds-formular.ds-formular--formidable .frm_forms form .frm_fields_container .frm_submit .frm_button_submit { justify-content: center; }
}

/* 19. Generelle blokke til resten af sitet (2026-10-11) */
.ds-tagline { margin: 0; font: 600 13px/1.3 var(--ds-font); letter-spacing: .08em; text-transform: uppercase; color: var(--ds-daempet); }
.ds-knap--paa-moerk { background: rgba(255, 255, 255, .12); color: #fff; }
.ds-knap--paa-moerk:hover { background: rgba(255, 255, 255, .2); color: #fff; }

/* Fri tekst fra redaktøren: afsnit, lister, links, overskrifter og tabeller */
.ds-indhold > * + * { margin-top: 16px; }
.ds-indhold :is(h2, h3, h4) { margin: 32px 0 0; font-family: var(--ds-font); font-weight: 700; letter-spacing: 0; color: var(--ds-moerk); }
.ds-indhold h2 { font: 400 30px/1.3 var(--ds-font-titel); }
.ds-indhold h3 { font-size: 20px; line-height: 1.4; }
.ds-indhold h4 { font-size: 17px; line-height: 1.4; }
.ds-indhold > :first-child { margin-top: 0; }
.ds-indhold :is(ul, ol) { margin: 16px 0 0; padding-left: 22px; color: inherit; }
.ds-indhold li { margin: 6px 0 0; color: inherit; }
.ds-tekst a:not([class*="ds-"]) { color: var(--ds-moerk); text-decoration: underline; text-underline-offset: 3px; }
.ds-tekst a:not([class*="ds-"]):hover { color: var(--ds-moerk); text-decoration-thickness: 2px; }
.ds-indhold strong { color: var(--ds-moerk); }
.ds-indhold img { max-width: 100%; height: auto; border-radius: var(--ds-radius); }
.ds-indhold table { width: 100%; border-collapse: collapse; font-size: 15px; }
.ds-indhold :is(th, td) { padding: 12px 8px; border-bottom: 1px solid var(--ds-streg); text-align: left; vertical-align: top; }
.ds-indhold th { color: var(--ds-moerk); font-weight: 600; }

/* Hero uden billede: teksten alene og centreret */
.ds-hero--tekst .ds-hero__tekst { align-items: center; max-width: 845px; margin-inline: auto; text-align: center; }
.ds-hero--tekst .ds-knaprk { justify-content: center; }

/* Tekst og billede: billedet kan stå til venstre */
@media (min-width: 1024px) {
  .ds-tekstbillede--venstre .ds-split > figure { order: -1; }
  /* Stående billede (486×520): tekst 644 og billede 486 med 70 imellem, som i Figma */
  .ds-tekstbillede--staaende .ds-split { grid-template-columns: minmax(0, 644fr) minmax(0, 486fr); column-gap: 70px; }
  .ds-tekstbillede--staaende.ds-tekstbillede--venstre .ds-split { grid-template-columns: minmax(0, 486fr) minmax(0, 644fr); }
}

/* Tekstsektion */
.ds-tekstsektion__indre { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; max-width: 792px; }
.ds-tekstsektion__indre .ds-knaprk { margin-top: 12px; }
.ds-tekstsektion--midt .ds-tekstsektion__indre { margin-inline: auto; align-items: center; text-align: center; }
.ds-tekstsektion--midt .ds-indhold :is(ul, ol) { text-align: left; }
.ds-tekstsektion__indre.ds-kort { max-width: none; }
/* Instagram-feedet (Smash Balloon) følger sidens fulde bredde, ikke tekstkolonnens */
.ds-tekstsektion__indre:has(#sb_instagram) { max-width: none; }
.ds-tekstsektion__indre:has(#sb_instagram) > .ds-tekst { align-self: stretch; width: 100%; max-width: none; }

/* Kolonner */
.ds-kolonne { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; height: 100%; }
.ds-kolonne--ren { padding: 0; }
.ds-kolonne > .ds-knap { margin-top: auto; }
.ds-kolonne .ds-indhold > * + * { margin-top: 10px; }
.ds-kolonne .ds-indhold :is(h3, h4) { margin-top: 18px; }

/* Kortgitter */
.ds-kortgitter__kort {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border-radius: var(--ds-radius);
  background: var(--ds-flade);
  color: var(--ds-moerk);
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
}
a.ds-kortgitter__kort:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(24, 33, 39, .08); color: var(--ds-moerk); }
.ds-kortgitter__billede { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--ds-toning); }
.ds-kortgitter__billede img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ds-kortgitter__tekst { display: flex; flex-direction: column; gap: 8px; flex: 1 1 auto; padding: 24px; }
.ds-kortgitter__mere { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 8px; font: 500 15px/1.2 var(--ds-font); color: var(--ds-moerk); }
.ds-kortgitter__mere svg { width: 16px; height: 16px; }

/* Call to action: mørkt kort */
.ds-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 40px;
  align-items: center;
  padding: 56px;
  border-radius: var(--ds-radius-stor);
  background: var(--ds-moerk);
  color: #fff;
}
.ds-cta--billede { grid-template-columns: minmax(0, 1fr) minmax(0, 440px); }
.ds-cta .ds-titel-2 { color: #fff; }
.ds-cta .ds-tagline, .ds-cta .ds-tekst { color: var(--ds-paa-moerk-daempet); }
.ds-cta .ds-indhold a:not([class*="ds-"]), .ds-cta .ds-indhold strong { color: #fff; }
.ds-cta__billede { overflow: hidden; border-radius: var(--ds-radius); aspect-ratio: 4 / 3; }
.ds-cta__billede img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1023px) {
  .ds-cta, .ds-cta--billede { grid-template-columns: minmax(0, 1fr); padding: 40px 28px; }
}

/* 20. Gamle blokke på sider med det nye design (worker, fullmap, collage, fremvisCat,
   booking, eventShowcase, logorow, table m.fl.). De bevares, men får designets
   skrift, farver og knapper, så siden hænger sammen. Overskrifter med ds-klasser
   røres ikke (:not([class*="ds-"])). */
body.ds-ny :is(h1, h2):not([class*="ds-"]) { font-family: var(--ds-font-titel); font-weight: 400; letter-spacing: 0; color: var(--ds-moerk); }
body.ds-ny h1:not([class*="ds-"]) { font-size: 52px; line-height: 1.15; }
body.ds-ny h2:not([class*="ds-"]) { font-size: 38px; line-height: 1.3; }
body.ds-ny :is(h3, h4, h5, h6):not([class*="ds-"]) { font-family: var(--ds-font); letter-spacing: 0; color: var(--ds-moerk); }
body.ds-ny h3:not([class*="ds-"]) { font-size: 22px; line-height: 1.35; }
body.ds-ny h4:not([class*="ds-"]) { font-size: 19px; line-height: 1.4; }
body.ds-ny p:not([class*="ds-"]) { font-family: var(--ds-font); }
body.ds-ny a.button { padding: 12px 18px; border-radius: var(--ds-pille); background: var(--ds-moerk); color: #fff; font: 400 16px/1.2 var(--ds-font); letter-spacing: 0; }
body.ds-ny a.button:hover { background: #000; color: #fff; }
body.ds-ny a.button.white { background: #fff; color: var(--ds-moerk); }
body.ds-ny a.button.white:hover { background: var(--ds-bg); color: var(--ds-moerk); }
body.ds-ny main > section:not(.ds-sektion) iframe { border-radius: var(--ds-radius); }
@media (max-width: 1023px) {
  body.ds-ny h1:not([class*="ds-"]) { font-size: 40px; }
  body.ds-ny h2:not([class*="ds-"]) { font-size: 30px; }
}
/* Indlejret HTML (fx bookingvinduer) pakket i en gruppe med ds-container */
body.ds-ny .wp-block-group.ds-container { padding-block: calc(var(--ds-sektion) / 2); }

/* 21. Rettelser efter ombygningen (2026-10-12) */
/* Afstand mellem elementer i fri tekst — også p efter en liste (".ds-tekst p" nulstillede den) */
.ds-tekst.ds-indhold > * + * { margin-top: 16px; }
.ds-kolonne .ds-tekst.ds-indhold > * + * { margin-top: 10px; }
/* Udtalelse uden overskrift/tekst: ét centreret kort */
.ds-udtalelser--alene .ds-udtalelse { max-width: 486px; margin-inline: auto; }
/* Bookingkalender i hvidt kort */
.ds-booking__kort { padding: 24px; border-radius: var(--ds-radius-stor); background: var(--ds-flade); overflow: hidden; }
.ds-booking__kort iframe { display: block; width: 100% !important; max-width: 100%; border: 0; }
/* Geckos iframe har egne knapper helt ude i kanten, så kortet har ingen indre afstand på mobil */
@media (max-width: 767px) { .ds-booking__kort { padding: 0; } }

/* 22. Shop (WooCommerce) i det nye design (2026-10-12)
   Temaets shop-CSS bruger lange kæder med ID'er (#prodcat-content .container .row
   .col-lg-9 .products ...). Reglerne her gentager kæden med body.ds-ny foran, så de
   vinder uden !important. Kun produkternes korte beskrivelse har inline-stil, og
   den kræver !important. */
body.ds-ny main .container { max-width: calc(var(--ds-container) + 2 * var(--ds-kant)); padding-left: var(--ds-kant); padding-right: var(--ds-kant); }

/* Fragtbesked øverst på shopsiderne */
.ds-topbar { padding: 9px 16px; background: var(--ds-moerk); color: #fff; text-align: center; font: 500 13px/1.3 var(--ds-font); letter-spacing: .04em; }
.ds-topbar + .ds-header { padding-top: 40px; }
@media (max-width: 1179px) { .ds-topbar + .ds-header { padding-top: 16px; } }

/* Oversigt: banner og afstand */
body.ds-ny #prodcat { padding-top: 48px; }
body.ds-ny .bs-cat-banner { border-radius: var(--ds-radius-stor); overflow: hidden; }
body.ds-ny .bs-cat-banner h2 { font-family: var(--ds-font-titel) !important; font-weight: 400 !important; letter-spacing: .02em !important; }

/* Produktkort — i oversigten og under "Relaterede varer" */
body.ds-ny #prodcat-content .container .row .col-lg-9 .products,
body.ds-ny.woocommerce .product .container .row .col-md-12 .products { gap: 24px; }
body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product,
body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product {
  width: calc(25% - 18px);
  margin: 0;
  padding: 12px 12px 20px;
  border-radius: var(--ds-radius);
  background: var(--ds-flade);
  transition: transform .2s ease, box-shadow .2s ease;
}
body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product:hover,
body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(24, 33, 39, .08); }
body.ds-ny #prodcat-content .products .product > a.woocommerce-LoopProduct-link,
body.ds-ny.woocommerce .product .col-md-12 .products .product > a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; height: 100%; color: var(--ds-moerk); text-decoration: none; }
body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product .product-image,
body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product .product-image { margin: 0 0 16px; padding: 16px; border-radius: 18px; background: var(--ds-bg); }
body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product .product-image img,
body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product .product-image img { height: 230px; mix-blend-mode: multiply; }
@media (min-width: 2000px) {
  body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product .product-image img,
  body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product .product-image img { height: 300px; }
}
body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product h2,
body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product h2 { order: 2; margin: 0 6px 8px; font: 600 16px/1.35 var(--ds-font); letter-spacing: 0; text-align: left; color: var(--ds-moerk); }
body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product .price,
body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product .price { order: 3; margin: 0 6px; font: 700 16px/1.3 var(--ds-font); text-align: left; color: var(--ds-moerk); }
body.ds-ny .products .product .price del { margin-right: 6px; font-weight: 400; color: var(--ds-daempet); }
body.ds-ny .products .product .price ins { text-decoration: none; }
body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product .produktLink,
body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product .produktLink { order: 4; justify-content: flex-start; margin: auto 6px 0; padding-top: 14px; font: 500 14px/1.2 var(--ds-font); text-transform: none; color: var(--ds-moerk); }
body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product .produktLink img,
body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product .produktLink img { width: 10px; height: 10px; margin-left: 8px; }
body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product .onsale,
body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product .onsale { top: 22px; left: 22px; z-index: 2; padding: 6px 12px; border-radius: var(--ds-pille); background: var(--ds-moerk); color: #fff; font: 500 13px/1.2 var(--ds-font); }
@media (max-width: 1023px) {
  body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product,
  body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product { width: calc(50% - 12px); }
}
@media (max-width: 767px) {
  body.ds-ny #prodcat-content .container .row .col-lg-9 .products,
  body.ds-ny.woocommerce .product .container .row .col-md-12 .products { gap: 12px; }
  body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product,
  body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product { width: calc(50% - 6px); padding: 8px 8px 16px; border-radius: 18px; }
  body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product .product-image img,
  body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product .product-image img { height: 150px; }
  body.ds-ny #prodcat-content .container .row .col-lg-9 .products .product h2,
  body.ds-ny.woocommerce .product .container .row .col-md-12 .products .product h2 { font-size: 14px; }
}

/* Sidenummerering */
body.ds-ny .woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 48px 0 0; padding: 0; border: 0; list-style: none; }
body.ds-ny .woocommerce-pagination ul.page-numbers li { margin: 0; border: 0; }
body.ds-ny .woocommerce-pagination .page-numbers :is(a, span), body.ds-ny .woocommerce-pagination ul.page-numbers > li > .page-numbers { display: grid; place-items: center; min-width: 40px; height: 40px; padding: 0 10px; border-radius: var(--ds-pille); background: var(--ds-flade); color: var(--ds-moerk); font: 500 15px/1 var(--ds-font); text-decoration: none; }
body.ds-ny .woocommerce-pagination ul.page-numbers > li > .page-numbers.current { background: var(--ds-moerk); color: #fff; }
body.ds-ny .woocommerce-pagination ul.page-numbers > li > .page-numbers.dots { background: none; }

/* Produktside */
body.ds-ny.woocommerce #product-notification .woocommerce-breadcrumb { font: 400 14px/1.4 var(--ds-font); color: var(--ds-daempet); }
body.ds-ny.woocommerce #product-notification .woocommerce-breadcrumb a { color: var(--ds-daempet); text-decoration: none; }
body.ds-ny.woocommerce #product-notification .woocommerce-breadcrumb a:hover { color: var(--ds-moerk); text-decoration: underline; }
body.ds-ny.woocommerce #product-notification .container .row .col-12 .woocommerce-message,
body.ds-ny.woocommerce #product-notification .container .row .col-12 .woocommerce-info,
body.ds-ny.woocommerce #product-notification .container .row .col-12 .woocommerce-error { padding: 16px 20px; border: 1px solid var(--ds-streg); border-radius: var(--ds-radius); background: var(--ds-flade); color: var(--ds-moerk); font: 400 16px/1.4 var(--ds-font); }
body.ds-ny.woocommerce .product .container .row .col-md-5 .woocommerce-product-gallery .woocommerce-product-gallery__image { border-radius: 18px; background: var(--ds-flade); box-shadow: none; }
body.ds-ny.woocommerce .product .container .row .col-md-5 .woocommerce-product-gallery .woocommerce-product-gallery__image:first-of-type { height: 520px; padding: 32px; border-radius: var(--ds-radius-stor); box-shadow: none; }
body.ds-ny.woocommerce .product .container .row .col-md-5 .woocommerce-product-gallery .woocommerce-product-gallery__image:first-of-type img { mix-blend-mode: multiply; }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .product-brand a { font: 600 13px/1.3 var(--ds-font); letter-spacing: .08em; text-transform: uppercase; color: var(--ds-daempet); text-decoration: none; }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .product_title { margin: 8px 0 16px; font: 400 44px/1.15 var(--ds-font-titel); letter-spacing: 0; color: var(--ds-moerk); }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .price { margin: 0 0 8px; font: 700 28px/1.3 var(--ds-font); color: var(--ds-moerk); }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .price del { font-weight: 400; color: var(--ds-daempet); }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .price ins { text-decoration: none; }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .stock { margin: 0 0 20px; font: 500 14px/1.3 var(--ds-font); color: #2e6b3a; }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .stock.out-of-stock { color: #a12c2c; }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .cart { flex-wrap: wrap; align-items: center; gap: 12px; padding-bottom: 32px; }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .cart .quantity { display: flex; align-items: center; gap: 4px; padding: 4px; border: 1px solid var(--ds-streg); border-radius: var(--ds-pille); background: var(--ds-flade); }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .cart .minus,
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .cart .plus { width: 40px; height: 40px; border: 0; border-radius: var(--ds-pille); background: var(--ds-toning); color: var(--ds-moerk); font: 500 18px/1 var(--ds-font); }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .cart .qty { width: 52px; height: 40px; border: 0; background: transparent; font: 600 16px/1 var(--ds-font); color: var(--ds-moerk); }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .cart .single_add_to_cart_button { margin: 0; padding: 15px 28px; border: 0; border-radius: var(--ds-pille); background: var(--ds-moerk); color: #fff; font: 400 16px/1.2 var(--ds-font); text-transform: none; }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .cart .single_add_to_cart_button:hover { background: #000; transform: none; }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .woocommerce-Tabs-panel h2 { margin: 8px 0 16px; font: 400 30px/1.3 var(--ds-font-titel); letter-spacing: 0; }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .woocommerce-Tabs-panel p { color: var(--ds-daempet); }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .woocommerce-Tabs-panel p strong { color: var(--ds-moerk); }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .woocommerce-Tabs-panel ul li { padding-left: 20px; color: var(--ds-daempet); }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .woocommerce-Tabs-panel ul li::before { width: 6px; height: 6px; top: calc(.75em - 3px); border: 0; background: var(--ds-moerk); }
body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .woocommerce-Tabs-panel ul li::after { display: none; }
/* "Specifikationer" kommer med inline-stil fra produktets korte beskrivelse */
body.ds-ny .woocommerce-product-details__short-description[style] { margin: 24px 0 !important; padding: 24px !important; border: 1px solid var(--ds-streg) !important; border-radius: var(--ds-radius) !important; background: var(--ds-flade) !important; }
body.ds-ny .woocommerce-product-details__short-description h4 { font: 700 18px/1.4 var(--ds-font) !important; margin: 0 0 12px !important; }
body.ds-ny .woocommerce-product-details__short-description p { color: var(--ds-daempet); }
body.ds-ny .woocommerce-product-details__short-description strong { color: var(--ds-moerk); }
body.ds-ny .related.products > h2 { margin: 80px 0 32px; font: 400 42px/1.3 var(--ds-font-titel); letter-spacing: 0; }
@media (max-width: 767px) {
  body.ds-ny.woocommerce .product .container .row .col-md-6 .inner .product_title { font-size: 32px; }
  body.ds-ny.woocommerce .product .container .row .col-md-5 .woocommerce-product-gallery .woocommerce-product-gallery__image:first-of-type { height: 340px; padding: 20px; }
  body.ds-ny .related.products > h2 { margin-top: 48px; font-size: 30px; }
}

/* Generelle WooCommerce-knapper og beskeder */
body.ds-ny .woocommerce :is(a.button, button.button, input.button), body.ds-ny :is(a.button.wc-forward, .woocommerce-message a.button) { display: inline-flex; align-items: center; justify-content: center; padding: 12px 20px; border: 0; border-radius: var(--ds-pille); background: var(--ds-moerk); color: #fff; font: 400 16px/1.2 var(--ds-font); text-transform: none; text-decoration: none; }
body.ds-ny .woocommerce :is(a.button, button.button, input.button):hover { background: #000; color: #fff; }

/* Kurv og kasse (WooCommerce-blokke) */
body.ds-ny section#content { padding-block: 32px 0; }
body.ds-ny :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) { font-family: var(--ds-font); color: var(--ds-moerk); }
body.ds-ny :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) h2.wp-block-heading { font-family: var(--ds-font-titel); font-weight: 400; letter-spacing: 0; }
body.ds-ny:not(.woocommerce-block-theme-has-button-styles) .wc-block-components-button:not(.is-link) { border: 0; border-radius: var(--ds-pille); background: var(--ds-moerk); color: #fff; font: 400 16px/1.2 var(--ds-font); text-transform: none; }
body.ds-ny:not(.woocommerce-block-theme-has-button-styles) .wc-block-components-button:not(.is-link):hover { background: #000; color: #fff; }
body.ds-ny :is(.wp-block-woocommerce-cart-totals-block, .wc-block-checkout__sidebar) { padding: 24px; border-radius: var(--ds-radius); background: var(--ds-flade); }
body.ds-ny .wc-block-checkout__main .wc-block-components-checkout-step,
body.ds-ny .wc-block-cart-items { background: transparent; }
body.ds-ny :is(.wc-block-components-text-input input, .wc-block-components-textarea, .wc-blocks-components-select__select, .wc-block-components-combobox .wc-block-components-combobox-control input) { border-color: var(--ds-streg); border-radius: var(--ds-radius-felt); background-color: var(--ds-flade); }
body.ds-ny .wc-block-components-totals-coupon a, body.ds-ny .wc-block-components-product-name { color: var(--ds-moerk); }
/* "Ny i webshop" i den tomme kurv */
body.ds-ny .wc-block-grid[class*="has-"] .wc-block-grid__products { display: flex; flex-wrap: wrap; gap: 24px; margin: 0; }
body.ds-ny .wc-block-grid[class*="has-"] .wc-block-grid__product { flex: 0 0 calc(25% - 18px); max-width: calc(25% - 18px); margin: 0; padding: 12px 12px 20px; border: 0; border-radius: var(--ds-radius); background: var(--ds-flade); }
@media (max-width: 1023px) { body.ds-ny .wc-block-grid[class*="has-"] .wc-block-grid__product { flex: 0 0 calc(50% - 12px); max-width: calc(50% - 12px); } }
@media (max-width: 480px) { body.ds-ny .wc-block-grid[class*="has-"] .wc-block-grid__products { gap: 12px; } body.ds-ny .wc-block-grid[class*="has-"] .wc-block-grid__product { flex-basis: calc(50% - 6px); max-width: calc(50% - 6px); } }
body.ds-ny .wc-block-grid__product-image { padding: 12px; border-radius: 18px; background: var(--ds-bg); }
body.ds-ny .wc-block-grid__product-image img { mix-blend-mode: multiply; }
body.ds-ny .wc-block-grid__product-title { font: 600 15px/1.35 var(--ds-font); color: var(--ds-moerk); }
body.ds-ny .wc-block-grid__product-link { color: var(--ds-moerk); text-decoration: none; }
body.ds-ny .wc-block-grid__product-add-to-cart .wp-block-button__link { border-radius: var(--ds-pille); background: var(--ds-moerk); color: #fff; font: 400 14px/1.2 var(--ds-font); }

/* Min konto */
body.ds-ny.woocommerce-account main .woocommerce { max-width: 520px; margin: 0 auto 40px; }
body.ds-ny.woocommerce-account main .woocommerce > h2 { font: 400 42px/1.3 var(--ds-font-titel); letter-spacing: 0; }
body.ds-ny .woocommerce-form-login, body.ds-ny .woocommerce-form-register, body.ds-ny .woocommerce-ResetPassword { padding: 32px; border: 0; border-radius: var(--ds-radius-stor); background: var(--ds-flade); }
body.ds-ny .woocommerce-form-row label { display: block; margin-bottom: 8px; font: 500 14px/1.2 var(--ds-font); color: var(--ds-moerk); }
body.ds-ny .woocommerce-form-row .input-text { width: 100%; padding: 14px 16px; border: 1px solid var(--ds-streg); border-radius: var(--ds-radius-felt); background: var(--ds-bg); font: 400 16px/1.2 var(--ds-font); }
body.ds-ny .woocommerce-form-login .woocommerce-form-login__submit { margin-top: 8px; }
body.ds-ny .woocommerce-LostPassword a { color: var(--ds-moerk); }
body.ds-ny .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; list-style: none; }
body.ds-ny .woocommerce-MyAccount-navigation a { display: inline-block; padding: 10px 16px; border-radius: var(--ds-pille); background: var(--ds-flade); color: var(--ds-moerk); text-decoration: none; }
body.ds-ny .woocommerce-MyAccount-navigation .is-active a { background: var(--ds-moerk); color: #fff; }

/* WooCommerces "vis adgangskode"-knap har intet ikon, når Woo's CSS er slået fra — skjules */
body.ds-ny .woocommerce-form-login .show-password-input { display: none; }
body.ds-ny .woocommerce-form-login .password-input { display: block; }

/* 23. Elevformular til Hubben (template-parts/ds/hub-formular.php, 2026-10-12) */
.ds-hubform__valg { margin: 0; padding: 0; border: 0; min-width: 0; }
.ds-hubform__valg legend { margin: 0 0 8px; padding: 0; }
.ds-hubform__radioer { display: flex; flex-wrap: wrap; gap: 12px; }
.ds-hubform__radioer label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 12px 18px;
  border: 1px solid var(--ds-streg);
  border-radius: var(--ds-pille);
  background: var(--ds-bg);
  color: var(--ds-moerk);
  font: 400 16px/1.2 var(--ds-font);
  cursor: pointer;
}
.ds-hubform__radioer label:has(input:checked) { border-color: var(--ds-moerk); box-shadow: 0 0 0 1px var(--ds-moerk); }
.ds-hubform__radioer input { width: 18px; height: 18px; margin: 0; accent-color: var(--ds-moerk); }
.ds-hubform__fejl { font: 400 14px/1.4 var(--ds-font); color: #a12c2c; }
.ds-hubform__fejl:empty { display: none; }
.ds-formular .ds-hubform [aria-invalid="true"] { border-color: #a12c2c; }
/* Robotfeltet: ude af skærmen, ikke display:none */
.ds-hubform__hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.ds-hubform__besked { margin: 24px 0 0; padding: 14px 18px; border-radius: var(--ds-radius-felt); background: #f6e3e3; color: #a12c2c; font: 400 14px/1.4 var(--ds-font); }
.ds-hubform__besked a { color: inherit; }
.ds-hubform__note { margin: 0; font: 400 14px/1.4 var(--ds-font); color: var(--ds-daempet); }
.ds-hubform .ds-formular__bund { margin-top: 32px; }
.ds-hubform button[disabled] { opacity: .6; cursor: progress; }
.ds-hubform__tak { margin: 0; padding: 16px 20px; border-radius: var(--ds-radius-felt); background: var(--ds-toning-svag); color: var(--ds-moerk); font: 500 16px/1.5 var(--ds-font); }
.ds-hubform__tak:focus { outline: none; }
@media (max-width: 767px) { .ds-hubform .ds-knap { justify-content: center; } }

/* 24. Tidslinje (template-parts/blocks/ds/ds-tidslinje.php, 2026-10-12)
   Årstal til venstre, stiplet linje med prikker i midten, tekst til højre.
   Første tekst vises; resten ligger i <details> og står i HTML'en for søgemaskinerne. */
.ds-tidslinje {
  --aar: 168px;    /* årstalskolonnen */
  --mellem: 56px;  /* luft omkring linjen */
  max-width: 920px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
.ds-tidslinje__punkt {
  position: relative;
  display: grid;
  grid-template-columns: var(--aar) minmax(0, 1fr);
  column-gap: var(--mellem);
  margin: 0;
  padding: 0 0 36px;
}
/* Den stiplede linje løber fra prikken ned til næste punkt */
.ds-tidslinje__punkt::before {
  content: "";
  position: absolute;
  top: 22px;
  bottom: -6px;
  left: calc(var(--aar) + var(--mellem) / 2 - 1px);
  width: 2px;
  background: repeating-linear-gradient(to bottom, rgba(24, 33, 39, .28) 0 5px, transparent 5px 11px);
}
.ds-tidslinje__punkt:last-child { padding-bottom: 0; }
.ds-tidslinje__punkt:last-child::before { display: none; }
.ds-tidslinje__punkt::after {
  content: "";
  position: absolute;
  top: 9px;
  left: calc(var(--aar) + var(--mellem) / 2 - 6px);
  width: 12px;
  height: 12px;
  border: 2px solid var(--ds-moerk);
  border-radius: 50%;
  background: var(--ds-bg);
}
.ds-tidslinje__punkt:first-child::after,
.ds-tidslinje__punkt:last-child::after { background: var(--ds-moerk); }
.ds-tidslinje__aar {
  margin: 0;
  text-align: right;
  font: 400 26px/1.15 var(--ds-font-titel);
  color: var(--ds-moerk);
  overflow-wrap: anywhere;
}
.ds-tidslinje__indhold { min-width: 0; padding-top: 3px; }
.ds-tidslinje__tekst { color: var(--ds-daempet); font: 400 16px/1.6 var(--ds-font); }
.ds-tidslinje__tekst p { margin: 0 0 10px; color: inherit; }
.ds-tidslinje__tekst > :last-child { margin-bottom: 0; }
.ds-tidslinje__mere { margin-top: 6px; }
.ds-tidslinje__mere > .ds-tidslinje__tekst { margin-top: 10px; }
.ds-tidslinje__mere summary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  list-style: none;
  cursor: pointer;
  font: 500 14px/1.4 var(--ds-font);
  color: var(--ds-moerk);
  text-decoration: underline;
  text-decoration-color: rgba(24, 33, 39, .3);
  text-underline-offset: 4px;
}
.ds-tidslinje__mere summary::-webkit-details-marker { display: none; }
.ds-tidslinje__mere summary:hover { text-decoration-color: currentColor; }
.ds-tidslinje__mere summary:focus-visible { outline: 2px solid var(--ds-moerk); outline-offset: 4px; border-radius: 4px; }
.ds-tidslinje__mere summary svg { width: 16px; height: 16px; transition: transform .2s ease; }
.ds-tidslinje__mere[open] summary svg { transform: rotate(180deg); }
.ds-tidslinje__luk,
.ds-tidslinje__mere[open] .ds-tidslinje__laes { display: none; }
.ds-tidslinje__mere[open] .ds-tidslinje__luk { display: inline; }
/* Mobil: linjen ude til venstre, årstallet over teksten */
@media (max-width: 767px) {
  .ds-tidslinje__punkt { grid-template-columns: minmax(0, 1fr); padding: 0 0 28px 32px; }
  .ds-tidslinje__punkt::before { left: 5px; top: 20px; }
  .ds-tidslinje__punkt::after { left: 0; top: 7px; }
  .ds-tidslinje__aar { text-align: left; font-size: 22px; margin-bottom: 6px; }
  .ds-tidslinje__indhold { padding-top: 0; }
}

/* 25. Team / afdeling (template-parts/blocks/ds/ds-team.php, 2026-10-12)
   Figma: "Afdelinger / Teamet". Kort med billede, mærke i hak øverst til højre, navn og stilling. */
.ds-team { padding-block: calc(var(--ds-sektion) / 2); }
.ds-team__hoved {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px 40px;
  margin-bottom: 40px;
}
.ds-team__intro { display: flex; flex-direction: column; gap: 12px; max-width: 690px; }
.ds-team__intro > * { margin: 0; }
.ds-team__adresse {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: none;
  margin: 0;
  padding: 12px 20px 12px 16px;
  border: 1px solid var(--ds-streg);
  border-radius: var(--ds-pille);
  background: var(--ds-flade);
  color: var(--ds-moerk);
  font: 500 16px/1.2 var(--ds-font);
}
.ds-team__adresse svg { width: 20px; height: 20px; flex: none; }
.ds-team__gitter {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 48px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ds-teamkort { display: flex; flex-direction: column; min-width: 0; margin: 0; }
.ds-teamkort__billede {
  position: relative;
  aspect-ratio: 282 / 340;
  margin-bottom: 16px;
  overflow: hidden;
  border-radius: var(--ds-radius);
  background: var(--ds-toning);
}
.ds-teamkort__billede img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; } /* centreret som i Figma */
/* Hjørnet bag hakket er skjult af hakkets farve; afrundet gav det en tynd bue i kanten */
.ds-teamkort__billede--maerke { border-top-right-radius: 0; }
.ds-teamkort__hak {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  padding: 0 0 10px 10px;
  background: var(--ds-hak-bg);
  border-bottom-left-radius: 20px;
}
.ds-teamkort__hak::before,
.ds-teamkort__hak::after {
  content: "";
  position: absolute;
  width: 20px;
  height: 20px;
  pointer-events: none;
  background: radial-gradient(circle at 0 100%, transparent 19.5px, var(--ds-hak-bg) 20px);
}
.ds-teamkort__hak::before { top: 0; right: 100%; }
.ds-teamkort__hak::after { top: 100%; right: 0; }
.ds-teamkort__maerke {
  display: block;
  padding: 8px 14px;
  border-radius: var(--ds-pille);
  background: var(--ds-moerk);
  color: #fff;
  font: 500 14px/1.25 var(--ds-font);
  white-space: nowrap;
}
.ds-team .ds-teamkort__navn { margin: 0 0 2px; font: 700 20px/1.4 var(--ds-font); letter-spacing: normal; text-transform: none; color: var(--ds-moerk); overflow-wrap: anywhere; }
.ds-teamkort__stilling { margin: 0; font: 400 16px/1.5 var(--ds-font); color: var(--ds-daempet); }
@media (max-width: 1023px) {
  .ds-team__gitter { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .ds-team__hoved { flex-direction: column; align-items: flex-start; margin-bottom: 28px; }
  .ds-team__adresse { font-size: 14px; padding: 10px 16px 10px 12px; }
  .ds-team__gitter { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; }
  .ds-teamkort__billede { margin-bottom: 12px; border-radius: 18px; }
  .ds-teamkort__hak { padding: 0 0 6px 6px; border-bottom-left-radius: 14px; }
  .ds-teamkort__hak::before, .ds-teamkort__hak::after { width: 14px; height: 14px; background: radial-gradient(circle at 0 100%, transparent 13.5px, var(--ds-hak-bg) 14px); }
  .ds-teamkort__maerke { padding: 6px 10px; font-size: 12px; }
  .ds-team .ds-teamkort__navn { font-size: 16px; }
  .ds-teamkort__stilling { font-size: 14px; }
}

/* 26. Forsiden i Figma (2026-10-12): mosaik, hak nederst til højre, billedfliser, logobånd */
.ds-hero--tekst .ds-knap--hvid { box-shadow: inset 0 0 0 1px var(--ds-streg); }

/* Hak nederst til HØJRE (mosaikkens store billede) */
.ds-hakbillede--hak-hoejre:has(> .ds-hakbillede__hak) { border-bottom-left-radius: var(--ds-radius-stor); border-bottom-right-radius: 0; }
.ds-hakbillede--hak-hoejre .ds-hakbillede__hak {
  left: auto;
  right: 0;
  padding: 24px 40px 0;
  border-top-right-radius: 0;
  border-top-left-radius: 30px;
}
.ds-hakbillede--hak-hoejre .ds-hakbillede__hak::before { left: auto; right: 0; bottom: 100%; background: radial-gradient(circle at 0 0, transparent 29.5px, var(--ds-hak-bg) 30px); }
.ds-hakbillede--hak-hoejre .ds-hakbillede__hak::after { left: auto; right: 100%; bottom: 0; background: radial-gradient(circle at 0 0, transparent 29.5px, var(--ds-hak-bg) 30px); }
.ds-hakbillede--hak-hoejre .ds-udmaerkelse { gap: 20px; }

/* Mosaik: stort billede (792) og to fliser (384) */
.ds-mosaik__gitter { display: grid; grid-template-columns: minmax(0, 2.0625fr) minmax(0, 1fr); gap: 24px; }
.ds-mosaik__gitter--alene { grid-template-columns: minmax(0, 1fr); }
.ds-mosaik__stor { --ds-format: 792 / 580; }
.ds-mosaik__fliser { display: grid; grid-template-rows: 1fr 1fr; gap: 24px; min-height: 0; }
.ds-miniflise {
  position: relative;
  display: block;
  min-height: 0;
  overflow: hidden;
  border-radius: var(--ds-radius-stor);
  border-top-right-radius: 0;
  background: var(--ds-toning);
  color: #fff;
  text-decoration: none;
}
.ds-miniflise > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
a.ds-miniflise:hover > img { transform: scale(1.03); }
.ds-miniflise__tekst {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 20px;
  z-index: 1;
  padding: 24px 20px;
  border-radius: 24px;
  background: rgba(24, 33, 39, .14);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, .25), inset .5px -1px 1px rgba(255, 255, 255, .5), inset -.5px 1px 1px rgba(255, 255, 255, .5);
  color: #fff;
  font: 600 16px/1.25 var(--ds-font);
}
.ds-miniflise__hak {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  padding: 0 0 8px 8px;
  background: var(--ds-hak-bg);
  border-bottom-left-radius: 30px;
}
.ds-miniflise__hak::before,
.ds-miniflise__hak::after,
.ds-flise__hak::before,
.ds-flise__hak::after {
  content: "";
  position: absolute;
  width: 24px;
  height: 24px;
  pointer-events: none;
  background: radial-gradient(circle at 0 100%, transparent 23.5px, var(--ds-hak-bg) 24px);
}
.ds-miniflise__hak::before, .ds-flise__hak::before { top: 0; right: 100%; }
.ds-miniflise__hak::after, .ds-flise__hak::after { top: 100%; right: 0; }
.ds-miniflise .ds-ikonknap { pointer-events: none; }

/* Billedfliser (kortgitter med stilen "fliser") */
.ds-flise {
  position: relative;
  display: block;
  aspect-ratio: 384 / 492;
  overflow: hidden;
  border-radius: var(--ds-radius-stor);
  border-top-right-radius: 0;
  background: var(--ds-toning);
  color: #fff;
  text-decoration: none;
}
.ds-flise > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.ds-flise::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(24, 33, 39, 0) 41%, #182127 100%); }
a.ds-flise:hover > img { transform: scale(1.03); }
.ds-flise__titel { position: absolute; left: 16px; right: 16px; bottom: 32px; z-index: 1; text-align: center; font: 700 28px/1.5 var(--ds-font); color: #fff; }
.ds-flise__hak {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  padding: 0 0 14px 9px;
  background: var(--ds-hak-bg);
  border-bottom-left-radius: 28px;
}
.ds-flise .ds-knap { pointer-events: none; }
a.ds-flise:hover .ds-knap { background: #000; }

/* Logobånd */
.ds-logoer__titel { margin: 0 0 80px; text-align: center; }
.ds-logoer__baand {
  overflow: hidden;
  padding-block: 20px; margin-block: -20px; /* plads til logoer, der er flyttet lodret (--ds-logo-y) */
  -webkit-mask-image: linear-gradient(90deg, transparent 3%, #000 40%, #000 60%, transparent 97%);
  mask-image: linear-gradient(90deg, transparent 3%, #000 40%, #000 60%, transparent 97%);
}
.ds-logoer__spor { display: flex; width: max-content; animation: ds-logoer 40s linear infinite; }
.ds-logoer__baand:hover .ds-logoer__spor { animation-play-state: paused; }
.ds-logoer__raekke { display: flex; align-items: center; gap: 48px; margin: 0; padding: 0 48px 0 0; list-style: none; }
.ds-logoer__raekke li { flex: none; margin: 0; }
/* Størrelsen pr. logo beregnes i ds-logoer.php ud fra formatet, så brede og smalle logoer fylder optisk ens */
.ds-logoer__raekke img { display: block; width: var(--ds-logo-b, auto); height: var(--ds-logo-h, auto); max-width: none; filter: grayscale(1); opacity: .45; transform: translateY(calc(var(--ds-logo-y, 0) * 100%)); }
@keyframes ds-logoer { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .ds-logoer__spor { width: auto; justify-content: center; animation: none; }
  .ds-logoer__raekke { flex-wrap: wrap; justify-content: center; padding: 0; }
  .ds-logoer__raekke[aria-hidden="true"] { display: none; }
  .ds-logoer__gentag { display: none; }
  .ds-logoer__baand { -webkit-mask-image: none; mask-image: none; }
}

@media (max-width: 1023px) {
  .ds-mosaik__gitter { grid-template-columns: minmax(0, 1fr); }
  .ds-mosaik__fliser { grid-template-rows: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-miniflise { aspect-ratio: 384 / 278; }
}
@media (max-width: 767px) {
  .ds-hakbillede--hak-hoejre .ds-hakbillede__hak { padding: 12px 16px 0 20px; border-top-left-radius: 22px; }
  .ds-hakbillede--hak-hoejre .ds-hakbillede__hak::before,
  .ds-hakbillede--hak-hoejre .ds-hakbillede__hak::after { width: 22px; height: 22px; background: radial-gradient(circle at 0 0, transparent 21.5px, var(--ds-hak-bg) 22px); }
  .ds-hakbillede--hak-hoejre .ds-udmaerkelse { gap: 12px; }
  .ds-hakbillede--hak-hoejre .ds-udmaerkelse svg { width: 24px; height: 24px; }
  .ds-hakbillede--hak-hoejre .ds-udmaerkelse__titel { font-size: 18px; white-space: nowrap; }
  .ds-hakbillede--hak-hoejre .ds-udmaerkelse .ds-tekst { font-size: 13px; }
  .ds-mosaik__fliser { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .ds-mosaik__gitter { gap: 16px; }
  .ds-flise { aspect-ratio: 4 / 5; }
  .ds-flise__titel { font-size: 24px; bottom: 24px; }
  .ds-logoer__titel { margin-bottom: 40px; }
  .ds-logoer__raekke { gap: 32px; padding-right: 32px; }
  .ds-logoer__raekke img { width: calc(var(--ds-logo-b, 150px) * .68); height: calc(var(--ds-logo-h, 40px) * .68); }
}

/* 27. Behandlinger (template-parts/blocks/ds/ds-behandlinger.php, 2026-10-12). Figma: "Alle behandlinger" */
.ds-behandlinger__nav {
  position: sticky;
  top: var(--wp-admin--admin-bar--height, 0px);
  z-index: 40;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 68px;
  padding-block: 12px;
}
/* Når knapperne sidder fast: beige bånd i fuld bredde bag dem */
.ds-behandlinger__nav::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  z-index: -1;
  width: 100vw;
  transform: translateX(-50%);
  background: var(--ds-bg);
  box-shadow: 0 10px 24px -20px rgba(24, 33, 39, .45);
  opacity: 0;
  transition: opacity .25s ease;
  pointer-events: none;
}
.ds-behandlinger__nav.is-fast::before { opacity: 1; }
/* Flere hovedkategorier (Alle behandlinger): en række pr. gruppe med etiket foran */
.ds-behandlinger__nav--grupper { flex-direction: column; gap: 10px; }
.ds-behandlinger__navgruppe { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.ds-behandlinger__navetiket { min-width: 96px; font: 600 15px/1.2 var(--ds-font); color: var(--ds-moerk); }
.ds-behandlinger__nav--grupper .ds-behandlinger__navgruppe { gap: 10px; }
.ds-behandlinger__nav--grupper .ds-chip { padding: 8px 11px; font-size: 15px; }
.ds-chip {
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: var(--ds-pille);
  background: var(--ds-toning);
  color: var(--ds-moerk);
  font: 400 16px/1.2 var(--ds-font);
  text-decoration: none;
  transition: background-color .15s ease, color .15s ease;
}
.ds-chip:hover { background: var(--ds-toning-staerk); color: var(--ds-moerk); }
.ds-chip.is-aktiv { background: var(--ds-moerk); color: #fff; }
.ds-chip:focus-visible { outline: 2px solid var(--ds-moerk); outline-offset: 3px; }
.ds-behandlinger__kategori { scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + 96px); }
.ds-behandlinger__kategori + .ds-behandlinger__kategori { margin-top: 100px; }
.ds-behandlinger__hoved { display: flex; flex-direction: column; gap: 20px; max-width: 683px; margin-bottom: 40px; }
.ds-behandlinger__hoved > * { margin: 0; }
.ds-behandlinger__gitter { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 24px; margin: 0; padding: 0; list-style: none; }
.ds-bkort { display: flex; flex-direction: column; gap: 24px; min-width: 0; margin: 0; }
.ds-bkort__billede { aspect-ratio: 384 / 282; overflow: hidden; border-radius: var(--ds-radius-stor); background: var(--ds-toning); }
.ds-bkort__billede img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ds-bkort__billede.is-klikbar { cursor: pointer; }
.ds-bkort__billede.is-klikbar img { transition: transform .6s cubic-bezier(.16, 1, .3, 1); }
.ds-bkort__billede.is-klikbar:hover img { transform: scale(1.04); }
.ds-bkort__indhold { display: flex; flex-direction: column; gap: 12px; flex: 1 1 auto; }
.ds-behandlinger .ds-bkort__titel { margin: 0; min-height: 3em; font: 700 24px/1.5 var(--ds-font); letter-spacing: normal; text-transform: none; color: var(--ds-moerk); overflow-wrap: anywhere; }
.ds-bkort__pris { margin: 0; font: 700 16px/1.5 var(--ds-font); color: var(--ds-moerk); }
/* Første afsnit, højst tre linjer; resten står i "Læs mere"-vinduet */
.ds-behandlinger .ds-bkort__tekst { max-height: 4.5em; margin: 0; overflow: hidden; color: var(--ds-daempet); font: 400 16px/1.5 var(--ds-font); }
.ds-bkort__knapper { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: auto; padding-top: 12px; }
@media (max-width: 1023px) {
  .ds-behandlinger__gitter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  /* Mobil: knapperne på én linje, der kan swipes */
  .ds-behandlinger__nav {
    flex-wrap: nowrap;
    gap: 8px;
    margin: 0 calc(-1 * var(--ds-kant)) 40px;
    padding: 10px var(--ds-kant);
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .ds-behandlinger__nav::-webkit-scrollbar { display: none; }
  .ds-behandlinger__nav .ds-chip { flex: none; }
  .ds-behandlinger__nav--grupper { flex-direction: row; gap: 16px; }
  .ds-behandlinger__navgruppe { flex-wrap: nowrap; flex: none; gap: 8px; }
  .ds-behandlinger__navetiket { min-width: 0; font-size: 14px; }
  /* Rækken kan scrolles sidelæns, så båndet sidder på selve rækken (ellers scroller det med ud) */
  .ds-behandlinger__nav::before { display: none; }
  .ds-behandlinger__nav { transition: background-color .25s ease, box-shadow .25s ease; }
  .ds-behandlinger__nav.is-fast { background: var(--ds-bg); box-shadow: 0 10px 24px -20px rgba(24, 33, 39, .45); }
  .ds-chip { font-size: 14px; }
  .ds-behandlinger__kategori + .ds-behandlinger__kategori { margin-top: 64px; }
  .ds-behandlinger__gitter { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .ds-behandlinger .ds-bkort__titel { min-height: 0; font-size: 20px; }
  .ds-bkort { gap: 16px; }
  .ds-bkort__knapper { gap: 12px; }
}

/* 28. Bevægelse (2026-10-12, fra Claude Design-demoen): scroll-effekterne står i design.js.
   Pilen i knapper skubber sig lidt i sin retning ved hover. */
.ds-knap svg { transition: transform .35s cubic-bezier(.16, 1, .3, 1); }
.ds-knap:hover svg { transform: translate(2px, -2px); }
a.ds-knap[href^="#"]:hover svg { transform: translateY(2px); }
@media (prefers-reduced-motion: reduce) {
  .ds-knap svg { transition: none; }
}
/* H1 deles i ord til indlæsningseffekten (design.js) */
.ds-ord { display: inline-block; }

/* 29. "Læs mere"-vinduet for behandlinger (design.js), som i Claude Design-demoen */
html.ds-modal-aaben { overflow: hidden; }
.ds-bmodal {
  --ease: cubic-bezier(.16, 1, .3, 1);
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(24, 33, 39, 0);
  -webkit-backdrop-filter: blur(0);
  backdrop-filter: blur(0);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .5s ease, background .5s ease, backdrop-filter .6s ease, -webkit-backdrop-filter .6s ease, visibility 0s linear .6s;
  font-family: var(--ds-font);
  color: var(--ds-moerk);
}
.ds-bmodal.is-aaben {
  background: rgba(24, 33, 39, .22);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}
.ds-bmodal__panel {
  position: relative;
  display: flex;
  gap: 40px;
  width: 998px;
  height: min(859px, calc(100dvh - 40px)); /* aldrig højere end skærmen, så bunden med Book-knappen kan ses */
  flex-shrink: 0;
  padding: 0 40px 0 0;
  overflow: hidden;
  border-radius: 30px;
  background: var(--ds-bg);
  box-shadow: 0 40px 80px -32px rgba(24, 33, 39, .45);
  transform: translateY(48px) scale(.96);
  transition: transform .9s var(--ease);
}
.ds-bmodal.is-aaben .ds-bmodal__panel { transform: none; }
.ds-bmodal__billede { position: relative; width: 486px; flex-shrink: 0; overflow: hidden; background: var(--ds-toning); }
.ds-bmodal__billedind { position: absolute; inset: 0; transform: scale(1.12); transition: transform 1.6s var(--ease); }
.ds-bmodal.is-aaben .ds-bmodal__billedind { transform: none; }
.ds-bmodal__billedind img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ds-bmodal__luk {
  position: absolute;
  top: 20px;
  left: 20px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: var(--ds-pille);
  background: rgba(255, 255, 255, .92);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: var(--ds-moerk);
  cursor: pointer;
  transition: background .3s ease, transform .5s var(--ease);
}
.ds-bmodal__luk:hover { background: #fff; transform: rotate(90deg); }
.ds-bmodal__luk:active { transform: rotate(90deg) scale(.92); }
.ds-bmodal__luk:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.ds-bmodal__krop {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  gap: 40px;
  min-width: 0;
  padding: 40px 0 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}
/* Delene kommer ét ad gangen ved åbning; ved lukning forsvinder de samtidig */
.ds-bmodal__del {
  align-self: stretch;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .6s ease, transform .9s var(--ease);
}
.ds-bmodal.is-aaben .ds-bmodal__del {
  opacity: 1;
  transform: none;
  transition-delay: calc(.18s + var(--i, 0) * .07s);
}
.ds-bmodal__titel { margin: 0 0 24px; font: 400 24px/1.5 var(--ds-font-titel); color: var(--ds-moerk); }
.ds-bmodal__tekst, .ds-bmodal__punkter, .ds-bmodal__underoverskrift { margin: 0 0 16px; font: 400 16px/1.5 var(--ds-font); color: var(--ds-daempet); }
.ds-bmodal__del > :last-child { margin-bottom: 0; }
.ds-bmodal__underoverskrift { margin-bottom: 4px; font-weight: 700; color: var(--ds-moerk); }
.ds-bmodal__punkter { padding-left: 20px; }
.ds-bmodal__tid { display: flex; align-items: flex-start; gap: 12px; }
.ds-bmodal__tid svg { width: 24px; height: 24px; flex: none; }
.ds-bmodal__tid div { display: flex; flex-direction: column; gap: 4px; font: 400 16px/1.5 var(--ds-font); color: var(--ds-daempet); }
.ds-bmodal__tid strong { font-weight: 700; color: var(--ds-moerk); }
.ds-bmodal__note { font-size: 14px; }
.ds-bmodal__label { margin: 0 0 24px; font: 700 16px/1.5 var(--ds-font); color: var(--ds-moerk); }
.ds-bmodal__liste { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ds-bmodal__liste li { display: inline-flex; align-items: center; gap: 8px; font: 400 16px/1.5 var(--ds-font); color: var(--ds-daempet); }
.ds-bmodal__liste svg { width: 16px; height: 16px; flex: none; color: var(--ds-moerk); }
.ds-bmodal__liste .ds-bmodal__listetitel { flex-basis: 100%; margin-top: 4px; font-weight: 700; color: var(--ds-moerk); } /* fx "Ansigtsbehandling:" i Top til Tå */
.ds-bmodal__obs { display: flex; flex-direction: column; gap: 15px; padding: 20px; border-radius: 12px; background: rgba(24, 33, 39, .04); }
.ds-bmodal__obs p { margin: 0; font: 400 16px/1.5 var(--ds-font); color: var(--ds-daempet); }
.ds-bmodal__obs .ds-bmodal__obstitel { display: flex; align-items: center; gap: 12px; font-weight: 700; color: var(--ds-moerk); }
.ds-bmodal__obstitel svg { width: 16px; height: 16px; flex: none; }
.ds-bmodal__bund {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: auto;
  padding: 24px 0 32px;
  border-top: 1px solid rgba(24, 33, 39, .12);
  /* Pris og Book-knap bliver i bunden af vinduet, mens teksten over dem ruller */
  position: sticky;
  bottom: 0;
  z-index: 1;
  background: var(--ds-bg);
}
.ds-bmodal__bund > div { display: flex; flex-direction: column; gap: 4px; font: 400 16px/1.5 var(--ds-font); color: var(--ds-daempet); }
.ds-bmodal__bund strong { color: var(--ds-moerk); }
/* Tablet og mobil: kortet bliver én kolonne og kan scrolles */
@media (max-width: 1023px) {
  .ds-bmodal { padding: 12px; }
  .ds-bmodal__panel { flex-direction: column; gap: 0; width: min(640px, 100%); height: auto; max-height: calc(100dvh - 24px); padding: 0; overflow-y: auto; border-radius: 24px; }
  .ds-bmodal__billede { width: 100%; aspect-ratio: 4 / 3; }
  .ds-bmodal__krop { flex: none; gap: 28px; padding: 24px 24px 0; overflow: visible; }
  .ds-bmodal__bund { padding: 16px 0 24px; flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .ds-bmodal, .ds-bmodal__panel, .ds-bmodal__billedind, .ds-bmodal__del, .ds-bmodal__luk { transition: none; }
}
/* Chat-knappen (Polly) ligger over alt; den skjules, mens vinduet er åbent */
html.ds-modal-aaben [id^="polly"] { visibility: hidden !important; }
/* "Vælg behandling": overskriften står tæt på Gecko-bookingen lige under */
.ds-hero--tekst:has(+ .wp-block-group #bookingFrame) { padding-bottom: 16px; }
.ds-hero--tekst + .wp-block-group:has(#bookingFrame) > div { margin-top: 0 !important; }

/* 30. Galleri (template-parts/blocks/ds/ds-galleri.php, 2026-10-12) */
.ds-galleri__gitter { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.ds-galleri__element { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--ds-radius-stor); background: var(--ds-toning); }
.ds-galleri__element a { display: block; width: 100%; height: 100%; cursor: zoom-in; }
.ds-galleri__element img,
.ds-galleri__element video { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.16, 1, .3, 1); }
.ds-galleri__element a:hover img { transform: scale(1.04); }
.ds-galleri__element a:focus-visible { outline: 2px solid var(--ds-moerk); outline-offset: -4px; border-radius: var(--ds-radius-stor); }
/* Videoer fylder to kolonner; højden følger rækkens billeder */
.ds-galleri__element--video { position: relative; grid-column: span 2; aspect-ratio: auto; min-height: 100%; }
.ds-galleri__element--video video { position: absolute; inset: 0; }
@media (max-width: 1023px) {
  .ds-galleri__gitter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-galleri__element--video { aspect-ratio: 8 / 5; }
}
@media (max-width: 767px) { .ds-galleri__gitter { gap: 12px; } .ds-galleri__element { border-radius: 18px; } }
/* Billedet vist stort */
.ds-lysboks { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 40px; background: rgba(24, 33, 39, 0); -webkit-backdrop-filter: blur(0); backdrop-filter: blur(0); opacity: 0; visibility: hidden; transition: opacity .4s ease, background .4s ease, backdrop-filter .5s ease, -webkit-backdrop-filter .5s ease, visibility 0s linear .5s; }
.ds-lysboks.is-aaben { background: rgba(24, 33, 39, .55); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); opacity: 1; visibility: visible; transition-delay: 0s; }
.ds-lysboks img { max-width: 100%; max-height: 100%; border-radius: var(--ds-radius-stor); box-shadow: 0 40px 80px -32px rgba(24, 33, 39, .6); transform: translateY(32px) scale(.96); transition: transform .8s cubic-bezier(.16, 1, .3, 1); }
.ds-lysboks.is-aaben img { transform: none; }
.ds-lysboks .ds-bmodal__luk { position: fixed; top: 20px; right: 20px; left: auto; }
html.ds-modal-aaben .ds-lysboks ~ [id^="polly"] { visibility: hidden; }
@media (max-width: 767px) { .ds-lysboks { padding: 16px; } .ds-lysboks img { border-radius: 18px; } }
@media (prefers-reduced-motion: reduce) { .ds-lysboks, .ds-lysboks img { transition: none; } }

/* 31. Afdelingsknapper (template-parts/blocks/ds/ds-sektionsnav.php, 2026-10-12): sidder fast i toppen */
.ds-sektionsnav {
  position: sticky;
  top: var(--wp-admin--admin-bar--height, 0px);
  z-index: 40;
  padding-block: 12px;
  background: transparent;
  transition: background-color .25s ease, box-shadow .25s ease;
}
.ds-sektionsnav.is-fast { background: var(--ds-bg); box-shadow: 0 10px 24px -20px rgba(24, 33, 39, .45); }
.ds-sektionsnav__raekke { display: flex; gap: 12px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.ds-sektionsnav__raekke::-webkit-scrollbar { display: none; }
.ds-sektionsnav .ds-chip { flex: none; }
@media (max-width: 767px) {
  .ds-sektionsnav__raekke { gap: 8px; margin-inline: calc(-1 * var(--ds-kant)); padding-inline: var(--ds-kant); }
  .ds-sektionsnav .ds-chip { font-size: 14px; }
}

/* 32. Citater i tekstblokke (fx Anne Sofie på Skolens historie) */
body.ds-ny .ds-indhold blockquote { position: relative; margin: 0; padding: 0; border: 0; background: none; font-style: normal; quotes: none; }
body.ds-ny .ds-indhold blockquote::before {
  content: "\201C";
  display: block;
  height: 44px;
  margin-bottom: 8px;
  font: 400 96px/1 var(--ds-font-titel);
  color: var(--ds-moerk);
  opacity: .18;
}
body.ds-ny .ds-indhold blockquote p { margin: 0 0 16px; font: 400 17px/1.65 var(--ds-font); color: var(--ds-daempet); }
body.ds-ny .ds-indhold blockquote p:first-child { font: 400 26px/1.4 var(--ds-font-titel); color: var(--ds-moerk); }
body.ds-ny .ds-indhold blockquote p:last-child { margin-bottom: 0; }
/* Navnet under citatet som underskrift */
body.ds-ny .ds-indhold blockquote + p { display: flex; align-items: center; gap: 12px; margin-top: 28px; color: var(--ds-moerk); }
body.ds-ny .ds-indhold blockquote + p::before { content: ""; width: 32px; height: 1px; background: var(--ds-moerk); }
@media (max-width: 767px) {
  body.ds-ny .ds-indhold blockquote p:first-child { font-size: 22px; }
}

/* Hero i bredformat: teksten øverst, billedet i fuld bredde under (panorama) */
.ds-hero--bred .ds-hero__tekst { max-width: 792px; margin-bottom: 56px; }
.ds-hero--bred .ds-hakbillede { --ds-format: 1200 / 505; --ds-format-mobil: 1 / 1; }

/* 33. Afdelinger (template-parts/blocks/ds/ds-afdelinger.php, 2026-10-12) */
.ds-afdelinger__gitter { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.ds-afdeling { display: flex; flex-direction: column; margin: 0; overflow: hidden; border-radius: var(--ds-radius-stor); background: var(--ds-flade); }
.ds-afdeling__billede { aspect-ratio: 16 / 10; overflow: hidden; background: var(--ds-toning); }
.ds-afdeling__billede img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.16, 1, .3, 1); }
.ds-afdeling:hover .ds-afdeling__billede img { transform: scale(1.04); }
.ds-afdeling__indhold { display: flex; flex: 1 1 auto; flex-direction: column; gap: 20px; padding: 28px; }
.ds-afdelinger .ds-afdeling__navn { margin: 0; font: 400 30px/1.2 var(--ds-font-titel); letter-spacing: normal; text-transform: none; color: var(--ds-moerk); }
.ds-afdeling__adresse { display: flex; gap: 10px; margin: 0; font: 400 16px/1.5 var(--ds-font); color: var(--ds-moerk); }
.ds-afdeling__adresse svg { width: 20px; height: 20px; flex: none; margin-top: 2px; }
.ds-afdeling__adresse em { display: block; font-style: normal; font-size: 14px; color: var(--ds-daempet); }
.ds-afdeling__tider { padding-top: 20px; border-top: 1px solid var(--ds-streg); }
.ds-afdeling__label { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font: 600 14px/1.2 var(--ds-font); color: var(--ds-moerk); }
.ds-afdeling__label svg { width: 20px; height: 20px; }
.ds-afdeling__tider dl { margin: 0; }
.ds-afdeling__dag { display: flex; justify-content: space-between; gap: 12px; margin: 0 -10px; padding: 6px 10px; border-radius: 10px; font: 400 15px/1.4 var(--ds-font); }
.ds-afdeling__dag dt { color: var(--ds-moerk); font-weight: 500; }
.ds-afdeling__dag dd { margin: 0; text-align: right; color: var(--ds-daempet); font-variant-numeric: tabular-nums; }
.ds-afdeling__dag small { display: block; font-size: 12px; }
.ds-afdeling__dag.is-lukket dt, .ds-afdeling__dag.is-lukket dd { color: var(--ds-daempet); font-weight: 400; } /* fuld dæmpet farve: kontrast 5,3:1 */
/* I dag (sat af design.js) */
.ds-afdeling__dag.is-idag { background: var(--ds-toning-svag); }
.ds-afdeling__dag.is-idag dt::after { content: " · i dag"; font-weight: 400; color: var(--ds-daempet); }
.ds-afdeling__dag.is-idag dd { color: var(--ds-moerk); font-weight: 600; }
.ds-afdeling__knap { margin-top: auto; }
@media (max-width: 1023px) { .ds-afdelinger__gitter { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Én afdeling (bysiderne): ét bredt kort, adresse til venstre og åbningstider til højre */
.ds-afdelinger--enkelt .ds-afdelinger__gitter { grid-template-columns: minmax(0, 1fr); }
.ds-afdelinger--enkelt .ds-afdeling__indhold {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas: "navn tider" "adresse tider" "knap tider";
  grid-template-rows: auto auto 1fr;
  gap: 20px 64px;
  padding: 40px;
}
.ds-afdelinger--enkelt .ds-afdeling__navn { grid-area: navn; }
.ds-afdelinger--enkelt .ds-afdeling__adresse { grid-area: adresse; font-size: 18px; }
.ds-afdelinger--enkelt .ds-afdeling__adresse em { font-size: 15px; }
.ds-afdelinger--enkelt .ds-afdeling__knap { grid-area: knap; align-self: end; }
.ds-afdelinger--enkelt .ds-afdeling__tider { grid-area: tider; padding: 0 0 0 64px; border-top: 0; border-left: 1px solid var(--ds-streg); }
@media (max-width: 767px) {
  .ds-afdelinger--enkelt .ds-afdeling__indhold { grid-template-columns: minmax(0, 1fr); grid-template-areas: "navn" "adresse" "tider" "knap"; padding: 24px; }
  .ds-afdelinger--enkelt .ds-afdeling__tider { padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--ds-streg); }
}
@media (max-width: 767px) {
  .ds-afdelinger__gitter { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .ds-afdeling__indhold { padding: 22px; }
  .ds-afdelinger .ds-afdeling__navn { font-size: 26px; }
}

/* 34. Mega-menu (inc/ds-megamenu.php, 2026-10-12): pillen bevares, panelerne er brede */
.ds-nav__liste--mega > li { position: static; }
.ds-nav__liste--mega > li.ds-mega__punkt--kompakt { position: relative; }
.ds-header__indre { position: relative; }
.ds-mega__top {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 12px 16px;
  border: 0;
  border-radius: var(--ds-pille);
  background: none;
  font: 400 16px/1.2 var(--ds-font);
  color: #171a1c;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s ease;
}
a.ds-mega__top { display: block; }
.ds-mega__top:hover, .ds-mega__top[aria-expanded="true"] { background: var(--ds-toning-svag); color: #171a1c; }
.ds-mega__punkt.is-aktuel > .ds-mega__top { background: var(--ds-toning); font-weight: 600; }
.ds-mega__top:focus-visible { outline: 2px solid var(--ds-moerk); outline-offset: 2px; }
.ds-mega__chevron { width: 16px; height: 16px; transition: transform .2s ease; }
.ds-mega__top[aria-expanded="true"] .ds-mega__chevron { transform: rotate(180deg); }

/* Panelet: overlay under headeren, skubber ikke indholdet */
.ds-mega {
  position: absolute;
  top: calc(100% + 16px);
  left: 0;
  right: 0;
  z-index: 60;
  max-width: 1248px;
  margin: 0 auto;
  border: 1px solid var(--ds-streg);
  border-radius: 22px;
  background: var(--ds-flade);
  box-shadow: 0 24px 60px -24px rgba(24, 33, 39, .28);
}
.ds-mega[hidden] { display: none; }
/* Åbne-animationen køres af design.js (Web Animations), så panelet altid ender helt synligt */
.ds-mega__indre { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 0; padding: 28px; }
.ds-mega__kolonne { padding: 4px 28px; border-left: 1px solid var(--ds-streg); }
.ds-mega__kolonne:first-child { padding-left: 16px; border-left: 0; }
.ds-mega__kolonne--primaer { min-width: 300px; }
.ds-mega__overskrift { display: block; margin: 0 0 16px; font: 600 12px/1.2 var(--ds-font); letter-spacing: .1em; text-transform: uppercase; color: var(--ds-daempet); text-decoration: none; }
a.ds-mega__overskrift--link:hover { color: var(--ds-moerk); }
.ds-mega__liste { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 0; list-style: none; }
.ds-mega__liste li { margin: 0; }
.ds-mega__link, .ds-mega__stor, .ds-mega__under, .ds-mega__alle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ds-moerk);
  text-decoration: none;
}
.ds-mega__link { min-height: 40px; font: 400 17px/1.3 var(--ds-font); }
.ds-mega__link svg, .ds-mega__stor svg, .ds-mega__alle svg { width: 14px; height: 14px; flex: none; opacity: .55; transition: transform .2s ease, opacity .2s ease; }
.ds-mega__link:hover svg, .ds-mega__stor:hover svg, .ds-mega__alle:hover svg { transform: translateX(3px); opacity: 1; }
.ds-mega__link:hover, .ds-mega__stor:hover, .ds-mega__under:hover, .ds-mega__alle:hover { color: var(--ds-moerk); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(24, 33, 39, .3); }
.ds-mega__kolonne--primaer .ds-mega__liste { gap: 18px; }
.ds-mega__stor { font: 400 26px/1.15 var(--ds-font-titel); }
.ds-mega__under { display: flex; margin-top: 6px; font: 400 15px/1.3 var(--ds-font); color: var(--ds-daempet); }
.ds-mega__link[aria-current="page"], .ds-mega__stor[aria-current="page"], .ds-mega__under[aria-current="page"] { font-weight: 600; }
.ds-mega__feature { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-left: 12px; padding: 28px; border-radius: 18px; background: var(--ds-bg); }
.ds-mega__feature-titel { margin: 0; font: 400 30px/1.15 var(--ds-font-titel); color: var(--ds-moerk); }
.ds-mega__feature-tekst { margin: 0 0 8px; font: 400 16px/1.5 var(--ds-font); color: var(--ds-daempet); }
.ds-mega__feature .ds-knap { white-space: nowrap; }
.ds-mega__alle { margin-top: auto; padding-top: 16px; font: 500 14px/1.3 var(--ds-font); color: var(--ds-daempet); }
/* Kompakt dropdown (få underpunkter) */
.ds-mega--kompakt { left: 0; right: auto; min-width: 260px; }
.ds-mega--kompakt .ds-mega__indre { display: block; padding: 12px; }
.ds-mega--kompakt .ds-mega__link { display: flex; padding: 0 12px; border-radius: 12px; font-size: 16px; }
.ds-mega--kompakt .ds-mega__link:hover { background: var(--ds-toning-svag); text-decoration: none; }
.ds-mega--kompakt .ds-mega__alle-li { margin-top: 6px; padding: 8px 12px 0; border-top: 1px solid var(--ds-streg); }
.ds-mega--kompakt .ds-mega__alle { padding: 0; }

@media (max-width: 1179px) {
  .ds-nav__liste--mega { gap: 2px; }
  .ds-nav__liste--mega > li { position: static; }
  .ds-mega__top { display: flex; justify-content: space-between; width: 100%; min-height: 48px; padding: 12px 14px; border-radius: 14px; font-size: 17px; font-weight: 600; }
  .ds-mega, .ds-mega--kompakt { position: static; min-width: 0; margin: 0; border: 0; border-radius: 0; box-shadow: none; background: none; }
  .ds-mega__indre, .ds-mega--kompakt .ds-mega__indre { display: flex; flex-direction: column; gap: 16px; padding: 4px 14px 16px; }
  .ds-mega__kolonne, .ds-mega__kolonne:first-child { min-width: 0; padding: 0; border: 0; }
  .ds-mega__overskrift { margin-bottom: 6px; }
  a.ds-mega__overskrift--link { display: flex; align-items: center; min-height: 44px; margin-bottom: 0; }
  .ds-mega__liste, .ds-mega__kolonne--primaer .ds-mega__liste { gap: 0; }
  .ds-mega__link, .ds-mega--kompakt .ds-mega__link { min-height: 44px; padding: 0; font-size: 16px; }
  .ds-mega__stor { min-height: 44px; font-size: 20px; }
  .ds-mega__under { min-height: 40px; margin: 0; padding-left: 14px; }
  .ds-mega__feature { margin: 0; padding: 18px; }
  .ds-mega__feature-titel { font-size: 22px; }
  .ds-mega__alle { min-height: 44px; padding-top: 0; }
  .ds-mega--kompakt .ds-mega__alle-li { padding: 4px 0 0; }
}

/* 35. Sammenligningstabel (template-parts/blocks/table/table.php på sider i nyt design, 2026-10-12).
   Indholdet er stadig en TablePress-tabel; Font Awesome-flueben/kryds byttes til .ds-tabel__ja/__nej i skabelonen. */
.ds-tabel__hoved { max-width: 720px; margin: 0 auto 40px; text-align: center; }
.ds-tabel__tekst { margin: 12px 0 0; font: 400 18px/1.5 var(--ds-font); color: var(--ds-daempet); }
.ds-tabel__ramme {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  background: var(--ds-flade);
  border: 1px solid var(--ds-streg);
  border-radius: var(--ds-radius-stor);
  padding: 12px 16px 16px;
}
.ds-tabel__ramme:focus-visible { outline: 2px solid var(--ds-moerk); outline-offset: 3px; }
.ds-tabel .tablepress {
  --text-color: var(--ds-moerk);
  --head-bg-color: transparent;
  --odd-bg-color: transparent;
  --even-bg-color: transparent;
  --hover-bg-color: var(--ds-bg);
  --border-color: var(--ds-streg);
  --padding: 14px 8px;
  margin: 0;
  min-width: 900px;
  font: 400 15px/1.35 var(--ds-font);
}
.ds-tabel .tablepress > * > tr > * { text-align: center; vertical-align: middle; }
.ds-tabel .tablepress > * > tr > .column-1 {
  position: sticky; left: 0; z-index: 1;
  min-width: 176px; padding-left: 4px;
  text-align: left; background: var(--ds-flade);
}
.ds-tabel .tablepress .column-1 strong { font-weight: 600; }
/* Behandlingsnavne */
.ds-tabel .tablepress > thead > tr > th { padding-top: 22px; padding-bottom: 6px; font: 400 20px/1.2 var(--ds-font-titel); white-space: nowrap; }
.ds-tabel .tablepress .box-item, .ds-tabel .tablepress .text { display: contents; }
.ds-tabel__plus { margin-left: 1px; font: 500 .85em/1 var(--ds-font); vertical-align: .12em; }
/* Typen (Opfriskende, Velvære …) under navnet */
.ds-tabel .tablepress > tbody > tr.row-2 > * { padding-top: 0; padding-bottom: 18px; border-top: 0; font: 500 12px/1.3 var(--ds-font); letter-spacing: .06em; text-transform: uppercase; color: var(--ds-daempet); }
.ds-tabel .tablepress > tbody > tr.row-2:hover > * { background: transparent; }
.ds-tabel .tablepress > tbody > tr:hover > .column-1 { background: var(--ds-bg); }
/* Tilvalg og antal (+ 50 DKK, 1 stk.) */
.ds-tabel .tablepress > tbody > tr:not(.row-2) > td:not(.column-1) { font-size: 14px; color: var(--ds-daempet); white-space: nowrap; }
.ds-tabel__ja, .ds-tabel__nej { display: inline-block; vertical-align: middle; }
.ds-tabel__ja {
  width: 26px; height: 26px; border-radius: 50%;
  background: var(--ds-toning) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 10.5 8.5 14 15 6.5' stroke='%23182127' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
}
.ds-tabel__nej { width: 12px; height: 2px; border-radius: 2px; background: var(--ds-streg); }
.ds-tabel .tablepress + .tablepress-table-description, .ds-tabel .tablepress ~ a { display: inline-block; margin-top: 8px; font-size: 13px; color: var(--ds-daempet); }
@media (max-width: 767px) {
  .ds-tabel__hoved { margin-bottom: 24px; }
  .ds-tabel__tekst { font-size: 16px; }
  .ds-tabel__ramme { margin-inline: calc(var(--ds-kant) * -1); border-radius: 0; border-inline: 0; padding: 4px 0 8px; }
  .ds-tabel .tablepress { --padding: 12px 8px; font-size: 14px; }
  .ds-tabel .tablepress > * > tr > .column-1 { min-width: 150px; padding-left: var(--ds-kant); box-shadow: 1px 0 0 var(--ds-streg); }
  .ds-tabel .tablepress > thead > tr > th { font-size: 18px; }
}

/* 36. Tilgængelighed (Lighthouse 12/10-2026) */
.ds-footer__nyhedsbrev .bs-nyhedsbrev__note a { color: var(--ds-moerk); text-decoration: underline; text-underline-offset: 2px; }

/* 37. "Vigtigt ved booking" på behandlingskategorier (feltet booking_info_kategori, 14/10-2026).
   Samme bredde som kategoriens tekst og i sitets varme toner, så den hører til overskriften. */
.ds-bookinginfo { max-width: 760px; margin: 0 0 40px; padding: 24px 28px; border-radius: var(--ds-radius); background: #efe6df; font: 400 16px/1.6 var(--ds-font); color: var(--ds-moerk); }
.ds-behandlinger__hoved + .ds-bookinginfo, .ds-behandlinger__hoved + .ds-bookingrad { margin-top: -8px; }
.ds-bookinginfo p { margin: 0 0 10px; }
.ds-bookinginfo p:last-child { margin-bottom: 0; }
.ds-bookinginfo .ds-bookinginfo__titel { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; font: 400 22px/1.3 var(--ds-font-titel); }
.ds-bookinginfo__titel svg { flex: none; box-sizing: content-box; width: 16px; height: 16px; padding: 7px; border-radius: 50%; background: var(--ds-moerk); color: #fff; }
.ds-bookinginfo--modal { max-width: none; margin: 0; padding: 20px 22px; border-radius: 16px; font-size: 15px; }
.ds-bookinginfo--modal .ds-bookinginfo__titel { font-size: 19px; }
@media (max-width: 767px) { .ds-bookinginfo { margin-bottom: 28px; padding: 20px; font-size: 15px; } .ds-bookinginfo .ds-bookinginfo__titel { font-size: 19px; } }
/* Referencebilleder (feltet booking_ref_kategori): små miniaturer i forlængelse af boksen.
   Klik viser billedet stort (lysboksen i design.js). */
.ds-bookingrad--ref { display: grid; grid-template-columns: minmax(0, 760px) auto; gap: 24px; align-items: start; margin: 0 0 40px; }
.ds-bookingrad--ref .ds-bookinginfo { margin: 0; }
.ds-bookingref { display: grid; grid-auto-flow: column; grid-auto-columns: 190px; gap: 16px; }
.ds-bookingref__kort { margin: 0; }
.ds-bookingref__titel { margin: 0 0 8px; font: 600 15px/1.3 var(--ds-font); color: var(--ds-moerk); }
.ds-bookingref__billede { position: relative; display: block; overflow: hidden; border-radius: 16px; background: var(--ds-toning); cursor: zoom-in; }
.ds-bookingref__billede img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .5s cubic-bezier(.16, 1, .3, 1); }
.ds-bookingref__billede::after {
  content: ""; position: absolute; right: 8px; bottom: 8px; width: 30px; height: 30px; border-radius: 50%;
  background: rgba(255, 255, 255, .92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23182127' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center / 14px no-repeat;
  box-shadow: 0 2px 8px rgba(24, 33, 39, .18); transition: transform .3s ease;
}
.ds-bookingref__billede:hover img { transform: scale(1.04); }
.ds-bookingref__billede:hover::after { transform: scale(1.08); }
.ds-bookingref__billede:focus-visible { outline: 2px solid var(--ds-moerk); outline-offset: 3px; }
.ds-bookingref__hjaelp { display: block; margin: 6px 0 0; font: 400 13px/1.3 var(--ds-font); color: var(--ds-daempet); }
@media (min-width: 2000px) { .ds-bookingref { grid-auto-columns: 240px; } }
@media (max-width: 1179px) {
  .ds-bookingrad--ref { grid-template-columns: minmax(0, 1fr); }
  .ds-bookingrad--ref .ds-bookinginfo { max-width: none; }
  .ds-bookingref { grid-auto-columns: minmax(0, 220px); }
}
@media (max-width: 479px) { .ds-bookingref { grid-auto-columns: minmax(0, 1fr); } .ds-bookingrad--ref { margin-bottom: 28px; } }

/* 38. Vandmærke på medarbejderbillederne (ds-team.php, 15/10-2026).
   Logoet i hvidt, gennemsigtigt, i nederste højre hjørne af hvert kort. Lagt ovenpå
   med CSS: fotoene selv er urørte. Skyggen gør det læsbart på lyst tøj. */
.ds-teamkort__billede::after {
  content: "";
  position: absolute;
  right: 12px;
  bottom: 12px;
  width: 64px;
  aspect-ratio: 1;
  background: url("../img/ds/vandmaerke.webp") center / contain no-repeat;
  opacity: .9;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .45));
  pointer-events: none;
}
@media (max-width: 767px) { .ds-teamkort__billede::after { right: 8px; bottom: 8px; width: 44px; } }

/* 39. Side med kun nyhedsbrevet (tpl-kun-nyhedsbrev.php, 19/10-2026).
   Boksen har footerens udseende; her står den alene, centreret på skærmen, med logoet under. */
.ds-kun-nyhedsbrev { margin: 0; background: var(--ds-bg); }
.ds-kun-nb {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 16px 40px;
  box-sizing: border-box;
}
.ds-kun-nb__boks { width: 100%; max-width: 560px; }
.ds-kun-nb__logo { display: block; }
.ds-kun-nb__logo img { display: block; width: 180px; height: auto; }
/* Pollys HTML skrives af en anonym wp_footer-funktion; scriptet er fjernet i skabelonen, så resterne skjules her */
.ds-kun-nyhedsbrev #polly-popup, .ds-kun-nyhedsbrev #polly-launcher, .ds-kun-nyhedsbrev #polly-window, .ds-kun-nyhedsbrev #polly-lightbox { display: none !important; }
@media (max-width: 767px) {
  .ds-kun-nb { justify-content: flex-start; padding-top: 40px; }
  .ds-kun-nb__boks { padding-bottom: 32px; margin-bottom: 32px; }
  .ds-kun-nb__logo img { width: 150px; }
}
