@font-face{font-family:"Rubik";src:url(/static/fonts/rubik-800.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"Rubik";src:url(/static/fonts/rubik-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Outfit";src:url(/static/fonts/outfit-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Outfit";src:url(/static/fonts/outfit-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(/static/fonts/ibm-plex-mono-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
/* hyldeblomstsaft.dk – "fra busk til flaske"
   Hyldebærviolet og citron på kølig lysegrå og kridhvid. Fire etapefarver: Pluk (blad), Lav (citron), Gem (petrol), Brug (violet).
   Mobil først. Klassenavne: præfiks qv-. */

:root {
  --qv-berry: #5A1A8C;
  --qv-berry-deep: #2E0C4D;
  --qv-lemon: #FFE03D;
  --qv-lemon-hover: #FFEB7A;
  --qv-leaf: #1E7A3C;
  --qv-petrol: #0A6E8A;
  --qv-bg: #EDF0F3;
  --qv-paper: #FFFFFF;
  --qv-line: #D5DAE1;
  --qv-ink: #1B1526;
  --qv-muted: #4E4A5C;
  --qv-lilac: #E6DCF5;
  --qv-r: 12px;
  --qv-r-big: 18px;
  --qv-max: 1080px;
  --qv-gut: 1.25rem;
  --qv-head: "Rubik", "Trebuchet MS", Arial, sans-serif;
  --qv-text: "Outfit", "Segoe UI", Arial, sans-serif;
  --qv-mono: "IBM Plex Mono", Consolas, "Courier New", monospace;
  --qv-tone: var(--qv-berry);
  --qv-tone-on: #FFFFFF;
  --qv-tone-soft: #EFE7F8;
  --qv-tone-text: var(--qv-berry);
}

/* Etapefarver */
.qv-tone-pluk { --qv-tone: #1E7A3C; --qv-tone-on: #FFFFFF; --qv-tone-soft: #E3F3E8; --qv-tone-text: #1E7A3C; }
.qv-tone-lav { --qv-tone: #FFE03D; --qv-tone-on: #1B1526; --qv-tone-soft: #FFF4B8; --qv-tone-text: #1B1526; }
.qv-tone-gem { --qv-tone: #0A6E8A; --qv-tone-on: #FFFFFF; --qv-tone-soft: #DDEFF4; --qv-tone-text: #0A6E8A; }
.qv-tone-brug { --qv-tone: #5A1A8C; --qv-tone-on: #FFFFFF; --qv-tone-soft: #EFE7F8; --qv-tone-text: #5A1A8C; }
.qv-tone-none { --qv-tone: #1B1526; --qv-tone-on: #FFFFFF; --qv-tone-soft: #E6E9EE; --qv-tone-text: #1B1526; }

/* Grundlag */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 5.5rem; }
body {
  margin: 0;
  background: var(--qv-bg);
  color: var(--qv-ink);
  font: 400 1.0625rem/1.65 var(--qv-text);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--qv-berry); }
strong, b { font-weight: 600; }
[hidden] { display: none !important; }

:focus-visible {
  outline: 3px solid var(--qv-ink);
  outline-offset: 0;
  box-shadow: 0 0 0 6px var(--qv-lemon);
}

.qv-wrap {
  width: 100%;
  max-width: calc(var(--qv-max) + 2 * var(--qv-gut));
  margin: 0 auto;
  padding: 0 var(--qv-gut);
}

.qv-skip {
  position: absolute;
  left: .75rem;
  top: -5rem;
  z-index: 100;
  padding: .6rem 1rem;
  border-radius: var(--qv-r);
  background: var(--qv-lemon);
  color: var(--qv-ink);
  font-weight: 600;
  text-decoration: none;
}
.qv-skip:focus { top: .75rem; }

/* Knapper */
.qv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 2.9rem;
  padding: .7rem 1.3rem;
  border: 2px solid transparent;
  border-radius: var(--qv-r);
  font: 600 1.02rem/1.2 var(--qv-head);
  text-decoration: none;
  cursor: pointer;
}
.qv-btn-lemon { background: var(--qv-lemon); color: var(--qv-ink); }
.qv-btn-lemon:hover { background: var(--qv-lemon-hover); }
.qv-btn-berry { background: var(--qv-berry); color: #FFFFFF; }
.qv-btn-berry:hover { background: var(--qv-berry-deep); }
.qv-btn-ghost { background: transparent; border-color: currentColor; color: inherit; }
.qv-btn-ghost:hover { background: rgba(255, 255, 255, .12); }

/* Sidehoved og burgermenu (altid burger) */
.qv-top {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--qv-paper);
  box-shadow: 0 1px 0 var(--qv-line);
}
.qv-top-row {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-height: 4rem;
}
.qv-logo { display: inline-flex; margin-right: auto; border-radius: 6px; }
.qv-logo svg { display: block; width: clamp(196px, 56vw, 290px); height: auto; }
.qv-top-calc {
  display: none;
  align-items: center;
  gap: .45rem;
  padding: .5rem .95rem;
  border-radius: 999px;
  background: var(--qv-lemon);
  color: var(--qv-ink);
  font: 600 .95rem/1.1 var(--qv-head);
  text-decoration: none;
}
.qv-top-calc:hover { background: var(--qv-lemon-hover); }
.qv-top-calc-dot { width: .6rem; height: .6rem; border-radius: 50%; background: var(--qv-berry); }

.qv-menu-box > summary { list-style: none; }
.qv-menu-box > summary::-webkit-details-marker { display: none; }
.qv-burger {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  min-height: 2.75rem;
  padding: .5rem .9rem;
  border-radius: var(--qv-r);
  background: var(--qv-berry);
  color: #FFFFFF;
  font: 600 1rem/1 var(--qv-head);
  cursor: pointer;
  user-select: none;
}
.qv-burger:hover { background: var(--qv-berry-deep); }
.qv-burger-lines { display: inline-grid; gap: 4px; }
.qv-burger-lines span {
  display: block;
  width: 18px;
  height: 2.5px;
  border-radius: 2px;
  background: var(--qv-lemon);
  transition: transform .2s ease, opacity .2s ease;
}
.qv-menu-box[open] .qv-burger-lines span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.qv-menu-box[open] .qv-burger-lines span:nth-child(2) { opacity: 0; }
.qv-menu-box[open] .qv-burger-lines span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.qv-menu-panel {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  max-height: calc(100vh - 4rem);
  overflow-y: auto;
  padding: 1.25rem 0 1.75rem;
  background: var(--qv-paper);
  border-top: 1px solid var(--qv-line);
  box-shadow: 0 28px 48px -18px rgba(27, 21, 38, .45);
}
.qv-menu-main {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.qv-menu-link {
  display: inline-block;
  padding: .55rem 1rem;
  border-radius: 999px;
  background: var(--qv-bg);
  color: var(--qv-ink);
  font: 600 1rem/1.2 var(--qv-head);
  text-decoration: none;
}
.qv-menu-link:hover { background: var(--qv-lemon); }
.qv-menu-link[aria-current="page"] { background: var(--qv-berry); color: #FFFFFF; }
.qv-menu-intro {
  margin: 1.5rem 0 .75rem;
  font: 500 .78rem/1.2 var(--qv-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--qv-muted);
}
.qv-menu-stages { display: grid; gap: 1rem; }
.qv-menu-stage { border-top: 5px solid var(--qv-tone); padding-top: .65rem; }
.qv-menu-stage-name {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 .35rem;
  font: 800 1.2rem/1.1 var(--qv-head);
}
.qv-menu-stage-nr {
  display: grid;
  place-items: center;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  background: var(--qv-tone);
  color: var(--qv-tone-on);
  font-size: .85rem;
}
.qv-menu-stage-list { list-style: none; margin: 0; padding: 0; }
.qv-menu-sub {
  display: inline-block;
  padding: .3rem 0;
  color: var(--qv-ink);
  text-decoration: none;
  border-bottom: 2px solid transparent;
}
.qv-menu-sub:hover { border-bottom-color: var(--qv-tone); }
.qv-menu-sub[aria-current="page"] { font-weight: 600; border-bottom-color: var(--qv-tone); }
.qv-menu-foot { margin: 1.25rem 0 0; font-size: .95rem; }

/* Forsidens bånd: titel, saftberegner og kort fremgangsmåde */
.qv-band {
  position: relative;
  overflow: hidden;
  padding: 2rem 0 2.75rem;
  background: var(--qv-berry);
  color: #FFFFFF;
}
.qv-band-umbel {
  position: absolute;
  right: -70px;
  top: -40px;
  width: 360px;
  height: 360px;
  color: rgba(255, 255, 255, .07);
  pointer-events: none;
}
.qv-band-grid {
  position: relative;
  display: grid;
  gap: 1.5rem;
  grid-template-areas: "text" "calc" "steps" "fig";
}
.qv-band-text { grid-area: text; min-width: 0; }
.qv-kicker {
  margin: 0;
  font: 500 .8rem/1.3 var(--qv-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--qv-lemon);
}
.qv-band-title {
  margin: .35rem 0 .6rem;
  font: 800 clamp(2.3rem, 9.4vw, 4.4rem)/.98 var(--qv-head);
  letter-spacing: -.035em;
  overflow-wrap: break-word;
}
.qv-band-lead {
  margin: 0;
  max-width: 34ch;
  font-size: 1.15rem;
  line-height: 1.5;
  color: var(--qv-lilac);
}
.qv-band-fig { grid-area: fig; position: relative; margin: 0; min-width: 0; }
.qv-band-img { display: block; width: 100%; height: auto; border-radius: var(--qv-r-big); }

/* AI-mærkning af billeder (AI-forordningen art. 50) */
.qv-ai {
  display: inline-block;
  margin-top: .4rem;
  font: 500 .75rem/1.3 var(--qv-mono);
  letter-spacing: .02em;
  color: var(--qv-muted);
}
.qv-band-fig .qv-ai,
.qv-fig .qv-ai {
  position: absolute;
  left: .6rem;
  bottom: .6rem;
  margin: 0;
  padding: .2rem .5rem;
  border-radius: 6px;
  background: var(--qv-ink);
  color: #FFFFFF;
}

/* Saftberegneren */
.qv-calc {
  grid-area: calc;
  min-width: 0;
  padding: 0 1.25rem 1.25rem;
  border-radius: var(--qv-r-big);
  background: var(--qv-paper);
  color: var(--qv-ink);
  box-shadow: 0 24px 40px -24px rgba(10, 4, 20, .6);
  scroll-margin-top: 5.5rem;
}
.qv-calc-head {
  margin: 0 -1.25rem 1.1rem;
  padding: 1rem 1.25rem .9rem;
  border-radius: var(--qv-r-big) var(--qv-r-big) 0 0;
  background: var(--qv-lemon);
}
.qv-calc-title { margin: 0; font: 800 1.6rem/1.05 var(--qv-head); letter-spacing: -.02em; }
.qv-calc-intro { margin: .3rem 0 0; font-size: .98rem; line-height: 1.45; }
.qv-calc-form { display: grid; gap: .7rem; }
.qv-calc-label {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .2rem .75rem;
  font-weight: 600;
}
.qv-calc-hint { font: 500 .78rem/1.2 var(--qv-mono); color: var(--qv-muted); }
.qv-stepper {
  display: grid;
  grid-template-columns: 3.25rem minmax(0, 1fr) 3.25rem;
  gap: .5rem;
}
.qv-step {
  height: 3.4rem;
  border: 0;
  border-radius: var(--qv-r);
  background: var(--qv-berry);
  color: #FFFFFF;
  font: 800 1.6rem/1 var(--qv-head);
  cursor: pointer;
}
.qv-step:hover { background: var(--qv-berry-deep); }
.qv-calc-input {
  width: 100%;
  min-width: 0;
  height: 3.4rem;
  padding: 0 .5rem;
  border: 2px solid #8A8798;
  border-radius: var(--qv-r);
  background: #FFFFFF;
  color: var(--qv-ink);
  font: 800 1.75rem/1 var(--qv-head);
  text-align: center;
}
.qv-calc-input[aria-invalid="true"] { border-color: var(--qv-ink); background: #FFF4B8; }
.qv-calc-go { width: 100%; }
.qv-calc-status { min-height: 1.4em; margin: 0; font-size: .95rem; line-height: 1.4; color: var(--qv-muted); }
.qv-calc-out { margin: .6rem 0 0; }
.qv-calc-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: .6rem 0;
  border-bottom: 1px solid var(--qv-line);
}
.qv-calc-key { font-weight: 600; }
.qv-calc-val {
  margin: 0;
  font: 800 1.35rem/1.1 var(--qv-head);
  color: var(--qv-berry);
  text-align: right;
  white-space: nowrap;
}
.qv-calc-yield {
  margin-top: .8rem;
  padding: .8rem 1rem;
  border: 0;
  border-radius: var(--qv-r);
  background: var(--qv-berry);
  color: #FFFFFF;
}
.qv-calc-yield .qv-calc-val { color: var(--qv-lemon); }
.qv-calc-note { margin: .8rem 0 0; font-size: .9rem; line-height: 1.45; color: var(--qv-muted); }

/* Kort fremgangsmåde i båndet */
.qv-steps { grid-area: steps; min-width: 0; }
.qv-steps-title { margin: 0 0 .8rem; font: 800 1.45rem/1.1 var(--qv-head); letter-spacing: -.02em; }
.qv-steps-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.qv-steps-item {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  gap: .8rem;
  padding: .95rem 1rem;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: var(--qv-r);
  background: rgba(255, 255, 255, .08);
}
.qv-steps-nr {
  display: grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  background: var(--qv-lemon);
  color: var(--qv-ink);
  font: 800 1.15rem/1 var(--qv-head);
}
.qv-steps-text { margin: 0; line-height: 1.5; }
.qv-steps-text b { color: var(--qv-lemon); }
.qv-steps-more { margin: 1rem 0 0; }
.qv-band .qv-btn-ghost { color: #FFFFFF; border-color: var(--qv-lemon); }

/* Sektionsoverskrifter */
.qv-sec-head { margin-bottom: 1.75rem; }
.qv-sec-kicker {
  margin: 0 0 .3rem;
  font: 500 .8rem/1.3 var(--qv-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--qv-berry);
}
.qv-sec-title {
  margin: 0;
  font: 800 clamp(1.9rem, 6.4vw, 3.1rem)/1.02 var(--qv-head);
  letter-spacing: -.03em;
}

/* Ruten: fra busk til flaske */
.qv-route { padding: 3.5rem 0 2.5rem; }
.qv-route-list { list-style: none; margin: 0; padding: 0; display: grid; }
.qv-stop {
  position: relative;
  display: grid;
  grid-template-columns: 3.5rem minmax(0, 1fr);
  column-gap: 1rem;
  align-content: start;
  padding-bottom: 2.25rem;
}
.qv-stop::before {
  content: "";
  position: absolute;
  left: calc(1.75rem - 3px);
  top: 3.5rem;
  bottom: 0;
  width: 6px;
  border-radius: 3px;
  background: var(--qv-tone);
}
.qv-stop:last-child { padding-bottom: 0; }
.qv-stop:last-child::before { display: none; }
.qv-stop-nr {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: var(--qv-tone);
  color: var(--qv-tone-on);
  font: 800 1.55rem/1 var(--qv-head);
  box-shadow: 0 0 0 5px var(--qv-bg);
}
.qv-stop-body { min-width: 0; }
.qv-stop-name { margin: .5rem 0 .3rem; font: 800 1.8rem/1.05 var(--qv-head); letter-spacing: -.025em; }
.qv-stop-lead { margin: 0 0 .9rem; color: var(--qv-muted); line-height: 1.5; }
.qv-stop-links { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.qv-stop-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .7rem .9rem;
  border-left: 5px solid var(--qv-tone);
  border-radius: var(--qv-r);
  background: var(--qv-paper);
  color: var(--qv-ink);
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
}
.qv-stop-link::after { content: "→"; flex: none; font-family: var(--qv-head); color: var(--qv-tone-text); }
.qv-stop-link:hover { background: var(--qv-tone-soft); }

/* Hyldens år */
.qv-year { padding: 1rem 0 3.5rem; }
.qv-year-grid {
  display: grid;
  gap: 1.5rem;
  padding: 1.5rem 1.25rem;
  border-radius: var(--qv-r-big);
  background: var(--qv-paper);
}
.qv-year-head { min-width: 0; }
.qv-year-lead { margin: .7rem 0 0; color: var(--qv-muted); line-height: 1.55; }
.qv-year-chart {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: auto 2.75rem 2.75rem;
  row-gap: .5rem;
  min-width: 0;
}
.qv-year-month {
  grid-row: 1;
  padding: .35rem 0;
  border-radius: 6px;
  font: 500 .72rem/1 var(--qv-mono);
  color: var(--qv-muted);
  text-align: center;
}
.qv-year-month-bloom { background: #E3F3E8; color: var(--qv-leaf); font-weight: 600; }
.qv-year-month-berry { background: #EFE7F8; color: var(--qv-berry); font-weight: 600; }
.qv-year-track { grid-column: 1 / -1; border-radius: 999px; background: var(--qv-bg); }
.qv-year-track-1 { grid-row: 2; }
.qv-year-track-2 { grid-row: 3; }
.qv-year-bar {
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-width: 0;
  border-radius: 999px;
  color: #FFFFFF;
  font: 600 .85rem/1 var(--qv-head);
}
.qv-year-bloom { grid-column: 6 / 8; grid-row: 2; background: var(--qv-leaf); }
.qv-year-berry { grid-column: 8 / 10; grid-row: 3; background: var(--qv-berry); }
.qv-year-ico { flex: none; width: 2.2rem; height: auto; }
.qv-year-bar-txt { display: none; }
.qv-year-legend { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.qv-year-key { display: flex; gap: .7rem; align-items: flex-start; line-height: 1.5; }
.qv-year-swatch { flex: none; width: 1rem; height: 1rem; margin-top: .3rem; border-radius: 50%; }
.qv-year-key-bloom .qv-year-swatch { background: var(--qv-leaf); }
.qv-year-key-berry .qv-year-swatch { background: var(--qv-berry); }
.qv-year-key a { font-weight: 600; }

/* Læseflade og brødtekst */
.qv-sheet {
  min-width: 0;
  padding: 1.5rem 1.25rem 2rem;
  border-radius: var(--qv-r-big);
  background: var(--qv-paper);
}
.qv-home-read { padding-bottom: 4rem; }
.qv-sheet-home { max-width: 52rem; margin: 0 auto; }
.qv-narrow { max-width: calc(52rem + 2 * var(--qv-gut)); margin-top: -1.25rem; padding-bottom: 4rem; }

.qv-prose { overflow-wrap: anywhere; }
.qv-prose > :first-child { margin-top: 0; }
.qv-prose > :last-child { margin-bottom: 0; }
.qv-prose p, .qv-prose ul, .qv-prose ol { margin: 0 0 1.1em; }
.qv-prose h2 {
  margin: 2.1em 0 .55em;
  font: 800 clamp(1.55rem, 4.6vw, 2.15rem)/1.1 var(--qv-head);
  letter-spacing: -.025em;
  overflow-wrap: break-word;
}
.qv-prose h3 { margin: 1.8em 0 .45em; font: 800 1.3rem/1.2 var(--qv-head); letter-spacing: -.015em; }
.qv-prose h4 { margin: 1.5em 0 .4em; font: 600 1.1rem/1.3 var(--qv-head); color: var(--qv-berry); }
.qv-prose a {
  color: var(--qv-berry);
  font-weight: 600;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(90, 26, 140, .45);
}
.qv-prose a:hover { text-decoration-color: var(--qv-berry); }
.qv-prose ul { padding-left: 1.3rem; }
.qv-prose ol { padding-left: 1.6rem; }
.qv-prose li + li { margin-top: .35em; }
.qv-prose li > ul, .qv-prose li > ol { margin: .35em 0 0; }
.qv-prose ul > li::marker { color: var(--qv-berry); }
.qv-prose ol > li::marker { color: var(--qv-berry); font-family: var(--qv-head); font-weight: 800; }
.qv-prose blockquote {
  margin: 1.6em 0;
  padding: 1rem 1.25rem;
  border-left: 6px solid var(--qv-lemon);
  border-radius: 0 var(--qv-r) var(--qv-r) 0;
  background: #F4F0F9;
  font-size: 1.1rem;
}
.qv-prose blockquote > :last-child { margin-bottom: 0; }
.qv-prose table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  margin: 1.5em 0;
  border-collapse: collapse;
  font-size: .95rem;
  line-height: 1.45;
}
.qv-table {
  max-width: 100%;
  margin: 1.5em 0;
  overflow-x: auto;
  border: 1px solid var(--qv-line);
  border-radius: var(--qv-r);
}
.qv-table > table { display: table; width: 100%; min-width: 0; max-width: none; margin: 0; overflow: visible; }
.qv-table > table:has(th:nth-child(4)) { min-width: 32rem; }
.qv-prose th {
  padding: .6rem .75rem;
  background: var(--qv-berry);
  color: #FFFFFF;
  font: 600 .92rem/1.3 var(--qv-head);
  text-align: left;
  vertical-align: bottom;
}
.qv-prose td { padding: .6rem .75rem; border-bottom: 1px solid var(--qv-line); vertical-align: top; }
.qv-prose tbody tr:nth-child(even) td { background: #F6F7F9; }
.qv-prose tbody tr:last-child td { border-bottom: 0; }

/* Billede i artikler */
.qv-fig { position: relative; margin: 0 0 1.75rem; }
.qv-fig-img { display: block; width: 100%; height: auto; border-radius: var(--qv-r); }

/* Artiklens titelbånd i etapens farve */
.qv-art-head { padding: 1.25rem 0 2.75rem; background: var(--qv-tone); color: var(--qv-tone-on); }
.qv-stagebar-list {
  list-style: none;
  display: inline-grid;
  grid-template-columns: repeat(4, auto);
  gap: .2rem;
  max-width: 100%;
  margin: 0 0 1.5rem;
  padding: .28rem;
  border-radius: 999px;
  background: var(--qv-paper);
}
.qv-stagebar-link {
  display: flex;
  align-items: center;
  gap: .35rem;
  padding: .32rem .55rem .32rem .32rem;
  border-radius: 999px;
  color: var(--qv-ink);
  font: 600 .82rem/1 var(--qv-head);
  text-decoration: none;
}
.qv-stagebar-link:hover { background: var(--qv-tone-soft); }
.qv-stagebar-nr {
  display: grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  background: var(--qv-tone);
  color: var(--qv-tone-on);
  font: 800 .75rem/1 var(--qv-head);
}
.qv-is-here .qv-stagebar-link { background: var(--qv-tone); color: var(--qv-tone-on); }
.qv-is-here .qv-stagebar-nr { background: var(--qv-tone-on); color: var(--qv-tone); }
.qv-badge {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: 0 0 .8rem;
  font: 500 .78rem/1 var(--qv-mono);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.qv-badge-nr { padding: .4rem .65rem; border: 1.5px solid currentColor; border-radius: 999px; }
.qv-badge-name { padding: .4rem .65rem; border: 1.5px solid var(--qv-tone-on); border-radius: 999px; background: var(--qv-tone-on); color: var(--qv-tone); font-weight: 600; }
.qv-art-title {
  max-width: 22ch;
  margin: 0;
  font: 800 clamp(2rem, 7.6vw, 3.5rem)/1.02 var(--qv-head);
  letter-spacing: -.035em;
  overflow-wrap: break-word;
  hyphens: manual;
}
.qv-art-lead { max-width: 44rem; margin: .9rem 0 0; font-size: 1.15rem; line-height: 1.5; }
.qv-art-meta { margin: .9rem 0 0; font: 500 .8rem/1.3 var(--qv-mono); letter-spacing: .03em; }
.qv-art-grid { display: grid; gap: 1.5rem; margin-top: -1.5rem; padding-bottom: 4rem; }

/* Videre på ruten */
.qv-side { display: grid; gap: 1rem; align-content: start; min-width: 0; }
.qv-side-box {
  padding: 1.25rem;
  border-top: 8px solid var(--qv-tone);
  border-radius: var(--qv-r-big);
  background: var(--qv-paper);
}
.qv-side-kicker { margin: 0; font: 500 .75rem/1.2 var(--qv-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--qv-muted); }
.qv-side-title { margin: .25rem 0 .35rem; font: 800 1.65rem/1.08 var(--qv-head); letter-spacing: -.02em; }
.qv-side-lead { margin: 0 0 .9rem; font-size: .95rem; line-height: 1.5; color: var(--qv-muted); }
.qv-side-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .2rem; }
.qv-side-link {
  display: block;
  padding: .5rem .7rem;
  border-radius: 8px;
  color: var(--qv-ink);
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
}
.qv-side-link:hover { background: var(--qv-tone-soft); }
.qv-side-link[aria-current="page"] { background: var(--qv-tone); color: var(--qv-tone-on); }
.qv-pager { display: grid; gap: .6rem; }
.qv-pager-link {
  display: grid;
  gap: .25rem;
  padding: .9rem 1rem;
  border-radius: var(--qv-r);
  text-decoration: none;
}
.qv-pager-prev { border: 2px solid var(--qv-line); background: var(--qv-paper); color: var(--qv-ink); }
.qv-pager-prev:hover { border-color: var(--qv-ink); }
.qv-pager-next { background: var(--qv-ink); color: #FFFFFF; }
.qv-pager-next:hover { background: var(--qv-berry-deep); }
.qv-pager-dir { font: 500 .74rem/1.2 var(--qv-mono); letter-spacing: .05em; text-transform: uppercase; }
.qv-pager-prev .qv-pager-dir { color: var(--qv-muted); }
.qv-pager-next .qv-pager-dir { color: var(--qv-lemon); }
.qv-pager-name { font: 800 1.12rem/1.2 var(--qv-head); }
.qv-pager-prev .qv-pager-name::before { content: "← "; }
.qv-pager-next .qv-pager-name::after { content: " →"; }

/* Spørgsmål og svar */
.qv-faq { margin-top: 2.5rem; padding-top: 1.75rem; border-top: 3px solid var(--qv-ink); }
.qv-faq-title { margin: 0 0 .75rem; font: 800 1.75rem/1.1 var(--qv-head); letter-spacing: -.02em; }
.qv-faq-item { padding: 1rem 0; border-bottom: 1px solid var(--qv-line); }
.qv-faq-item:last-child { border-bottom: 0; }
.qv-faq-q { display: flex; align-items: flex-start; gap: .65rem; margin: 0 0 .4rem; font: 600 1.15rem/1.35 var(--qv-head); }
.qv-faq-mark {
  display: grid;
  flex: none;
  place-items: center;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  background: var(--qv-lemon);
  color: var(--qv-ink);
  font: 800 .95rem/1 var(--qv-head);
}
.qv-faq-a { margin: 0; padding-left: 2.25rem; overflow-wrap: anywhere; }

/* Kilder */
.qv-src { margin-top: 2rem; padding: 1.1rem 1.25rem; border-radius: var(--qv-r); background: var(--qv-bg); }
.qv-src-title { margin: 0 0 .55rem; font: 500 .8rem/1.2 var(--qv-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--qv-muted); }
.qv-src-list { margin: 0; padding-left: 1.1rem; font-size: .95rem; }
.qv-src-item + .qv-src-item { margin-top: .3rem; }
.qv-src-link { color: var(--qv-berry); overflow-wrap: anywhere; }

/* Oversigt (list) */
.qv-list-wrap { display: grid; gap: 1.5rem; margin-top: -1.5rem; padding-bottom: 4rem; }
.qv-index { display: grid; gap: 1.25rem; }
.qv-index-stage { padding: 1.25rem; border-top: 8px solid var(--qv-tone); border-radius: var(--qv-r-big); background: var(--qv-paper); }
.qv-index-title { display: flex; align-items: center; gap: .6rem; margin: 0 0 .3rem; font: 800 1.6rem/1.1 var(--qv-head); }
.qv-index-nr {
  display: grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 50%;
  background: var(--qv-tone);
  color: var(--qv-tone-on);
  font-size: 1rem;
}
.qv-index-lead { margin: 0 0 .8rem; color: var(--qv-muted); }
.qv-index-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.qv-index-link { font: 600 1.1rem/1.3 var(--qv-head); color: var(--qv-ink); text-decoration-color: var(--qv-tone); text-decoration-thickness: 3px; text-underline-offset: 4px; }
.qv-index-desc { margin: .2rem 0 0; color: var(--qv-muted); font-size: .97rem; line-height: 1.5; }

/* Kontakt */
.qv-contact-grid { display: grid; gap: 1.25rem; margin-top: -1.5rem; padding-bottom: 4rem; }
.qv-form-title { margin: 0 0 1rem; font: 800 1.5rem/1.1 var(--qv-head); letter-spacing: -.02em; }
.qv-contact-form > p[role="status"] {
  margin: 0 0 1rem;
  padding: .8rem 1rem;
  border-radius: var(--qv-r);
  background: var(--qv-lemon);
  color: var(--qv-ink);
  font-weight: 600;
}
.qv-form { display: grid; gap: 1.1rem; }
.qv-field { display: grid; gap: .4rem; }
.qv-label, .qv-field > label { font-weight: 600; }
.qv-input, .qv-field > input {
  width: 100%;
  padding: .7rem .85rem;
  border: 2px solid #8A8798;
  border-radius: var(--qv-r);
  background: #FFFFFF;
  color: var(--qv-ink);
  font: 400 1.05rem/1.4 var(--qv-text);
}
.qv-input:hover { border-color: var(--qv-muted); }
.qv-input-area { min-height: 10rem; resize: vertical; }
.qv-hp {
  position: absolute !important;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.qv-form-send { margin: 0; }
.qv-form-note { margin: 0; font-size: .9rem; line-height: 1.5; color: var(--qv-muted); }

/* 404 */
.qv-lost { padding: 3rem 0 4.5rem; background: var(--qv-berry); color: #FFFFFF; }
.qv-lost-inner { display: grid; justify-items: start; gap: .2rem; }
.qv-lost-art { width: 9rem; height: auto; margin-bottom: 1rem; }
.qv-lost-title { margin: .3rem 0 .6rem; font: 800 clamp(2.3rem, 9vw, 4rem)/1 var(--qv-head); letter-spacing: -.035em; }
.qv-lost-text { max-width: 38rem; margin: 0 0 1.5rem; font-size: 1.15rem; color: var(--qv-lilac); }
.qv-lost-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.qv-lost .qv-btn-ghost { color: #FFFFFF; }

/* Sidefod: minimal og centreret */
.qv-foot { background: var(--qv-paper); text-align: center; }
.qv-foot-stripe { display: grid; grid-template-columns: repeat(4, 1fr); height: 8px; }
.qv-foot-stripe span { background: var(--qv-tone); }
.qv-foot-inner { display: grid; justify-items: center; gap: 1rem; padding-top: 2.5rem; padding-bottom: 2.25rem; }
.qv-foot-logo { display: inline-flex; border-radius: 6px; }
.qv-foot-logo svg { display: block; width: clamp(180px, 50vw, 236px); height: auto; }
.qv-foot-about { max-width: 38rem; margin: 0; color: var(--qv-muted); line-height: 1.55; }
.qv-foot-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem .5rem; }
.qv-foot-link {
  display: inline-block;
  padding: .4rem .85rem;
  border-radius: 999px;
  background: var(--qv-bg);
  color: var(--qv-ink);
  font-size: .95rem;
  font-weight: 600;
  text-decoration: none;
}
.qv-foot-link:hover { background: var(--qv-lemon); }
.qv-foot-link[aria-current="page"] { background: var(--qv-berry); color: #FFFFFF; }
.qv-foot-copy { margin: 0; font: 500 .8rem/1.3 var(--qv-mono); color: var(--qv-muted); }

/* Større skærme */
@media (min-width: 560px) {
  .qv-year-bar-txt { display: inline; }
  .qv-menu-stages { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; }
  .qv-stagebar-list { gap: .3rem; padding: .32rem; }
  .qv-stagebar-link { gap: .45rem; padding: .4rem .75rem .4rem .4rem; font-size: .9rem; }
  .qv-stagebar-nr { width: 1.5rem; height: 1.5rem; font-size: .8rem; }
}

@media (min-width: 680px) {
  :root { --qv-gut: 2rem; }
  body { font-size: 1.125rem; }
  .qv-top-calc { display: inline-flex; }
  .qv-sheet { padding: 2.5rem 3rem 3rem; }
  .qv-calc { padding: 0 1.75rem 1.75rem; }
  .qv-calc-head { margin: 0 -1.75rem 1.25rem; padding: 1.2rem 1.75rem 1rem; }
  .qv-year-grid { padding: 2rem 2.25rem; }
  .qv-stop-links { grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
  .qv-index-stage { padding: 1.75rem 2rem; }
  .qv-side-box { padding: 1.5rem; }
  .qv-pager { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qv-pager-next { text-align: right; }
  .qv-pager-next:only-child { grid-column: 2; }
}

@media (min-width: 760px) {
  .qv-steps-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qv-steps-item { grid-template-columns: 1fr; align-content: start; }
}

@media (min-width: 900px) {
  .qv-band { padding: 3rem 0 3.5rem; }
  .qv-band-umbel { right: -40px; top: -60px; width: 460px; height: 460px; }
  .qv-band-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 27rem);
    grid-template-areas: "text calc" "fig calc" "steps steps";
    column-gap: 3rem;
    row-gap: 2rem;
    align-items: start;
  }
  .qv-band-lead { font-size: 1.25rem; }
  .qv-menu-stages { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .qv-year-grid {
    grid-template-columns: minmax(0, 17rem) minmax(0, 1fr);
    grid-template-areas: "head chart" "head legend";
    column-gap: 3rem;
    align-items: start;
  }
  .qv-year-head { grid-area: head; }
  .qv-year-chart { grid-area: chart; grid-template-rows: auto 3rem 3rem; }
  .qv-year-legend { grid-area: legend; }
  .qv-year-month { font-size: .8rem; }
  .qv-contact-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); align-items: start; }
  .qv-contact-grid > .qv-contact-form:only-child { grid-column: 1 / -1; max-width: 44rem; }
  .qv-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1000px) {
  .qv-art-head { padding: 1.75rem 0 3.25rem; }
  .qv-art-grid { grid-template-columns: minmax(0, 1fr) 17.5rem; gap: 2rem; align-items: start; }
  .qv-side { position: sticky; top: 5.5rem; }
  .qv-pager { grid-template-columns: 1fr; }
  .qv-pager-next { text-align: left; }
  .qv-pager-next:only-child { grid-column: auto; }
  .qv-route-list { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 1.5rem; }
  .qv-stop { grid-template-columns: 1fr; padding-bottom: 0; }
  .qv-stop::before { left: 3.5rem; right: -1.5rem; top: calc(1.75rem - 3px); bottom: auto; width: auto; height: 6px; }
  .qv-stop-links { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

@media print {
  .qv-top, .qv-foot, .qv-side, .qv-skip { display: none; }
  body { background: #FFFFFF; }
}
