/* ==========================================================
   Rytkor – Sjællandske Kor & Vokal Ensembler
   Designsystem "Nordisk lys"
   ========================================================== */

:root {
  /* Farver fra det oprindelige rytkor.dk (Breakdance-paletten) */
  --paper: #FAF8FB;
  --paper-2: #EFE9F1;
  --paper-3: #E2D9EA;
  --ink: #3A2560;          /* Mørk lilla – overskrifter, streger og mørke flader */
  --ink-2: #5B536E;
  --lilla: #655A81;        /* Brand-lila */
  --lilla-l: #8F84AE;
  --lilla-deep: #3C305F;   /* Footer-lilla */
  --accent: #8E2C73;       /* Rød */
  --accent-2: #6E1F59;
  --pink: #B145AD;         /* Pink */
  --pink-l: #E7A6E3;
  --lav: #E9E3F2;
  --night: #3A2560;
  --night-2: #3C305F;
  --line: rgba(58,37,96, .14);
  --line-light: rgba(250, 248, 251, .22);

  --f-display: "Fraunces", Georgia, "Times New Roman", serif;
  --f-body: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;

  --max: 1240px;
  --gut: clamp(16px, 4vw, 48px);
  --r-img: 28px;
  --r-card: 6px;
  --head-h: 76px;
  --sec: clamp(72px, 10vw, 140px);
  --ease: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--head-h) + 16px); }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--f-body);
  font-size: 1.0625rem;
  line-height: 1.65;
  font-feature-settings: "kern", "liga";
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
:where(.rk-site) img { max-width: 100%; height: auto; display: block; }
:where(.rk-site) a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; }
:where(.rk-site) a:hover { color: var(--accent); }
:where(.rk-site) p { margin: 0 0 1em; }
:where(.rk-site) ul, :where(.rk-site) ol { margin: 0; padding: 0; }
:where(.rk-site) :is(h1, h2, h3, h4) { font-family: var(--f-display); font-weight: 400; margin: 0; line-height: 1.05; letter-spacing: -.015em; font-optical-sizing: auto; }
:where(.rk-site) h1 { font-size: clamp(2.75rem, 6.6vw, 6.25rem); font-weight: 350; letter-spacing: -.03em; line-height: .96; }
:where(.rk-site) h2 { font-size: clamp(2.1rem, 4.4vw, 3.75rem); font-weight: 380; letter-spacing: -.025em; }
:where(.rk-site) h3 { font-size: clamp(1.35rem, 2vw, 1.7rem); font-weight: 450; line-height: 1.15; }
:where(.rk-site) h4 { font-size: 1.15rem; font-weight: 500; }
strong { font-weight: 700; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 16px; top: -60px; z-index: 100; background: var(--ink); color: var(--paper); padding: 10px 16px; border-radius: 999px; }
.skip:focus { top: 12px; }

.wrap { max-width: var(--max); margin-inline: auto; padding-inline: var(--gut); }
.narrow { max-width: 760px; }
.lead { font-size: clamp(1.15rem, 1.6vw, 1.35rem); line-height: 1.55; color: var(--ink-2); max-width: 38em; }
.muted { color: var(--ink-2); }
.small { font-size: .9rem; }
.prose { max-width: 40em; }
.prose p, .prose li { color: var(--ink-2); }
.prose ul { padding-left: 1.2em; margin-bottom: 1em; }
.prose li { margin-bottom: .35em; }
.prose h2 { margin: 1.4em 0 .5em; font-size: clamp(1.7rem, 3vw, 2.3rem); }
.prose h3 { margin: 1.6em 0 .5em; }

/* --- "Mangler"-markering til redaktøren ---------------------- */
.todo {
  display: inline;
  background: #FFF3B0;
  color: #5A4A00;
  border: 1px dashed #B8961A;
  border-radius: 4px;
  padding: .05em .4em;
  font-family: var(--f-body);
  font-size: .82em;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.6;
}
.todo::before { content: "Mangler: "; font-weight: 800; }
.todo-block { display: block; margin: .8em 0; padding: .6em .9em; }
body.hide-todo .todo { display: none; }

/* --- Knapper -------------------------------------------------- */
.btn {
  --bg: var(--accent); --fg: #fff; --bd: var(--accent);
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  min-height: 50px; padding: .8em 1.5em;
  border-radius: 999px; border: 1.5px solid var(--bd);
  background: var(--bg); color: var(--fg);
  font: 700 .98rem/1.1 var(--f-body); letter-spacing: .005em;
  text-decoration: none; cursor: pointer;
  transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.btn:hover { --bg: var(--accent-2); --bd: var(--accent-2); color: #fff; }
.btn:active { transform: translateY(1px); }
.btn-ghost { --bg: transparent; --fg: var(--ink); --bd: var(--ink); }
.btn-ghost:hover { --bg: var(--ink); --fg: var(--paper); --bd: var(--ink); color: var(--paper); }
.btn-light { --bg: var(--paper); --fg: var(--ink); --bd: var(--paper); }
.btn-light:hover { --bg: #fff; --bd: #fff; color: var(--ink); }
.btn-ghost-light { --bg: transparent; --fg: var(--paper); --bd: rgba(250,248,251,.7); }
.btn-ghost-light:hover { --bg: var(--paper); --fg: var(--ink); --bd: var(--paper); color: var(--ink); }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; }
.link-more { font-weight: 700; text-decoration: none; border-bottom: 1.5px solid currentColor; padding-bottom: 2px; }
.link-more:hover { color: var(--accent); }

/* --- Header --------------------------------------------------- */
.site-head {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  height: var(--head-h);
  background: rgba(250, 248, 251, .92);
  backdrop-filter: saturate(1.4) blur(14px);
  -webkit-backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid var(--line);
  transition: background .3s, color .3s, border-color .3s;
}
.head-inner { height: 100%; display: flex; align-items: center; gap: 24px; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; margin-right: auto; }
.brand:hover { color: inherit; }
.brand-mark { width: 34px; height: 34px; flex: none; }
.brand-name { font-family: var(--f-display); font-size: 1.65rem; font-weight: 500; letter-spacing: -.02em; line-height: 1; }
.brand-sub { display: block; font-family: var(--f-body); font-size: .72rem; font-weight: 600; letter-spacing: .01em; opacity: .72; margin-top: 3px; }

.nav { display: flex; align-items: center; gap: 4px; }
.nav-list { display: flex; list-style: none; gap: 2px; }
.nav-item { position: relative; }
.nav-link {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 14px; border-radius: 999px;
  font: 600 .95rem/1 var(--f-body); color: inherit; text-decoration: none;
  background: none; border: 0; cursor: pointer;
}
.nav-link:hover, .nav-item:focus-within > .nav-link { background: rgba(58,37,96,.06); color: inherit; }
.nav-link[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--accent); border-radius: 0; }
.nav-link svg { width: 10px; height: 10px; transition: transform .2s; }
.sub {
  position: absolute; top: calc(100% + 8px); left: -8px; min-width: 270px;
  list-style: none; padding: 10px;
  background: var(--paper); color: var(--ink);
  border: 1px solid var(--line); border-radius: 14px;
  box-shadow: 0 24px 48px -20px rgba(58,37,96,.35);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .18s, transform .18s, visibility 0s .18s;
}
.sub::before { content: ""; position: absolute; inset: -10px 0 auto 0; height: 10px; }
.nav-item:hover .sub, .nav-item:focus-within .sub, .nav-item.open .sub {
  opacity: 1; visibility: visible; transform: none; transition: opacity .18s, transform .18s;
}
.nav-item:hover .nav-link svg, .nav-item.open .nav-link svg { transform: rotate(180deg); }
.sub a { display: block; padding: 10px 12px; border-radius: 8px; text-decoration: none; font-weight: 600; font-size: .95rem; }
.sub a span { display: block; font-weight: 500; font-size: .82rem; color: var(--ink-2); }
.sub a:hover { background: var(--paper-2); color: var(--ink); }
.sub .tag-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); margin-left: 6px; vertical-align: middle; }
.head-cta { min-height: 44px; padding: .6em 1.2em; font-size: .92rem; }
.burger { display: none; width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid currentColor; background: none; color: inherit; cursor: pointer; }
.burger span, .burger span::before, .burger span::after { display: block; width: 18px; height: 1.5px; background: currentColor; margin: auto; position: relative; transition: transform .25s, background .2s; }
.burger span::before, .burger span::after { content: ""; position: absolute; left: 0; }
.burger span::before { top: -6px; } .burger span::after { top: 6px; }
.nav-open .burger span { background: transparent; }
.nav-open .burger span::before { transform: translateY(6px) rotate(45deg); }
.nav-open .burger span::after { transform: translateY(-6px) rotate(-45deg); }

/* Overlay-header på forsiden */
.is-overlay .site-head:not(.scrolled) { background: transparent; border-color: transparent; color: var(--paper); backdrop-filter: none; -webkit-backdrop-filter: none; }
.is-overlay .site-head:not(.scrolled) .nav-link:hover,
.is-overlay .site-head:not(.scrolled) .nav-item:focus-within > .nav-link { background: rgba(250,248,251,.14); }
.is-overlay .site-head:not(.scrolled) .head-cta { --bg: var(--paper); --fg: var(--ink); --bd: var(--paper); }
main { padding-top: var(--head-h); }
.is-overlay main { padding-top: 0; }

/* --- Forside: hero ------------------------------------------- */
.hero {
  position: relative; isolation: isolate;
  min-height: max(640px, 100svh);
  display: flex; align-items: flex-end;
  color: var(--paper);
  background: var(--night);
  overflow: hidden;
}
.hero-shade {
  position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, rgba(58,37,96,.86) 0%, rgba(58,37,96,.55) 45%, rgba(58,37,96,.15) 75%),
    linear-gradient(0deg, rgba(58,37,96,.85) 0%, rgba(58,37,96,0) 55%),
    linear-gradient(180deg, rgba(58,37,96,.55) 0%, rgba(58,37,96,0) 22%);
}
.hero-inner { width: 100%; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: clamp(32px, 5vw, 80px); align-items: end; padding-top: calc(var(--head-h) + 48px); padding-bottom: clamp(48px, 7vw, 96px); }
.hero-kicker { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: .95rem; margin-bottom: 22px; }
.pulse { width: 9px; height: 9px; border-radius: 50%; background: #E07BDC; box-shadow: 0 0 0 0 rgba(224,123,220,.7); animation: pulse 2.2s infinite; }
.hero .hero-title { font-size: clamp(2.75rem, 6.6vw, 6.25rem); font-weight: 350; letter-spacing: -.03em; line-height: .96; max-width: 11ch; margin-bottom: 28px; color: var(--paper); }
.hero .hero-title .line { display: block; }
.hero .lead { color: rgba(250,248,251,.86); margin-bottom: 34px; max-width: 34em; }

.seats {
  background: rgba(250,248,251,.97); color: var(--ink);
  border-radius: 22px; padding: 26px 26px 22px;
  box-shadow: 0 40px 80px -30px rgba(0,0,0,.6);
}
.seats-title { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 6px; }
.seats-title h2 { font-size: 1.6rem; font-weight: 450; letter-spacing: -.01em; }
.seats-title span { font-size: .85rem; font-weight: 700; color: var(--accent); white-space: nowrap; }
.staff-svg { width: 100%; height: auto; display: block; margin: 6px 0 4px; overflow: visible; }
.staff-svg .st { stroke: var(--ink); stroke-opacity: .55; stroke-width: 1; }
.staff-svg .clef { fill: var(--ink); font-family: var(--f-display); }
.staff-svg .note { fill: var(--accent); }
.staff-svg .stem { stroke: var(--accent); stroke-width: 1.6; }
.staff-svg .lbl { font: 700 13px var(--f-body); fill: var(--ink); }
.staff-svg .cnt { font: 600 12px var(--f-body); fill: var(--accent); }
.seats-foot { border-top: 1px solid var(--line); padding-top: 14px; margin-top: 8px; font-size: .9rem; color: var(--ink-2); }
.seats-foot strong { color: var(--ink); }

/* Fakta-strimmel */

/* --- Sektioner ------------------------------------------------ */
.sec { padding-block: var(--sec); }
.sec-alt { background: var(--paper-2); }
.sec-sage { background: var(--lav); }
.sec-night { background: var(--night); color: var(--paper); }
.sec-night .lead, .sec-night .muted { color: rgba(250,248,251,.78); }
.sec-head { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: end; margin-bottom: clamp(36px, 5vw, 64px); }
.sec-head h2 { max-width: 16ch; }
.sec-head p { max-width: 30em; margin: 16px 0 0; color: var(--ink-2); }
.sec-night .sec-head p { color: rgba(250,248,251,.75); }

/* NVE: sådan kommer du med */
.join { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(40px, 6vw, 100px); align-items: start; }
.join-media { position: relative; }
.join-media img { border-radius: var(--r-img); aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.join-media .float {
  position: absolute; right: -24px; bottom: 40px; width: 52%;
  border-radius: 18px; aspect-ratio: 4 / 3; border: 6px solid var(--paper);
  box-shadow: 0 30px 60px -30px rgba(0,0,0,.5);
}
.quote-chip { position: absolute; left: 24px; top: 24px; right: 40%; background: var(--paper); border-radius: 16px; padding: 16px 18px; font-family: var(--f-display); font-size: 1.05rem; line-height: 1.35; box-shadow: 0 20px 40px -24px rgba(0,0,0,.4); }
.steps { list-style: none; counter-reset: s; margin: 36px 0 40px; }
.steps li { counter-increment: s; display: grid; grid-template-columns: 64px 1fr; gap: 6px 18px; padding: 22px 0; border-top: 1px solid var(--line); }
.steps li:last-child { border-bottom: 1px solid var(--line); }
.steps li::before { content: counter(s); grid-row: span 2; font-family: var(--f-display); font-size: 3rem; line-height: .9; color: var(--accent); font-weight: 300; }
.steps h3 { font-size: 1.35rem; }
.steps p { margin: 0; color: var(--ink-2); }

/* Yoga-feature */
.feature { display: grid; grid-template-columns: 1.25fr 1fr; min-height: 640px; background: var(--lav); }
.feature-media { position: relative; min-height: 420px; }
.feature-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0 var(--r-img) var(--r-img) 0; }
.feature-badge { position: absolute; left: var(--gut); bottom: 32px; background: var(--paper); border-radius: 999px; padding: 10px 18px; font-weight: 700; font-size: .9rem; display: inline-flex; gap: 10px; align-items: center; }
.feature-badge b { color: var(--lilla); }
.feature-body { padding: clamp(48px, 7vw, 110px) var(--gut); display: flex; flex-direction: column; justify-content: center; max-width: 620px; }
.feature-body .over { font-weight: 700; color: var(--lilla); margin-bottom: 14px; }
.feature-body h2 { margin-bottom: 22px; }
.yin-yang { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(101,90,129,.25); border: 1px solid rgba(101,90,129,.25); border-radius: 14px; overflow: hidden; margin: 26px 0; }
.yin-yang div { background: var(--lav); padding: 18px 18px 16px; }
.yin-yang h3 { font-size: 1.3rem; margin-bottom: 6px; }
.yin-yang p { margin: 0; font-size: .93rem; color: var(--ink-2); line-height: 1.5; }
.kv { list-style: none; display: grid; gap: 10px; margin-bottom: 30px; }
.kv li { display: grid; grid-template-columns: 92px 1fr; gap: 12px; font-size: .98rem; }
.kv b { font-weight: 700; color: var(--ink-2); font-size: .88rem; padding-top: 2px; }

/* Kor-mosaik */
.choirs { display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: minmax(250px, auto); gap: 14px; }
.tile { position: relative; isolation: isolate; overflow: hidden; border-radius: 20px; color: var(--paper); text-decoration: none; display: flex; flex-direction: column; justify-content: flex-end; padding: 24px; min-height: 280px; background: var(--night); grid-column: span 2; }
.tile:hover { color: var(--paper); }
.tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.tile::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(58,37,96,.88) 0%, rgba(58,37,96,.35) 55%, rgba(58,37,96,.05) 100%); }
.tile:hover img { transform: scale(1.04); }
.tile h3 { font-size: clamp(1.4rem, 2vw, 1.75rem); margin-bottom: 6px; }
.tile p { margin: 0; font-size: .92rem; color: rgba(250,248,251,.82); line-height: 1.45; }
.tile .meta { margin-top: 12px; font-size: .82rem; font-weight: 700; color: rgba(250,248,251,.9); }
.tile .tag { position: absolute; top: 18px; left: 18px; background: var(--accent); color: #fff; font-size: .8rem; font-weight: 700; padding: 7px 12px; border-radius: 999px; }
.tile .tag.calm { background: var(--paper); color: var(--ink); }
.tile-xl { grid-column: span 4; grid-row: span 2; padding: 36px; }
.tile-xl h3 { font-size: clamp(2rem, 3.6vw, 3rem); }
.tile-xl p { font-size: 1.05rem; max-width: 34em; }

/* Kursusliste */

/* Manuela */
.leader { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px, 6vw, 96px); align-items: center; }
.leader-photo { position: relative; }
.leader-photo img { width: 100%; aspect-ratio: 1 / 1.05; object-fit: cover; border-radius: 50% 50% var(--r-img) var(--r-img); background: var(--paper-3); }
.leader blockquote { margin: 0 0 28px; font-family: var(--f-display); font-size: clamp(1.8rem, 3.4vw, 2.9rem); line-height: 1.12; letter-spacing: -.02em; font-weight: 350; }
.leader blockquote::before { content: "\201C"; display: block; font-size: 4rem; line-height: .6; color: var(--accent); margin-bottom: 12px; }
.leader cite { font-style: normal; font-weight: 700; display: block; margin-bottom: 8px; }

/* Koncerter + nyhedsbrev */
.news { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(40px, 6vw, 96px); align-items: center; }
.news-form { display: grid; gap: 12px; background: var(--night-2); border-radius: 20px; padding: 28px; }
.news-form label { font-size: .85rem; font-weight: 700; color: rgba(250,248,251,.8); }
.news-form input { width: 100%; min-height: 52px; border-radius: 12px; border: 1px solid var(--line-light); background: rgba(250,248,251,.06); color: var(--paper); padding: 0 16px; font: 500 1rem var(--f-body); }
.news-form input:focus { outline: 2px solid var(--accent); border-color: transparent; }
.fb-links { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.fb-links a { display: inline-block; padding: 8px 14px; border: 1px solid var(--line-light); border-radius: 999px; font-size: .88rem; font-weight: 600; text-decoration: none; }
.fb-links a:hover { background: var(--paper); color: var(--ink); }

.support { padding-block: 40px; border-top: 1px solid var(--line); }
.support p { margin: 0; max-width: 60em; color: var(--ink-2); font-size: .95rem; }

/* --- Footer --------------------------------------------------- */
.site-foot { background: var(--ink); color: rgba(250,248,251,.8); padding: 80px 0 32px; font-size: .95rem; }
.site-foot a { text-decoration: none; }
.site-foot a:hover { color: #fff; text-decoration: underline; }
.foot-top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 56px; border-bottom: 1px solid var(--line-light); }
.foot-brand .brand-name { color: var(--paper); font-size: 2.2rem; }
.foot-brand p { margin-top: 14px; max-width: 26em; }
.site-foot h4 { color: var(--paper); font-family: var(--f-body); font-size: .85rem; font-weight: 700; margin-bottom: 14px; letter-spacing: .01em; }
.site-foot ul { list-style: none; display: grid; gap: 8px; }
.foot-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; padding-top: 24px; font-size: .85rem; color: rgba(250,248,251,.6); }
.foot-bottom ul { display: flex; flex-wrap: wrap; gap: 20px; }

/* --- Undersider ------------------------------------------------ */
.crumbs { font-size: .85rem; font-weight: 600; color: var(--ink-2); margin-bottom: 26px; }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.crumbs span[aria-hidden] { margin: 0 8px; opacity: .5; }
.page-hero { padding: clamp(40px, 6vw, 80px) 0 clamp(48px, 6vw, 88px); }
.page-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.page-hero h1 { font-size: clamp(2.6rem, 5.6vw, 5.2rem); margin-bottom: 22px; }
.page-hero .lead { margin-bottom: 30px; }
.page-hero-media { position: relative; }
.page-hero-media img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: var(--r-img); }
.page-hero-media .stamp { position: absolute; left: -22px; bottom: 28px; background: var(--accent); color: #fff; border-radius: 16px; padding: 14px 18px; font-weight: 700; font-size: .92rem; line-height: 1.35; max-width: 250px; box-shadow: 0 20px 40px -20px rgba(0,0,0,.45); }
.page-hero-media .stamp.calm { background: var(--ink); }
.status { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: .92rem; margin-bottom: 18px; color: var(--accent); }
.status.calm { color: var(--lilla); }
.status .pulse { background: var(--accent); }
.status.calm .pulse { background: var(--lilla); animation: none; }
.page-banner { position: relative; height: clamp(320px, 52vw, 620px); overflow: hidden; }
.page-banner img { width: 100%; height: 100%; object-fit: cover; }

.split { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(40px, 6vw, 96px); align-items: start; }
.aside-card { position: sticky; top: calc(var(--head-h) + 24px); background: var(--paper-2); border-radius: 20px; padding: 28px; border: 1px solid var(--line); }
.aside-card h3 { font-size: 1.5rem; margin-bottom: 14px; }
.aside-card .price { font-family: var(--f-display); font-size: 2.4rem; line-height: 1; margin: 6px 0 4px; }
.aside-card .btn { width: 100%; margin-top: 18px; }
.aside-card .kv { margin: 16px 0 0; }
.aside-card .kv li { grid-template-columns: 80px 1fr; font-size: .93rem; }
.aside-card hr { border: 0; border-top: 1px solid var(--line); margin: 22px 0 18px; }

.info-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--ink); margin-top: 48px; }
.info-grid > div { padding: 28px 28px 28px 0; border-bottom: 1px solid var(--line); }
.info-grid > div:nth-child(even) { padding-left: 28px; padding-right: 0; border-left: 1px solid var(--line); }
.info-grid h3 { margin-bottom: 12px; font-size: 1.45rem; }
.info-grid p, .info-grid li { color: var(--ink-2); font-size: .98rem; }
.info-grid ul { padding-left: 1.1em; }
.info-grid li { margin-bottom: 4px; }

.voices { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 6px; list-style: none; }
.voices li { background: var(--paper); border: 1.5px solid var(--accent); color: var(--accent); border-radius: 999px; padding: 8px 14px; font-weight: 700; font-size: .9rem; }
.voices li b { font-family: var(--f-display); font-size: 1.1rem; margin-right: 4px; }

.dates { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.dates li { border: 1px solid var(--line); background: var(--paper); border-radius: 10px; padding: 8px 12px; font-weight: 600; font-size: .9rem; min-width: 64px; text-align: center; }
.dates li small { display: block; font-weight: 500; font-size: .72rem; color: var(--ink-2); }
.dates li.off { opacity: .55; text-decoration: line-through; }

.place { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: start; padding: 20px; border-radius: 16px; background: var(--paper-2); margin: 16px 0; }
.place svg { width: 26px; height: 26px; color: var(--accent); margin-top: 2px; }
.place p { margin: 0; }

.gallery { display: grid; grid-template-columns: 1.4fr 1fr; gap: 14px; }
.gallery img { width: 100%; height: clamp(240px, 28vw, 380px); object-fit: cover; border-radius: 20px; }

.related { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.related .tile { grid-column: auto; min-height: 300px; }

.member-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; padding: 24px 28px; border-radius: 16px; border: 1px dashed var(--ink-2); margin-top: 40px; }
.member-strip p { margin: 0; }

/* Testimonials */
.voices-say { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.say { background: var(--paper); border-radius: 18px; padding: 26px; border: 1px solid var(--line); }
.say blockquote { margin: 0 0 14px; font-family: var(--f-display); font-size: 1.22rem; line-height: 1.35; }
.say p { margin: 0; color: var(--ink-2); font-size: .92rem; }
.say.big { grid-column: span 2; }

/* Video */
.video { position: relative; aspect-ratio: 16 / 9; border-radius: 20px; overflow: hidden; background: var(--night); }
.video button { all: unset; cursor: pointer; position: absolute; inset: 0; display: grid; place-items: center; }
.video img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .8; transition: opacity .3s; }
.video button:hover img { opacity: 1; }
.video .play { position: relative; width: 84px; height: 84px; border-radius: 50%; background: var(--accent); display: grid; place-items: center; box-shadow: 0 20px 40px -10px rgba(0,0,0,.5); }
.video .play svg { width: 28px; height: 28px; margin-left: 4px; color: #fff; }
.video .vlabel { position: absolute; left: 20px; bottom: 18px; color: var(--paper); font-weight: 700; font-size: .92rem; text-shadow: 0 1px 8px rgba(0,0,0,.6); }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.video-grid > :first-child { grid-column: span 2; }

/* Medlemskab */
.tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.tier { border-radius: 20px; padding: 32px 28px; background: var(--paper); border: 1px solid var(--line); display: flex; flex-direction: column; }
.tier.hl { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.tier.hl p, .tier.hl li { color: rgba(250,248,251,.78); }
.tier h3 { font-size: 1.7rem; margin-bottom: 8px; }
.tier .price { font-family: var(--f-display); font-size: 2.8rem; line-height: 1; margin: 14px 0 4px; }
.tier .unit { font-size: .85rem; color: var(--ink-2); margin-bottom: 18px; }
.tier.hl .unit { color: rgba(250,248,251,.65); }
.tier p, .tier li { color: var(--ink-2); font-size: .96rem; }
.tier ul { padding-left: 1.1em; margin-bottom: 24px; }
.tier .btn { margin-top: auto; }

/* Tidslinje (Music In Favor) */
.timeline { list-style: none; border-left: 1.5px solid var(--ink); margin-left: 8px; }
.timeline li { position: relative; padding: 0 0 44px 36px; }
.timeline li::before { content: ""; position: absolute; left: -8px; top: 6px; width: 14px; height: 14px; border-radius: 50%; background: var(--accent); border: 3px solid var(--paper); }
.timeline .when { font-weight: 700; color: var(--accent); font-size: .92rem; }
.timeline h3 { margin: 4px 0 10px; }
.timeline p { color: var(--ink-2); max-width: 44em; }
.timeline .sum { display: inline-block; background: var(--lav); color: var(--lilla); font-weight: 700; padding: 6px 12px; border-radius: 999px; font-size: .88rem; }

/* FAQ / accordion */
.acc { border-top: 1px solid var(--ink); }
.acc details { border-bottom: 1px solid var(--line); }
.acc summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 0; font-family: var(--f-display); font-size: 1.4rem; }
.acc summary::-webkit-details-marker { display: none; }
.acc summary::after { content: "+"; font-family: var(--f-body); font-size: 1.6rem; font-weight: 300; transition: transform .25s; }
.acc details[open] summary::after { transform: rotate(45deg); }
.acc .acc-body { padding: 0 0 24px; color: var(--ink-2); max-width: 46em; }

/* Overblikssider */
.overview { display: grid; gap: clamp(56px, 8vw, 110px); }
.ov-row { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.ov-row:nth-child(even) .ov-media { order: 2; }
.ov-media { position: relative; }
.ov-media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r-img); }
.ov-media .tag { position: absolute; top: 18px; left: 18px; background: var(--accent); color: #fff; font-weight: 700; font-size: .82rem; border-radius: 999px; padding: 7px 12px; }
.ov-media .tag.calm { background: var(--paper); color: var(--ink); }
.ov-row h2 { font-size: clamp(2rem, 3.6vw, 3rem); margin-bottom: 14px; }
.ov-row .kv { margin: 18px 0 26px; }

/* Fakta-kort på undersider */
.fact-row { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fact-row div { padding: 22px 20px 22px 0; }
.fact-row div + div { padding-left: 20px; border-left: 1px solid var(--line); }
.fact-row dt { font-size: .8rem; font-weight: 700; color: var(--ink-2); }
.fact-row dd { margin: 4px 0 0; font-family: var(--f-display); font-size: 1.2rem; line-height: 1.25; }

/* Kontaktbånd */
.cta-band { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; }
.cta-band h2 { max-width: 18ch; }

/* --- Bevægelse ------------------------------------------------- */
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(224,123,220,.6); } 70% { box-shadow: 0 0 0 12px rgba(224,123,220,0); } 100% { box-shadow: 0 0 0 0 rgba(224,123,220,0); } }
@keyframes rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes drop { from { opacity: 0; transform: translateY(-18px); } to { opacity: 1; transform: none; } }
.js .slide .line, .js .slide .lead, .js .slide .btn-row, .js .slide .hero-kicker { opacity: 0; }
.js .slide.is-active .line, .js .slide.is-active .lead, .js .slide.is-active .btn-row, .js .slide.is-active .hero-kicker { animation: rise .9s cubic-bezier(.2,.7,.2,1) forwards; }
.js .slide.is-active .hero-kicker { animation-delay: .1s; }
.js .slide.is-active .line:nth-child(1) { animation-delay: .2s; }
.js .slide.is-active .line:nth-child(2) { animation-delay: .32s; }
.js .slide.is-active .line:nth-child(3) { animation-delay: .44s; }
.js .slide.is-active .lead { animation-delay: .6s; }
.js .slide.is-active .btn-row { animation-delay: .72s; }
.js .seats-stack { animation: rise 1s .5s cubic-bezier(.2,.7,.2,1) both; }
.js .seats .n { opacity: 0; }
.js .seats.is-active .n { animation: drop .6s cubic-bezier(.3,1.6,.5,1) forwards; }
.js .seats.is-active .n1 { animation-delay: .35s; } .js .seats.is-active .n2 { animation-delay: .5s; } .js .seats.is-active .n3 { animation-delay: .65s; } .js .seats.is-active .n4 { animation-delay: .8s; }
.js .seats-stack:not(.ready) .seats.is-active .n1 { animation-delay: 1.1s; } .js .seats-stack:not(.ready) .seats.is-active .n2 { animation-delay: 1.3s; } .js .seats-stack:not(.ready) .seats.is-active .n3 { animation-delay: 1.5s; } .js .seats-stack:not(.ready) .seats.is-active .n4 { animation-delay: 1.62s; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-delay: 0s !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* --- Responsivt ------------------------------------------------ */
@media (max-width: 1100px) {
  .nav-list, .head-cta { display: none; }
  .burger { display: grid; place-items: center; }
  .nav-panel { display: block; }
  .hero-inner { grid-template-columns: 1fr; }
  .seats { max-width: 440px; }
  .foot-top { grid-template-columns: 1fr 1fr; }
  .split { grid-template-columns: 1fr; }
  .aside-card { position: static; }
}
@media (max-width: 900px) {
  :root { --head-h: 68px; }
  .join, .leader, .news, .page-hero-grid, .ov-row, .cta-band { grid-template-columns: 1fr; }
  .ov-row:nth-child(even) .ov-media { order: 0; }
  .feature { grid-template-columns: 1fr; }
  .feature-media { min-height: 380px; }
  .feature-media img { border-radius: 0; }
  .feature-body { max-width: none; }
  .join-media .float { right: 12px; }
  .choirs { grid-template-columns: 1fr 1fr; }
  .tile, .tile-xl { grid-column: span 1; grid-row: auto; }
  .tile-xl { grid-column: span 2; min-height: 420px; }
  .sec-head { grid-template-columns: 1fr; }
  .related, .voices-say, .tiers, .video-grid { grid-template-columns: 1fr; }
  .video-grid > :first-child { grid-column: auto; }
  .say.big { grid-column: auto; }
  .gallery { grid-template-columns: 1fr; }
  .leader-photo { max-width: 420px; }
  .page-hero-media .stamp { left: 12px; }
}
@media (max-width: 620px) {
  body { font-size: 1rem; }
  .brand-sub { display: none; }
  .hero { min-height: 100svh; }
  .hero-shade { background: linear-gradient(0deg, rgba(58,37,96,.92) 0%, rgba(58,37,96,.6) 55%, rgba(58,37,96,.35) 100%); }
  .seats { padding: 20px; }
  .choirs { grid-template-columns: 1fr; }
  .tile-xl { grid-column: auto; }
  .yin-yang, .more-yoga, .info-grid { grid-template-columns: 1fr; }
  .info-grid > div:nth-child(even) { padding-left: 0; border-left: 0; }
  .info-grid > div { padding-right: 0; }
  .foot-top { grid-template-columns: 1fr; }
  .join-media .float { display: none; }
  .quote-chip { right: 24px; }
  .kv li { grid-template-columns: 80px 1fr; }
  .btn-row .btn { flex: 1 1 100%; }
}

/* Mobil-menu */
.nav-panel { display: none; }
.mobile-menu {
  position: fixed; inset: var(--head-h) 0 0 0; z-index: 49;
  background: var(--paper); color: var(--ink);
  overflow-y: auto; padding: 24px var(--gut) 48px;
  transform: translateY(-8px); opacity: 0; visibility: hidden;
  transition: opacity .2s, transform .2s, visibility 0s .2s;
}
.nav-open .mobile-menu { opacity: 1; visibility: visible; transform: none; transition: opacity .2s, transform .2s; }
.mobile-menu h4 { font-family: var(--f-body); font-size: .82rem; font-weight: 700; color: var(--ink-2); margin: 24px 0 8px; }
.mobile-menu ul { list-style: none; }
.mobile-menu a { display: block; padding: 10px 0; font-family: var(--f-display); font-size: 1.45rem; text-decoration: none; border-bottom: 1px solid var(--line); }
.mobile-menu .btn { margin-top: 28px; width: 100%; font-family: var(--f-body); font-size: 1rem; border-bottom: 0; }
.nav-open { overflow: hidden; }
.nav-open .site-head { background: var(--paper) !important; color: var(--ink) !important; border-color: var(--line) !important; }

@media print {
  .site-head, .mobile-menu, .site-foot, .btn { display: none !important; }
  main { padding-top: 0; }
}

/* ==========================================================
   v2 – farver, bevægelse og interaktion
   ========================================================== */

/* Overskrifter i brand-lila på lyse flader */
.page-hero h1, .prose h2 { color: var(--ink); }
.page-hero h1 { background: linear-gradient(100deg, var(--ink) 0%, var(--lilla-deep) 55%, var(--lilla) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* Knapper: fyld der glider ind */
.btn { position: relative; overflow: hidden; isolation: isolate; }
.btn::after { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--pink); transform: translateX(-101%); transition: transform .45s var(--ease); }
.btn:not(.btn-ghost):not(.btn-ghost-light):not(.btn-light):hover::after { transform: none; }
.btn:not(.btn-ghost):not(.btn-ghost-light):not(.btn-light):hover { --bg: var(--accent); --bd: var(--pink); }

/* Scroll-progress */
.progress { position: fixed; left: 0; top: 0; height: 3px; width: 100%; z-index: 60; transform-origin: 0 50%; transform: scaleX(0); background: linear-gradient(90deg, var(--pink), var(--accent)); pointer-events: none; }

/* Header-brand: noder der "synger" ved hover */
.brand:hover .brand-mark ellipse { animation: bob .6s var(--ease) both; }
.brand:hover .brand-mark ellipse:nth-of-type(2) { animation-delay: .1s; }
@keyframes bob { 40% { transform: translateY(-3px); } }
.brand-mark ellipse { transform-box: fill-box; transform-origin: center; }

/* Hero – lilla toning, lydbølger og svævende noder */
.hero { background: var(--night); }
.hero-shade {
  background:
    radial-gradient(120% 90% at 85% 10%, rgba(177,69,173,.28) 0%, rgba(177,69,173,0) 55%),
    linear-gradient(90deg, rgba(58,37,96,.9) 0%, rgba(60,48,95,.6) 45%, rgba(60,48,95,.15) 78%),
    linear-gradient(0deg, rgba(58,37,96,.92) 0%, rgba(58,37,96,0) 55%),
    linear-gradient(180deg, rgba(58,37,96,.6) 0%, rgba(58,37,96,0) 22%);
}
.waves { position: absolute; left: 0; right: 0; bottom: 0; height: 180px; z-index: -1; pointer-events: none; opacity: .55; }
.waves path { fill: none; stroke: var(--paper); stroke-width: 1; stroke-opacity: .5; }
.waves path:nth-child(3) { stroke: var(--pink-l); stroke-opacity: .9; stroke-width: 1.4; }
.floaters { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
@keyframes floatUp { 0% { transform: translateY(0) rotate(0deg); opacity: 0; } 10% { opacity: .55; } 80% { opacity: .25; } 100% { transform: translateY(-80vh) rotate(25deg); opacity: 0; } }

/* Ledige pladser – klikbare noder */
.staff-svg .note { fill: var(--accent); transition: fill .2s; }
.staff-svg .stem { stroke: var(--accent); }
.staff-svg .n { cursor: pointer; outline: none; }
.staff-svg .n:hover .note, .staff-svg .n:focus-visible .note, .staff-svg .n.sing .note { fill: var(--pink); }
.staff-svg .n:hover .stem, .staff-svg .n:focus-visible .stem, .staff-svg .n.sing .stem { stroke: var(--pink); }
.staff-svg .n.sing { animation: sing .5s var(--ease); }
.staff-svg .n { transform-box: fill-box; transform-origin: 50% 100%; }
.staff-svg .ring { fill: none; stroke: var(--pink); stroke-width: 1.5; opacity: 0; transform-box: fill-box; transform-origin: center; }
.staff-svg .n.sing .ring { animation: ring .8s ease-out; }
@keyframes sing { 30% { transform: translateY(-5px) scale(1.08); } }
@keyframes ring { 0% { opacity: .9; transform: scale(.6); } 100% { opacity: 0; transform: scale(2.4); } }
.seats-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-top: 6px; }
.play-chord { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: .88rem; color: var(--lilla-deep); padding: 8px 14px 8px 8px; border-radius: 999px; background: var(--lav); transition: background .2s; }
.play-chord:hover { background: var(--paper-3); }
.play-chord:focus-visible { outline: 2px solid var(--pink); outline-offset: 2px; }
.play-chord i { width: 26px; height: 26px; border-radius: 50%; background: var(--pink); color: #fff; display: grid; place-items: center; }
.play-chord i svg { width: 11px; height: 11px; margin-left: 2px; }
.countdown { font-size: .82rem; font-weight: 700; color: var(--accent); }
.countdown b { font-family: var(--f-display); font-size: 1.35rem; font-weight: 500; margin-right: 3px; }
.seats-hint { font-size: .78rem; color: var(--ink-2); margin: -2px 0 4px; }

/* Ticker */

/* Facts strip i lavendel */

/* Scroll-reveal */
.js [data-reveal] { opacity: 0; transform: translateY(34px); transition: opacity .9s var(--ease), transform .9s var(--ease); transition-delay: var(--d, 0s); }
.js [data-reveal="left"] { transform: translateX(-40px); }
.js [data-reveal="right"] { transform: translateX(40px); }
.js [data-reveal="zoom"] { transform: scale(.94); }
.js [data-reveal].in { opacity: 1; transform: none; }

/* Billed-reveal på undersider */
.js .page-hero-media img { clip-path: inset(0 0 100% 0 round var(--r-img)); animation: unveil 1.2s .15s var(--ease) forwards; }
@keyframes unveil { to { clip-path: inset(0 0 0 0 round var(--r-img)); } }
.js .page-hero-media .stamp { opacity: 0; animation: pop .7s 1s cubic-bezier(.3,1.5,.5,1) forwards; }
@keyframes pop { from { opacity: 0; transform: scale(.7) rotate(-4deg); } to { opacity: 1; transform: none; } }
.page-hero-media .stamp { background: var(--accent); }
.page-hero-media .stamp.calm { background: var(--lilla-deep); }

/* Parallax-billeder */
[data-parallax] { will-change: transform; }

/* Yoga – lavendel og åndedrætsguide */
.feature { background: var(--lav); }
.yin-yang { background: rgba(101,90,129,.22); border-color: rgba(101,90,129,.22); }
.yin-yang div { background: var(--lav); }
.breath { position: absolute; right: clamp(20px, 4vw, 48px); top: clamp(20px, 4vw, 48px); width: 168px; height: 168px; display: grid; place-items: center; }
.breath button { all: unset; cursor: pointer; position: absolute; inset: 0; border-radius: 50%; }
.breath button:focus-visible { outline: 2px solid var(--paper); outline-offset: 4px; }
.breath .orb { position: absolute; inset: 22px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.75), rgba(231,166,227,.55) 45%, rgba(101,90,129,.55) 100%); box-shadow: 0 0 0 1px rgba(255,255,255,.4), 0 20px 60px -10px rgba(60,48,95,.6); animation: breathe 10s ease-in-out infinite; backdrop-filter: blur(6px); }
.breath .halo { position: absolute; inset: 0; border-radius: 50%; border: 1px dashed rgba(255,255,255,.65); animation: spin 40s linear infinite; }
.breath .word { position: relative; font-family: var(--f-display); font-size: 1.15rem; color: var(--ink); text-align: center; line-height: 1.15; pointer-events: none; }
.breath .word small { display: block; font-family: var(--f-body); font-size: .7rem; font-weight: 700; color: var(--lilla-deep); margin-top: 4px; }
.breath.paused .orb, .breath.paused .halo { animation-play-state: paused; }
@keyframes breathe { 0%, 100% { transform: scale(.62); } 40% { transform: scale(1); } 55% { transform: scale(1); } }
@keyframes spin { to { transform: rotate(360deg); } }
.feature-badge { background: var(--paper); }
.feature-badge b { color: var(--accent); }

/* Tællere */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line-light); border-radius: 20px; overflow: hidden; margin-top: clamp(48px, 6vw, 80px); }
.stat { background: var(--night-2); padding: 28px 24px; }
.stat .num { font-family: var(--f-display); font-size: clamp(2.6rem, 5vw, 4rem); line-height: 1; font-weight: 350; color: var(--paper); }
.stat .num em { font-style: italic; color: var(--pink-l); }
.stat p { margin: 10px 0 0; font-size: .92rem; color: rgba(250,248,251,.75); line-height: 1.45; }

/* Manuela-sektion i lilla */
.sec-leader { background: linear-gradient(160deg, var(--night) 0%, var(--lilla-deep) 100%); color: var(--paper); position: relative; overflow: hidden; }
.sec-leader .leader-photo img { background: var(--lilla); }
.sec-leader blockquote { color: var(--paper); }
.sec-leader blockquote::before { color: var(--pink-l); }
.sec-leader .muted, .sec-leader .prose p { color: rgba(250,248,251,.78); }
.sec-leader .link-more:hover { color: var(--pink-l); }
.sec-leader .leader-photo::before { content: ""; position: absolute; inset: -18px; border-radius: 50% 50% calc(var(--r-img) + 18px) calc(var(--r-img) + 18px); border: 1px solid rgba(231,166,227,.45); }
.sec-leader .leader-photo::after { content: ""; position: absolute; inset: -38px; border-radius: 50% 50% calc(var(--r-img) + 38px) calc(var(--r-img) + 38px); border: 1px solid rgba(231,166,227,.2); }

/* Find dit kor-quiz */
.quiz { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.quiz-box { background: var(--paper); border-radius: 24px; padding: clamp(24px, 3vw, 40px); border: 1px solid var(--line); box-shadow: 0 30px 60px -40px rgba(60,48,95,.5); min-height: 360px; position: relative; overflow: hidden; }
.quiz-steps { display: flex; gap: 6px; margin-bottom: 26px; }
.quiz-steps span { flex: 1; height: 4px; border-radius: 4px; background: var(--paper-3); transition: background .4s; }
.quiz-steps span.done { background: linear-gradient(90deg, var(--pink), var(--accent)); }
.q { display: none; }
.q.active { display: block; animation: qIn .5s var(--ease); }
@keyframes qIn { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: none; } }
.q h3 { font-size: clamp(1.5rem, 2.4vw, 2rem); margin-bottom: 20px; }
.q .opts { display: grid; gap: 10px; }
.q button { all: unset; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 20px; border-radius: 14px; border: 1.5px solid var(--line); font-weight: 600; transition: border-color .2s, background .2s, transform .2s; }
.q button span { font-weight: 500; font-size: .88rem; color: var(--ink-2); }
.q button:hover, .q button:focus-visible { border-color: var(--pink); background: var(--lav); transform: translateX(4px); }
.q-result { display: none; }
.q-result.active { display: grid; grid-template-columns: 160px 1fr; gap: 22px; align-items: center; animation: qIn .6s var(--ease); }
.q-result img { width: 160px; height: 160px; object-fit: cover; border-radius: 50% 50% 18px 18px; }
.q-result .match { font-weight: 700; color: var(--pink); font-size: .9rem; }
.q-result h3 { font-size: clamp(1.6rem, 2.6vw, 2.2rem); margin: 4px 0 8px; }
.q-result p { color: var(--ink-2); margin-bottom: 16px; }
.q-reset { all: unset; cursor: pointer; font-weight: 700; font-size: .88rem; text-decoration: underline; text-underline-offset: .2em; margin-left: 12px; }
/* «Prøv igen» er et tekstlink ved siden af knappen. Reglerne gælder også sider fra før v0.11.12, hvor knappen havde
   klasserne btn, btn-ghost og btn-sm: de må ikke give den hvid hover-tekst, fejeeffekt, ekstra luft eller hop. */
.q-result .q-knapper { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; }
.q-result .q-reset { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; margin-left: 16px; border: 0; border-radius: 4px; background: none; color: inherit; font-size: var(--fs-sm); line-height: 1.3; transform: none; }
.q-result .q-knapper .q-reset { margin-left: 0; }
.q-result .q-reset:hover { color: var(--accent); text-decoration-thickness: 2px; }
.q-result .q-reset::after { content: none; }

/* Nat-sektion med bølger */
.sec-night { position: relative; overflow: hidden; background: radial-gradient(90% 120% at 100% 0%, rgba(177,69,173,.25), rgba(177,69,173,0) 60%), var(--night); }
.sec-night > .wrap { position: relative; z-index: 1; }
.sec-night .waves { opacity: .35; height: 100%; top: 0; }
.news-form { background: rgba(255,255,255,.06); border: 1px solid var(--line-light); backdrop-filter: blur(8px); }

/* Kor-fliser: farveglød og løft */
.tile { transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.tile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(177,69,173,.45), rgba(177,69,173,0) 60%); opacity: 0; transition: opacity .5s; }
.tile:hover { transform: translateY(-6px); box-shadow: 0 30px 50px -30px rgba(60,48,95,.7); }
.tile:hover::before { opacity: 1; }
.tile .tag { background: var(--pink); }
.tile .arrow { position: absolute; right: 22px; top: 20px; width: 42px; height: 42px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.6); display: grid; place-items: center; transform: rotate(-45deg) scale(.8); opacity: 0; transition: transform .4s var(--ease), opacity .4s; }
.tile .arrow svg { width: 16px; height: 16px; }
.tile:hover .arrow { transform: rotate(-45deg) scale(1); opacity: 1; }

/* Kurser: billedet glider ud */

/* Steps-tal i rød→pink */
.steps li::before { background: linear-gradient(160deg, var(--pink), var(--accent)); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* Footer i den gamle footer-lilla */
.site-foot { background: var(--lilla-deep); position: relative; overflow: hidden; }
.site-foot::before { content: ""; position: absolute; right: -10%; top: -40%; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(177,69,173,.25), rgba(177,69,173,0) 65%); pointer-events: none; }
.site-foot .wrap { position: relative; }
.foot-big { font-family: var(--f-display); font-size: clamp(3rem, 9vw, 8.5rem); line-height: .9; letter-spacing: -.04em; color: var(--paper); font-weight: 300; margin: 0 0 56px; }
.foot-big em { color: var(--pink-l); }
.foot-big a { text-decoration: none; }
.foot-big a:hover { color: var(--pink-l); text-decoration: none; }

/* Tier og aside i lavendel */
.aside-card { background: var(--lav); border-color: rgba(101,90,129,.2); }
.tier.hl { background: linear-gradient(160deg, var(--night), var(--lilla-deep)); border-color: transparent; }
.voices li { border-color: var(--accent); color: var(--accent); }
.timeline li::before { background: var(--pink); }
.timeline .sum { background: var(--lav); color: var(--lilla-deep); }
.place { background: var(--lav); }
.place svg { color: var(--pink); }
.status .pulse { background: var(--pink); }

@media (max-width: 900px) {
  .stats { grid-template-columns: 1fr 1fr; }
  .quiz { grid-template-columns: 1fr; }
  .breath { width: 132px; height: 132px; }
}
@media (max-width: 620px) {
  .q-result.active { grid-template-columns: 1fr; }
  .q-result img { width: 120px; height: 120px; }
  .waves { height: 110px; }
  .floaters { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .js [data-reveal] { opacity: 1; transform: none; }
  .js .page-hero-media img { clip-path: none; }
  .floaters { display: none; }
}

/* Undersider: farvet hero med bølger */
.page-hero { position: relative; isolation: isolate; overflow: hidden; background:
  radial-gradient(60% 80% at 100% 0%, rgba(177,69,173,.16), rgba(177,69,173,0) 70%),
  radial-gradient(50% 70% at 0% 100%, rgba(101,90,129,.14), rgba(101,90,129,0) 70%),
  linear-gradient(180deg, var(--lav) 0%, var(--paper) 100%); margin-bottom: clamp(32px, 4vw, 56px); }
.page-hero .waves { opacity: .9; height: 140px; }
.page-hero .waves path { stroke: var(--lilla); stroke-opacity: .28; }
.page-hero .waves path:nth-child(3) { stroke: var(--pink); stroke-opacity: .5; }
.page-hero-media::before { content: ""; position: absolute; inset: 18px -18px -18px 18px; border-radius: var(--r-img); border: 1.5px solid var(--pink); opacity: .5; z-index: -1; }
.page-hero-media { isolation: isolate; }
@media (max-width: 620px) { .page-hero-media::before { inset: 10px -8px -10px 10px; } }

/* ==========================================================
   v3 – hero-slider
   ========================================================== */
.hero-slider { flex-direction: column; justify-content: flex-end; align-items: stretch; }
.hero-bgs { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; opacity: 0; transform: scale(1.1); transition: opacity 1.4s ease, transform 1.4s ease; }
.hero-bg.is-active { opacity: 1; animation: kenburns 9s ease-out forwards; }
.hero-bg.was-active { opacity: 0; }
@keyframes kenburns { from { transform: scale(1.1) translate(0, 0); } to { transform: scale(1.02) translate(-1%, -1%); } }
.hero-slider .hero-inner { padding-bottom: 28px; }
.slides { display: grid; }
.slide { grid-area: 1 / 1; align-self: end; opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility 0s .5s; }
.slide.is-active { opacity: 1; visibility: visible; transition: opacity .5s ease; }
.seats-choir { font-size: .8rem; font-weight: 700; color: var(--lilla); margin: 0 0 2px; }

.slider-nav { width: 100%; display: flex; align-items: center; gap: 24px; padding-bottom: clamp(28px, 4vw, 48px); position: relative; z-index: 2; }
.slider-tabs { flex: 1; display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.slider-tab { all: unset; cursor: pointer; display: grid; gap: 10px; padding: 8px 0; color: rgba(250,248,251,.6); font-weight: 700; font-size: .85rem; transition: color .3s; }
.slider-tab:hover, .slider-tab.is-active { color: var(--paper); }
.slider-tab:focus-visible { outline: 2px solid var(--pink-l); outline-offset: 4px; border-radius: 4px; }
.slider-tab .bar { display: block; height: 3px; border-radius: 3px; background: rgba(250,248,251,.25); overflow: hidden; }
.slider-tab .bar i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--pink-l), var(--pink)); }
.slider-tab.is-active .bar i { animation: fill var(--slide-ms, 7000ms) linear forwards; }
.slider-tab.is-done .bar i { width: 100%; }
.hero-slider.paused .slider-tab.is-active .bar i { animation-play-state: paused; }
@keyframes fill { to { width: 100%; } }
.slider-ctrl { display: flex; gap: 8px; }
.sl-btn { all: unset; cursor: pointer; width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid rgba(250,248,251,.5); color: var(--paper); display: grid; place-items: center; transition: background .2s, border-color .2s, color .2s; }
.sl-btn svg { width: 16px; height: 16px; }
.sl-btn:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.sl-btn:focus-visible { outline: 2px solid var(--pink-l); outline-offset: 3px; }
.sl-pause .i-play { display: none; }
.hero-slider.paused .sl-pause .i-play { display: block; }
.hero-slider.paused .sl-pause .i-pause { display: none; }

@media (max-width: 1100px) {
  .hero-slider .hero-inner { gap: 28px; }
}
@media (max-width: 900px) {
  .slider-tab .tab-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  .slider-tabs { gap: 8px; }
  .slider-nav { order: 0; }
}
@media (max-width: 620px) {
  .hero-slider .hero-inner { padding-top: calc(var(--head-h) + 28px); }
  .slider-nav { padding-bottom: 24px; gap: 14px; }
  .sl-btn { width: 40px; height: 40px; }
  .hero .hero-title { font-size: clamp(2.5rem, 12vw, 3.2rem); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-bg.is-active { animation: none; transform: none; }
}
@media (max-width: 900px) {
  .hero-slider .hero-inner { display: contents; }
  .hero-slider .slides { order: 1; padding: calc(var(--head-h) + 40px) var(--gut) 8px; }
  .hero-slider .slider-nav { order: 2; padding-bottom: 28px; }
  .hero-slider .seats-stack { order: 3; margin: 0 var(--gut) 36px; max-width: 460px; }
}
.hero-slider.offscreen .slider-tab.is-active .bar i { animation-play-state: paused; }
.hero-slider .waves { bottom: 96px; opacity: .4; }

/* ==========================================================
   v4 – info-kort der skifter med slideren
   ========================================================== */
.seats-stack { display: grid; align-self: end; }
.seats-stack > .seats { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(14px) scale(.98); transition: opacity .5s ease, transform .6s var(--ease), visibility 0s .6s; }
.seats-stack > .seats.is-active { opacity: 1; visibility: visible; transform: none; transition: opacity .6s ease .15s, transform .7s var(--ease) .15s; }
.seats-yoga .next-class { margin: 8px 0 14px; display: grid; gap: 2px; }
.seats-yoga .next-class b { font-family: var(--f-display); font-weight: 450; font-size: 1.7rem; line-height: 1.1; color: var(--lilla-deep); }
.seats-yoga .next-class span { font-weight: 700; font-size: .9rem; color: var(--accent); }
.season-dots { list-style: none; display: grid; grid-template-columns: repeat(12, 1fr); gap: 5px; margin: 0; }
.season-dots li { height: 10px; border-radius: 5px; background: var(--paper-3); }
.season-dots li.past { background: var(--lilla-l); }
.season-dots li.next { background: var(--pink); animation: nextPulse 1.8s ease-in-out infinite; }
@keyframes nextPulse { 50% { box-shadow: 0 0 0 4px rgba(177,69,173,.25); } }
.dots-cap { font-size: .8rem; color: var(--ink-2); margin: 8px 0 14px; }
.seats-yoga .kv { margin-bottom: 14px; gap: 6px; }
.seats-yoga .kv li { grid-template-columns: 52px 1fr; font-size: .9rem; }
.seats-yoga .play-chord { text-decoration: none; }
.seats-yoga .play-chord i svg { margin-left: 0; }
.countdown-link { font-weight: 700; font-size: .88rem; color: var(--accent); }

/* ==========================================================
   v5 – to spor: kor (dyb lilla) og yoga (rosa-orkidé)
   ========================================================== */
:root { --yoga: #A2559C; --yoga-deep: #6B2E66; --yoga-l: #F6E9F4; }
.track-yoga {
  --accent: #8A3A84; --accent-2: #6B2E66;
  --lilla: #A2559C; --lilla-deep: #6B2E66; --lilla-l: #D4A3CF;
  --lav: #F6E9F4; --paper-3: #EDD5EA;
  --pink: #B0509F; --pink-l: #F3C6EE;
}
/* Header, menu og footer forbliver i foreningens lilla */
.track-yoga .site-head, .track-yoga .mobile-menu, .track-yoga .site-foot {
  --accent: #8E2C73; --accent-2: #6E1F59;
  --lilla: #655A81; --lilla-deep: #3C305F; --lilla-l: #8F84AE;
  --lav: #E9E3F2; --paper-3: #E2D9EA; --pink: #B145AD; --pink-l: #E7A6E3;
}
body.track-yoga .page-hero { background:
  radial-gradient(60% 80% at 100% 0%, rgba(198,107,191,.22), rgba(198,107,191,0) 70%),
  radial-gradient(50% 70% at 0% 100%, rgba(101,90,129,.12), rgba(101,90,129,0) 70%),
  linear-gradient(180deg, #F6E9F4 0%, var(--paper) 100%); }
body.track-yoga .page-hero h1 { background-image: linear-gradient(100deg, #28223A 0%, #6B2E66 55%, #A2559C 100%); }

/* Hero: rosa toning når yoga-slidet vises */
.hero-tint { position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; transition: opacity 1.4s ease;
  background: radial-gradient(110% 90% at 80% 20%, rgba(198,107,191,.45), rgba(198,107,191,0) 60%), linear-gradient(90deg, rgba(107,46,102,.55), rgba(107,46,102,.1) 70%); }
.hero-slider[data-track="yoga"] .hero-tint { opacity: 1; }
.slide.track-yoga .hero-kicker .pulse { background: #F3C6EE; }
.hero-slider[data-track="yoga"] .slider-tab .bar i { background: linear-gradient(90deg, #F3C6EE, #B0509F); }
.seats-yoga .next-class b { color: var(--yoga-deep); }

/* Yoga-sektion på forsiden */
.feature.track-yoga { background: linear-gradient(135deg, #F6E9F4 0%, #E9E3F2 100%); }
.feature.track-yoga .yin-yang div { background: rgba(255,255,255,.55); }
.feature.track-yoga .breath .orb { background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.8), rgba(243,198,238,.65) 45%, rgba(162,85,156,.6) 100%); }

/* Kursusliste: spor-mærker */

/* De to døre */
.doors { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; background: var(--paper); }
.door { position: relative; isolation: isolate; overflow: hidden; min-height: 400px; color: var(--paper); display: flex; align-items: flex-end; }
.door > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.2s var(--ease); }
.door::after { content: ""; position: absolute; inset: 0; z-index: -1; transition: opacity .5s; }
.door-kor::after { background: linear-gradient(160deg, rgba(58,37,96,.94) 0%, rgba(60,48,95,.78) 55%, rgba(142,44,115,.55) 100%); }
.door-yoga::after { background: linear-gradient(200deg, rgba(107,46,102,.94) 0%, rgba(138,58,132,.78) 55%, rgba(101,90,129,.55) 100%); }
.door:hover > img { transform: scale(1.06); }
.door-body { position: relative; padding: clamp(32px, 4.5vw, 64px); max-width: 600px; }
.door-kor .door-body { margin-left: auto; margin-right: 0; }
.door-over { font-weight: 700; font-size: .9rem; color: rgba(250,248,251,.75); margin-bottom: 10px; }
.door h2 { font-size: clamp(2.4rem, 4.6vw, 4rem); font-weight: 350; letter-spacing: -.03em; margin-bottom: 14px; color: var(--paper); }
.door-link { text-decoration: none; color: inherit; }
.door-link::after { content: ""; position: absolute; inset: 0; z-index: 0; }
.door-link:hover { color: inherit; }
.door-link:focus-visible { outline: none; }
.door:has(.door-link:focus-visible) { outline: 3px solid var(--pink-l); outline-offset: -6px; }
.door-text { color: rgba(250,248,251,.82); max-width: 32em; margin-bottom: 18px; }
.door-now { display: inline-flex; align-items: center; gap: 10px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); border-radius: 999px; padding: 8px 16px; font-weight: 700; font-size: .9rem; margin-bottom: 22px; backdrop-filter: blur(6px); }
.door-yoga .door-now .pulse { background: #F3C6EE; }
.door-quick { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; position: relative; z-index: 1; }
.door-quick a { display: inline-block; padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,.45); font-weight: 600; font-size: .88rem; text-decoration: none; transition: background .2s, color .2s; }
.door-quick a:hover { background: var(--paper); color: var(--ink); }
.door-arrow { position: absolute; top: 28px; right: 28px; width: 58px; height: 58px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.6); display: grid; place-items: center; transform: rotate(45deg); transition: transform .5s var(--ease), background .3s, color .3s; }
.door-arrow svg { width: 20px; height: 20px; }
.door:hover .door-arrow { transform: rotate(90deg); background: var(--paper); color: var(--ink); }
.door-kor .door-arrow { left: 28px; right: auto; }

/* NVE-fakta i to kolonner */
.fact-row.fact-2 { grid-template-columns: 1fr 1fr; margin: 26px 0 0; }
.fact-row.fact-2 > div:nth-child(3) { padding-left: 0; border-left: 0; }
.fact-row.fact-2 > div:nth-child(n+3) { border-top: 1px solid var(--line); }

@media (max-width: 900px) {
  .doors { grid-template-columns: 1fr; }
  .door { min-height: 360px; }
  .door-kor .door-body { margin-left: 0; }
  .door-kor .door-arrow { left: auto; right: 24px; }
  .door-arrow { top: 22px; right: 22px; width: 48px; height: 48px; }
}
@media (max-width: 620px) {
  .fact-row.fact-2 { grid-template-columns: 1fr 1fr; }
  .fact-row.fact-2 > div, .fact-row.fact-2 > div + div { padding: 14px 10px 14px 0; border-left: 0; }
}

/* ==========================================================
   v6 – yoga-svæv: blade og åndedrætsbobler i stedet for noder
   ========================================================== */
.fl-set { position: absolute; inset: 0; transition: opacity 1.2s ease; }
.fl-yoga { opacity: 0; }
.hero-slider[data-track="yoga"] .fl-notes { opacity: 0; }
.hero-slider[data-track="yoga"] .fl-yoga { opacity: 1; }
.floaters .fl-note { position: absolute; bottom: -40px; font-family: var(--f-display); color: var(--pink-l); opacity: 0; animation: floatUp 14s linear infinite; }
.floaters .fl-bubble, .floaters .fl-leaf { position: absolute; bottom: -60px; font-size: 0; opacity: 0; }
.floaters .fl-bubble {
  border-radius: 50%;
  background:
    radial-gradient(circle at 32% 28%, rgba(255,255,255,.55) 0 8%, rgba(255,255,255,0) 16%),
    radial-gradient(circle, rgba(243,198,238,0) 52%, rgba(243,198,238,.28) 78%, rgba(243,198,238,.05) 100%);
  border: 1px solid rgba(246,214,242,.55);
  box-shadow: 0 0 14px rgba(243,198,238,.35), inset 0 0 10px rgba(246,214,242,.2);
  animation: breatheUp 20s ease-in-out infinite;
}
.floaters .fl-leaf { color: #F3C6EE; filter: drop-shadow(0 0 6px rgba(243,198,238,.45)); animation: leafUp 22s ease-in-out infinite; }
.floaters .fl-leaf svg { width: 100%; height: 100%; display: block; }
@keyframes breatheUp {
  0%   { transform: translate(0, 0) scale(.6); opacity: 0; }
  10%  { opacity: .7; }
  25%  { transform: translate(18px, -24vh) scale(1); }
  50%  { transform: translate(-14px, -48vh) scale(.75); opacity: .6; }
  75%  { transform: translate(16px, -72vh) scale(1); opacity: .45; }
  100% { transform: translate(0, -96vh) scale(.8); opacity: 0; }
}
@keyframes leafUp {
  0%   { transform: translate(0, 0) rotate(-20deg); opacity: 0; }
  10%  { opacity: .85; }
  30%  { transform: translate(34px, -28vh) rotate(25deg); }
  55%  { transform: translate(-26px, -52vh) rotate(-15deg); opacity: .75; }
  80%  { transform: translate(22px, -76vh) rotate(30deg); opacity: .35; }
  100% { transform: translate(0, -96vh) rotate(0deg); opacity: 0; }
}

/* ==========================================================
   v7 – Det sker snart, stemmetest, FAQ, formular, mobil-CTA
   ========================================================== */

/* Det sker snart */
.soon { background: var(--paper); border-bottom: 1px solid var(--line); }
.soon-inner { display: grid; grid-template-columns: auto 1fr; gap: 32px; align-items: center; padding-block: 28px; }
.soon-title { font-size: 1.5rem; font-weight: 450; white-space: nowrap; }
.soon-title::after { content: ""; display: block; width: 36px; height: 2px; background: var(--pink); margin-top: 8px; }
.soon-list { list-style: none; display: flex; gap: 12px; overflow-x: auto; scrollbar-width: thin; padding-bottom: 2px; }
.soon-item a { display: flex; gap: 14px; align-items: center; padding: 10px 18px 10px 10px; border-radius: 16px; border: 1px solid var(--line); background: #fff; text-decoration: none; min-width: 270px; transition: transform .3s var(--ease), box-shadow .3s; }
.soon-item a:hover { transform: translateY(-3px); box-shadow: 0 18px 30px -20px rgba(60,48,95,.5); color: inherit; }
.soon-date { flex: none; width: 58px; height: 62px; border-radius: 12px; display: grid; place-content: center; text-align: center; color: #fff; background: linear-gradient(160deg, #3C305F, #655A81); line-height: 1.05; }
.t-yoga .soon-date { background: linear-gradient(160deg, #6B2E66, #A2559C); }
.soon-date small { font-size: .68rem; font-weight: 700; text-transform: lowercase; opacity: .85; }
.soon-date b { font-family: var(--f-display); font-size: 1.6rem; font-weight: 450; }
.soon-txt { display: grid; gap: 1px; font-size: .86rem; color: var(--ink-2); }
.soon-txt strong { color: var(--ink); font-size: .95rem; }
.soon-txt em { font-style: normal; font-weight: 700; font-size: .78rem; color: var(--accent); }
.t-yoga .soon-txt em { color: #8A3A84; }
.soon-more { grid-column: 1 / -1; margin: 0; font-size: .85rem; }
.soon-more:empty { display: none; }

/* Stemmetest */
.voicetest { position: relative; overflow: hidden; color: var(--paper); padding-block: var(--sec);
  background: radial-gradient(70% 90% at 10% 10%, rgba(177,69,173,.35), rgba(177,69,173,0) 60%), radial-gradient(60% 80% at 100% 100%, rgba(142,44,115,.35), rgba(142,44,115,0) 60%), var(--night); }
.vt-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.vt-over { font-weight: 700; color: var(--pink-l); margin-bottom: 12px; }
.voicetest h2 { color: var(--paper); margin-bottom: 20px; }
.voicetest .lead { color: rgba(250,248,251,.8); margin-bottom: 28px; }
.vt-privacy { font-size: .85rem; color: rgba(250,248,251,.6); margin-top: 18px; }
.vt-msg { font-weight: 700; color: var(--pink-l); min-height: 1.5em; }
.vt-card { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: 26px; padding: clamp(22px, 3vw, 36px); backdrop-filter: blur(10px); box-shadow: 0 40px 80px -40px rgba(0,0,0,.6); }
.vt-stage { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 6px 20px; margin-bottom: 26px; }
.vt-step { grid-column: 1 / -1; margin: 0; font-weight: 700; color: var(--pink-l); min-height: 1.4em; }
.vt-now { display: flex; align-items: baseline; gap: 14px; }
.vt-note { font-family: var(--f-display); font-size: clamp(4rem, 9vw, 6.5rem); line-height: .9; font-weight: 300; letter-spacing: -.03em; min-width: 2ch; transition: color .2s; }
.vt-hz { font-size: .9rem; color: rgba(250,248,251,.55); font-variant-numeric: tabular-nums; }
.vt-timer { width: 64px; height: 64px; border-radius: 50%; background: conic-gradient(var(--pink) calc(var(--p, 0) * 1%), rgba(255,255,255,.12) 0); display: grid; place-items: center; opacity: 0; transition: opacity .3s; }
.vt-timer i { width: 52px; height: 52px; border-radius: 50%; background: var(--night); }
.voicetest.listening .vt-timer { opacity: 1; }
.vt-meter { --lo: 36; --span: 48; }
.vt-bands { display: grid; gap: 5px; margin-bottom: 12px; }
.band { position: relative; display: block; height: 18px; font-size: .7rem; font-weight: 700; line-height: 18px; padding-left: 8px; border-radius: 9px; color: rgba(255,255,255,.9);
  margin-left: calc((var(--blo) - 36) / 48 * 100%); width: calc((var(--bhi) - var(--blo)) / 48 * 100%); transition: background .4s, box-shadow .4s; }
.b-sop { --blo: 60; --bhi: 81; background: rgba(231,166,227,.28); }
.b-alt { --blo: 53; --bhi: 74; background: rgba(177,69,173,.3); }
.b-ten { --blo: 48; --bhi: 69; background: rgba(143,132,174,.32); }
.b-bas { --blo: 41; --bhi: 64; background: rgba(101,90,129,.4); }
.band.match { background: var(--pink); box-shadow: 0 0 0 2px rgba(255,255,255,.5), 0 0 24px rgba(177,69,173,.7); }
.vt-track { position: relative; height: 14px; border-radius: 7px; background: repeating-linear-gradient(90deg, rgba(255,255,255,.18) 0 1px, transparent 1px calc(100% / 48)), rgba(255,255,255,.06); }
.vt-range { position: absolute; top: 0; bottom: 0; left: 0; width: 0; border-radius: 7px; background: linear-gradient(90deg, var(--pink), var(--accent)); opacity: 0; transition: left .25s, width .25s, opacity .3s; }
.vt-dot { position: absolute; top: 50%; left: 50%; width: 22px; height: 22px; margin: -11px 0 0 -11px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 6px rgba(231,166,227,.35), 0 0 22px rgba(231,166,227,.9); opacity: 0; transition: left .12s linear, opacity .3s; }
.voicetest.listening .vt-dot.on { opacity: 1; }
.vt-scale { display: flex; justify-content: space-between; font-size: .72rem; color: rgba(250,248,251,.55); margin-top: 8px; }
.vt-result { margin-top: 26px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); animation: qIn .6s var(--ease); }
.vt-res-over { margin: 0; color: rgba(250,248,251,.7); font-weight: 700; }
.vt-res-type { font-size: clamp(2.6rem, 5vw, 3.6rem); color: var(--pink-l); font-weight: 350; margin: 2px 0 6px; }
.vt-res-range { font-weight: 700; margin-bottom: 8px; }
.vt-res-text { color: rgba(250,248,251,.8); }
.vt-result .btn-ghost { --fg: var(--paper); --bd: rgba(250,248,251,.6); }
.vt-result .btn-ghost:hover { --bg: var(--paper); --fg: var(--ink); color: var(--ink); }
.vt-note-small { font-size: .8rem; color: rgba(250,248,251,.55); margin-top: 14px; }

/* Medlemmer + FAQ */
.vf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: start; }
.voices-sec h2 { margin-bottom: 32px; }
.quotes { display: grid; gap: 14px; }
.mq { margin: 0; padding: 22px 24px; border-radius: 18px; background: var(--lav); border-left: 4px solid var(--pink); }
.mq blockquote { margin: 0 0 10px; font-family: var(--f-display); font-size: 1.2rem; line-height: 1.35; }
.mq:not(.real) blockquote { color: var(--ink-2); font-style: italic; }
.mq figcaption { font-size: .85rem; font-weight: 700; color: var(--ink-2); }

/* Fast CTA på mobil */
.sticky-cta { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 45; display: none; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 18px; border-radius: 18px; background: rgba(58,37,96,.94); color: var(--paper); box-shadow: 0 20px 40px -12px rgba(0,0,0,.5); backdrop-filter: blur(10px); transform: translateY(140%); transition: transform .45s var(--ease); }
.sticky-cta.track-yoga { background: rgba(107,46,102,.95); }
.sticky-cta p { margin: 0; display: grid; line-height: 1.25; }
.sticky-cta b { font-size: .95rem; }
.sticky-cta span { font-size: .78rem; opacity: .75; }
.sticky-cta .btn { min-height: 44px; padding: .55em 1.1em; font-size: .9rem; flex: none; }
.sticky-cta.show { transform: none; }
@media (max-width: 900px) { .sticky-cta { display: flex; } }

/* Booking-dialog */
.book { width: min(620px, calc(100% - 24px)); max-height: calc(100dvh - 24px); border: 0; border-radius: 26px; padding: 0; background: var(--paper); color: var(--ink); box-shadow: 0 40px 100px -20px rgba(58,37,96,.6); overflow: auto; }
.book::backdrop { background: rgba(58,37,96,.6); backdrop-filter: blur(4px); }
.book[open] { animation: qIn .4s var(--ease); }
.book-form, .book-done { position: relative; padding: clamp(24px, 4vw, 40px); }
.book-form > .book-close { all: unset; cursor: pointer; position: absolute; top: 16px; right: 18px; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-size: 1.6rem; line-height: 1; background: var(--lav); }
.book-form > .book-close:focus-visible { outline: 2px solid var(--pink); }
.book-over { font-weight: 700; color: var(--pink); margin: 0 0 6px; }
.book h2 { font-size: clamp(1.8rem, 3.4vw, 2.4rem); margin-bottom: 10px; }
.book-lead { color: var(--ink-2); margin-bottom: 22px; }
.bf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.bf-grid label, .bf-grid legend { display: grid; gap: 6px; font-size: .85rem; font-weight: 700; color: var(--ink-2); }
.bf-full { grid-column: 1 / -1; }
.bf-grid fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.bf-grid legend { margin-bottom: 8px; }
.bf-grid input:not([type=radio]), .bf-grid select, .bf-grid textarea { width: 100%; min-height: 48px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; padding: 10px 14px; font: 500 1rem var(--f-body); color: var(--ink); }
.bf-grid textarea { min-height: 84px; resize: vertical; }
.bf-grid input:focus, .bf-grid select:focus, .bf-grid textarea:focus { outline: none; border-color: var(--pink); box-shadow: 0 0 0 3px rgba(177,69,173,.18); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips label { display: inline-flex; flex-direction: row; align-items: center; gap: 0; cursor: pointer; }
.chips input { position: absolute; opacity: 0; pointer-events: none; }
.chips label { padding: 9px 15px; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; color: var(--ink); font-weight: 600; font-size: .9rem; transition: background .2s, border-color .2s, color .2s; }
.chips label:has(input:checked) { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.chips label:has(input:focus-visible) { outline: 2px solid var(--pink); outline-offset: 2px; }
.bf-error { color: var(--accent); font-weight: 700; min-height: 1.4em; margin: 12px 0 0; font-size: .9rem; }
.bf-submit { width: 100%; margin-top: 6px; }
.bf-small { font-size: .8rem; margin: 12px 0 0; }
.book-done p { color: var(--ink-2); }

@media (max-width: 900px) {
  .vt-grid, .vf-grid { grid-template-columns: 1fr; }
  .soon-inner { grid-template-columns: 1fr; gap: 14px; }
}
@media (max-width: 620px) {
  .bf-grid { grid-template-columns: 1fr; }
  .soon-item a { min-width: 250px; }
  .site-foot { padding-bottom: 100px; }
}

/* ==========================================================
   v8 – velkomst-slide: "Det tilbyder vi"
   ========================================================== */
.offers { list-style: none; display: grid; gap: 8px; margin: 12px 0 14px; }
.offer a { display: grid; grid-template-columns: 46px 1fr auto; gap: 14px; align-items: center; padding: 10px 12px 10px 10px; border-radius: 14px; background: #fff; border: 1px solid var(--line); text-decoration: none; transition: transform .3s var(--ease), border-color .2s, box-shadow .3s; }
.offer a:hover { transform: translateX(4px); border-color: var(--pink); box-shadow: 0 14px 24px -18px rgba(60,48,95,.6); color: inherit; }
.offer-num { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; font-family: var(--f-display); font-size: 1.6rem; color: #fff; background: linear-gradient(160deg, #3C305F, #655A81); }
.offer.t-yoga .offer-num { background: linear-gradient(160deg, #6B2E66, #A2559C); }
.offer-txt { display: grid; line-height: 1.3; }
.offer-txt b { font-size: .98rem; }
.offer-txt span { font-size: .8rem; color: var(--ink-2); }
.offer-go { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; color: var(--ink-2); transition: background .2s, color .2s; }
.offer-go svg { width: 14px; height: 14px; }
.offer a:hover .offer-go { background: var(--pink); color: #fff; }
.js .seats.is-active .offer { opacity: 0; animation: rise .6s var(--ease) forwards; }
.js .seats.is-active .offer:nth-child(1) { animation-delay: .3s; }
.js .seats.is-active .offer:nth-child(2) { animation-delay: .4s; }
.js .seats.is-active .offer:nth-child(3) { animation-delay: .5s; }
.js .seats.is-active .offer:nth-child(4) { animation-delay: .6s; }
.js .seats-stack:not(.ready) .seats.is-active .offer:nth-child(n) { animation-delay: calc(1s + var(--i, 0) * .1s); }
@media (max-width: 1100px) { .slider-tab .tab-label { font-size: .78rem; } }
.offer-num.txt { font-family: var(--f-body); font-size: .82rem; font-weight: 800; letter-spacing: .02em; }

/* ==========================================================
   v9 – klar adskillelse: hero slutter, døre som kort
   ========================================================== */
.hero-edge { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: clamp(28px, 4vw, 56px); z-index: 1; pointer-events: none; }
.hero-edge path { fill: var(--paper); }
.hero-slider .slider-nav { padding-bottom: clamp(56px, 7vw, 96px); }

.paths { background: var(--paper); padding: clamp(40px, 5vw, 64px) 0 clamp(56px, 7vw, 96px); }
.paths-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 32px; margin-bottom: clamp(22px, 3vw, 34px); }
.paths-head h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
.paths-head p { margin: 0; color: var(--ink-2); font-size: 1.05rem; }
.paths .doors { gap: 18px; background: none; }
.paths .door { border-radius: var(--r-img); min-height: 440px; box-shadow: 0 30px 60px -36px rgba(58,37,96,.55); transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.paths .door:hover { transform: translateY(-6px); box-shadow: 0 40px 70px -34px rgba(58,37,96,.7); }
.paths .door-kor .door-body { margin-left: 0; }
.paths .door-kor .door-arrow { left: auto; right: 28px; }
.paths .door-body { padding: clamp(28px, 3.6vw, 48px); }
.paths .door h2 { font-size: clamp(2.2rem, 3.8vw, 3.4rem); }
@media (max-width: 900px) {
  .paths .doors { gap: 14px; }
  .paths .door { min-height: 380px; }
  .hero-slider .seats-stack { margin-bottom: 64px; }
  .hero-slider .slider-nav { padding-bottom: 28px; }
}

/* ==========================================================
   v10 – ENSRETNING
   Fælles design-tokens og komponenter. Alt nedenfor normaliserer
   de tidligere lag til ét system.
   ========================================================== */
:root {
  /* Farver */
  --surface: #FFFFFF;
  --tint: #EDE7F2;
  --tint-2: #E2D9EA;
  --paper-2: var(--tint);
  --lav: var(--tint);
  --paper-3: var(--tint-2);
  --on-dark: rgba(250,248,251,.86);
  --on-dark-2: rgba(250,248,251,.68);
  --line-dark: rgba(250,248,251,.22);
  --btn-sweep: var(--pink);
  --focus: var(--accent);
  /* Typografi */
  --fs-h2: clamp(2.1rem, 4.2vw, 3.5rem);
  --fs-h3: clamp(1.75rem, 3vw, 2.5rem);
  --fs-h4: clamp(1.35rem, 2vw, 1.625rem);
  --fs-h5: 1.25rem;
  --fs-num: clamp(2.5rem, 4.5vw, 3.5rem);
  --fs-sm: .9375rem;
  --fs-xs: .8125rem;
  /* Afstand */
  --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px;
  --gap-grid: 16px;
  --gap-split: clamp(32px, 6vw, 96px);
  --pad-md: clamp(20px, 2.4vw, 28px);
  --pad-lg: clamp(28px, 3.6vw, 48px);
  /* Radier */
  --r-sm: 10px; --r-md: 16px; --r-lg: 24px; --r-img: 24px;
  /* Skygger */
  --sh-1: 0 12px 24px -16px rgba(58,37,96,.45);
  --sh-2: 0 24px 48px -24px rgba(58,37,96,.45);
  --sh-3: 0 40px 80px -32px rgba(20,16,32,.6);
  --ring: 0 0 0 3px rgba(177,69,173,.3);
}
.track-yoga { --tint: #F6E9F4; --tint-2: #EDD5EA; --paper-2: #F6E9F4; --lav: #F6E9F4; --paper-3: #EDD5EA; --btn-sweep: #6B2E66; }
.track-yoga .site-head, .track-yoga .mobile-menu, .track-yoga .site-foot { --tint: #EDE7F2; --tint-2: #E2D9EA; --paper-2: #EDE7F2; --lav: #EDE7F2; --btn-sweep: #B145AD; }

/* Fokus – lys ring på mørke flader */
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.hero, .sec-night, .sec-leader, .voicetest, .site-foot, .door, .sticky-cta, .tile, .tier.hl { --focus: var(--pink-l); }
.video button:focus-visible, .q button:focus-visible, .breath button:focus-visible, .play-chord:focus-visible, .slider-tab:focus-visible, .sl-btn:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }

/* Grundelementer */
:where(.rk-site) figure { margin: 0; }
:where(.rk-site) h2 { font-size: var(--fs-h2); }
:where(.rk-site) h3 { font-size: var(--fs-h4); }
.prose h2, .sub-head { font-size: var(--fs-h3); font-weight: 380; }
.sub-head { margin: var(--s-8) 0 var(--s-4); }
.sub-head.first { margin-top: 0; }
.lead-after { margin-top: var(--s-4); }
.note { margin: var(--s-4) 0 0; font-size: .875rem; color: var(--ink-2); line-height: 1.5; }
.block, .gallery { margin-top: var(--s-7); }
.sec-after-hero { padding-top: 0; }
.sec-tint, .sec-sage, .sec-alt { background: var(--tint); }

/* Øjebryn-labels: én stil */
.hero-kicker, .status, .door-over, .feature-body .over, .vt-over, .seats-choir, .book-over, .q-result .match, .vt-res-over, .timeline .when, .seats-title span {
  font-family: var(--f-body); font-size: var(--fs-xs); font-weight: 700; letter-spacing: .01em; line-height: 1.35;
}
.door-over, .feature-body .over, .seats-choir, .book-over, .q-result .match, .timeline .when, .seats-title span { color: var(--lilla); }
.hero-kicker, .door-over, .vt-over, .vt-res-over { color: var(--on-dark); }
.hero-kicker { font-size: .875rem; }
.status { color: var(--accent); }
.status.calm { color: var(--lilla); }

/* Knapper */
.btn::after { background: var(--btn-sweep); }
.btn-sm { min-height: 44px; padding: .55em 1.1em; font-size: var(--fs-sm); }
.btn-ghost-light, .vt-result .btn-ghost { --fg: var(--paper); --bd: rgba(250,248,251,.6); }
body.track-yoga .head-cta { --bg: transparent; --fg: var(--ink); --bd: var(--ink); }
body.track-yoga .head-cta:hover { --bg: var(--ink); --fg: var(--paper); color: var(--paper); }
.link-more { display: inline-block; padding: 6px 0 2px; }

/* Mærker */
.tag, .tile .tag, .ov-media .tag { background: var(--pink); color: #fff; font: 700 var(--fs-xs)/1 var(--f-body); padding: 8px 12px; border-radius: 999px; }
.tag.calm, .tile .tag.calm, .ov-media .tag.calm { background: var(--paper); color: var(--ink); }

/* Chips og tryk-flader ≥ 44px */
.door-quick a, .fb-links a { min-height: 44px; display: inline-flex; align-items: center; padding: 0 16px; }
.chips label { min-height: 44px; }
.sl-btn { width: 44px; height: 44px; }
.crumbs a { display: inline-block; padding: 8px 0; }
.site-foot ul a { display: inline-block; padding: 4px 0; }
.site-foot .foot-h { color: var(--paper); font-family: var(--f-body); font-size: var(--fs-xs); font-weight: 700; letter-spacing: .01em; margin-bottom: 14px; }

/* Radier */
.tile, .seats, .vt-card, .quiz-box, .aside-card, .tier, .door, .news-form, .stats, .video, .book, .gallery img, .ov-media img, .join-media img { border-radius: var(--r-lg); }
.say, .mq, .place, .member-strip, .soon-item a, .offer a, .q button, .page-hero-media .stamp, .quote-chip, .yin-yang, .sub, .sticky-cta, .join-media .float { border-radius: var(--r-md); }
.bf-grid input:not([type=radio]), .bf-grid select, .bf-grid textarea, .news-form input, .dates li, .offer-num, .soon-date { border-radius: var(--r-sm); }

/* Skygger */
.seats, .vt-card, .book, .sticky-cta { box-shadow: var(--sh-3); }
.door, .quiz-box, .page-hero-media .stamp, .quote-chip, .join-media .float, .sub { box-shadow: var(--sh-2); }
.tile:hover, .door:hover, .paths .door:hover { box-shadow: var(--sh-3); transform: translateY(-4px); }
.paths .door { box-shadow: var(--sh-2); }
.soon-item a:hover, .offer a:hover { box-shadow: var(--sh-1); transform: translateY(-2px); }

/* Indvendig luft i kort */
.aside-card, .tier, .say, .news-form, .member-strip, .stat { padding: var(--pad-md); }
.seats { padding: var(--pad-md); }
.quiz-box, .vt-card { padding: var(--pad-lg); }

/* Mellemrum i grids og to-kolonne-layouts */
.choirs, .related, .gallery, .voices-say, .tiers, .video-grid, .quotes, .paths .doors { gap: var(--gap-grid); }
.split, .join, .leader, .news, .vt-grid, .vf-grid, .quiz, .page-hero-grid, .ov-row { gap: var(--gap-split); }

/* Overskrifter i komponenter */
.door .door-title { font-size: var(--fs-h3); font-weight: 350; letter-spacing: -.03em; line-height: 1.05; color: var(--paper); margin-bottom: var(--s-3); }
.ov-row h2, .tile-xl h3, .book h2 { font-size: var(--fs-h3); }
.ov-row h2 a { text-decoration: none; }
.tile h3, .info-grid h3, .aside-card h3, .tier h3, .steps h3, .seats-title h2, .soon-title, .acc summary, .q h3 { font-size: var(--fs-h4); }
.fact-row dd, .say blockquote, .mq blockquote { font-size: var(--fs-h5); }
.stat .num, .aside-card .price, .tier .price { font-size: var(--fs-num); }
.vt-res-type, .leader blockquote { font-size: var(--fs-h2); }
.leader blockquote::before { content: "»"; }
.say-who { margin: var(--s-3) 0 0; font-size: var(--fs-sm); }

/* Trin: al tekst i kolonne 2 */
.steps li > * { grid-column: 2; }
.steps li::before { grid-column: 1; grid-row: 1 / span 3; }
.step-req { margin: 6px 0 0; font-size: var(--fs-sm); color: var(--ink-2); }

/* Person (underviser) */
.person { display: grid; grid-template-columns: 120px 1fr; gap: var(--s-5); align-items: center; }
.person .leader-photo img { aspect-ratio: 1 / 1.05; border-radius: 50% 50% var(--r-md) var(--r-md); }
.person h3 { margin-bottom: 6px; }
.person p { margin: 0 0 8px; color: var(--ink-2); }
.leader-photo { position: relative; }
.aside-photo { margin-bottom: var(--s-5); }

/* Yin/yang i siden */
.yin-yang-page { margin-top: var(--s-7); background: var(--line); border-color: var(--line); }
.yin-yang-page > div { background: var(--paper); }
.aside-card { border-color: var(--line); }

/* Overbliks-rækker: samme billedstørrelse i alle rækker */
.ov-row:nth-child(even) { grid-template-columns: .9fr 1.1fr; }

/* Fakta i to kolonner inde i split-layout */
.split .fact-row, .fact-row.fact-2 { grid-template-columns: 1fr 1fr; }
.split .fact-row > div, .fact-row.fact-2 > div { padding: 18px 16px 18px 0; border-left: 0; }
.split .fact-row > div:nth-child(even), .fact-row.fact-2 > div:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--line); }
.split .fact-row > div:nth-child(n+3), .fact-row.fact-2 > div:nth-child(n+3) { border-top: 1px solid var(--line); }
.fact-row + .sr-only + .info-grid, .fact-row + .info-grid { border-top: 0; margin-top: var(--s-5); }
.split .lead { margin-bottom: var(--s-5); }

/* Medlemsstrimmel: solid, ikke stiplet */
.member-strip { border: 1px solid var(--line); background: var(--tint); }

/* Tidslinje */
.timeline li:last-child { padding-bottom: 0; }

/* Nyhedsbrev på lys flade */
.news { align-items: start; }
.news-sec .lead { color: var(--ink-2); }
.news-sec .news-form { background: var(--surface); border: 1px solid var(--line); backdrop-filter: none; }
.news-sec .news-form label { color: var(--ink-2); }
.news-sec .news-form input { background: var(--paper); color: var(--ink); border-color: var(--line); }
.news-sec .fb-links a { border-color: var(--line); }
.news-sec .fb-links a:hover { background: var(--ink); color: var(--paper); }

/* Det sker snart */
.soon-inner { padding-block: var(--s-6); }

/* Yogakort i hero */
.seats-yoga .seats-actions { align-items: center; }

/* Mobil */
@media (max-width: 1100px) {
  .split { display: flex; flex-direction: column; }
  .split > aside, .split > .aside-card { order: -1; width: 100%; }
}
@media (max-width: 900px) {
  .ov-row:nth-child(even) { grid-template-columns: 1fr; }
  .sec-head .link-more { justify-self: start; }
}
@media (max-width: 620px) {
  .hero-shade { background: linear-gradient(0deg, rgba(58,37,96,.94) 0%, rgba(58,37,96,.66) 55%, rgba(58,37,96,.4) 100%); }
  .person { grid-template-columns: 80px 1fr; gap: var(--s-4); }
  .split .fact-row > div, .fact-row.fact-2 > div { padding: 14px 10px 14px 0; }
  .split .fact-row > div:nth-child(even), .fact-row.fact-2 > div:nth-child(even) { padding-left: 12px; }
  .sl-btn { width: 44px; height: 44px; }
}
@media (prefers-reduced-motion: reduce) { .slider-tab.is-active .bar i { animation: none; width: 100%; } }
.person { align-items: start; }

/* ==========================================================
   v11 – lir: skæve kort, klistermærker, roterende mærker,
   3D-vip, ord-for-ord-overskrifter og billed-afsløring
   ========================================================== */

/* Infokortet i toppen ligger som en lille stak */
.seats-stack { position: relative; rotate: 1.6deg; }
.seats-stack::before { content: ""; position: absolute; inset: 10px -10px -10px 10px; border-radius: var(--r-lg); background: linear-gradient(135deg, var(--pink), var(--lilla-deep)); opacity: .8; rotate: -4.5deg; z-index: -1; transition: rotate .6s var(--ease), opacity .4s; }
.hero-slider[data-track="yoga"] .seats-stack::before { background: linear-gradient(135deg, #B0509F, #6B2E66); }
.seats-stack:hover { rotate: 0deg; }
.seats-stack:hover::before { rotate: -6deg; opacity: .7; }

/* Klistermærker */
.page-hero-media .stamp { rotate: -4deg; transform-origin: 0 100%; }
.page-hero-media:hover .stamp { animation: wiggle .6s var(--ease); }
.feature-badge { rotate: -3deg; }
.quote-chip { rotate: -2.5deg; }
.tile .tag, .ov-media .tag { rotate: -3deg; box-shadow: 0 6px 14px -6px rgba(58,37,96,.5); }
.tile:hover .tag { animation: wiggle .6s var(--ease); }
@keyframes wiggle { 25% { rotate: 3deg; } 55% { rotate: -6deg; } 80% { rotate: -2deg; } }

/* Roterende mærke med tekst i cirkel */
.spin-badge { position: absolute; z-index: 3; width: clamp(104px, 11vw, 136px); aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center;
  background: var(--accent); color: #fff; box-shadow: var(--sh-2); }
.spin-badge svg { position: absolute; inset: 0; width: 100%; height: 100%; animation: spin 22s linear infinite; }
.spin-badge text { font: 700 11.5px var(--f-body); fill: currentColor; letter-spacing: .02em; }
.spin-badge .spin-core { width: 42%; aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.35); }
.spin-badge .spin-core svg { position: static; width: 52%; height: 52%; animation: none; }
.spin-badge:hover svg:first-child { animation-duration: 6s; }
.join-media .spin-badge { top: -34px; right: -26px; }
.page-hero-media .spin-badge { top: -30px; right: -22px; }
.spin-badge.yoga { background: var(--lilla); }

/* Ord-for-ord-overskrifter */
.split-words .w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.split-words .w > span { display: inline-block; transform: translateY(110%); transition: transform .9s var(--ease); transition-delay: calc(var(--i) * 55ms); }
.split-words.in .w > span { transform: none; }

/* Billeder der folder sig ud */
.js .ov-row[data-reveal] .ov-media img, .js .gallery img[data-reveal], .js .join > div[data-reveal] > img {
  clip-path: inset(0 100% 0 0 round var(--r-lg)); transition: clip-path 1.3s var(--ease) .1s, opacity .9s var(--ease), transform .9s var(--ease);
}
.js .ov-row.in .ov-media img, .js .gallery img.in, .js .join > div.in > img { clip-path: inset(0 0 0 0 round var(--r-lg)); }
.js .ov-row:nth-child(even)[data-reveal] .ov-media img { clip-path: inset(0 0 0 100% round var(--r-lg)); }
.js .ov-row:nth-child(even).in .ov-media img { clip-path: inset(0 0 0 0 round var(--r-lg)); }

/* 3D-vip med lysskær */
.tilt3d { transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(var(--ty, 0px)); }
.tilt3d:hover { --ty: -4px; }
.tilt3d .glare { position: absolute; inset: 0; z-index: 2; pointer-events: none; border-radius: inherit; opacity: 0; transition: opacity .4s;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,.22), rgba(255,255,255,0) 55%); }
.tilt3d:hover .glare { opacity: 1; }

/* Magnetiske knapper */
.magnet { transition: translate .35s var(--ease), background .2s, color .2s, border-color .2s; }

/* Mobil: lidt mindre skævt */
@media (max-width: 900px) {
  .seats-stack { rotate: .8deg; }
  .quotes .mq:nth-child(2) { margin-left: 0; }
  .join-media .spin-badge { right: 8px; top: -26px; }
  .page-hero-media .spin-badge { right: 8px; top: -26px; }
}
@media (prefers-reduced-motion: reduce) {
  .spin-badge svg { animation: none; }
  .split-words .w > span { transform: none; }
  .js .ov-row[data-reveal] .ov-media img, .js .gallery img[data-reveal], .js .join > div[data-reveal] > img { clip-path: none; }
}
.choirs .tile.tilt3d, .paths .door.tilt3d, .related .tile.tilt3d { transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(var(--ty, 0px)); transition: rotate .6s var(--ease), transform .25s ease-out, box-shadow .5s var(--ease); }
.choirs .tile.tilt3d:hover, .paths .door.tilt3d:hover, .related .tile.tilt3d:hover { --ty: -6px; transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(var(--ty)); }

/* ==========================================================
   v12 – kortene starter skæve og glider på plads ved scroll
   (vinkel, forskydning og gennemsigtighed styres af JS via
   --st-rot, --st-y og --st-o)
   ========================================================== */
.scroll-tilt,
.choirs .tile.scroll-tilt, .related .tile.scroll-tilt, .paths .door.scroll-tilt {
  rotate: var(--st-rot, 0deg);
  translate: 0 var(--st-y, 0px);
  opacity: var(--st-o, 1);
  transition: rotate .18s linear, translate .18s linear, opacity .18s linear, transform .25s ease-out, box-shadow .5s var(--ease);
  will-change: rotate, translate;
}
.quotes .mq:nth-child(2) { margin-left: 18px; }
@media (max-width: 900px) { .quotes .mq:nth-child(2) { margin-left: 0; } }

/* ==========================================================
   v13 – undersider: mindre pink, mere kant
   ========================================================== */

/* Yogasporet: dybere mauve, neutrale flader */
.track-yoga {
  --lilla: #7E4A7A; --lilla-deep: #4A2647; --lilla-l: #B993B5;
  --accent: #7A3573; --accent-2: #4A2647; --btn-sweep: #4A2647;
  --pink: #8A3A84; --pink-l: #E8C7E4;
  --tint: #F4F0F4; --tint-2: #E9E1EA; --paper-2: #F4F0F4; --lav: #F4F0F4; --paper-3: #E9E1EA;
}

/* Toppen: ren hvid, ensfarvet overskrift, solid flade bag billedet */
.page-hero, body.track-yoga .page-hero { background: linear-gradient(180deg, #FFFFFF 0%, var(--paper) 100%); border-bottom: 1px solid var(--line); }
.page-hero h1, body.track-yoga .page-hero h1 { background: none; -webkit-background-clip: border-box; background-clip: border-box; color: var(--ink); -webkit-text-fill-color: var(--ink); }
.page-hero .waves path { stroke: var(--lilla); stroke-opacity: .14; }
.page-hero .waves path:nth-child(3) { stroke: var(--lilla-deep); stroke-opacity: .25; }
.page-hero-media::before { inset: 26px -26px -26px 26px; border: 0; background: var(--lilla-deep); opacity: 1; border-radius: var(--r-lg); }
.page-hero-media img { box-shadow: var(--sh-2); }
.status .pulse { background: var(--accent); }
.crumbs { color: var(--ink-2); }

/* Mørkt faktabånd */
.fact-band { background: var(--ink); color: var(--paper); }
body.track-yoga .fact-band { background: #2E1A2C; }
.fact-band .fact-row { grid-template-columns: repeat(4, 1fr); border: 0; margin: 0; }
.fact-band .fact-row > div, .fact-band .fact-row > div + div { padding: 30px 24px 30px 0; border: 0; }
.fact-band .fact-row > div + div { padding-left: 24px; border-left: 1px solid var(--line-dark); }
.fact-band dt { color: var(--on-dark-2); font-size: var(--fs-xs); font-weight: 700; }
.fact-band dd { color: var(--paper); font-size: var(--fs-h4); margin-top: 6px; }
.fact-band + .sec-after-hero { padding-top: var(--s-8); }

/* Tilmeldingsboks: hvid med mørk stribe */
.aside-card { background: var(--surface); border: 1px solid var(--line); box-shadow: var(--sh-2); position: relative; overflow: hidden; }
.aside-card::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 5px; background: var(--lilla-deep); }
.aside-card .price { color: var(--ink); }
.voices li { border-color: var(--lilla-deep); color: var(--lilla-deep); }

/* Flader og detaljer i lilla i stedet for pink */
.place { background: var(--surface); border: 1px solid var(--line); }
.place svg { color: var(--lilla); }
.steps li::before { background: none; -webkit-background-clip: border-box; background-clip: border-box; color: var(--lilla); -webkit-text-fill-color: var(--lilla); }
.timeline li::before { background: var(--lilla-deep); }
.timeline .sum { background: var(--tint); color: var(--lilla-deep); }
.member-strip { background: var(--surface); border: 1px solid var(--line); }
.mq { border-left-color: var(--lilla-deep); }

/* Mellemoverskrifter med tynd streg, som i et magasin */
.sub-head::before, .prose h2::before { content: ""; display: block; width: 44px; height: 2px; background: var(--lilla-deep); margin-bottom: 18px; }

@media (max-width: 900px) {
  .fact-band .fact-row { grid-template-columns: 1fr 1fr; }
  .fact-band .fact-row > div, .fact-band .fact-row > div + div { padding: 20px 14px 20px 0; border-left: 0; }
  .fact-band .fact-row > div:nth-child(even) { padding-left: 14px; border-left: 1px solid var(--line-dark); }
  .fact-band .fact-row > div:nth-child(n+3) { border-top: 1px solid var(--line-dark); }
  .page-hero-media::before { inset: 14px -10px -14px 14px; }
}

/* ==========================================================
   v14 – medlemsside (NVE) og medlemslogin
   ========================================================== */
.is-member { --st1: #CFC6E0; --st2: #8F84AE; --st3: #8E2C73; --st4: #B145AD; }
.m-muted { color: var(--ink-2); }

/* Top: mørkt bånd med hilsen og billet til næste prøve */
.m-top { position: relative; isolation: isolate; background: var(--ink); color: var(--paper); padding: var(--s-6) 0 var(--s-8); overflow: hidden; }
.m-top::before { content: ""; position: absolute; inset: auto -10% -40% 40%; height: 120%; background: radial-gradient(closest-side, rgba(177,69,173,.32), transparent 70%); z-index: -1; }
.m-top .crumbs, .m-top .crumbs a { color: var(--on-dark-2); }
.m-top .crumbs [aria-current] { color: var(--paper); }
.m-top-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: var(--gap-split); align-items: center; }
.m-hello-kicker { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: var(--fs-sm); color: var(--pink-l); margin: 0 0 var(--s-4); }
.m-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--pink); box-shadow: 0 0 0 4px rgba(177,69,173,.25); }
.m-hello h1 { font-family: var(--f-display); font-weight: 400; font-size: clamp(2.2rem, 4.4vw, 3.6rem); line-height: 1.04; letter-spacing: -.02em; margin: 0 0 var(--s-5); color: var(--paper); max-width: 16ch; }
.m-hello-lead { color: var(--on-dark); font-size: 1.0625rem; line-height: 1.6; max-width: 46ch; margin: 0; }
.m-stats { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 0; margin: var(--s-7) 0 0; }
.m-stats > div { padding: 0 var(--s-6) 0 0; }
.m-stats > div + div { padding-left: var(--s-6); border-left: 1px solid var(--line-dark); }
.m-stats dt { font-size: var(--fs-xs); font-weight: 700; color: var(--on-dark-2); }
.m-stats dd { margin: 4px 0 0; font-family: var(--f-display); font-size: var(--fs-num); line-height: 1; color: var(--paper); }

/* Billetten */
.m-next { position: relative; background: var(--surface); color: var(--ink); border-radius: var(--r-lg); padding: var(--pad-lg); box-shadow: var(--sh-3);
  rotate: 1.2deg; transition: rotate .5s var(--ease); }
.m-next:hover, .m-next:focus-within { rotate: 0deg; }
.m-next::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 6px; border-radius: var(--r-lg) var(--r-lg) 0 0; background: linear-gradient(90deg, var(--lilla-deep), var(--accent) 60%, var(--pink)); }
.m-next-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.m-next h2 { font: 700 var(--fs-sm)/1.2 var(--f-body); color: var(--ink-2); margin: 0; letter-spacing: 0; }
.m-next-count { margin: 0; padding: 4px 12px; border-radius: 99px; background: var(--tint); color: var(--accent); font-weight: 800; font-size: var(--fs-sm); }
.m-next-date { display: flex; align-items: center; gap: var(--s-5); margin: var(--s-4) 0 var(--s-5); }
.m-next-day { font-family: var(--f-display); font-size: clamp(4.5rem, 8vw, 6.5rem); line-height: .85; color: var(--accent); letter-spacing: -.04em; }
.m-next-meta { font-family: var(--f-display); font-size: var(--fs-h4); line-height: 1.25; }
.m-next-time { font-family: var(--f-body); font-size: var(--fs-sm); color: var(--ink-2); font-weight: 600; }
.m-next-progwrap { position: relative; padding-top: var(--s-5); border-top: 2px dashed var(--tint-2); }
.m-next-progwrap::before, .m-next-progwrap::after { content: ""; position: absolute; top: -13px; width: 24px; height: 24px; border-radius: 50%; background: var(--ink); }
.m-next-progwrap::before { left: calc(-1 * var(--pad-lg) - 12px); }
.m-next-progwrap::after { right: calc(-1 * var(--pad-lg) - 12px); }
.m-next-progwrap h3 { font: 700 var(--fs-xs)/1.2 var(--f-body); color: var(--ink-2); margin: 0 0 var(--s-3); }
.m-next-prog { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.m-next-prog li { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-weight: 600; }
.m-next-prog a { text-decoration: none; }
.m-next-prog a:hover { text-decoration: underline; }
.m-next-empty { margin: 0; color: var(--ink-2); }
.m-next-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: var(--s-5); }
.m-next-actions .btn { flex: 1 1 auto; }
.m-next-help { font-size: var(--fs-xs); color: var(--ink-2); margin: var(--s-4) 0 0; }

/* Statuschips */
.m-stage { flex: none; display: inline-block; padding: 3px 10px; border-radius: 99px; font: 700 .75rem/1.4 var(--f-body); white-space: nowrap; }
.m-stage.s1 { background: #EEEAF5; color: var(--lilla-deep); }
.m-stage.s2 { background: #E6E1F0; color: #4E4470; }
.m-stage.s3 { background: #F5E4EF; color: var(--accent); }
.m-stage.s4 { background: var(--accent); color: #fff; }

/* Undernavigation */
.m-subnav { position: sticky; top: var(--head-h); z-index: 40; background: rgba(255,255,255,.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.m-subnav ul { list-style: none; margin: 0; padding: 10px 0; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.m-subnav ul::-webkit-scrollbar { display: none; }
.m-subnav a { display: block; padding: 8px 14px; border-radius: 99px; text-decoration: none; font-weight: 700; font-size: var(--fs-sm); color: var(--ink-2); white-space: nowrap; transition: background .2s, color .2s; }
.m-subnav a:hover { background: var(--tint); color: var(--ink); }
.m-subnav a[aria-current="true"] { background: var(--ink); color: var(--paper); }

/* Sektioner */
.m-sec { padding: var(--s-8) 0; scroll-margin-top: calc(var(--head-h) + 60px); }
.m-sec-tint { background: var(--tint); }
.m-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--s-5); margin-bottom: var(--s-6); }
.m-head h2 { font-family: var(--f-display); font-weight: 400; font-size: var(--fs-h3); line-height: 1.1; margin: 0 0 var(--s-3); letter-spacing: -.015em; }
.m-head p { margin: 0; color: var(--ink-2); max-width: 58ch; }
.m-head-col { display: block; }
.m-head-actions { margin-top: var(--s-5); }

/* Stemmevælger */
.m-voice-wrap { display: flex; flex-direction: column; gap: 8px; }
.m-voice-label { font-size: var(--fs-xs); font-weight: 700; color: var(--ink-2); }
.m-voice { display: inline-flex; padding: 4px; border-radius: 99px; background: var(--tint); border: 1px solid var(--line); }
.m-voice button { min-height: 40px; padding: 0 16px; border: 0; border-radius: 99px; background: transparent; font: 700 var(--fs-sm) var(--f-body); color: var(--ink-2); cursor: pointer; transition: background .2s, color .2s; }
.m-voice button:hover { color: var(--ink); }
.m-voice button[aria-checked="true"] { background: var(--ink); color: var(--paper); box-shadow: var(--sh-1); }

.m-legend { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 0 0 var(--s-5); padding: 0; font-size: var(--fs-xs); font-weight: 600; color: var(--ink-2); }
.m-legend li { display: inline-flex; align-items: center; gap: 8px; }
.m-legend i { width: 18px; height: 6px; border-radius: 3px; background: var(--st1); }
.m-legend i.s2 { background: var(--st2); } .m-legend i.s3 { background: var(--st3); } .m-legend i.s4 { background: var(--st4); }

/* Sangkort */
.m-songs { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap-grid); }
.m-song { display: flex; flex-direction: column; gap: var(--s-3); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); padding: var(--pad-md); scroll-margin-top: calc(var(--head-h) + 80px); transition: box-shadow .25s, border-color .25s, translate .25s var(--ease); }
.m-song:hover { box-shadow: var(--sh-2); border-color: transparent; translate: 0 -2px; }
.m-song:target { outline: 2px solid var(--pink); outline-offset: 3px; }
.m-song.is-playing { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent), var(--sh-2); }
.m-song-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.m-song h3 { font-family: var(--f-display); font-weight: 500; font-size: 1.3rem; line-height: 1.2; margin: 0; }
.m-lyrics { flex: none; font-weight: 700; font-size: var(--fs-sm); }
.m-meter { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.m-meter i { height: 6px; border-radius: 3px; background: var(--tint-2); }
.m-song[data-stage="1"] .m-meter i.on { background: var(--st1); }
.m-song[data-stage="2"] .m-meter i.on { background: var(--st2); }
.m-song[data-stage="3"] .m-meter i.on { background: var(--st3); }
.m-song[data-stage="4"] .m-meter i.on { background: linear-gradient(90deg, var(--st3), var(--st4)); }
.m-song-stage { display: flex; justify-content: space-between; gap: 10px; margin: 0; font-size: var(--fs-sm); }
.m-song-stage span { color: var(--ink-2); }
.m-song-foot { margin-top: auto; padding-top: var(--s-3); display: grid; gap: 10px; }
.m-play { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 0 18px 0 14px; border: 0; border-radius: 99px; background: var(--ink); color: var(--paper); font: 700 var(--fs-sm) var(--f-body); cursor: pointer; justify-self: start; transition: background .2s; }
.m-play svg { width: 16px; height: 16px; }
.m-play:hover { background: var(--accent); }
.m-play.is-on { background: var(--accent); }
.m-tracks { display: flex; flex-wrap: wrap; gap: 6px; }
.m-tracks:empty { display: none; }
.m-chip { min-height: 32px; padding: 0 12px; border-radius: 99px; border: 1px solid var(--line); background: var(--surface); font: 600 .8125rem var(--f-body); color: var(--ink-2); cursor: pointer; transition: border-color .2s, color .2s, background .2s; }
.m-chip:hover { border-color: var(--ink); color: var(--ink); }
.m-chip.is-mine { border-color: var(--lilla-deep); color: var(--lilla-deep); background: var(--tint); }
.m-chip.is-on { background: var(--accent); border-color: var(--accent); color: #fff; }
.m-nofiles .todo { font-size: .75rem; }

/* Prøveplan */
.m-plan-wrap { display: grid; grid-template-columns: .8fr 1.2fr; gap: var(--gap-split); align-items: start; }
.m-plan-wrap .m-head { position: sticky; top: calc(var(--head-h) + 80px); }
.m-past-toggle { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 48px; margin-bottom: var(--s-3); padding: 0 18px; border: 1px dashed var(--ink-2); border-radius: var(--r-md); background: transparent; font: 700 var(--fs-sm) var(--f-body); color: var(--ink-2); cursor: pointer; }
.m-past-toggle:hover { border-style: solid; color: var(--ink); }
.m-past-toggle::before { content: "+"; font-size: 1.2rem; line-height: 1; }
.m-past-toggle[aria-expanded="true"]::before { content: "–"; }
.m-plan { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.m-plan.hide-past .is-past { display: none; }
.m-plan-item { display: grid; grid-template-columns: 64px 1fr; gap: var(--s-4); padding: var(--s-4); border-radius: var(--r-md); background: var(--surface); border: 1px solid var(--line); }
.m-plan-date { display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: var(--r-sm); background: var(--tint); padding: 8px 0; align-self: start; }
.m-plan-day { font-family: var(--f-display); font-size: 1.75rem; line-height: 1; }
.m-plan-mon { font-size: var(--fs-xs); font-weight: 700; color: var(--ink-2); }
.m-plan-when { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 2px 0 0; font-weight: 700; }
.m-plan-note { margin: 6px 0 0; font-size: var(--fs-sm); }
.m-plan-songs { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; }
.m-plan-songs li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: var(--fs-sm); }
.m-plan-songs li a { font-weight: 600; text-decoration: none; }
.m-plan-songs li a:hover { text-decoration: underline; }
.m-plan-songs .m-stage { margin-left: auto; }
.m-tag { display: inline-block; padding: 2px 10px; border-radius: 99px; font: 700 .75rem/1.5 var(--f-body); background: var(--tint); color: var(--lilla-deep); }
.m-tag-aflyst { background: transparent; border: 1px solid var(--accent); color: var(--accent); }
.m-tag-ferie { background: transparent; border: 1px solid var(--line); color: var(--ink-2); }
.m-tag-special { background: var(--lilla-deep); color: var(--paper); }
.m-next-flag { display: none; padding: 2px 10px; border-radius: 99px; background: var(--accent); color: #fff; font: 700 .75rem/1.5 var(--f-body); }
.m-plan-item.is-next { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent), var(--sh-2); }
.m-plan-item.is-next .m-next-flag { display: inline-block; }
.m-plan-item.is-next .m-plan-date { background: var(--accent); color: #fff; }
.m-plan-item.is-next .m-plan-mon { color: rgba(255,255,255,.85); }
.m-plan-item.is-past { opacity: .62; }
.m-plan-item.k-aflyst .m-plan-day, .m-plan-item.k-ferie .m-plan-day { text-decoration: line-through; text-decoration-thickness: 2px; }
.m-plan-item.k-aflyst, .m-plan-item.k-ferie { background: transparent; border-style: dashed; }

/* Øvefilarkiv */
.m-lib-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-bottom: var(--s-5); }
.m-search { position: relative; flex: 1 1 320px; max-width: 460px; }
.m-search svg { position: absolute; left: 16px; top: 50%; width: 20px; height: 20px; translate: 0 -50%; color: var(--ink-2); pointer-events: none; }
.m-search input { width: 100%; min-height: 52px; padding: 0 16px 0 46px; border-radius: 99px; border: 1.5px solid var(--line); background: var(--surface); font: 500 1rem var(--f-body); color: var(--ink); }
.m-search input:focus { outline: none; border-color: var(--pink); box-shadow: var(--ring); }
.m-filter { display: inline-flex; padding: 4px; border-radius: 99px; background: var(--tint); }
.m-filter button { min-height: 40px; padding: 0 16px; border: 0; border-radius: 99px; background: transparent; font: 700 var(--fs-sm) var(--f-body); color: var(--ink-2); cursor: pointer; }
.m-filter button[aria-pressed="true"] { background: var(--surface); color: var(--ink); box-shadow: var(--sh-1); }
.m-lib-count { margin: 0 0 0 auto; font-size: var(--fs-sm); color: var(--ink-2); font-weight: 600; }
.m-lib { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.m-lib > li { display: grid; grid-template-columns: minmax(200px, 1fr) 2fr auto; gap: 12px 24px; align-items: center; padding: 16px 4px; border-bottom: 1px solid var(--line); }
.m-lib-title strong { display: block; font-family: var(--f-display); font-weight: 500; font-size: 1.125rem; line-height: 1.25; }
.m-lib-title span { font-size: var(--fs-xs); color: var(--ink-2); font-weight: 600; }
.m-lib-title .m-new { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 99px; background: var(--tint); color: var(--accent); }
.m-lib-files { display: flex; flex-wrap: wrap; gap: 6px; }
.m-lib-none { font-size: var(--fs-sm); color: var(--ink-2); }
.m-lib-pdf { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: var(--fs-sm); white-space: nowrap; }
.m-lib-empty { padding: var(--s-6); border-radius: var(--r-md); border: 1px dashed var(--ink-2); text-align: center; }
.m-lib-empty p { margin: 0; }
.m-lib-more { display: block; margin: var(--s-5) auto 0; }

/* Praktisk */
.m-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap-grid); }
.m-card { background: var(--surface); border-radius: var(--r-md); padding: var(--pad-md); border: 1px solid var(--line); position: relative; overflow: hidden; }
.m-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--lilla-deep); }
.m-card h3 { font-family: var(--f-display); font-weight: 500; font-size: 1.3rem; margin: 0 0 var(--s-3); }
.m-card p { margin: 0 0 var(--s-3); font-size: .975rem; }
.m-card p:last-child { margin-bottom: 0; }
.m-card-wide { grid-column: span 2; }
.m-card-wide::before { background: var(--accent); }

/* Foreningen */
.m-assoc { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap-split); align-items: start; }
.m-assoc h2 { font-family: var(--f-display); font-weight: 400; font-size: var(--fs-h3); margin: 0 0 var(--s-3); }
.m-assoc > div > p { color: var(--ink-2); max-width: 48ch; }
.m-docs { list-style: none; margin: var(--s-5) 0 0; padding: 0; display: grid; gap: 8px; }
.m-docs a { display: flex; align-items: center; gap: 16px; padding: 14px 18px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--surface); text-decoration: none; transition: border-color .2s, translate .2s var(--ease); }
.m-docs a:hover { border-color: var(--ink); translate: 4px 0; }
.m-docs a > span:last-child { display: flex; flex-direction: column; }
.m-docs a > span:last-child span { font-size: var(--fs-sm); color: var(--ink-2); }
.m-doc-ic { flex: none; display: grid; place-items: center; width: 44px; height: 52px; border-radius: 8px; background: var(--tint); color: var(--accent); font: 800 .7rem var(--f-body); }
.m-dialog { background: var(--lilla-deep); color: var(--paper); border-radius: var(--r-lg); padding: var(--pad-lg); rotate: -1deg; box-shadow: var(--sh-3); }
.m-dialog h2 { color: var(--paper); }
.m-dialog p { color: var(--on-dark); margin: 0 0 var(--s-5); }

/* Afspiller */
.m-player { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: var(--ink); color: var(--paper); box-shadow: 0 -20px 40px -20px rgba(20,16,32,.6); translate: 0 0; transition: translate .35s var(--ease); }
.m-player[hidden] { display: block; translate: 0 110%; visibility: hidden; }
.m-player-in { display: grid; grid-template-columns: auto minmax(140px, 1fr) minmax(200px, 2fr) auto auto auto; align-items: center; gap: 14px; padding-top: 12px; padding-bottom: calc(12px + env(safe-area-inset-bottom)); }
.m-pp { width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--pink); color: #fff; display: grid; place-items: center; cursor: pointer; }
.m-pp svg { width: 20px; height: 20px; grid-area: 1 / 1; }
.m-pp .ic-pause { display: none; }
.m-player.is-playing .m-pp .ic-pause { display: block; }
.m-player.is-playing .m-pp svg:first-child { display: none; }
.m-player-info { min-width: 0; display: flex; flex-direction: column; }
.m-player-info strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m-player-info span { font-size: var(--fs-xs); color: var(--on-dark-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m-player-seek { display: flex; align-items: center; gap: 10px; font-size: var(--fs-xs); font-variant-numeric: tabular-nums; color: var(--on-dark-2); }
.m-player-seek input { flex: 1; accent-color: var(--pink); min-width: 0; }
.m-pbtn { min-height: 40px; min-width: 44px; padding: 0 12px; border-radius: 99px; border: 1px solid var(--line-dark); background: transparent; color: var(--paper); font: 700 var(--fs-sm) var(--f-body); cursor: pointer; }
.m-pbtn:hover { border-color: var(--paper); }
.m-pbtn[aria-pressed="true"] { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.m-pclose { font-size: 1.3rem; padding: 0; width: 44px; }
.is-member.player-open .site-foot { padding-bottom: 110px; }

/* Login */
.login { display: grid; grid-template-columns: 1fr 1fr; min-height: calc(100vh - var(--head-h)); }
.login-media { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end; padding: var(--pad-lg); color: var(--paper); }
.login-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.login-media::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(58,37,96,.1) 30%, rgba(58,37,96,.92)); }
.login-quote { font-family: var(--f-display); font-size: var(--fs-h4); line-height: 1.25; max-width: 22ch; margin: 0 0 var(--s-5); }
.login-media ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.login-media li { padding: 6px 14px; border-radius: 99px; background: rgba(250,248,251,.14); backdrop-filter: blur(8px); font-weight: 600; font-size: var(--fs-sm); }
.login-panel { padding: var(--s-7) clamp(20px, 6vw, 96px); display: flex; flex-direction: column; justify-content: center; max-width: 620px; }
.login-panel h1 { font-family: var(--f-display); font-weight: 400; font-size: clamp(2.2rem, 4vw, 3.2rem); line-height: 1.05; margin: 0 0 var(--s-3); letter-spacing: -.02em; }
.login-form { display: grid; gap: 8px; margin-top: var(--s-6); }
.login-form label { font-size: var(--fs-sm); font-weight: 700; margin-top: 8px; }
.login-form input:not([type=checkbox]) { width: 100%; min-height: 52px; border-radius: var(--r-sm); border: 1.5px solid var(--line); background: var(--surface); padding: 0 16px; font: 500 1rem var(--f-body); color: var(--ink); }
.login-form input:focus { outline: none; border-color: var(--pink); box-shadow: var(--ring); }
.login-form input[aria-invalid="true"] { border-color: var(--accent); }
.pw { position: relative; }
.pw input { padding-right: 76px !important; }
.pw-toggle { position: absolute; right: 6px; top: 6px; bottom: 6px; padding: 0 14px; border: 0; border-radius: 8px; background: var(--tint); font: 700 var(--fs-sm) var(--f-body); color: var(--ink); cursor: pointer; }
.login-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 8px; font-size: var(--fs-sm); }
.login-row .login-check { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; margin: 0; }
.login-row .login-check input { width: 18px; height: 18px; accent-color: var(--accent); }
.login-btn { margin-top: var(--s-4); width: 100%; }
.login-form .form-msg { margin: 4px 0 0; color: var(--accent); font-weight: 600; min-height: 1.4em; }
.login-help { margin-top: var(--s-6); padding: var(--s-5); border-radius: var(--r-md); background: var(--tint); }
.login-help h2 { font: 700 1rem/1.3 var(--f-body); margin: 0 0 8px; }
.login-help p { font-size: var(--fs-sm); margin: 0 0 8px; }
.login-help p:last-child { margin: 0; }
.login-alt { margin-top: var(--s-5); font-size: var(--fs-sm); color: var(--ink-2); }

@media (max-width: 1080px) {
  .m-songs { grid-template-columns: repeat(2, 1fr); }
  .m-player-in { grid-template-columns: auto 1fr auto auto; }
  .m-player-seek { grid-column: 1 / -1; order: 5; }
  .m-pclose { order: 4; }
}
@media (max-width: 900px) {
  .m-top-grid, .m-plan-wrap, .m-assoc, .login { grid-template-columns: 1fr; }
  .m-plan-wrap .m-head { position: static; }
  .m-next { rotate: 0deg; }
  .m-cards { grid-template-columns: 1fr 1fr; }
  .m-lib > li { grid-template-columns: 1fr auto; }
  .m-lib-files { grid-column: 1 / -1; grid-row: 2; }
  .login-media { min-height: 240px; }
  .login-media ul { display: none; }
  .login-panel { max-width: none; padding-top: var(--s-6); }
}
@media (max-width: 640px) {
  .m-top { padding-bottom: var(--s-7); }
  .m-stats > div { padding-right: var(--s-4); }
  .m-stats > div + div { padding-left: var(--s-4); }
  .m-stats dd { font-size: 2rem; }
  .m-songs, .m-cards { grid-template-columns: 1fr; }
  .m-card-wide { grid-column: auto; }
  .m-voice-wrap { width: 100%; }
  .m-voice { display: flex; }
  .m-voice button { flex: 1; padding: 0 6px; }
  .m-next-progwrap::before { left: calc(-1 * var(--pad-lg) - 12px); }
  .m-plan-item { grid-template-columns: 52px 1fr; gap: 12px; padding: 12px; }
  .m-plan-songs .m-stage { margin-left: 0; }
  .m-lib-count { margin: 0; width: 100%; }
  .m-player-in { grid-template-columns: auto 1fr auto auto; gap: 10px; }
  .m-player .m-pbtn[data-p-loop] { display: none; }
  .m-dialog { rotate: 0deg; }
}
@media (prefers-reduced-motion: reduce) {
  .m-next, .m-dialog { rotate: 0deg; transition: none; }
  .m-player { transition: none; }
}
.is-member [hidden]:not(.m-player), .is-login [hidden] { display: none !important; }
.m-assoc .m-dialog p { color: var(--on-dark); }
.m-song-note { margin: 0; font-size: var(--fs-sm); color: var(--ink-2); }
.m-next-meta { line-height: 1.15; }

/* ==========================================================
   v15 – samlet sangvisning: stemmer, afspiller og tekst
   ========================================================== */
.m-song h3 a { text-decoration: none; }
.m-song h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.m-song-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.m-open { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 99px; border: 1.5px solid var(--ink); color: var(--ink); font-weight: 700; font-size: var(--fs-sm); text-decoration: none; white-space: nowrap; transition: background .2s, color .2s; }
.m-open:hover { background: var(--ink); color: var(--paper); }
.m-lib-name { display: block; font-family: var(--f-display); font-weight: 500; font-size: 1.125rem; line-height: 1.25; text-decoration: none; color: var(--ink); }
.m-lib-name:hover { text-decoration: underline; text-underline-offset: 3px; }
.m-lib .m-open { min-height: 40px; }

html.sv-open { overflow: hidden; }
.m-sv { width: min(1240px, calc(100vw - 32px)); height: min(920px, calc(100dvh - 32px)); max-width: none; max-height: none; padding: 0; border: 0; border-radius: var(--r-lg); background: var(--paper); color: var(--ink); box-shadow: var(--sh-3); overflow: hidden; }
.m-sv::backdrop { background: rgba(58,37,96,.62); backdrop-filter: blur(4px); }
.m-sv[open] { animation: svIn .35s var(--ease); }
@keyframes svIn { from { opacity: 0; transform: translateY(18px) scale(.985); } }
.m-sv-in { display: grid; grid-template-rows: auto minmax(0, 1fr); height: 100%; }
.m-sv-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px var(--pad-lg); background: var(--ink); color: var(--paper); }
.m-sv-titles { min-width: 0; }
.m-sv-kicker { margin: 0 0 4px; font-size: var(--fs-sm); font-weight: 700; color: var(--pink-l); }
.m-sv-head h2 { margin: 0; font-family: var(--f-display); font-weight: 400; font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1.1; color: var(--paper); letter-spacing: -.01em; }
.m-sv-nav { display: flex; gap: 8px; flex: none; }
.m-sv-iconbtn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-dark); background: transparent; color: var(--paper); display: grid; place-items: center; cursor: pointer; }
.m-sv-iconbtn svg { width: 16px; height: 16px; }
.m-sv-iconbtn:hover:not(:disabled) { background: var(--paper); color: var(--ink); }
.m-sv-iconbtn:disabled { opacity: .35; cursor: default; }
.m-sv-close { background: var(--paper); color: var(--ink); margin-left: 6px; }

.m-sv-body { display: grid; grid-template-columns: minmax(320px, 400px) minmax(0, 1fr); min-height: 0; }
.m-sv-side { overflow: auto; padding: var(--pad-md) var(--pad-md) var(--s-7); border-right: 1px solid var(--line); background: var(--surface); }
.m-sv-h { font: 700 var(--fs-xs)/1.2 var(--f-body); color: var(--ink-2); margin: 0 0 var(--s-3); }
.m-sv-voices { list-style: none; margin: 0 0 var(--s-5); padding: 0; display: grid; gap: 6px; }
.m-sv-voice { width: 100%; display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 6px 14px 6px 6px; border-radius: var(--r-sm); border: 1px solid var(--line); background: var(--surface); font: 700 1rem var(--f-body); color: var(--ink); text-align: left; cursor: pointer; transition: border-color .2s, background .2s; }
.m-sv-voice:hover { border-color: var(--ink); }
.m-sv-vic { flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--tint); color: var(--ink); display: grid; place-items: center; }
.m-sv-vic svg { width: 16px; height: 16px; }
.m-sv-vlab { flex: 1; min-width: 0; }
.m-sv-mine { flex: none; padding: 3px 10px; border-radius: 99px; background: var(--tint); color: var(--lilla-deep); font-size: .75rem; font-weight: 800; }
.m-sv-voice.is-mine { border-color: var(--lilla-deep); }
.m-sv-voice.is-on { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.m-sv-voice.is-on .m-sv-vic { background: var(--pink); color: #fff; }
.m-sv-voice.is-on .m-sv-mine { background: rgba(250,248,251,.16); color: var(--paper); }
.m-sv-none { padding: var(--s-4); border-radius: var(--r-sm); border: 1px dashed var(--ink-2); color: var(--ink-2); font-size: var(--fs-sm); }

.m-sv-player { padding: var(--s-4); border-radius: var(--r-md); background: var(--tint); }
.m-sv-row { display: flex; align-items: center; gap: 10px; }
.m-sv-player .m-pp { width: 52px; height: 52px; flex: none; }
.m-sv-player.is-playing .m-pp .ic-pause { display: block; }
.m-sv-player.is-playing .m-pp svg:first-child { display: none; }
.m-sv-now { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.m-sv-now strong { font-size: var(--fs-sm); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m-sv-time { font-size: var(--fs-xs); color: var(--ink-2); font-variant-numeric: tabular-nums; }
.m-sv-player .m-pbtn { border-color: var(--line); color: var(--ink); background: var(--surface); }
.m-sv-player .m-pbtn:hover:not(:disabled) { border-color: var(--ink); }
.m-sv-player .m-pbtn[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.m-sv-player .m-pbtn:disabled { opacity: .45; cursor: default; }
.m-sv-seek { position: relative; margin: 12px 0 4px; }
.m-sv-seek input { position: relative; z-index: 1; width: 100%; accent-color: var(--accent); }
.m-ab-band { position: absolute; top: 50%; height: 14px; translate: 0 -50%; border-radius: 4px; background: rgba(177,69,173,.28); outline: 1px solid var(--pink); }
.m-ab { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--line); }
.m-ab-label { font-size: var(--fs-xs); font-weight: 700; color: var(--ink-2); margin-right: 4px; }
.m-ab .m-pbtn { min-height: 36px; font-size: var(--fs-xs); }
.m-ab-status { flex-basis: 100%; font-size: var(--fs-xs); color: var(--accent); font-weight: 600; min-height: 1.2em; }
.m-sv-hint { font-size: var(--fs-xs); color: var(--ink-2); margin: var(--s-3) 0 var(--s-6); }

.m-sv-histlist { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 2px solid var(--tint-2); display: grid; gap: 10px; }
.m-sv-histlist li { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: var(--fs-sm); }
.m-sv-histlist li::before { content: ""; position: absolute; left: -21px; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: var(--surface); border: 2px solid var(--lilla-l); }
.m-sv-histlist li.is-past::before { background: var(--lilla-deep); border-color: var(--lilla-deep); }
.m-sv-histlist li.is-next::before { background: var(--accent); border-color: var(--accent); box-shadow: 0 0 0 4px rgba(142,44,115,.18); }
.m-sv-histlist li.is-next .m-next-flag { display: inline-block; }
.m-sv-hd { font-weight: 800; min-width: 52px; }
.m-sv-histlist li.is-future .m-sv-ht, .m-sv-histlist li.is-future .m-sv-hd { color: var(--ink-2); }

.m-sv-lyrics { overflow: auto; background: var(--tint); padding: var(--pad-md) var(--pad-lg) var(--s-7); }
.m-sv-lyrics-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; max-width: 820px; margin: 0 auto var(--s-3); }
.m-sv-pdf { font-weight: 700; font-size: var(--fs-sm); }
.m-sv-pages { max-width: 820px; margin: 0 auto; display: grid; gap: 16px; }
.m-sv-page { display: block; width: 100%; height: auto; background: #fff; border-radius: var(--r-sm); box-shadow: var(--sh-1); }
.m-sv-loading { margin: var(--s-6) 0; text-align: center; color: var(--ink-2); font-weight: 600; }
.m-sv-msg { padding: var(--s-6); border-radius: var(--r-md); border: 1px dashed var(--ink-2); background: var(--surface); text-align: center; }
.m-sv-msg p { margin: 0 0 var(--s-4); }
.m-sv-msg p:last-child { margin: 0; }
.m-sv [hidden] { display: none !important; }

@container sv (max-width: 760px) {
  .m-sv-head { padding: 12px 16px; }
  .m-sv-body { display: flex; flex-direction: column; overflow: auto; }
  .m-sv-side { display: contents; }
  .m-sv-ctl { order: 1; position: sticky; top: 0; z-index: 2; background: var(--surface); padding: 12px 16px; border-bottom: 1px solid var(--line); box-shadow: 0 10px 20px -18px rgba(58,37,96,.6); }
  .m-sv-ctl > .m-sv-h, .m-sv-hint { display: none; }
  .m-sv-voices { display: flex; gap: 6px; overflow-x: auto; margin: 0 -16px 10px; padding: 0 16px; scrollbar-width: none; }
  .m-sv-voices::-webkit-scrollbar { display: none; }
  .m-sv-voices li { flex: none; }
  .m-sv-voice { min-height: 40px; padding: 4px 12px 4px 4px; gap: 8px; border-radius: 99px; font-size: var(--fs-sm); }
  .m-sv-vic { width: 32px; height: 32px; }
  .m-sv-mine { display: none; }
  .m-sv-voice.is-mine { box-shadow: inset 0 0 0 1px var(--lilla-deep); }
  .m-sv-player { padding: 0; background: none; }
  .m-sv-player .m-pp { width: 44px; height: 44px; }
  .m-sv-seek { margin: 6px 0 0; }
  .m-ab { margin-top: 6px; padding-top: 8px; }
  .m-sv-lyrics { order: 2; overflow: visible; padding: 16px; }
  .m-sv-hist { order: 3; padding: 16px 16px 40px 16px; background: var(--surface); }
}
@media (prefers-reduced-motion: reduce) { .m-sv[open] { animation: none; } }
.m-sv-lyrics-head .m-sv-h { margin: 0; margin-right: auto; }
.m-sv-zoom { display: inline-flex; padding: 3px; border-radius: 99px; background: var(--surface); border: 1px solid var(--line); }
.m-sv-zoom button { min-width: 40px; min-height: 34px; border: 0; border-radius: 99px; background: transparent; font: 800 var(--fs-sm) var(--f-display); color: var(--ink); cursor: pointer; }
.m-sv-zoom button:hover:not(:disabled) { background: var(--tint); }
.m-sv-zoom button:disabled { opacity: .35; cursor: default; }
.m-sv-pages { overflow-x: auto; justify-items: start; padding-bottom: 4px; }
.m-sv-page { width: auto; max-width: none; }
.m-sv-lyrics-head { align-items: center; }
.m-ab .m-pbtn { padding: 0 10px; }
.m-ab-status:empty { display: none; }
.m-sv-hd { min-width: 64px; }
@container sv (max-width: 760px) {
  .m-ab-label { display: none; }
  .m-ab { margin-top: 4px; padding-top: 6px; }
}

/* ==========================================================
   v16 – sangvisningen som flytbart vindue (computer) og
   bundark med trækhåndtag (mobil)
   ========================================================== */
.m-sv { position: fixed; inset: auto; margin: 0; z-index: 90; left: var(--sv-x, 32px); top: var(--sv-y, 32px); width: var(--sv-w, 1100px); height: var(--sv-h, 820px);
  max-width: none; max-height: none; border: 1px solid rgba(58,37,96,.18); box-shadow: 0 40px 100px -30px rgba(20,16,32,.55), 0 0 0 1px rgba(255,255,255,.04); }
.m-sv-in { container: sv / inline-size; }
.m-sv-head { cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.m-sv.is-dragging .m-sv-head { cursor: grabbing; }
.m-sv.is-dragging, .m-sv.is-resizing { user-select: none; -webkit-user-select: none; }
.m-sv.is-dragging .m-sv-body, .m-sv.is-resizing .m-sv-body { pointer-events: none; }
.m-sv-head h2 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.m-sv-grip { flex: none; width: 36px; height: 44px; margin-left: -10px; border: 0; border-radius: 10px; background: transparent; color: var(--on-dark-2); display: grid; place-items: center; cursor: grab; }
.m-sv-grip:hover, .m-sv-grip:focus-visible { color: var(--paper); background: rgba(250,248,251,.08); }
.m-sv-grip svg { width: 14px; height: 22px; }
.m-sv-titles { flex: 1; }
.m-sv-max .ic-restore { display: none; }
.m-sv.is-max .m-sv-max .ic-max { display: none; }
.m-sv.is-max .m-sv-max .ic-restore { display: block; }
.m-sv-sheetbar { display: none; }

/* Håndtag til at ændre størrelse */
.m-sv-rz { position: absolute; z-index: 5; touch-action: none; }
.m-sv-rz[data-rz="n"], .m-sv-rz[data-rz="s"] { left: 14px; right: 14px; height: 8px; cursor: ns-resize; }
.m-sv-rz[data-rz="n"] { top: -2px; } .m-sv-rz[data-rz="s"] { bottom: -2px; }
.m-sv-rz[data-rz="e"], .m-sv-rz[data-rz="w"] { top: 14px; bottom: 14px; width: 8px; cursor: ew-resize; }
.m-sv-rz[data-rz="e"] { right: -2px; } .m-sv-rz[data-rz="w"] { left: -2px; }
.m-sv-rz[data-rz="ne"], .m-sv-rz[data-rz="nw"], .m-sv-rz[data-rz="se"], .m-sv-rz[data-rz="sw"] { width: 18px; height: 18px; }
.m-sv-rz[data-rz="ne"] { top: -2px; right: -2px; cursor: nesw-resize; }
.m-sv-rz[data-rz="sw"] { bottom: -2px; left: -2px; cursor: nesw-resize; }
.m-sv-rz[data-rz="nw"] { top: -2px; left: -2px; cursor: nwse-resize; }
.m-sv-rz[data-rz="se"] { bottom: -2px; right: -2px; cursor: nwse-resize; }
.m-sv-rz[data-rz="se"]::after { content: ""; position: absolute; right: 7px; bottom: 7px; width: 10px; height: 10px; border-right: 2px solid var(--ink-2); border-bottom: 2px solid var(--ink-2); border-radius: 0 0 3px 0; opacity: .55; }
.m-sv.is-max .m-sv-rz { display: none; }

/* Mobil: bundark */
.m-sv.is-sheet { left: 0; right: 0; top: auto; bottom: 0; width: 100%; height: var(--sv-sh, 100dvh); border-radius: 22px 22px 0 0; border: 0; box-shadow: 0 -24px 60px -20px rgba(20,16,32,.55); transition: height .28s var(--ease), border-radius .28s; }
.m-sv.is-sheet.is-full { border-radius: 0; }
.m-sv.is-sheet.is-dragging { transition: none; }
.m-sv.is-sheet .m-sv-rz, .m-sv.is-sheet .m-sv-max { display: none; }
.m-sv.is-sheet .m-sv-head { position: relative; padding-top: 22px; cursor: default; }
.m-sv.is-sheet .m-sv-sheetbar { display: block; position: absolute; left: 50%; top: 0; width: 96px; height: 24px; margin-left: -48px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.m-sv.is-sheet .m-sv-sheetbar::before { content: ""; position: absolute; left: 26px; right: 26px; top: 9px; height: 5px; border-radius: 3px; background: rgba(250,248,251,.45); }
.m-sv.is-sheet .m-sv-sheetbar:focus-visible { outline: 2px solid var(--pink-l); outline-offset: -2px; border-radius: 8px; }
.m-sv.is-sheet .m-sv-grip { display: none; }
.m-sv.is-sheet[open] { animation: svUp .32s var(--ease); }
@keyframes svUp { from { transform: translateY(40%); opacity: .4; } }
.m-sv-sizehint { position: absolute; right: 18px; bottom: 16px; z-index: 6; padding: 4px 10px; border-radius: 99px; background: var(--ink); color: var(--paper); font: 700 var(--fs-xs) var(--f-body); pointer-events: none; opacity: 0; transition: opacity .2s; }
.m-sv.is-resizing .m-sv-sizehint { opacity: .9; }
@container sv (max-width: 480px) {
  .m-sv-nav [data-sv-prev], .m-sv-nav [data-sv-next] { display: none; }
}
@media (prefers-reduced-motion: reduce) { .m-sv.is-sheet { transition: none; } .m-sv.is-sheet[open] { animation: none; } }

/* ==========================================================
   v17 – personfotos i hel cirkel (ingen bue-ramme)
   ========================================================== */
.leader-photo img, .person .leader-photo img { aspect-ratio: 1 / 1; border-radius: 50%; object-position: 50% 22%; }
.sec-leader .leader-photo::before, .sec-leader .leader-photo::after { border-radius: 50%; }

/* ==========================================================
   v18 – fælles dialog: korleder opretter, medlemmer svarer
   ========================================================== */
.is-dialog { --k-poll: #655A81; --k-signup: #8E2C73; --k-info: #3C305F; --k-open: #B145AD; }
.dlg-demo { background: #FFF6CC; border-bottom: 1px dashed #C9A800; font-size: var(--fs-sm); }
.dlg-demo-in { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding-top: 8px; padding-bottom: 8px; }
.dlg-demo p { margin: 0; color: #5A4A00; }
.dlg-seg { display: inline-flex; padding: 3px; border-radius: 99px; background: #fff; border: 1px solid rgba(90,74,0,.25); }
.dlg-seg button { min-height: 34px; padding: 0 14px; border: 0; border-radius: 99px; background: transparent; font: 700 var(--fs-sm) var(--f-body); color: #5A4A00; cursor: pointer; }
.dlg-seg button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.dlg-link { padding: 0; border: 0; background: none; font: 700 var(--fs-sm) var(--f-body); color: var(--accent); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; min-height: 32px; }
.dlg-link:hover { color: var(--ink); }
.dlg-link:disabled { opacity: .45; cursor: default; }
.dlg-demo .dlg-link { color: #5A4A00; margin-left: auto; }

.dlg-top { padding-bottom: var(--s-7); }
.dlg-top-grid { grid-template-columns: 1.3fr .7fr; }
.dlg-status { justify-self: end; width: min(340px, 100%); background: var(--surface); color: var(--ink); border-radius: var(--r-lg); padding: var(--pad-md) var(--pad-lg); box-shadow: var(--sh-3); rotate: -1.2deg; position: relative; }
.dlg-status::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 6px; border-radius: var(--r-lg) var(--r-lg) 0 0; background: linear-gradient(90deg, var(--lilla-deep), var(--accent) 60%, var(--pink)); }
.dlg-st-label { margin: var(--s-2) 0 0; font-weight: 700; font-size: var(--fs-sm); color: var(--ink-2); }
.dlg-st-num { margin: 4px 0 2px; font-family: var(--f-display); font-size: clamp(3.5rem, 6vw, 5rem); line-height: .95; color: var(--accent); letter-spacing: -.03em; }
.dlg-st-sub { margin: 0 0 var(--s-4); color: var(--ink-2); font-size: var(--fs-sm); }
.dlg-status .btn { width: 100%; }
.dlg-status .btn-light { --bg: var(--ink); --fg: var(--paper); --bd: var(--ink); }

.dlg-sec { padding: var(--s-7) 0 var(--s-8); }
.dlg-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--s-7); align-items: start; }
.dlg-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: var(--s-5); }
.dlg-tabs, .dlg-choirs { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 99px; background: var(--tint); }
.dlg-tabs button, .dlg-choirs button { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border: 0; border-radius: 99px; background: transparent; font: 700 var(--fs-sm) var(--f-body); color: var(--ink-2); cursor: pointer; }
.dlg-tabs button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.dlg-choirs { background: transparent; padding: 0; }
.dlg-choirs button { border: 1px solid var(--line); background: var(--surface); min-height: 36px; padding: 0 12px; }
.dlg-choirs button[aria-pressed="true"] { border-color: var(--ink); color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.dlg-count { min-width: 22px; height: 22px; padding: 0 6px; border-radius: 99px; background: var(--accent); color: #fff; font-size: .75rem; display: inline-grid; place-items: center; }
.dlg-count:empty { display: none; }
.dlg-tabs button[aria-pressed="true"] .dlg-count { background: var(--pink); }

.dlg-feed { display: grid; gap: var(--s-4); }
.dlg-card { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--pad-md) var(--pad-lg); transition: box-shadow .25s, border-color .25s; }
.dlg-card:hover { box-shadow: var(--sh-1); }
.dlg-card.is-todo { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.dlg-card.is-todo::before { content: "Venter på dit svar"; position: absolute; top: -11px; left: var(--pad-lg); padding: 2px 10px; border-radius: 99px; background: var(--accent); color: #fff; font: 800 .72rem/1.5 var(--f-body); }
.dlg-card.is-pinned { background: linear-gradient(180deg, #FBF8FC, var(--surface) 120px); }
.dlg-card.is-locked .dlg-resp { opacity: .85; }
.dlg-card.is-new { animation: dlgNew 1.6s var(--ease); }
@keyframes dlgNew { 0% { box-shadow: 0 0 0 0 rgba(177,69,173,.55); } 100% { box-shadow: 0 0 0 14px rgba(177,69,173,0); } }
.dlg-card-top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding-right: 48px; }
.dlg-kind { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 6px; border-radius: 99px; font: 800 .75rem/1.4 var(--f-body); color: #fff; background: var(--k-poll); }
.dlg-kind svg { width: 15px; height: 15px; }
.dlg-kind.k-signup { background: var(--k-signup); } .dlg-kind.k-info { background: var(--k-info); } .dlg-kind.k-open { background: var(--k-open); }
.dlg-choir { padding: 3px 10px; border-radius: 99px; background: var(--tint); color: var(--lilla-deep); font: 700 .75rem/1.4 var(--f-body); }
.dlg-pin { padding: 3px 10px 3px 24px; border-radius: 99px; border: 1px solid var(--lilla-deep); color: var(--lilla-deep); font: 700 .75rem/1.4 var(--f-body); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M9.5 1.5 14.5 6.5 12 7.5 9.5 10 9 13.5 2.5 7 6 6.5 8.5 4z' fill='%233C305F'/%3E%3C/svg%3E") 7px 50% / 12px no-repeat; }
.dlg-chip { padding: 3px 10px; border-radius: 99px; border: 1px solid var(--line); color: var(--ink-2); font: 700 .75rem/1.4 var(--f-body); }
.dlg-chip.is-soon { border-color: var(--accent); color: var(--accent); background: #FBF0F7; }
.dlg-chip.is-closed { background: var(--tint); border-color: transparent; }
.dlg-title { font-family: var(--f-display); font-weight: 500; font-size: clamp(1.35rem, 2.2vw, 1.7rem); line-height: 1.2; margin: var(--s-4) 0 var(--s-2); letter-spacing: -.01em; }
.dlg-by { display: flex; align-items: center; gap: 8px; margin: 0 0 var(--s-3); font-size: var(--fs-xs); font-weight: 700; color: var(--ink-2); }
.dlg-body { color: var(--ink); max-width: 62ch; }
.dlg-body p { margin: 0 0 var(--s-3); }
.dlg-resp { margin-top: var(--s-4); }

.dlg-av { flex: none; display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; font: 800 .7rem var(--f-body); color: #fff; background: var(--lilla); border: 2px solid var(--surface); }
.dlg-av.sm { width: 26px; height: 26px; font-size: .62rem; border-width: 1.5px; }
.dlg-av.av0 { background: #655A81; } .dlg-av.av1 { background: #8E2C73; } .dlg-av.av2 { background: #3C305F; } .dlg-av.av3 { background: #B145AD; } .dlg-av.av4 { background: #6F6391; }
.dlg-av.avme { background: var(--pink); box-shadow: 0 0 0 2px var(--pink-l); }
.dlg-av.avx { background: var(--lilla-l); }

/* Spørgsmål */
.dlg-opts { display: flex; flex-wrap: wrap; gap: 8px; }
.dlg-opt { min-height: 52px; min-width: 96px; padding: 0 22px; border-radius: 99px; border: 1.5px solid var(--ink); background: var(--surface); font: 700 1rem var(--f-body); color: var(--ink); cursor: pointer; transition: background .15s, color .15s, transform .15s; }
.dlg-opt:hover:not(:disabled) { background: var(--tint); }
.dlg-opt:active:not(:disabled) { transform: scale(.97); }
.dlg-opt.is-on { background: var(--ink); color: var(--paper); }
.dlg-opt.is-on::before { content: "✓ "; }
.dlg-opt:disabled { opacity: .5; cursor: default; }
.dlg-cmt { display: flex; gap: 8px; margin-top: var(--s-3); max-width: 520px; }
.dlg-cmt input, .dlg-reply textarea { flex: 1; min-width: 0; min-height: 44px; padding: 10px 14px; border-radius: var(--r-sm); border: 1.5px solid var(--line); font: 500 1rem var(--f-body); color: var(--ink); background: var(--surface); }
.dlg-cmt input:focus, .dlg-reply textarea:focus { outline: none; border-color: var(--pink); box-shadow: var(--ring); }
.dlg-cmt + *, .dlg-opts + .dlg-link { margin-top: var(--s-3); }
.dlg-mycmt { margin: var(--s-3) 0 0; font-size: var(--fs-sm); color: var(--ink-2); }
.dlg-btn-s { flex: none; min-height: 44px; padding: 0 16px; border-radius: 99px; border: 1.5px solid var(--ink); background: var(--surface); font: 700 var(--fs-sm) var(--f-body); color: var(--ink); cursor: pointer; }
.dlg-btn-s:hover:not(:disabled) { background: var(--ink); color: var(--paper); }
.dlg-btn-s.is-on { background: var(--accent); border-color: var(--accent); color: #fff; }
.dlg-btn-s:disabled { opacity: .45; cursor: default; }
.dlg-res { list-style: none; margin: var(--s-4) 0 0; padding: 0; display: grid; gap: 10px; max-width: 560px; }
.dlg-res-row { display: flex; justify-content: space-between; font-size: var(--fs-sm); font-weight: 700; margin-bottom: 4px; }
.dlg-res-n { font-variant-numeric: tabular-nums; }
.dlg-bar { height: 8px; border-radius: 4px; background: var(--tint); overflow: hidden; }
.dlg-bar i { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--lilla-deep), var(--accent)); transition: width .5s var(--ease); }
.dlg-who { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 8px 0 0; }
.dlg-person { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-sm); font-weight: 600; }
.dlg-person em { font-weight: 500; color: var(--ink-2); }

/* Hvem tager med */
.dlg-items { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.dlg-items li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 10px 10px 10px 16px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--surface); }
.dlg-items li.is-mine { border-color: var(--accent); background: #FBF0F7; }
.dlg-items li.is-full:not(.is-mine) { background: var(--tint); }
.dlg-item-t { display: flex; flex-direction: column; min-width: 0; }
.dlg-item-t span { font-size: var(--fs-xs); color: var(--ink-2); font-weight: 600; }
.dlg-slots { display: flex; }
.dlg-slots > * { margin-left: -8px; }
.dlg-slots > :first-child { margin-left: 0; }
.dlg-slot { display: inline-block; width: 34px; height: 34px; border-radius: 50%; border: 2px dashed var(--lilla-l); background: var(--surface); }
.dlg-note { margin: var(--s-3) 0 0; font-size: var(--fs-sm); color: var(--ink-2); }
.dlg-items + .dlg-link { margin-top: var(--s-3); }
.dlg-warn { color: var(--accent); font-weight: 600; }

/* Besked */
.dlg-ack { min-width: 180px; }
.dlg-ok { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 8px 14px; border-radius: 99px; background: #FBF0F7; color: var(--accent); font-weight: 700; }
.dlg-ok svg { width: 18px; height: 18px; }

/* Åbent spørgsmål */
.dlg-replies { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.dlg-replies li { display: flex; gap: 12px; }
.dlg-rep { flex: 1; min-width: 0; padding: 10px 14px; border-radius: 4px var(--r-md) var(--r-md) var(--r-md); background: var(--tint); }
.dlg-replies li.is-mine .dlg-rep { background: #FBF0F7; }
.dlg-replies li.is-hidden .dlg-rep { opacity: .55; background: transparent; border: 1px dashed var(--ink-2); }
.dlg-rep p { margin: 0; }
.dlg-rep-h { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: var(--fs-sm); margin-bottom: 2px !important; }
.dlg-rep-h span { color: var(--ink-2); font-size: var(--fs-xs); font-weight: 600; }
.dlg-rep-a { display: flex; gap: 14px; }
.dlg-rep-a:empty { display: none; }
.dlg-reply { display: flex; align-items: flex-end; gap: 8px; margin-top: var(--s-4); }
.dlg-reply textarea { resize: vertical; min-height: 52px; }

/* Bund på kortet */
.dlg-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: var(--s-5); padding-top: var(--s-4); border-top: 1px solid var(--line); }
.dlg-prog { width: 30px; height: 30px; flex: none; }
.dlg-prog svg { width: 100%; height: 100%; rotate: -90deg; }
.dlg-prog circle { fill: none; stroke-width: 5; }
.dlg-prog .tr { stroke: var(--tint-2); }
.dlg-prog .fg { stroke: var(--accent); stroke-linecap: round; transition: stroke-dasharray .5s var(--ease); }
.dlg-foot-t { margin: 0; font-size: var(--fs-sm); color: var(--ink-2); }
.dlg-foot-t strong { color: var(--ink); }
.dlg-vis { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 0 auto; font-size: var(--fs-xs); font-weight: 600; color: var(--ink-2); }
.dlg-vis svg { width: 16px; height: 16px; }
.dlg-miss { margin-top: var(--s-3); padding: var(--s-4); border-radius: var(--r-md); background: var(--tint); }
.dlg-miss p { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 var(--s-3); }
.dlg-miss .dlg-note { margin: 0 0 0 12px; }

/* Korlederens menu og sletning */
.dlg-menu { position: absolute; top: 14px; right: 14px; }
.dlg-menu-btn { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: var(--surface); display: grid; place-items: center; cursor: pointer; color: var(--ink); }
.dlg-menu-btn svg { width: 18px; height: 18px; fill: currentColor; }
.dlg-menu-btn[aria-expanded="true"], .dlg-menu-btn:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.dlg-menu-list { position: absolute; right: 0; top: 46px; z-index: 20; list-style: none; margin: 0; padding: 6px; min-width: 220px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--sh-2); }
.dlg-menu-list button { width: 100%; text-align: left; min-height: 42px; padding: 0 12px; border: 0; border-radius: 8px; background: none; font: 600 var(--fs-sm) var(--f-body); color: var(--ink); cursor: pointer; }
.dlg-menu-list button:hover, .dlg-menu-list button:focus-visible { background: var(--tint); }
.dlg-menu-list .is-danger { color: var(--accent); }
.dlg-confirm { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-top: var(--s-4); padding: var(--s-4); border-radius: var(--r-md); border: 1.5px solid var(--accent); background: #FBF0F7; }
.dlg-confirm p { margin: 0; flex: 1 1 260px; }
.dlg-confirm div { display: flex; gap: 8px; }
.dlg-danger { --bg: var(--accent); --bd: var(--accent); }

.dlg-empty { padding: var(--s-7) var(--s-5); border-radius: var(--r-lg); border: 1.5px dashed var(--lilla-l); text-align: center; display: grid; justify-items: center; gap: var(--s-3); }
.dlg-empty p { margin: 0; color: var(--ink-2); }
.dlg-empty strong { display: block; font-family: var(--f-display); font-weight: 500; font-size: 1.4rem; color: var(--ink); margin-bottom: 4px; }

/* Sidepanel */
.dlg-aside { position: sticky; top: calc(var(--head-h) + 20px); display: grid; gap: var(--s-4); }
.dlg-panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--pad-md); }
.dlg-panel h2 { font-family: var(--f-display); font-weight: 500; font-size: 1.3rem; margin: 0 0 var(--s-2); }
.dlg-panel > p { margin: 0 0 var(--s-4); font-size: var(--fs-sm); color: var(--ink-2); }
.dlg-panel-soft { background: var(--tint); border-color: transparent; }
.dlg-new-big { width: 100%; }
.dlg-tpls { list-style: none; margin: var(--s-4) 0 0; padding: 0; display: grid; gap: 6px; }
.dlg-tpls button { width: 100%; display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 12px; border-radius: var(--r-sm); border: 1px solid var(--line); background: var(--surface); font: 700 var(--fs-sm) var(--f-body); color: var(--ink); text-align: left; cursor: pointer; }
.dlg-tpls button:hover { border-color: var(--ink); }
.dlg-tpl-ic { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; background: var(--tint); color: var(--lilla-deep); }
.dlg-tpl-ic svg { width: 16px; height: 16px; }
.dlg-rules { margin: 0; padding-left: 18px; font-size: var(--fs-sm); display: grid; gap: 6px; }
.dlg-panel .btn-row { gap: 8px; }
.dlg-back { font-weight: 700; font-size: var(--fs-sm); }
.dlg-fab { display: none; }

/* Opret emne */
.dlg-compose { width: min(720px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 0; border: 0; border-radius: var(--r-lg); background: var(--paper); color: var(--ink); box-shadow: var(--sh-3); }
.dlg-compose::backdrop { background: rgba(58,37,96,.6); backdrop-filter: blur(3px); }
.dlg-compose[open] { animation: svIn .3s var(--ease); }
.dlg-c-form { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; max-height: calc(100dvh - 32px); }
.dlg-c-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px var(--pad-lg); background: var(--ink); color: var(--paper); }
.dlg-c-head h2 { margin: 0; font-family: var(--f-display); font-weight: 400; font-size: 1.7rem; color: var(--paper); }
.dlg-x { width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--paper); color: var(--ink); display: grid; place-items: center; cursor: pointer; font: 700 1.2rem var(--f-body); }
.dlg-x svg { width: 15px; height: 15px; }
.dlg-x.sm { width: 36px; height: 36px; background: var(--tint); flex: none; }
.dlg-c-body { overflow: auto; padding: var(--pad-md) var(--pad-lg); display: grid; gap: var(--s-5); }
.dlg-c-body fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.dlg-c-body legend, .dlg-f > span { display: block; font-weight: 700; font-size: var(--fs-sm); margin-bottom: 8px; }
.dlg-f em { font-style: normal; font-weight: 500; color: var(--ink-2); }
.dlg-types { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.dlg-type { position: relative; display: grid; gap: 4px; padding: 14px; border-radius: var(--r-md); border: 1.5px solid var(--line); background: var(--surface); cursor: pointer; }
.dlg-type input { position: absolute; opacity: 0; }
.dlg-type-ic { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--tint); color: var(--lilla-deep); margin-bottom: 4px; }
.dlg-type-ic svg { width: 20px; height: 20px; }
.dlg-type-t { font-weight: 800; font-size: var(--fs-sm); }
.dlg-type-d { font-size: .78rem; color: var(--ink-2); line-height: 1.35; }
.dlg-type:has(input:checked) { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.dlg-type:has(input:checked) .dlg-type-ic { background: var(--ink); color: var(--paper); }
.dlg-type:has(input:focus-visible) { outline: 2px solid var(--pink); outline-offset: 2px; }
.dlg-type:has(input:disabled):not(:has(input:checked)) { opacity: .4; cursor: default; }
.dlg-f input:not([type=checkbox]):not([type=radio]), .dlg-f textarea, .dlg-f select, .dlg-c-list input { width: 100%; min-height: 48px; padding: 10px 14px; border-radius: var(--r-sm); border: 1.5px solid var(--line); background: var(--surface); font: 500 1rem var(--f-body); color: var(--ink); }
.dlg-f textarea { resize: vertical; }
.dlg-f input:focus, .dlg-f textarea:focus, .dlg-f select:focus, .dlg-c-list input:focus { outline: none; border-color: var(--pink); box-shadow: var(--ring); }
.dlg-c-row { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--s-4); }
.dlg-c-list { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 8px; }
.dlg-c-list li { display: flex; gap: 8px; align-items: center; }
.dlg-c-list input[data-count] { width: 84px; flex: none; }
.dlg-c-list input:disabled { background: var(--tint); color: var(--ink-2); }
.dlg-c-note { margin: 6px 0 0; font-size: var(--fs-xs); color: var(--ink-2); }
.dlg-radio { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: var(--r-sm); border: 1px solid var(--line); background: var(--surface); margin-bottom: 6px; cursor: pointer; font-size: var(--fs-sm); }
.dlg-radio input, .dlg-check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--accent); flex: none; }
.dlg-radio strong { display: block; }
.dlg-radio span { color: var(--ink-2); } .dlg-radio strong { color: var(--ink); }
.dlg-radio:has(input:checked) { border-color: var(--ink); }
.dlg-check { display: flex; gap: 10px; align-items: center; font-weight: 700; font-size: var(--fs-sm); cursor: pointer; }
.dlg-c-err { margin: 0; color: var(--accent); font-weight: 700; min-height: 1.2em; }
.dlg-c-err:empty { display: none; }
.dlg-c-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 14px var(--pad-lg); border-top: 1px solid var(--line); background: var(--surface); }

.dlg-toast { position: fixed; left: 50%; bottom: 24px; z-index: 120; translate: -50% 20px; opacity: 0; pointer-events: none; max-width: calc(100vw - 32px); padding: 12px 20px; border-radius: 99px; background: var(--ink); color: var(--paper); font-weight: 700; font-size: var(--fs-sm); box-shadow: var(--sh-2); transition: opacity .25s, translate .25s var(--ease); }
.dlg-toast.on { opacity: 1; translate: -50% 0; }
.is-dialog [hidden] { display: none !important; }

@media (max-width: 1000px) {
  .dlg-layout { grid-template-columns: 1fr; }
  .dlg-aside { position: static; }
}
@media (max-width: 900px) {
  .dlg-top-grid { grid-template-columns: 1fr; }
  .dlg-status { justify-self: start; rotate: 0deg; }
  .dlg-fab:not([hidden]) { display: inline-flex; position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 70; box-shadow: var(--sh-3); }
  .dlg-toast { bottom: 84px; }
}
@media (max-width: 640px) {
  .dlg-card { padding: 20px 16px; }
  .dlg-card.is-todo::before { left: 16px; }
  .dlg-tabs { width: 100%; }
  .dlg-tabs button { flex: 1; justify-content: center; padding: 0 8px; }
  .dlg-opt { flex: 1 1 0; min-width: 0; padding: 0 10px; }
  .dlg-items li { grid-template-columns: minmax(0, 1fr) auto; }
  .dlg-items .dlg-slots { display: none; }
  .dlg-vis { margin-left: 0; flex-basis: 100%; }
  .dlg-types { grid-template-columns: 1fr 1fr; }
  .dlg-type-d { display: none; }
  .dlg-c-row { grid-template-columns: 1fr; }
  .dlg-compose { width: 100vw; max-width: 100vw; max-height: 100dvh; height: 100dvh; border-radius: 0; }
  .dlg-c-form { max-height: 100dvh; height: 100%; }
  .dlg-reply { flex-direction: column; align-items: stretch; }
  .dlg-demo .dlg-link { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) { .dlg-card.is-new, .dlg-compose[open] { animation: none; } .dlg-status { rotate: 0deg; } }
.dlg-card.in-todo::before { display: none; }
.dlg-f .dlg-c-list input[data-opt], .dlg-f .dlg-c-list input[data-item] { flex: 1; width: auto; min-width: 0; }
.dlg-f .dlg-c-list input[data-count] { flex: none; width: 88px; }
.dlg-c-list { grid-template-columns: minmax(0, 1fr); }
.dlg-c-list li { min-width: 0; }
.dlg-tab-sm { display: none; }
@media (max-width: 640px) {
  .dlg-tab-lg { display: none; }
  .dlg-tab-sm { display: inline; }
  .dlg-tabs button { white-space: nowrap; }
}

/* ==========================================================
   v19 – oversigter: kor-indeks, niveauskala, ugen, kapitler
   ========================================================== */
/* Find dit kor */
.ix-sec { position: relative; }
.ix-top { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--s-4); margin-bottom: var(--s-5); }
.ix-top h2 { font-family: var(--f-display); font-weight: 400; font-size: var(--fs-h2); line-height: 1.02; letter-spacing: -.02em; margin: 0 0 var(--s-3); }
.ix-top p { margin: 0; color: var(--ink-2); }
.ix-count { font-weight: 700; font-size: var(--fs-sm); }
.ix-filters { display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-6); padding: var(--s-4) 0 var(--s-5); }
.ix-fg { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ix-fl { font-size: var(--fs-xs); font-weight: 800; color: var(--ink-2); }
.ix-chips { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 99px; background: var(--tint); }
.ix-chips button { min-height: 38px; padding: 0 14px; border: 0; border-radius: 99px; background: transparent; font: 700 var(--fs-sm) var(--f-body); color: var(--ink-2); cursor: pointer; transition: background .2s, color .2s; }
.ix-chips button:hover { color: var(--ink); }
.ix-chips button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.ix-list { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--ink); }
.ix-row { border-bottom: 1px solid var(--line); }
.ix-row[hidden] { display: none; }
.ix-link { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr) auto; gap: var(--s-5); align-items: center; padding: 30px 12px; color: var(--ink); text-decoration: none; }
.ix-link::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--tint); transform: scaleY(0); transform-origin: bottom; transition: transform .45s var(--ease); }
.ix-link:hover::before, .ix-link:focus-visible::before { transform: scaleY(1); }
.ix-thumb { display: none; }
.ix-main { display: flex; flex-direction: column; gap: 8px; transition: translate .45s var(--ease); }
.ix-link:hover .ix-main { translate: 14px 0; }
.ix-name { font-family: var(--f-display); font-weight: 400; font-size: clamp(1.8rem, 3.3vw, 3rem); line-height: 1.03; letter-spacing: -.02em; transition: color .3s; }
.ix-link:hover .ix-name { color: var(--accent); }
.ix-line { color: var(--ink-2); max-width: 46ch; }
.ix-meta { display: grid; gap: 6px; font-size: var(--fs-sm); }
.ix-meta b { display: inline-block; width: 74px; font-size: var(--fs-xs); color: var(--ink-2); }
.ix-meta .todo { font-size: .72rem; }
.ix-end { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; }
.ix-status { padding: 4px 12px; border-radius: 99px; font: 800 .75rem/1.4 var(--f-body); white-space: nowrap; }
.ix-status.s-open { background: var(--accent); color: #fff; }
.ix-status.s-open::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #fff; margin-right: 7px; vertical-align: 1px; animation: pulse 1.8s infinite; }
.ix-status.s-seek { border: 1.5px solid var(--accent); color: var(--accent); }
.ix-status.s-free { background: var(--surface); border: 1px solid var(--line); color: var(--lilla-deep); }
.ix-arrow { width: 52px; height: 52px; border-radius: 50%; border: 1.5px solid var(--ink); display: grid; place-items: center; transition: background .3s, color .3s, rotate .45s var(--ease); }
.ix-arrow svg { width: 18px; height: 18px; }
.ix-link:hover .ix-arrow { background: var(--ink); color: var(--paper); rotate: -45deg; }
.ix-empty { padding: var(--s-6); text-align: center; border-bottom: 1px solid var(--line); display: grid; justify-items: center; gap: var(--s-3); }
.ix-empty p { margin: 0; max-width: 52ch; color: var(--ink-2); }
.ix-empty strong { color: var(--ink); }
.ix-float { position: fixed; left: 0; top: 0; z-index: 30; width: 300px; aspect-ratio: 4 / 5; border-radius: var(--r-lg); overflow: hidden; pointer-events: none; opacity: 0; box-shadow: var(--sh-3); transition: opacity .3s; will-change: transform; }
.ix-float.on { opacity: 1; }
.ix-float img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); transition: transform .6s var(--ease); }
.ix-float.on img { transform: scale(1); }
@media (hover: none), (max-width: 900px) {
  .ix-float { display: none; }
  .ix-link { grid-template-columns: 88px minmax(0, 1fr); gap: 6px 16px; padding: 20px 4px; }
  .ix-thumb { display: block; grid-row: 1 / span 2; width: 88px; aspect-ratio: 1; border-radius: var(--r-md); overflow: hidden; align-self: start; }
  .ix-thumb img { width: 100%; height: 100%; object-fit: cover; }
  .ix-meta { grid-column: 2; }
  .ix-end { grid-column: 2; flex-direction: row; align-items: center; justify-content: space-between; }
  .ix-arrow { width: 40px; height: 40px; }
  .ix-link:hover .ix-main { translate: 0 0; }
  .ix-name { font-size: clamp(1.5rem, 6vw, 2rem); }
}
@media (max-width: 520px) {
  .ix-link { grid-template-columns: 64px minmax(0, 1fr); }
  .ix-thumb { width: 64px; }
  .ix-line { display: none; }
  .ix-filters { gap: var(--s-3); }
}

/* Niveauskala */
.lv-sec { background: var(--ink); color: var(--paper); overflow: hidden; }
.lv-head { max-width: 640px; margin-bottom: var(--s-7); }
.lv-head h2 { font-family: var(--f-display); font-weight: 400; font-size: var(--fs-h2); line-height: 1.04; letter-spacing: -.02em; margin: 0 0 var(--s-4); color: var(--paper); }
.lv-head p { margin: 0; color: var(--on-dark); }
.lv { position: relative; height: 300px; }
.lv-track { position: absolute; left: 0; right: 0; top: 50%; height: 10px; margin-top: -5px; border-radius: 5px; background: linear-gradient(90deg, #8F84AE, #655A81 35%, #8E2C73 70%, #B145AD); }
.lv-end { position: absolute; top: calc(50% + 18px); margin: 0; font-size: var(--fs-xs); font-weight: 800; color: var(--on-dark-2); }
.lv-a { left: 0; } .lv-b { right: 0; }
.lv-marks { list-style: none; margin: 0; padding: 0; }
.lv-mark { position: absolute; left: var(--x); top: 0; bottom: 0; width: 0; }
.lv-mark a { position: absolute; left: 0; width: 190px; translate: -50% 0; display: flex; flex-direction: column; align-items: center; text-align: center; color: var(--paper); text-decoration: none; }
.lv-mark.al-l a { translate: -14px 0; align-items: flex-start; text-align: left; }
.lv-mark.al-r a { translate: calc(-100% + 14px) 0; align-items: flex-end; text-align: right; }
.lv-mark.up a { bottom: calc(50% - 14px); flex-direction: column-reverse; }
.lv-mark.down a { top: calc(50% - 14px); }
.lv-dot { width: 28px; height: 28px; border-radius: 50%; background: var(--paper); border: 6px solid var(--ink); box-shadow: 0 0 0 2px var(--paper); flex: none; transition: transform .3s var(--ease), background .3s; }
.lv-mark a::after { content: ""; order: 1; width: 1px; height: 22px; background: var(--line-dark); }
.lv-mark.up a::after { order: 1; }
.lv-name { order: 2; font-family: var(--f-display); font-size: 1.15rem; line-height: 1.15; margin-top: 4px; }
.lv-mark.up .lv-name { margin: 0 0 4px; }
.lv-lvl { order: 3; font-size: var(--fs-xs); color: var(--pink-l); font-weight: 700; }
.lv-mark.up a { gap: 0; }
.lv-mark.up .lv-dot { order: 0; } .lv-mark.up .lv-name { order: 2; } .lv-mark.up .lv-lvl { order: 3; }
.lv-mark.al-l a::after, .lv-mark.al-l .lv-dot { align-self: flex-start; }
.lv-mark.al-l a::after { margin-left: 13px; }
.lv-mark.al-r a::after, .lv-mark.al-r .lv-dot { align-self: flex-end; }
.lv-mark.al-r a::after { margin-right: 13px; }
.lv-mark a:hover .lv-dot, .lv-mark a:focus-visible .lv-dot { transform: scale(1.25); background: var(--pink); }
.lv-mark a:hover .lv-name { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
@media (max-width: 860px) {
  .lv { height: auto; padding: 8px 0 8px 0; }
  .lv-track { left: 13px; right: auto; top: 30px; bottom: 30px; width: 8px; height: auto; margin: 0; background: linear-gradient(180deg, #8F84AE, #655A81 35%, #8E2C73 70%, #B145AD); }
  .lv-end { position: static; margin: 0 0 var(--s-4) 44px; }
  .lv-b { margin: var(--s-4) 0 0 44px; }
  .lv-marks { display: grid; gap: var(--s-5); }
  .lv-mark { position: static; width: auto; }
  .lv-mark a, .lv-mark.al-l a, .lv-mark.al-r a, .lv-mark.up a, .lv-mark.down a { position: relative; width: auto; translate: none; flex-direction: row; align-items: center; text-align: left; gap: 16px; top: auto; bottom: auto; }
  .lv-mark a::after { display: none; }
  .lv-mark .lv-dot, .lv-mark.up .lv-dot { order: 0; align-self: center; }
  .lv-name, .lv-mark.up .lv-name { order: 1; margin: 0; }
  .lv-lvl, .lv-mark.up .lv-lvl { order: 2; margin-left: auto; text-align: right; }
}

/* Ugen */
.wk-sec { background: var(--paper); }
.wk-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--s-3) var(--s-6); margin-bottom: var(--s-5); }
.wk-head h2 { font-family: var(--f-display); font-weight: 400; font-size: var(--fs-h3); line-height: 1.1; margin: 0; letter-spacing: -.015em; }
.wk-head p { margin: 0; color: var(--ink-2); max-width: 46ch; }
.wk { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 2px solid var(--ink); }
.wk-day { min-height: 200px; padding: 12px 8px 14px; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 8px; }
.wk-day:last-child { border-right: 0; }
.wk-day.is-empty { background: repeating-linear-gradient(135deg, transparent 0 10px, rgba(58,37,96,.03) 10px 11px); }
.wk-d { margin: 0 0 4px; font-weight: 800; font-size: var(--fs-sm); display: flex; align-items: center; gap: 8px; }
.wk-ds { display: none; }
.wk-day.is-today .wk-d::after { content: "I dag"; padding: 1px 8px; border-radius: 99px; background: var(--accent); color: #fff; font-size: .7rem; }
.wk-item { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: var(--r-sm); background: var(--tint); border-left: 3px solid var(--lilla-deep); color: var(--ink); text-decoration: none; transition: translate .25s var(--ease), box-shadow .25s; }
.wk-item:hover { translate: 0 -2px; box-shadow: var(--sh-1); }
.wk-item.v-hot { background: var(--ink); color: var(--paper); border-left-color: var(--pink); }
.wk-item.v-hot .wk-place, .wk-item.v-hot .wk-time { color: var(--on-dark-2); }
.wk-item.v-soft { background: #F6EEF5; border-left-color: #7E4A7A; }
.wk-time { font-size: .72rem; font-weight: 800; color: var(--ink-2); }
.wk-name { font-family: var(--f-display); font-size: 1.02rem; line-height: 1.2; }
.wk-place { font-size: .72rem; color: var(--ink-2); }
.wk-note { margin: var(--s-4) 0 0; font-size: var(--fs-sm); color: var(--ink-2); }
@media (max-width: 900px) {
  .wk { grid-template-columns: 1fr; }
  .wk-day { min-height: 0; flex-direction: row; flex-wrap: wrap; align-items: flex-start; border-right: 0; border-bottom: 1px solid var(--line); padding: 14px 0; }
  .wk-day.is-empty { display: none; }
  .wk-d { width: 100%; }
  .wk-item { flex: 1 1 220px; }
}

/* Kapitler på yoga og kurser */
.chap { position: relative; }
.chap.track-yoga { background: linear-gradient(180deg, #F7F1F6, var(--paper) 70%); }
.chap-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--gap-split); align-items: start; }
.chap-head { position: sticky; top: calc(var(--head-h) + 40px); }
.chap-word { margin: 0; font-family: var(--f-display); font-style: italic; font-weight: 300; font-size: clamp(4rem, 8.6vw, 8.4rem); line-height: .85; letter-spacing: -.04em; color: var(--tint-2); user-select: none; }
.chap-head h2 { position: relative; margin: -.55em 0 var(--s-4) .1em; font-family: var(--f-display); font-weight: 400; font-size: var(--fs-h3); line-height: 1.1; }
.chap-head p:not(.chap-word) { color: var(--ink-2); max-width: 34ch; margin: 0; }
.chap-cards { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap-grid); }
.crd { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; color: var(--ink); text-decoration: none; transition: box-shadow .35s, translate .35s var(--ease), border-color .35s; }
.crd:hover { box-shadow: var(--sh-2); translate: 0 -4px; border-color: transparent; }
.crd-media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--tint); }
.crd-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.crd:hover .crd-media img { transform: scale(1.05); }
.crd-body { display: flex; flex-direction: column; gap: 10px; padding: var(--pad-md); flex: 1; }
.crd-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.crd-chip { padding: 3px 10px; border-radius: 99px; background: var(--tint); color: var(--lilla-deep); font: 700 .75rem/1.4 var(--f-body); }
.crd-chip[data-next-yoga] { background: var(--accent); color: #fff; }
.crd-t { font-family: var(--f-display); font-size: clamp(1.4rem, 2vw, 1.75rem); line-height: 1.15; letter-spacing: -.01em; }
.crd-d { color: var(--ink-2); }
.crd-meta { font-size: var(--fs-xs); font-weight: 700; color: var(--ink-2); }
.crd-cta { margin-top: auto; padding-top: 6px; display: inline-flex; align-items: center; gap: 10px; font-weight: 800; color: var(--accent); }
.crd-cta svg { width: 16px; height: 16px; transition: translate .3s var(--ease); }
.crd:hover .crd-cta svg { translate: 6px 0; }
.crd-xl { grid-column: 1 / -1; display: grid; grid-template-columns: 1.25fr 1fr; }
.crd-xl .crd-media { aspect-ratio: auto; min-height: 380px; height: 100%; }
.crd-xl .crd-body { padding: var(--pad-lg); justify-content: center; }
.crd-xl .crd-t { font-size: clamp(1.8rem, 2.8vw, 2.5rem); }
@media (max-width: 1000px) {
  .chap-grid { grid-template-columns: 1fr; gap: var(--s-5); }
  .chap-head { position: static; }
  .chap-word { font-size: clamp(3.6rem, 16vw, 6rem); }
}
@media (max-width: 700px) {
  .chap-cards { grid-template-columns: 1fr; }
  .crd-xl { grid-template-columns: 1fr; }
  .crd-xl .crd-media { min-height: 0; aspect-ratio: 4 / 3; }
  .crd-xl .crd-body { padding: var(--pad-md); }
}
@media (prefers-reduced-motion: reduce) {
  .ix-link::before, .ix-main, .ix-arrow, .crd, .crd-media img, .wk-item { transition: none; }
  .ix-status.s-open::before { animation: none; }
}
.ix-empty[hidden] { display: none; }
.lv { height: 250px; }
.lv-ends { display: flex; justify-content: space-between; margin: 0 0 var(--s-3); font-size: var(--fs-xs); font-weight: 800; color: var(--on-dark-2); }
.lv-ends span:first-child::before { content: "← "; }
.lv-ends span:last-child::after { content: " →"; }
.lv-mark.up a { flex-direction: column; }
.lv-mark.up .lv-name { order: 0; margin: 0 0 2px; }
.lv-mark.up .lv-lvl { order: 1; }
.lv-mark.up a::after { order: 2; margin-top: 6px; }
.lv-mark.up .lv-dot { order: 3; }
.lv-mark.down .lv-dot { order: 0; } .lv-mark.down a::after { order: 1; margin-bottom: 6px; } .lv-mark.down .lv-name { order: 2; } .lv-mark.down .lv-lvl { order: 3; }
@media (max-width: 860px) {
  .lv { height: auto; }
  .lv-ends { flex-direction: column; gap: 4px; }
  .lv-ends span:first-child::before { content: "↑ "; }
  .lv-ends span:last-child::after { content: ""; }
  .lv-ends span:last-child::before { content: "↓ "; }
  .lv-mark.up a, .lv-mark.down a { flex-direction: row; }
  .lv-mark.up .lv-dot, .lv-mark.down .lv-dot { order: 0; }
  .lv-mark.up .lv-name, .lv-mark.down .lv-name { order: 1; margin: 0; }
  .lv-mark.up .lv-lvl, .lv-mark.down .lv-lvl { order: 2; }
  .lv-track { top: 14px; bottom: 14px; }
}

/* ==========================================================
   v20 – undersidernes top: billedet i fuld bredde, tekst ovenpå
   ========================================================== */
body .page-hero.hero-full { position: relative; isolation: isolate; overflow: hidden; display: flex; min-height: clamp(560px, 84vh, 840px);
  padding: calc(var(--head-h) + 28px) 0 clamp(44px, 6vw, 84px); background: var(--ink); color: var(--paper); border-bottom: 0; }
.hf-media { position: absolute; inset: 0; z-index: -2; }
.hf-media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.js .hf-media img { animation: hfZoom 2.4s var(--ease) both; }
@keyframes hfZoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.page-hero.hero-full::before { content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(34,20,60,.62) 0%, rgba(34,20,60,0) 26%),
              linear-gradient(90deg, rgba(34,20,60,.92) 0%, rgba(34,20,60,.74) 36%, rgba(34,20,60,.28) 72%, rgba(34,20,60,.12) 100%),
              linear-gradient(0deg, rgba(34,20,60,.55) 0%, rgba(34,20,60,0) 40%); }
body.track-yoga .page-hero.hero-full { background: #2E1A2C; }
body.track-yoga .page-hero.hero-full::before {
  background: linear-gradient(180deg, rgba(36,18,34,.6) 0%, rgba(36,18,34,0) 26%),
              linear-gradient(90deg, rgba(36,18,34,.9) 0%, rgba(46,26,44,.72) 36%, rgba(46,26,44,.26) 72%, rgba(46,26,44,.1) 100%),
              linear-gradient(0deg, rgba(36,18,34,.55) 0%, rgba(36,18,34,0) 40%); }
.hf-inner { flex: 1; display: grid; grid-template-rows: auto 1fr; }
.hero-full .crumbs, .hero-full .crumbs a { color: rgba(250,248,251,.78); }
.hero-full .crumbs [aria-current] { color: var(--paper); }
.hf-row { align-self: end; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s-7); align-items: end; }
.hf-copy { max-width: 760px; }
body .page-hero.hero-full h1 { color: var(--paper); -webkit-text-fill-color: var(--paper); background: none;
  font-size: clamp(3rem, 7.2vw, 6.6rem); line-height: .98; letter-spacing: -.03em; margin: 0 0 var(--s-5); text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,.25); }
.hero-full .lead { color: rgba(250,248,251,.9); max-width: 52ch; margin-bottom: var(--s-6); }
.hero-full .status { color: var(--paper); background: rgba(250,248,251,.14); border: 1px solid rgba(250,248,251,.25); padding: 6px 14px 6px 10px; border-radius: 99px; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.hero-full .status.calm { color: var(--paper); }
.hero-full .status .pulse { background: var(--pink); }
.hero-full .btn:not(.btn-ghost-light) { --bg: var(--accent); --bd: var(--accent); }
.hf-aside { display: flex; flex-direction: column; align-items: flex-end; gap: var(--s-4); }
.hf-stamp { margin: 0; max-width: 270px; padding: 16px 18px; border-radius: var(--r-md); background: rgba(250,248,251,.13); border: 1px solid rgba(250,248,251,.28);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); color: var(--paper); font-weight: 700; font-size: .95rem; line-height: 1.4; }
.hf-stamp::before { content: ""; display: block; width: 28px; height: 3px; border-radius: 2px; background: var(--pink); margin-bottom: 10px; }
.hf-stamp.calm::before { background: var(--pink-l); }
.hf-aside .spin-badge { position: relative; inset: auto; top: auto; right: auto; }
.js .hf-copy > * { animation: hfUp .9s var(--ease) both; }
.js .hf-copy > :nth-child(2) { animation-delay: .08s; } .js .hf-copy > :nth-child(3) { animation-delay: .16s; } .js .hf-copy > :nth-child(4) { animation-delay: .24s; }
.js .hf-aside { animation: hfUp .9s .3s var(--ease) both; }
@keyframes hfUp { from { opacity: 0; transform: translateY(18px); } }
.hero-full + .fact-band { border-top: 1px solid rgba(250,248,251,.14); }
@media (max-width: 900px) {
  body .page-hero.hero-full { min-height: min(92svh, 760px); padding-top: calc(var(--head-h) + 16px); }
  .page-hero.hero-full::before, body.track-yoga .page-hero.hero-full::before {
    background: linear-gradient(180deg, rgba(34,20,60,.55) 0%, rgba(34,20,60,.15) 30%, rgba(34,20,60,.78) 62%, rgba(34,20,60,.94) 100%); }
  .hf-row { grid-template-columns: 1fr; gap: var(--s-5); }
  .hf-aside { flex-direction: row; align-items: center; justify-content: flex-start; }
  .hf-aside .spin-badge { width: 92px; }
  .hf-stamp { font-size: .88rem; padding: 12px 14px; }
}
@media (prefers-reduced-motion: reduce) { .js .hf-media img, .js .hf-copy > *, .js .hf-aside { animation: none; } }
body .page-hero.hero-full { margin-bottom: 0; }
.hero-full + .sec-after-hero, .hero-full + section.sec { padding-top: clamp(56px, 7vw, 104px); }
/* Skalaen på yoga og kurser: mauve */
.lv-sec.lv-yoga { background: #2E1A2C; }
.lv-yoga .lv-track { background: linear-gradient(90deg, #B993B5, #8A3A84 40%, #655A81 75%, #3C305F); }
.lv-yoga .lv-dot { border-color: #2E1A2C; }
.lv-yoga .lv-lvl { color: #E8C7E4; }
@media (max-width: 860px) { .lv-yoga .lv-track { background: linear-gradient(180deg, #B993B5, #8A3A84 40%, #655A81 75%, #3C305F); } }

/* ==========================================================
   v21 – dirigent-logoet og mørk lilla i stedet for sort
   ========================================================== */
.brand-mark { width: 50px; height: 42px; flex: none; color: inherit; transition: transform .5s var(--ease); transform-origin: 20% 90%; }
.brand:hover .brand-mark { transform: rotate(-6deg); }
.brand { gap: 10px; }
.site-head:not(.scrolled) .brand-mark { color: inherit; }
.site-head .brand-mark { color: var(--ink); }
.is-overlay .site-head:not(.scrolled) .brand-mark { color: var(--paper); }
@media (max-width: 640px) { .brand-mark { width: 42px; height: 35px; } }
@media (prefers-reduced-motion: reduce) { .brand-mark { transition: none; } }
.foot-logo { display: inline-flex; align-items: center; gap: 12px; }
.foot-logo .brand-mark { width: 62px; height: 52px; color: var(--paper); }

/* v22 – yogabilledet på forsiden: rykket ind med runde hjørner hele vejen rundt */
.feature-media { margin: clamp(28px, 4vw, 56px) 0 clamp(28px, 4vw, 56px) max(var(--gut), calc((100vw - var(--max)) / 2 + var(--gut))); }
.feature-media img { border-radius: var(--r-img); box-shadow: var(--sh-2); }
.feature-badge { left: 24px; bottom: 24px; }
@media (max-width: 900px) {
  .feature-media { margin: var(--gut) var(--gut) 0; }
  .feature-media img { border-radius: var(--r-img); }
}
/* v23 – bredere dropdown under «Kor» */
.nav-list > .nav-item:first-child .sub { min-width: 360px; }
.nav-list > .nav-item:first-child .sub a { white-space: nowrap; }
/* v24 – kortene i forsidens slider er kun så høje som deres indhold */
.seats-stack > .seats { align-self: end; height: auto; }
/* Den skrå baggrundsflade følger det aktive korts højde */
.seats-stack::before { inset: auto -10px -10px 10px; height: var(--card-h, 100%); transition: rotate .6s var(--ease), opacity .4s, height .6s var(--ease); }
@media (prefers-reduced-motion: reduce) { .seats-stack::before { transition: none; } }
/* v25 – taglinen som link til forsiden */
.tagline-link { color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; border-bottom-color: color-mix(in srgb, currentColor 35%, transparent); transition: border-color .2s; }
.tagline-link:hover { border-bottom-color: currentColor; }

/* ==========================================================
   v26 – varesider (vare-*.html) og butiksoversigt (butik.html)
   ========================================================== */
.is-vare main { background: var(--paper); }
.vp-top { position: relative; padding: clamp(8px, 2vw, 28px) 0 clamp(48px, 7vw, 96px); background:
  radial-gradient(70% 60% at 0% 0%, rgba(177,69,173,.10), rgba(177,69,173,0) 70%),
  radial-gradient(60% 70% at 100% 10%, rgba(101,90,129,.14), rgba(101,90,129,0) 70%),
  linear-gradient(180deg, var(--tint) 0%, var(--paper) 100%); overflow: clip; }
.vp-top::after { content: ""; position: absolute; right: -120px; bottom: -160px; width: 520px; height: 520px; border-radius: 50%; border: 1px solid rgba(58,37,96,.08); box-shadow: 0 0 0 40px rgba(58,37,96,.025), 0 0 0 80px rgba(58,37,96,.02); pointer-events: none; }
.vp-top .crumbs { margin-bottom: clamp(14px, 2vw, 24px); position: relative; z-index: 1; }
.vp-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(28px, 4.5vw, 72px); align-items: start; }

/* galleri */
.vp-gallery { position: sticky; top: calc(var(--head-h) + 24px); }
.vp-main { position: relative; aspect-ratio: 5 / 4; border-radius: var(--r-lg); overflow: hidden; background: var(--tint-2); box-shadow: var(--sh-2); }
.vp-main img { width: 100%; height: 100%; object-fit: cover; transition: opacity .35s var(--ease), transform 1.2s var(--ease); }
.vp-main img.is-swap { opacity: 0; transform: scale(1.03); }
.vp-thumbs { display: flex; gap: 10px; margin-top: 12px; }
.vp-thumb { flex: 0 0 auto; width: 84px; aspect-ratio: 1; padding: 0; border: 0; border-radius: var(--r-md); overflow: hidden; background: var(--tint-2); cursor: pointer; opacity: .62; outline: 2px solid transparent; outline-offset: 3px; transition: opacity .25s, outline-color .25s; }
.vp-thumb img { width: 100%; height: 100%; object-fit: cover; }
.vp-thumb:hover { opacity: .9; }
.vp-thumb[aria-pressed="true"] { opacity: 1; outline-color: var(--ink); }
.vp-thumb:focus-visible { outline-color: var(--accent); }

/* billetkortet */
.vp-buy { position: relative; background: var(--surface); border-radius: var(--r-lg); padding: clamp(24px, 3vw, 40px); box-shadow: 0 1px 0 rgba(58,37,96,.06), var(--sh-2); }
.vp-buy::before { content: ""; position: absolute; inset: 0 0 auto; height: 6px; border-radius: var(--r-lg) var(--r-lg) 0 0; background: linear-gradient(90deg, var(--ink), var(--lilla) 45%, var(--pink)); }
.vp-cat { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 var(--s-4); font: 800 var(--fs-xs)/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.vp-cat span { padding: 5px 10px; border-radius: 99px; background: var(--tint); color: var(--lilla-deep); letter-spacing: .04em; text-transform: none; font-weight: 700; }
.vp-buy h1 { font-size: clamp(2.1rem, 3.6vw, 3.2rem); line-height: 1.02; letter-spacing: -.025em; font-weight: 380; margin: 0 0 var(--s-4); text-wrap: balance; }
.vp-lead { color: var(--ink-2); margin: 0 0 var(--s-5); }
.vp-status { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 var(--s-5); padding: 7px 14px 7px 12px; border-radius: 99px; font-weight: 800; font-size: var(--fs-sm); }
.vp-status.s-open { background: rgba(142,44,115,.09); color: var(--accent-2); }
.vp-status.s-open .pulse { background: var(--accent); }
.vp-status.s-closed { background: var(--tint); color: var(--ink-2); }
.vp-status.s-closed::before { content: ""; width: 9px; height: 9px; border-radius: 50%; border: 2px solid currentColor; }
.vp-pricebox { position: relative; margin: 0 calc(-1 * clamp(24px, 3vw, 40px)) var(--s-5); padding: var(--s-5) clamp(24px, 3vw, 40px); border-top: 2px dashed rgba(58,37,96,.16); }
.vp-pricebox::before, .vp-pricebox::after { content: ""; position: absolute; top: -13px; width: 24px; height: 24px; border-radius: 50%; background: var(--paper); box-shadow: inset 0 0 0 1px rgba(58,37,96,.05); }
.vp-pricebox::before { left: -12px; } .vp-pricebox::after { right: -12px; }
.vp-price { margin: 0; font-family: var(--f-display); font-weight: 350; font-size: clamp(3rem, 5vw, 4.25rem); line-height: .95; letter-spacing: -.035em; font-variant-numeric: lining-nums tabular-nums; }
.vp-price span { display: inline-block; transition: transform .3s var(--ease), opacity .3s; }
.vp-price span.is-tick { transform: translateY(-6px); opacity: .3; }
.vp-unit { margin: 6px 0 0; font-weight: 700; color: var(--ink-2); }
.vp-price-note { margin: 4px 0 0; font-size: var(--fs-xs); color: var(--ink-2); opacity: .8; }

.vp-variants { border: 0; margin: 0 0 var(--s-5); padding: 0; display: grid; gap: 8px; }
.vp-variants legend { padding: 0; margin-bottom: 8px; font: 800 var(--fs-xs)/1 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); }
.vp-var { position: relative; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; grid-template-areas: "dot t p" "dot d p"; column-gap: 12px; align-items: center; padding: 14px 16px; border: 1.5px solid var(--line); border-radius: var(--r-md); cursor: pointer; transition: border-color .2s, background .2s, box-shadow .2s; }
.vp-var:hover { border-color: rgba(58,37,96,.35); }
.vp-var input { grid-area: dot; appearance: none; -webkit-appearance: none; margin: 0; width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid rgba(58,37,96,.4); display: grid; place-content: center; cursor: pointer; }
.vp-var input::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); transform: scale(0); transition: transform .2s var(--ease); }
.vp-var input:checked { border-color: var(--accent); }
.vp-var input:checked::before { transform: scale(1); }
.vp-var input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.vp-var:has(input:checked) { border-color: var(--ink); background: rgba(237,231,242,.55); box-shadow: 0 10px 22px -18px rgba(58,37,96,.6); }
.vp-var-t { grid-area: t; font-weight: 800; line-height: 1.25; }
.vp-var-d { grid-area: d; font-size: var(--fs-xs); color: var(--ink-2); line-height: 1.35; }
.vp-var-p { grid-area: p; font-family: var(--f-display); font-size: 1.3rem; white-space: nowrap; }

.vp-qty { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 var(--s-4); font-weight: 800; }
.vp-step { display: inline-flex; align-items: center; border: 1.5px solid var(--line); border-radius: 99px; padding: 3px; }
.vp-step button { width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--tint); color: var(--ink); font: 500 1.35rem/1 var(--f-body); cursor: pointer; transition: background .2s, color .2s; }
.vp-step button:hover { background: var(--ink); color: var(--paper); }
.vp-step button:disabled { opacity: .35; cursor: default; background: var(--tint); color: var(--ink); }
.vp-step input { width: 48px; border: 0; background: none; text-align: center; font: 800 1.1rem var(--f-body); color: var(--ink); -moz-appearance: textfield; }
.vp-step input::-webkit-outer-spin-button, .vp-step input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.vp-total { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 var(--s-4); padding: 12px 0 0; border-top: 1px solid var(--line); font-weight: 700; color: var(--ink-2); }
.vp-total b { font-family: var(--f-display); font-weight: 400; font-size: 1.6rem; color: var(--ink); }
.vp-total[hidden] { display: none; }

.vp-actions { display: grid; gap: 10px; }
.vp-actions .btn { width: 100%; justify-content: center; min-height: 56px; font-size: 1.02rem; }
.vp-hint { margin: 4px 0 0; font-size: var(--fs-sm); color: var(--ink-2); text-align: center; }
.vp-trust { list-style: none; margin: var(--s-5) 0 0; padding: var(--s-4) 0 0; border-top: 1px solid var(--line); display: grid; gap: 8px; font-size: var(--fs-sm); color: var(--ink-2); }
.vp-trust li { display: flex; gap: 10px; align-items: baseline; }
.vp-trust li::before { content: ""; flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%; background: var(--pink); translate: 0 -1px; }
.vp-todo { margin: var(--s-3) 0 0; font-size: var(--fs-sm); }

/* indhold */
.vp-body { padding-top: clamp(56px, 7vw, 104px); }
.vp-body-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.vp-h { font-size: var(--fs-h4); font-weight: 420; letter-spacing: -.015em; margin: clamp(40px, 5vw, 60px) 0 var(--s-5); display: flex; align-items: center; gap: 16px; }
.vp-h::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.vp-text > .vp-h:first-child { margin-top: 0; }
.vp-text > p { max-width: 38em; color: var(--ink-2); }
.vp-text > p:first-of-type { font-size: 1.2rem; line-height: 1.55; color: var(--ink); }
.vp-incl { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.vp-incl li { display: flex; gap: 14px; align-items: flex-start; padding: 18px 18px; border-radius: var(--r-md); background: var(--surface); border: 1px solid var(--line); font-weight: 700; line-height: 1.35; }
.vp-incl svg { flex: 0 0 auto; width: 26px; height: 26px; padding: 4px; border-radius: 50%; background: var(--ink); color: var(--paper); }
.vp-dates { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(86px, 1fr)); gap: 8px; }
.vp-dates li { display: flex; flex-direction: column; align-items: center; padding: 12px 6px; border-radius: var(--r-md); background: var(--tint); font-size: var(--fs-xs); font-weight: 700; color: var(--ink-2); text-transform: lowercase; transition: background .2s, color .2s; }
.vp-dates li b { font-family: var(--f-display); font-weight: 400; font-size: 1.7rem; line-height: 1.1; color: var(--ink); }
.vp-dates li.is-past { opacity: 1; color: #5F5773; }
.vp-dates li.is-past b { color: #5F5773; text-decoration: line-through; text-decoration-thickness: 1px; }
.vp-dates li.is-next { background: var(--ink); color: rgba(250,248,251,.8); }
.vp-dates li.is-next b { color: var(--paper); }
.vp-small { margin: 12px 0 0; font-size: var(--fs-sm); color: var(--ink-2); }
.vp-steps { list-style: none; counter-reset: st; display: grid; gap: 0; }
.vp-steps li { counter-increment: st; position: relative; display: grid; gap: 4px; padding: 0 0 26px 64px; }
.vp-steps li::before { content: counter(st); position: absolute; left: 0; top: -4px; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); border: 1.5px solid var(--ink); font: 400 1.25rem/1 var(--f-display); }
.vp-steps li:not(:last-child)::after { content: ""; position: absolute; left: 21px; top: 42px; bottom: 0; width: 1.5px; background: linear-gradient(var(--ink), rgba(58,37,96,.15)); }
.vp-steps li:last-child::before { background: var(--ink); color: var(--paper); }
.vp-steps b { font-size: 1.08rem; }
.vp-steps span { color: var(--ink-2); }

.vp-side { position: sticky; top: calc(var(--head-h) + 24px); display: grid; gap: var(--s-6); }
.vp-ask { position: relative; padding: var(--pad-md); padding-top: 64px; margin-top: 44px; border-radius: var(--r-lg); background: linear-gradient(160deg, var(--night) 0%, var(--lilla-deep) 100%); color: var(--paper); }
.vp-ask-photo { position: absolute; top: -44px; left: var(--pad-md); width: 88px; height: 88px; border-radius: 50%; overflow: hidden; border: 4px solid var(--paper); background: var(--lilla); }
.vp-ask-photo img { width: 100%; height: 100%; object-fit: cover; }
.vp-ask h2 { font-size: var(--fs-h5); font-size: 1.6rem; margin: 0 0 8px; }
.vp-ask p { color: rgba(250,248,251,.78); }
.vp-ask .btn { --bg: var(--paper); --fg: var(--ink); --bd: var(--paper); }
.vp-ask .btn-ghost { --bg: transparent; --fg: var(--paper); --bd: rgba(250,248,251,.6); }
.vp-faq summary { font-size: 1.15rem; padding: 18px 0; }
.vp-more { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 22px; border-radius: var(--r-md); border: 1.5px solid var(--ink); text-decoration: none; font-weight: 800; transition: background .25s, color .25s; }
.vp-more svg { width: 18px; height: 18px; transition: translate .3s var(--ease); }
.vp-more:hover { background: var(--ink); color: var(--paper); }
.vp-more:hover svg { translate: 4px 0; }

/* relaterede og butikskort */
.vp-rel-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: var(--s-6); }
.vp-rel-head h2 { font-size: var(--fs-h3); }
.vp-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap-grid); }
.vp-card .crd-media { position: relative; }
.vp-card-st { position: absolute; left: 14px; top: 14px; padding: 6px 12px; border-radius: 99px; font: 800 var(--fs-xs)/1.2 var(--f-body); background: rgba(250,248,251,.92); color: var(--ink-2); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.vp-card-st.s-open { background: var(--accent); color: #fff; }
.vp-card .crd-d { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.vp-card-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; padding-top: 12px; margin-top: 4px; border-top: 1px solid var(--line); font-size: var(--fs-sm); color: var(--ink-2); }
.vp-card-price b { font-family: var(--f-display); font-weight: 400; font-size: 1.5rem; color: var(--ink); }
.vp-card[hidden] { display: none; }
.vp-card-price { margin-top: auto; }
.vp-card .crd-cta { margin-top: 0; }
.vp-cards-open .vp-card { border-color: rgba(142,44,115,.28); box-shadow: 0 0 0 1px rgba(142,44,115,.08); }
.vp-cards-open .vp-card .crd-media { aspect-ratio: 16 / 11; }
.vp-shop-top2 { margin-top: clamp(64px, 8vw, 112px); }
.vp-shop-h { font-size: var(--fs-h3) !important; }
.vp-shop-empty { padding: 40px; text-align: center; border-radius: var(--r-lg); background: var(--tint); color: var(--ink-2); }
.vp-shop-empty[hidden] { display: none; }

/* klistret købsbjælke på mobil */
.vp-bar { display: none; }
@media (max-width: 1000px) {
  .vp-grid { grid-template-columns: 1fr; }
  .vp-gallery { position: static; top: auto; }
  .vp-main { aspect-ratio: 16 / 11; }
  .vp-body-grid { grid-template-columns: 1fr; }
  .vp-side { position: static; }
  .vp-cards { grid-template-columns: 1fr 1fr; }
  .vp-cards-open { grid-template-columns: 1fr; }
  .vp-cards-open .vp-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
  .vp-cards-open .vp-card .crd-media { aspect-ratio: auto; height: 100%; min-height: 260px; }
}
@media (max-width: 700px) {
  .vp-top { padding-top: 4px; }
  .vp-top .crumbs { margin-bottom: 6px; }
  .vp-grid { gap: 20px; }
  .vp-gallery { margin-inline: calc(-1 * var(--gut)); }
  .vp-main { border-radius: 0; box-shadow: none; aspect-ratio: 4 / 3; }
  .vp-gallery { position: relative; top: auto; }
  .vp-thumbs { position: absolute; z-index: 2; right: var(--gut); bottom: 70px; margin: 0; gap: 6px; }
  .vp-thumb { width: 46px; border-radius: 12px; opacity: .85; outline-color: rgba(250,248,251,.0); box-shadow: 0 6px 16px -8px rgba(20,16,32,.6); }
  .vp-thumb[aria-pressed="true"] { outline-color: var(--paper); }
  .vp-buy { z-index: 1; margin-top: -56px; padding: 24px 20px; }
  .vp-pricebox { margin-inline: -20px; padding-inline: 20px; }
  .vp-incl { grid-template-columns: 1fr; }
  .vp-cards, .vp-cards-open { grid-template-columns: 1fr; }
  .vp-cards-open .vp-card { grid-template-columns: 1fr; }
  .vp-cards-open .vp-card .crd-media { min-height: 0; aspect-ratio: 4 / 3; }
  .vp-bar { position: fixed; z-index: 60; left: 10px; right: 10px; bottom: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 18px; border-radius: 18px; background: rgba(58,37,96,.96); color: var(--paper); box-shadow: var(--sh-3); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transform: translateY(calc(100% + 20px)); transition: transform .4s var(--ease); }
  .vp-bar.is-on { transform: none; }
  .vp-bar div { display: grid; line-height: 1.2; }
  .vp-bar b { font-family: var(--f-display); font-weight: 400; font-size: 1.35rem; }
  .vp-bar div span { font-size: var(--fs-xs); color: rgba(250,248,251,.72); }
  .vp-bar .btn { --bg: var(--paper); --fg: var(--ink); --bd: var(--paper); flex: 0 0 auto; }
  .is-vare .sticky-cta { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .vp-main img, .vp-price span, .vp-bar { transition: none; }
}

/* ==========================================================
   v27 – kurv, kasse og ordrebekræftelse
   ========================================================== */
/* kurv-ikonet i menuen */
.head-cart { position: relative; display: grid; place-items: center; width: 46px; height: 46px; margin-right: 6px; border-radius: 50%; color: inherit; text-decoration: none; transition: background .2s; }
.head-cart svg { width: 24px; height: 24px; }
.head-cart:hover { background: rgba(58,37,96,.08); color: inherit; }
.is-overlay .site-head:not(.scrolled) .head-cart:hover { background: rgba(250,248,251,.14); }
.head-cart-n { position: absolute; top: 4px; right: 2px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 99px; background: var(--accent); color: #fff; font: 800 .7rem/19px var(--f-body); text-align: center; box-shadow: 0 0 0 2px var(--paper); animation: cartPop .45s var(--ease); }
.head-cart-n[hidden] { display: none; }
@keyframes cartPop { 0% { transform: scale(.4); } 60% { transform: scale(1.15); } 100% { transform: none; } }
@media (max-width: 1100px) { .head-cart { margin-right: 4px; } }

/* topstykke og trin */
.co-top { padding: clamp(20px, 3vw, 40px) 0 clamp(20px, 3vw, 32px); background: radial-gradient(60% 90% at 100% 0%, rgba(177,69,173,.10), rgba(177,69,173,0) 70%), linear-gradient(180deg, var(--tint) 0%, var(--paper) 100%); }
.co-top h1 { font-size: clamp(2.4rem, 5vw, 4rem); margin: 0 0 10px; }
.co-lead { max-width: 40em; margin: 0; color: var(--ink-2); font-size: 1.08rem; }
.co-steps { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 6px; margin: 0 0 clamp(20px, 3vw, 36px); counter-reset: none; }
.co-steps li { display: flex; align-items: center; gap: 6px; font-size: var(--fs-sm); font-weight: 700; color: var(--ink-2); }
.co-steps li + li::before { content: ""; width: clamp(16px, 4vw, 44px); height: 1.5px; background: rgba(58,37,96,.2); margin-right: 4px; }
.co-steps a { display: flex; align-items: center; gap: 6px; text-decoration: none; }
.co-n { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid rgba(58,37,96,.3); font-size: .8rem; font-weight: 800; background: var(--surface); }
.co-steps .is-cur { color: var(--ink); }
.co-steps .is-cur .co-n { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.co-steps .is-done .co-n { background: var(--accent); border-color: var(--accent); color: transparent; position: relative; }
.co-steps .is-done .co-n::after { content: ""; position: absolute; width: 10px; height: 6px; border: solid #fff; border-width: 0 0 2px 2px; transform: translateY(-1px) rotate(-45deg); }
.co-steps .is-done + li::before { background: var(--accent); }
.co-sec { padding-top: clamp(16px, 2.4vw, 28px); }
.co-demo { margin: 0 0 var(--s-5); font-size: var(--fs-sm); }

/* to kolonner: indhold + overblik */
.co-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 400px); gap: clamp(24px, 4vw, 56px); align-items: start; }
.co-grid[hidden] { display: none; }
.co-grid.is-empty { grid-template-columns: 1fr; }
.co-sum { position: sticky; top: calc(var(--head-h) + 20px); background: var(--surface); border-radius: var(--r-lg); padding: clamp(22px, 2.6vw, 32px); box-shadow: 0 1px 0 rgba(58,37,96,.06), var(--sh-2); }
.co-sum[hidden] { display: none; }
.co-sum::before { content: ""; position: absolute; inset: 0 0 auto; height: 6px; border-radius: var(--r-lg) var(--r-lg) 0 0; background: linear-gradient(90deg, var(--ink), var(--lilla) 45%, var(--pink)); }
.co-sum h2 { display: flex; justify-content: space-between; align-items: baseline; font-size: 1.6rem; margin: 0 0 var(--s-4); }
.co-sum h2 a { font: 700 var(--fs-sm) var(--f-body); }
.co-lines { margin: 0; display: grid; gap: 8px; }
.co-lines div { display: flex; justify-content: space-between; gap: 12px; color: var(--ink-2); }
.co-lines dd { margin: 0; font-weight: 700; color: var(--ink); }
.co-total { display: flex; justify-content: space-between; align-items: baseline; margin: var(--s-4) 0 var(--s-5); padding-top: var(--s-4); border-top: 2px dashed rgba(58,37,96,.16); font-weight: 800; }
.co-total b { font-family: var(--f-display); font-weight: 380; font-size: clamp(2.2rem, 3.4vw, 2.8rem); letter-spacing: -.03em; line-height: 1; }
.co-go { width: 100%; justify-content: center; gap: 10px; min-height: 58px; font-size: 1.05rem; }
.co-go svg { width: 18px; height: 18px; }
.co-go.is-busy { pointer-events: none; opacity: .85; }
.co-go.is-busy svg { animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.co-fine { margin: 12px 0 0; font-size: var(--fs-xs); color: var(--ink-2); text-align: center; }

/* kurvens linjer */
.ck-list { list-style: none; display: grid; gap: 12px; }
.ck-list[hidden] { display: none; }
.ck-item { position: relative; display: grid; grid-template-columns: 132px minmax(0, 1fr) auto auto; grid-template-areas: "img info qty price"; gap: 8px 24px; align-items: center; padding: 14px 56px 14px 14px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); animation: rise .5s var(--ease) both; }
.ck-img { grid-area: img; display: block; aspect-ratio: 1; border-radius: var(--r-md); overflow: hidden; background: var(--tint-2); }
.ck-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.ck-item:hover .ck-img img { transform: scale(1.05); }
.ck-info { grid-area: info; min-width: 0; }
.ck-cat { margin: 0 0 4px; font: 800 var(--fs-xs)/1.3 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--accent); }
.ck-cat span { margin-left: 6px; letter-spacing: 0; text-transform: none; color: var(--ink-2); font-weight: 700; }
.ck-info h2 { font-size: clamp(1.3rem, 2vw, 1.6rem); line-height: 1.15; margin: 0 0 6px; overflow-wrap: break-word; hyphens: auto; }
.ck-info h2 a { text-decoration: none; }
.ck-info h2 a:hover { text-decoration: underline; color: var(--ink); }
.ck-meta { margin: 0; font-size: var(--fs-sm); color: var(--ink-2); }
.ck-flag { display: inline-flex; margin: 8px 0 0; padding: 3px 10px; border-radius: 8px; background: var(--tint); color: var(--lilla-deep); font-size: var(--fs-xs); font-weight: 700; }
.ck-qty { grid-area: qty; }
.ck-step output { width: 40px; text-align: center; font-weight: 800; }
.ck-one { font-size: var(--fs-sm); font-weight: 700; color: var(--ink-2); white-space: nowrap; }
.ck-price { grid-area: price; margin: 0; min-width: 6ch; text-align: right; font-family: var(--f-display); font-size: 1.6rem; white-space: nowrap; }
.ck-rm { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; display: grid; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--ink-2); cursor: pointer; transition: background .2s, color .2s; }
.ck-rm svg { width: 18px; height: 18px; }
.ck-rm:hover { background: rgba(142,44,115,.1); color: var(--accent); }
.ck-back { display: inline-flex; gap: 8px; margin-top: var(--s-5); font-weight: 700; text-decoration: none; }
.ck-back:hover { text-decoration: underline; }
.ck-back[hidden] { display: none; }
.ck-empty { text-align: center; padding: clamp(40px, 7vw, 88px) var(--s-5); border-radius: var(--r-lg); background: var(--surface); border: 1px dashed rgba(58,37,96,.25); }
.ck-empty[hidden] { display: none; }
.ck-empty-ico { display: grid; place-items: center; width: 96px; height: 96px; margin: 0 auto var(--s-5); border-radius: 50%; background: var(--tint); color: var(--lilla); animation: bob 3s ease-in-out infinite; }
.ck-empty-ico svg { width: 44px; height: 44px; }
.ck-empty h2 { font-size: var(--fs-h3); margin: 0 0 10px; }
.ck-empty p { color: var(--ink-2); max-width: 30em; margin: 0 auto var(--s-5); }
.ck-empty .btn-row { justify-content: center; }
.ck-sugg { margin-top: clamp(56px, 7vw, 96px); }
.ck-sugg[hidden] { display: none; }
.ck-toast { position: fixed; z-index: 80; left: 50%; bottom: 24px; display: flex; align-items: center; gap: 16px; padding: 10px 10px 10px 20px; border-radius: 99px; background: var(--ink); color: var(--paper); box-shadow: var(--sh-3); font-weight: 700; transform: translate(-50%, 140%); transition: transform .35s var(--ease); max-width: calc(100vw - 24px); }
.ck-toast.on { transform: translate(-50%, 0); }
.ck-toast[hidden] { display: none; }
.ck-toast button { min-height: 40px; padding: 0 16px; border: 0; border-radius: 99px; background: var(--paper); color: var(--ink); font: 800 var(--fs-sm) var(--f-body); cursor: pointer; }

/* mini-kurven */
.mc { position: fixed; inset: 0 0 0 auto; margin: 0; width: min(420px, 100vw); max-width: 100vw; height: 100dvh; max-height: 100dvh; padding: 0; border: 0; background: var(--paper); color: var(--ink); box-shadow: var(--sh-3); }
.mc::backdrop { background: rgba(34,20,60,.45); backdrop-filter: blur(3px); }
.mc[open] { animation: mcIn .45s var(--ease); }
@keyframes mcIn { from { transform: translateX(100%); } to { transform: none; } }
.mc-in { display: flex; flex-direction: column; gap: var(--s-5); height: 100%; padding: 24px; }
.mc-head { display: flex; justify-content: space-between; align-items: center; }
.mc-t { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--f-display); font-size: 1.6rem; }
.mc-ok { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--accent); color: #fff; animation: cartPop .5s var(--ease); }
.mc-ok svg { width: 20px; height: 20px; }
.mc-x { width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--tint); font-size: 1.6rem; line-height: 1; color: var(--ink); cursor: pointer; }
.mc-item { display: grid; grid-template-columns: 88px 1fr; gap: 16px; align-items: center; padding: 14px; border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
.mc-item img { width: 88px; height: 88px; object-fit: cover; border-radius: var(--r-md); background: var(--tint-2); }
.mc-item div { display: grid; gap: 2px; }
.mc-item b { font-family: var(--f-display); font-weight: 450; font-size: 1.2rem; line-height: 1.2; }
.mc-item span { font-size: var(--fs-sm); color: var(--ink-2); }
.mc-sum { display: flex; justify-content: space-between; align-items: baseline; padding-top: var(--s-4); border-top: 1px solid var(--line); color: var(--ink-2); font-weight: 700; }
.mc-sum b { font-family: var(--f-display); font-weight: 400; font-size: 1.8rem; color: var(--ink); }
.mc-acts { display: grid; gap: 10px; margin-top: auto; }
.mc-acts .btn { width: 100%; justify-content: center; min-height: 54px; }
.mc-more { border: 0; background: none; padding: 10px; font: 700 var(--fs-sm) var(--f-body); color: var(--ink-2); text-decoration: underline; cursor: pointer; }
[data-cart].is-added { animation: cartPop .5s var(--ease); }

/* kassen */
.co-errs { margin-bottom: var(--s-5); padding: 20px 24px; border-radius: var(--r-md); background: #FBEFF6; border-left: 4px solid var(--accent); }
.co-errs[hidden] { display: none; }
.co-errs:focus { outline: 2px solid var(--accent); outline-offset: 3px; }
.co-errs h2 { font-size: 1.3rem; margin: 0 0 8px; color: var(--accent-2); }
.co-errs ul { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.co-errs a { color: var(--accent-2); font-weight: 700; }
.co-card { margin: 0 0 16px; padding: clamp(22px, 3vw, 36px); border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); min-width: 0; }
.co-card[hidden] { display: none; }
.co-card legend { float: left; width: 100%; display: flex; align-items: center; gap: 14px; margin: 0 0 var(--s-5); padding: 0; font-family: var(--f-display); font-size: clamp(1.5rem, 2.4vw, 1.9rem); line-height: 1.1; }
.co-card legend + * { clear: both; }
.co-num { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%; background: var(--ink); color: var(--paper); font: 800 1rem var(--f-body); }
.fld-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.fld { display: grid; gap: 6px; align-content: start; min-width: 0; }
.fld.span2, .fld-grid > .span2 { grid-column: 1 / -1; }
.fld-grid .fld-pc { grid-column: 1; }
.fld label { font-size: var(--fs-sm); font-weight: 800; }
.fld .opt { font-weight: 500; color: var(--ink-2); }
.fld input, .fld textarea { width: 100%; min-height: 52px; padding: 12px 16px; border: 1.5px solid rgba(58,37,96,.2); border-radius: var(--r-sm); background: var(--paper); font: 500 1rem var(--f-body); color: var(--ink); transition: border-color .2s, box-shadow .2s, background .2s; }
.fld textarea { resize: vertical; min-height: 96px; }
.fld input:hover, .fld textarea:hover { border-color: rgba(58,37,96,.4); }
.fld input:focus, .fld textarea:focus { outline: none; border-color: var(--pink); background: var(--surface); box-shadow: 0 0 0 3px rgba(177,69,173,.18); }
.fld input::placeholder, .fld textarea::placeholder { color: rgba(91,83,110,.6); }
.fld-cpr input { font-variant-numeric: tabular-nums; letter-spacing: .08em; max-width: 260px; }
.fld-hint { margin: 0; font-size: var(--fs-xs); color: var(--ink-2); }
.fld-hint[hidden], .fld-err[hidden] { display: none; }
.fld-err { margin: 0; font-size: var(--fs-xs); font-weight: 700; color: var(--accent-2); display: flex; gap: 6px; }
.fld-err::before { content: "!"; display: grid; place-items: center; flex: 0 0 auto; width: 16px; height: 16px; border-radius: 50%; background: var(--accent); color: #fff; font-size: .7rem; }
.has-err input, .has-err textarea { border-color: var(--accent); background: #FDF7FA; }
.co-why { margin: 0 0 var(--s-5); padding: 14px 18px; border-radius: var(--r-md); background: var(--tint); font-size: var(--fs-sm); color: var(--ink-2); }
.co-why b { color: var(--ink); }
.co-todo { margin: var(--s-4) 0 0; font-size: var(--fs-sm); }
.co-card > .fld.span2 + .fld { margin-top: 14px; }
.pw-wrap { position: relative; }
.pw-wrap input { padding-right: 84px; }
.pw-eye { position: absolute; right: 6px; top: 6px; bottom: 6px; padding: 0 14px; border: 0; border-radius: 8px; background: var(--tint); font: 700 var(--fs-sm) var(--f-body); color: var(--ink); cursor: pointer; }
.pw-meter { height: 4px; border-radius: 99px; background: var(--tint); overflow: hidden; }
.pw-meter span { display: block; height: 100%; width: 0; border-radius: inherit; transition: width .3s var(--ease), background .3s; }
.pw-meter .weak { background: #D46A9F; } .pw-meter .ok { background: var(--lilla-l); } .pw-meter .strong { background: var(--lilla-deep); }
.pay-opt { display: grid; grid-template-columns: 22px 48px 1fr; gap: 14px; align-items: center; padding: 18px; border: 1.5px solid var(--ink); border-radius: var(--r-md); background: rgba(237,231,242,.5); cursor: pointer; }
.pay-opt input { appearance: none; -webkit-appearance: none; margin: 0; width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid var(--accent); display: grid; place-content: center; }
.pay-opt input::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); }
.pay-opt input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.pay-ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--surface); color: var(--ink); }
.pay-ico svg { width: 26px; height: 26px; }
.pay-t { display: grid; gap: 2px; }
.pay-t span { font-size: var(--fs-sm); color: var(--ink-2); }
.co-check { display: flex; gap: 12px; align-items: flex-start; margin: var(--s-5) 0 6px; font-weight: 600; cursor: pointer; }
.co-check input { flex: 0 0 auto; width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--accent); }
.co-check.has-err { color: var(--accent-2); }
.co-privacy { margin: 10px 0 0; font-size: var(--fs-xs); color: var(--ink-2); }
.co-mini { list-style: none; display: grid; gap: 12px; margin: 0 0 var(--s-4); padding-bottom: var(--s-4); border-bottom: 1px solid var(--line); }
.co-mini li { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.co-mini img { width: 56px; height: 56px; border-radius: 12px; object-fit: cover; background: var(--tint-2); }
.co-mini b { display: block; font-size: var(--fs-sm); line-height: 1.3; }
.co-mini small { display: block; font-size: var(--fs-xs); color: var(--ink-2); }
.co-mini em { font-style: normal; font-weight: 800; font-size: var(--fs-sm); white-space: nowrap; }
.co-empty { max-width: 640px; margin: 0 auto; }

/* ordrebekræftelse */
.co-top-done { padding-bottom: 0; }
.od-hero { display: flex; align-items: center; gap: clamp(18px, 3vw, 32px); }
.od-check { flex: 0 0 auto; width: clamp(72px, 9vw, 108px); }
.od-check svg { width: 100%; height: auto; display: block; }
.od-check circle { stroke: var(--accent); stroke-width: 2.5; stroke-dasharray: 151; stroke-dashoffset: 151; animation: odDraw .8s var(--ease) .1s forwards; fill: rgba(142,44,115,.08); }
.od-check path { stroke: var(--accent); stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 34; stroke-dashoffset: 34; animation: odDraw .5s var(--ease) .75s forwards; }
@keyframes odDraw { to { stroke-dashoffset: 0; } }
.od-kicker { margin: 0 0 6px; font: 800 var(--fs-xs)/1 var(--f-body); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.od-hero h1 { margin-bottom: 8px; }
.od-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: clamp(28px, 4vw, 48px) 0 0; border-top: 1px solid var(--line); }
.od-meta div { padding: 18px 16px 22px 0; }
.od-meta div + div { padding-left: 20px; border-left: 1px solid var(--line); }
.od-meta dt { font-size: var(--fs-xs); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); }
.od-meta dd { margin: 4px 0 0; font-family: var(--f-display); font-size: clamp(1.25rem, 2vw, 1.6rem); }
.od-pay { position: relative; padding: clamp(24px, 3.4vw, 44px); border-radius: var(--r-lg); background: linear-gradient(150deg, var(--night) 0%, var(--lilla-deep) 100%); color: var(--paper); overflow: hidden; }
.od-pay::after { content: ""; position: absolute; right: -80px; top: -80px; width: 260px; height: 260px; border-radius: 50%; border: 1px solid rgba(231,166,227,.25); box-shadow: 0 0 0 30px rgba(231,166,227,.06); pointer-events: none; }
.od-pay h2 { font-size: var(--fs-h4); margin: 0 0 8px; }
.od-pay > p { color: rgba(250,248,251,.8); max-width: 34em; }
.od-paylist { position: relative; z-index: 1; display: grid; margin: var(--s-5) 0; border-top: 1px solid rgba(250,248,251,.2); }
.od-paylist div { display: grid; grid-template-columns: 140px 1fr; gap: 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid rgba(250,248,251,.2); }
.od-paylist dt { font-size: var(--fs-sm); color: rgba(250,248,251,.7); font-weight: 700; }
.od-paylist dd { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.od-paylist b { font-family: var(--f-display); font-weight: 400; font-size: 1.5rem; letter-spacing: .01em; }
.od-copy { min-height: 36px; padding: 0 14px; border: 1px solid rgba(250,248,251,.5); border-radius: 99px; background: transparent; color: var(--paper); font: 700 var(--fs-xs) var(--f-body); cursor: pointer; transition: background .2s, color .2s; }
.od-copy:hover, .od-copy.ok { background: var(--paper); color: var(--ink); }
.od-note { margin: 0; font-size: var(--fs-sm); color: rgba(250,248,251,.8) !important; }
.od-links { display: grid; gap: 10px; margin-top: var(--s-5); }
.od-links [hidden] { display: none; }
.od-steps { margin-top: 0; }

@media (max-width: 1000px) {
  .co-grid { grid-template-columns: 1fr; }
  .co-sum { position: static; }
  form.co-grid .co-sum { order: 0; }
  .od-meta { grid-template-columns: 1fr 1fr; }
  .od-meta div:nth-child(3) { padding-left: 0; border-left: 0; }
  .od-meta div:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 700px) {
  .co-steps .co-t { display: none; }
  .co-steps .is-cur .co-t { display: inline; }
  .ck-item { grid-template-columns: 84px minmax(0, 1fr); grid-template-areas: "img info" "qty price"; padding: 12px 48px 14px 12px; gap: 12px 14px; }
  .ck-qty { grid-column: 1 / 3; grid-row: 2; justify-self: start; align-self: center; }
  .ck-price { grid-column: 2; grid-row: 2; justify-self: end; align-self: center; font-size: 1.35rem; }
  .ck-rm { top: 6px; right: 6px; }
  .fld-grid { grid-template-columns: minmax(0, .42fr) minmax(0, 1fr); gap: 14px 10px; }
  .fld-grid > .fld { grid-column: 1 / -1; }
  .fld-grid > .fld-pc { grid-column: 1; }
  .fld-grid > .fld-city { grid-column: 2; }
  .mc { inset: auto 0 0 0; width: 100vw; height: auto; max-height: 92dvh; border-radius: 24px 24px 0 0; }
  .mc[open] { animation-name: mcUp; }
  @keyframes mcUp { from { transform: translateY(100%); } to { transform: none; } }
  .mc-in { height: auto; padding: 20px 20px calc(20px + env(safe-area-inset-bottom)); }
  .mc-acts { margin-top: 0; }
  .od-hero { flex-direction: column; align-items: flex-start; }
  .od-paylist div { grid-template-columns: 1fr; gap: 4px; }
  .pay-opt { grid-template-columns: 22px 1fr; }
  .pay-ico { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ck-item, .mc[open], .head-cart-n, .mc-ok, .ck-empty-ico { animation: none; }
  .od-check circle, .od-check path { animation: none; stroke-dashoffset: 0; }
}

/* ==========================================================
   v28 – medlemssider for alle kor + valg af kor ved login
   ========================================================== */
.m-top-bg { position: absolute; inset: 0; z-index: -2; background-position: center; background-size: cover; background-repeat: no-repeat; }
.m-top-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, var(--ink) 30%, rgba(58,37,96,.86) 55%, rgba(58,37,96,.55)); }
.m-stat-sm { font-size: clamp(1.6rem, 2.6vw, 2.2rem) !important; padding-top: .35em; }
.m-next-season .m-ns-lead { margin: var(--s-4) 0 var(--s-5); color: var(--ink-2); }
.m-ns-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.m-ns-facts div { padding: 14px 16px 14px 0; }
.m-ns-facts div + div { padding-left: 16px; border-left: 1px solid var(--line); }
.m-ns-facts dt { font-size: var(--fs-xs); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-2); }
.m-ns-facts dd { margin: 4px 0 0; font-family: var(--f-display); font-size: 1.2rem; line-height: 1.25; }
.m-song-simple { gap: 10px; }
.m-song-up { margin: 0; font-size: var(--fs-xs); font-weight: 700; color: var(--ink-2); }
.m-song-simple .m-song-foot { margin-top: auto; }
.m-songs-more { margin: var(--s-5) 0 0; }
.m-plan-empty { display: grid; grid-template-columns: auto 1fr; gap: var(--s-5); align-items: start; padding: var(--pad-lg); border-radius: var(--r-lg); background: var(--surface); border: 1px dashed rgba(58,37,96,.25); }
.m-plan-empty-ic { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--tint); color: var(--lilla); }
.m-plan-empty-ic svg { width: 30px; height: 30px; }
.m-plan-empty h3 { font-size: var(--fs-h5); margin: 0 0 8px; }
.m-plan-empty p { color: var(--ink-2); margin: 0 0 10px; max-width: 52ch; }
.m-plan-empty p:last-child { margin: 0; }
/* login: vælg kor */
.login-kor { border: 0; margin: 0 0 var(--s-3); padding: 0; min-width: 0; }
.login-kor legend { padding: 0; margin-bottom: 10px; font-size: var(--fs-sm); font-weight: 700; }
.login-kor-list { display: flex; flex-wrap: wrap; gap: 8px; }
.login-kor label { position: relative; margin: 0 !important; cursor: pointer; }
.login-kor input { position: absolute; opacity: 0; pointer-events: none; }
.login-kor span { display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px; border-radius: 99px; border: 1.5px solid var(--line); background: var(--surface); font-weight: 700; font-size: var(--fs-sm); transition: background .2s, color .2s, border-color .2s; }
.login-kor label:hover span { border-color: rgba(58,37,96,.4); }
.login-kor input:checked + span { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.login-kor input:focus-visible + span { outline: 2px solid var(--pink); outline-offset: 2px; }
[data-login-img] { transition: opacity .2s; }
@media (max-width: 700px) {
  .m-plan-empty { grid-template-columns: 1fr; }
  .m-ns-facts { grid-template-columns: 1fr; }
  .m-ns-facts div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
}

/* v29 – eksempelindhold (opdigtet), skjules med ?ren ligesom «Mangler» */
.dummy { display: inline-flex; align-items: center; gap: 4px; padding: 1px 8px; border-radius: 99px; border: 1px dashed var(--lilla-l); background: rgba(237,231,242,.7); color: var(--lilla-deep); font: 700 .7rem/1.6 var(--f-body); letter-spacing: .04em; text-transform: uppercase; vertical-align: middle; white-space: nowrap; }
.dummy-banner { background: var(--tint); border-bottom: 1px solid var(--line); }
.dummy-banner p { margin: 0; padding: 12px 0; font-size: var(--fs-sm); color: var(--ink-2); display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.hide-todo .dummy, .hide-todo .dummy-banner { display: none; }

/* ==========================================================
   Tema (WordPress + Pencil)
   ========================================================== */
.rk-site { min-height: 100vh; display: flex; flex-direction: column; }
.rk-site > main { flex: 1 0 auto; }
.nav-region { display: flex; align-items: center; }
@media (max-width: 1100px) { .nav-region { display: none; } }

/* Pencils rich text er altid en <div class="pencil-richtext"> */
.pencil-richtext > :last-child { margin-bottom: 0; }
.lead.pencil-richtext p { font-size: inherit; line-height: inherit; color: inherit; }
.hf-copy .lead { margin-bottom: var(--s-6); }
.cta-band .lead { margin-top: var(--s-4); }

/* Topbillede: lille tekst over overskriften og h2-variant længere nede på siden */
.hf-kicker { margin: 0 0 var(--s-4); font-weight: 700; color: rgba(250,248,251,.85); }
.hf-title { color: var(--paper); font-size: clamp(2.4rem, 5vw, 4.5rem); line-height: 1; margin-bottom: var(--s-5); }

/* Tekst og billede: billedramme og spejlvendt variant */
.feature-media .rk-frame { position: absolute; inset: 0; }
.feature-media .rk-frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.feature-text { margin: var(--s-5) 0 0; color: var(--ink-2); }
.feature-text p { margin: 0 0 .8em; }
.feature .btn-row { margin-top: var(--s-6); }
.feature-flip { grid-template-columns: 1fr 1.25fr; }
.feature-flip .feature-media { order: 2; margin: clamp(28px, 4vw, 56px) max(var(--gut), calc((100vw - var(--max)) / 2 + var(--gut))) clamp(28px, 4vw, 56px) 0; }
.feature-flip .feature-body { margin-left: auto; }
@media (max-width: 900px) {
  .feature-flip { grid-template-columns: 1fr; }
  .feature-flip .feature-media { order: 0; margin: var(--gut) var(--gut) 0; }
}

/* Sidefod: Pencil-felter i stedet for faste links */
.foot-about p, .foot-legal p { margin: 0; }
.foot-about { margin-bottom: var(--s-4); }
.foot-contact { margin: 0; }
.foot-bottom .foot-legal { flex: 1 1 auto; }

/* Side uden sektioner og 404 */
.rk-plain { padding-top: calc(var(--head-h) + var(--s-7)); }
.rk-404 { padding-top: calc(var(--head-h) + var(--s-8)); text-align: left; }
.rk-404-num::before { content: attr(data-n); }
.rk-404-num { margin: 0; font-family: var(--f-display); font-size: clamp(6rem, 20vw, 14rem); line-height: .8; color: var(--tint-2); letter-spacing: -.05em; }
.rk-404 .btn-row { margin-top: var(--s-6); }

/* ==========================================================
   Tema v0.3 – sektionsbiblioteket i WordPress
   ========================================================== */
/* Redaktører: sektionsmærker og «Vis på siden» (assets/js/rk-redaktor.js). */
.rk-red-lag { position: absolute; top: 0; left: 0; width: 0; height: 0; z-index: 45; }
.rk-red-maerke { position: absolute; display: inline-flex; align-items: center; gap: 4px; padding: 3px; border-radius: 999px; background: rgba(29, 35, 39, .88); color: #fff; font: 600 12px/1.3 system-ui, sans-serif; white-space: nowrap; box-shadow: 0 2px 8px rgba(0,0,0,.18); }
.rk-red-link { display: inline-flex; align-items: center; gap: 6px; padding-right: 7px; color: #fff; text-decoration: none; border-radius: 999px; }
.rk-red-link:hover, .rk-red-link:focus { color: #fff; }
.rk-red-maerke b { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: #fff; color: #1d2327; font-size: 11px; }
.rk-red-ret { max-width: 0; overflow: hidden; opacity: 0; transition: max-width .2s, opacity .2s; font-weight: 400; text-decoration: underline; }
.rk-red-link:hover .rk-red-ret, .rk-red-link:focus-visible .rk-red-ret { max-width: 140px; opacity: 1; }
.rk-red-link:focus-visible, .rk-red-v:focus-visible, .rk-red-variant:focus-visible { outline: 2px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 4px #2271b1; }
.rk-red-vaerktoej { display: inline-flex; align-items: center; gap: 3px; max-width: 0; overflow: hidden; opacity: 0; transition: max-width .25s, opacity .2s; }
.rk-red-maerke:hover .rk-red-vaerktoej, .rk-red-maerke:focus-within .rk-red-vaerktoej { max-width: 520px; opacity: 1; overflow: visible; }
.rk-red-v { appearance: none; min-width: 26px; height: 24px; padding: 0 8px; border: 0; border-radius: 999px; background: rgba(255,255,255,.16); color: #fff; font: 600 12px/1 system-ui, sans-serif; cursor: pointer; }
.rk-red-v:hover { background: #fff; color: #1d2327; }
.rk-red-variant { height: 24px; max-width: 160px; padding: 0 6px; border: 0; border-radius: 999px; background: #fff; color: #1d2327; font: 500 12px/1 system-ui, sans-serif; }
.rk-red-besked { position: fixed; left: 50%; top: calc(var(--head-h, 76px) + 46px); z-index: 1003; transform: translateX(-50%); padding: 10px 16px; border-radius: 8px; background: #1d2327; color: #fff; font: 600 13px/1.4 system-ui, sans-serif; box-shadow: 0 6px 20px rgba(0,0,0,.25); max-width: min(92vw, 560px); }
.rk-red-besked.er-fejl { background: #b32d2e; }
.rk-red-besked[hidden] { display: none; }
.rk-red-forhaand { position: fixed; left: 50%; top: calc(var(--head-h, 76px) + 46px); z-index: 1001; transform: translateX(-50%); display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; width: max-content; max-width: min(94vw, 760px); padding: 12px 16px; border-radius: 12px; background: #1d2327; color: #fff; font: 500 13px/1.4 system-ui, sans-serif; box-shadow: 0 10px 30px rgba(0,0,0,.3); }
.rk-red-forhaand p { margin: 0; flex: 1 1 260px; }
.rk-red-forhaand button { padding: 8px 14px; border: 0; border-radius: 999px; background: #fff; color: #1d2327; font: 600 13px/1 system-ui, sans-serif; cursor: pointer; }
.rk-red-forhaand a { color: #fff; font-weight: 600; }
.rk-red-forhaand :focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.rk-red-knap { position: fixed; left: 14px; bottom: 22px; z-index: 1001; padding: 7px 12px; border: 1px solid rgba(29,35,39,.2); border-radius: 999px; background: #fff; color: #1d2327; font: 600 12px/1.2 system-ui, sans-serif; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.rk-red-knap:focus-visible { outline: 2px solid #2271b1; outline-offset: 2px; }
.rk-vis-her { animation: rk-vis-her 3s ease-out 1; }
@keyframes rk-vis-her { 0%, 60% { outline: 3px solid #d63384; outline-offset: 4px; box-shadow: 0 0 0 9999px rgba(29,35,39,.18); } 100% { outline: 3px solid transparent; outline-offset: 4px; box-shadow: 0 0 0 9999px rgba(29,35,39,0); } }
@media (prefers-reduced-motion: reduce) { .rk-vis-her { animation-duration: .01s; outline: 3px solid #d63384; outline-offset: 4px; } .rk-red-ret { transition: none; } }
@media print { .rk-red-lag, .rk-red-knap, .rk-red-forhaand, .rk-red-besked { display: none; } }
/* Skjult knap: kun redaktører ser den, nedtonet og stiplet (se «Tekster på siden» i wp-admin). */
.rk-skjult-knap { opacity: .45; outline: 2px dashed currentColor; outline-offset: 3px; }
.rk-skjult-merke { margin-left: .5em; padding: 0 .4em; border-radius: 4px; background: #1d2327; color: #fff; font-size: .7rem; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; vertical-align: middle; }
.rk-edit-only { margin: 10px 0 0; padding: 6px 10px; border: 1px dashed currentColor; border-radius: 8px; font-size: .8rem; line-height: 1.4; opacity: .85; }
.rk-edit-image { max-width: 220px; }
.rk-edit-image img { width: 100%; height: auto; border-radius: 8px; }
.offer-in { position: relative; display: grid; grid-template-columns: 46px 1fr auto; gap: 14px; align-items: center; padding: 10px 12px 10px 10px; border-radius: var(--r-md); background: #fff; border: 1px solid var(--line); transition: transform .3s var(--ease), border-color .2s, box-shadow .3s; }
.offer-in:hover { transform: translateX(4px); border-color: var(--pink); box-shadow: 0 14px 24px -18px rgba(60,48,95,.6); }
.offer-in:hover .offer-go { background: var(--pink); color: #fff; }
.offer .offer-link, .offer .offer-link:hover { display: inline; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; transform: none; color: inherit; text-decoration: none; }
.offer-link::after { content: ""; position: absolute; inset: 0; }
.offer-link:focus-visible { outline: none; }
.offer-in:focus-within { outline: 2px solid var(--pink); outline-offset: 2px; }
.rk-sitemap { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: clamp(24px, 4vw, 48px); }
.rk-sitemap h2 { font-size: 1.5rem; margin-bottom: 12px; }
.rk-sitemap ul { list-style: none; margin: 0; padding: 0; }
.rk-sitemap li { margin: 0 0 8px; }
.past-list { list-style: none; margin: 0; padding: 0; }
.past-list li { padding: 10px 0; border-bottom: 1px solid var(--line); }
.ix-empty .pencil-richtext p { margin: 0 0 12px; }
.acc-body .kv { margin-top: 0; }
.rk-managed { display: inline; }
div.rk-managed { display: block; }

/* Stort billede i fuld bredde: Pencils redigeringsramme skal fylde hele båndet. */
.page-banner > div { height: 100%; }
.page-banner img { height: 100% !important; aspect-ratio: auto !important; }

/* ===================================================================== Tema v0.4: butikken (WooCommerce) */
.rk-site .screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.rk-hidden { display: none !important; }

/* Varesiden */
.vp-form { display: contents; }
.vp-actions button.btn, .vp-bar button.btn, #place_order { font-family: inherit; cursor: pointer; }
.vp-actions .btn.is-busy { opacity: .7; pointer-events: none; }
.vp-actions .btn.is-added { background: var(--lilla-deep); color: #fff; }
.vp-err { margin: 10px 0 0; padding: 10px 14px; border-radius: var(--r-sm); background: #FBEFF6; color: var(--accent-2); font-size: var(--fs-sm); font-weight: 700; }
.vp-err[hidden] { display: none; }
.vp-var input:disabled + .vp-var-t { opacity: .5; }
.vp-about > :first-child { margin-top: 0; }

/* Kurven */
.ck-step input { width: 44px; min-height: 0; padding: 0; border: 0; background: transparent; text-align: center; font: 800 1rem var(--f-body); color: var(--ink); -moz-appearance: textfield; }
.ck-step input::-webkit-outer-spin-button, .ck-step input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ck-update { margin-top: 12px; min-height: 40px; padding: 0 16px; border: 1.5px solid var(--ink); border-radius: 99px; background: transparent; font: 700 var(--fs-sm) var(--f-body); color: var(--ink); cursor: pointer; }
.has-js .ck-update { display: none; }
.woocommerce-cart-form.is-busy { opacity: .6; pointer-events: none; transition: opacity .2s; }
a.ck-rm { color: var(--ink-2); }

/* Beskeder fra WooCommerce */
.rk-notice { margin: 0 0 var(--s-5); padding: 14px 20px; border-radius: var(--r-md); background: var(--tint); color: var(--ink); font-weight: 600; }
.rk-notice a { font-weight: 800; }
.rk-notice .button, .rk-notice .restore-item { margin-left: 8px; }
.rk-notice-success { border-left: 4px solid var(--lilla-deep); }
.co-errs.rk-notice { background: #FBEFF6; border-left: 4px solid var(--accent); font-weight: 500; }
.co-errs .woocommerce-error { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.co-grid > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.woocommerce-form-login-toggle .rk-notice { margin-bottom: var(--s-4); }

/* Kassen: WooCommerces felter i templatens kort */
.co-card .form-row { margin: 0; }
.fld-grid > .form-row { min-width: 0; }
.fld .woocommerce-input-wrapper { display: block; }
.fld .description, .fld .fld-hint { display: block; margin: 0; font-size: var(--fs-xs); color: var(--ink-2); }
.fld .opt, .fld .optional { font-weight: 500; color: var(--ink-2); }
.fld .required { display: none; }
.fld.woocommerce-invalid input, .fld.woocommerce-invalid textarea { border-color: var(--accent); background: #FDF5F9; }
.fld.woocommerce-invalid label { color: var(--accent-2); }
.co-card > .form-row.fld + .form-row.fld, .co-card .create-account .form-row { margin-top: 14px; }
.rk-voice-hint { margin: 8px 0 0; }
.woocommerce-account-fields { margin-top: 14px; }
.password-input { position: relative; display: block; }
.password-input input { padding-right: 84px; }
.show-password-input { position: absolute; right: 6px; top: 6px; bottom: 6px; width: 44px; border: 0; border-radius: 8px; background: var(--tint); cursor: pointer; }
.show-password-input::after { content: "Vis"; font: 700 var(--fs-xs) var(--f-body); color: var(--ink); }
.show-password-input.display-password::after { content: "Skjul"; }
.woocommerce-password-strength { margin-top: 6px; font-size: var(--fs-xs); font-weight: 700; color: var(--ink-2); }
.woocommerce-password-strength.short, .woocommerce-password-strength.bad { color: var(--accent-2); }
.woocommerce-password-hint { display: block; margin-top: 4px; font-size: var(--fs-xs); color: var(--ink-2); }
ul.rk-pay { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.woocommerce-checkout-payment .place-order { margin: 0; }
.co-check-row { margin: 0; }
.co-check-row .co-check { margin-top: var(--s-5); }
.co-privacy { margin: 8px 0 0; font-size: var(--fs-sm); color: var(--ink-2); }
.co-sum .woocommerce-checkout-review-order-table { display: block; }
#place_order::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.6'%3E%3Crect x='4' y='9' width='12' height='8.5' rx='2'/%3E%3Cpath d='M7 9V6.5a3 3 0 0 1 6 0V9'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.6'%3E%3Crect x='4' y='9' width='12' height='8.5' rx='2'/%3E%3Cpath d='M7 9V6.5a3 3 0 0 1 6 0V9'/%3E%3C/svg%3E") center / contain no-repeat; }
.woocommerce-checkout.processing #place_order { opacity: .8; pointer-events: none; }
.blockUI.blockOverlay { background: rgba(250,248,251,.6) !important; }
.woocommerce-form-login { margin: 0 0 var(--s-5); padding: 20px 24px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface); display: grid; gap: 12px; max-width: 560px; }
.woocommerce-form-login .form-row { display: grid; gap: 6px; margin: 0; }
.woocommerce-form-login input.input-text { min-height: 48px; padding: 10px 14px; border: 1.5px solid rgba(58,37,96,.2); border-radius: var(--r-sm); font: 500 1rem var(--f-body); }
.woocommerce-form-login .button { justify-self: start; min-height: 44px; padding: 0 20px; border: 0; border-radius: 99px; background: var(--ink); color: var(--paper); font: 700 var(--fs-sm) var(--f-body); cursor: pointer; }
.woocommerce-form-login .clear { display: none; }

/* Min konto (fase 5 giver den sit eget design) */
.rk-account .woocommerce { display: grid; gap: var(--s-5); }
.rk-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rk-account .woocommerce-MyAccount-navigation a { display: inline-block; padding: 8px 14px; border-radius: 99px; background: var(--tint); font-weight: 700; text-decoration: none; }
.rk-account .woocommerce-MyAccount-navigation .is-active a { background: var(--ink); color: var(--paper); }
.rk-account table { width: 100%; border-collapse: collapse; }
.rk-account th, .rk-account td { padding: 10px 8px; border-bottom: 1px solid var(--line); text-align: left; }
/* WooCommerce skjuler radioknappen, når der kun er én betalingsmåde. Så rykker ikon og tekst
   ind i de forkerte kolonner – knappen vises derfor altid (den er valgt). */
.pay-opt input.input-radio { display: grid !important; }
.pay-opt .pay-t b { font-size: 1.05rem; }

/* ===================================================================== Tema v0.5: medlemsområdet */
.login-kor-links { display: grid; gap: 10px; margin: var(--s-5) 0; }
.login-panel .rk-notice { margin: var(--s-4) 0; }
.m-phone-list { margin-top: 10px; }
.m-phone-list summary { cursor: pointer; font-weight: 800; color: var(--accent); }
.m-phone-list ul { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 6px; max-height: 360px; overflow: auto; }
.m-phone-list li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--line); font-size: var(--fs-sm); }
.m-phone-list a { font-variant-numeric: tabular-nums; white-space: nowrap; }
.m-assoc-text > p { color: var(--ink-2); max-width: 48ch; }
.m-assoc-text ul { list-style: none; margin: var(--s-5) 0 0; padding: 0; display: grid; gap: 8px; }
.m-assoc-text li { position: relative; display: flex; align-items: center; gap: 16px; padding: 14px 18px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--surface); color: var(--ink-2); font-size: var(--fs-sm); transition: border-color .2s, translate .2s var(--ease); }
.m-assoc-text li::before { content: "PDF"; flex: none; display: grid; place-items: center; width: 44px; height: 52px; border-radius: 8px; background: var(--tint); color: var(--accent); font: 800 .7rem var(--f-body); }
.m-assoc-text li a { color: var(--ink); font-weight: 800; font-size: var(--fs-base, 1rem); text-decoration: none; }
.m-assoc-text li a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.m-assoc-text li:hover { border-color: var(--ink); translate: 4px 0; }
.m-assoc-text li:focus-within { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .m-assoc-text li:hover { translate: none; } }
.m-dialog-wait { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 var(--s-4); padding: 6px 14px; border-radius: 999px; background: rgba(255,255,255,.14); color: var(--on-dark); font-size: var(--fs-sm); }
.m-dialog-wait::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #F2A7E6; }
.vt-edit { margin-top: var(--s-5); color: var(--on-dark, #fff); }
.vt-edit ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 6px; }
.vt-edit li span:first-child { opacity: .75; }
/* Fælles dialog: boksen med scriptets tekster, kun for redaktører (inc/dialog-tekster.php) */
.dlg-edit-sec { padding: 0 0 var(--s-8); margin-top: calc(var(--s-6) * -1); }
.dlg-edit { padding: 14px 16px; opacity: 1; color: var(--ink); }
.dlg-edit > p { margin: 0 0 8px; }
.dlg-edit details { border-top: 1px dashed currentColor; padding: 6px 0; }
.dlg-edit summary { cursor: pointer; font-weight: 700; }
.dlg-edit summary span { font-weight: 400; color: var(--ink-2); }
.dlg-edit ul { list-style: none; margin: 6px 0 4px; padding: 0; display: grid; gap: 6px; }
.dlg-edit li span:first-child { color: var(--ink-2); }
/* Pencil: markeringer om billeder i faste rammer fylder rammen, så layoutet er det samme i redigeringstilstand. */
.vp-main > .rk-managed { position: absolute; inset: 0; display: block; }
.vp-main > .rk-managed > img { width: 100%; height: 100%; object-fit: cover; }

/* ==========================================================================
   Sektionsvarianter
   Vælges i sektionskortet under «Variant». Indholdet er det samme; kun udseendet
   skifter. Klassen er v-{variant} på sektionen (rytkor_s_vklasse()).
   ========================================================================== */

/* To døre: lyse kort med billedet øverst */
.paths.v-kort .door { color: var(--ink); background: var(--surface); border: 1px solid var(--line); flex-direction: column; align-items: stretch; min-height: 0; }
.paths.v-kort .door::after { display: none; }
.paths.v-kort .door > img { position: relative; inset: auto; z-index: 0; height: auto; aspect-ratio: 16 / 9 !important; }
.paths.v-kort .door-body { max-width: none; padding: var(--pad-md) var(--pad-lg) var(--pad-lg); }
.paths.v-kort .door .door-title { color: var(--ink); }
.paths.v-kort .door-over { color: var(--lilla); }
.paths.v-kort .door-text { color: var(--ink-2); }
.paths.v-kort .door-now { background: var(--tint); border-color: var(--line); backdrop-filter: none; }
.paths.v-kort .door-now .pulse { background: var(--accent); }
.paths.v-kort .door-quick a { border-color: var(--line); color: var(--ink); }
.paths.v-kort .door-quick a:hover { background: var(--ink); color: var(--paper); }
.paths.v-kort .door-arrow { top: 18px; right: 18px; color: var(--paper); background: rgba(58,37,96,.35); backdrop-filter: blur(6px); }
.paths.v-kort .door:has(.door-link:focus-visible) { outline-color: var(--accent); }

/* To døre: brede bånd under hinanden */
.paths.v-stablet .doors { grid-template-columns: 1fr; }
.paths.v-stablet .door { display: grid; grid-template-columns: 1fr 1fr; align-items: center; min-height: 0; color: var(--ink); background: var(--surface); border: 1px solid var(--line); }
.paths.v-stablet .door::after { display: none; }
.paths.v-stablet .door > img { position: relative; inset: auto; z-index: 0; contain: size; contain-intrinsic-size: none; align-self: stretch; height: auto; min-height: 340px; aspect-ratio: auto !important; }
.paths.v-stablet .door-yoga > img { order: 2; }
.paths.v-stablet .door-body { max-width: none; margin: 0; }
.paths.v-stablet .door .door-title { color: var(--ink); }
.paths.v-stablet .door-over { color: var(--lilla); }
.paths.v-stablet .door-text { color: var(--ink-2); }
.paths.v-stablet .door-now { background: var(--tint); border-color: var(--line); backdrop-filter: none; }
.paths.v-stablet .door-now .pulse { background: var(--accent); }
.paths.v-stablet .door-quick a { border-color: var(--line); color: var(--ink); }
.paths.v-stablet .door-quick a:hover { background: var(--ink); color: var(--paper); }
.paths.v-stablet .door-arrow { top: auto; bottom: 24px; right: 24px; left: auto; border-color: var(--line); color: var(--ink); }
.paths.v-stablet .door-yoga .door-arrow { right: calc(50% + 24px); }
.paths.v-stablet .door:hover .door-arrow { background: var(--ink); color: var(--paper); }
.paths.v-stablet .door:has(.door-link:focus-visible) { outline-color: var(--accent); }

/* Det sker snart: mørkt bånd */
.soon.v-moerk { background: var(--night); border-bottom: 0; }
.soon.v-moerk .soon-title { color: var(--paper); }
.soon.v-moerk .soon-title::after { background: var(--pink-l); }
.soon.v-moerk .soon-item a { background: rgba(250,248,251,.07); border-color: var(--line-dark); }
.soon.v-moerk .soon-item a:hover { background: rgba(250,248,251,.12); }
.soon.v-moerk .soon-txt { color: var(--on-dark-2); }
.soon.v-moerk .soon-txt strong { color: var(--paper); }
.soon.v-moerk .soon-txt em, .soon.v-moerk .t-yoga .soon-txt em { color: var(--pink-l); }
.soon.v-moerk .soon-date { background: rgba(250,248,251,.14); }
.soon.v-moerk .t-yoga .soon-date { background: linear-gradient(160deg, #8A3A84, #B0509F); }
.soon.v-moerk .rk-edit-only { color: var(--on-dark); }

/* Det sker snart: overskrift over større kort */
.soon.v-kort { background: var(--tint); border-bottom: 0; }
.soon.v-kort .soon-inner { grid-template-columns: 1fr; gap: var(--s-5); padding-block: var(--s-8); }
.soon.v-kort .soon-title { font-size: var(--fs-h3); }
.soon.v-kort .soon-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--gap-grid); overflow: visible; }
.soon.v-kort .soon-item a { flex-direction: column; align-items: flex-start; gap: var(--s-4); padding: var(--pad-md); min-width: 0; height: 100%; background: var(--surface); }
.soon.v-kort .soon-date { width: 72px; height: 78px; }
.soon.v-kort .soon-date b { font-size: 2rem; }
.soon.v-kort .soon-txt { font-size: var(--fs-sm); gap: 4px; }
.soon.v-kort .soon-txt strong { font-family: var(--f-display); font-weight: 450; font-size: var(--fs-h5); }

/* Korene: lige store fliser, tre på hver række */
.kor-sek.v-lige .choirs { grid-template-columns: repeat(3, 1fr); grid-auto-rows: auto; }
.kor-sek.v-lige .tile { grid-column: auto; min-height: 340px; }

/* Korene: liste med små billeder */
.kor-sek.v-liste .choirs { grid-template-columns: 1fr 1fr; grid-auto-rows: auto; gap: 0 var(--gap-split); }
.kor-sek.v-liste .tile { grid-column: auto; display: grid; grid-template-columns: 112px 1fr 44px; grid-template-rows: auto auto auto 1fr; column-gap: var(--s-5); align-content: start; min-height: 0; padding: var(--s-5) 0; color: var(--ink); background: none; border-radius: 0; border-bottom: 1px solid var(--line); box-shadow: none; overflow: visible; }
.kor-sek.v-liste .tile:hover { transform: none; box-shadow: none; color: var(--ink); }
.kor-sek.v-liste .tile::before, .kor-sek.v-liste .tile::after { display: none; }
.kor-sek.v-liste .tile > img, .kor-sek.v-liste .tile > .rk-managed { position: relative; inset: auto; z-index: 0; grid-column: 1; grid-row: 1 / span 4; width: 112px; height: 112px; border-radius: var(--r-md); }
.kor-sek.v-liste .tile > .rk-managed > img { position: static; width: 100%; height: 100%; object-fit: cover; border-radius: var(--r-md); }
.kor-sek.v-liste .tile:hover img { transform: none; }
.kor-sek.v-liste .tile .tag { position: static; grid-column: 2; justify-self: start; rotate: none; box-shadow: none; margin-bottom: var(--s-2); padding: 6px 10px; }
.kor-sek.v-liste .tile h3 { grid-column: 2; font-size: var(--fs-h5); margin-bottom: 4px; }
.kor-sek.v-liste .tile p { grid-column: 2; color: var(--ink-2); font-size: var(--fs-sm); }
.kor-sek.v-liste .tile .meta { grid-column: 2; margin-top: 6px; color: var(--lilla); font-size: var(--fs-xs); }
.kor-sek.v-liste .tile .arrow { position: static; grid-column: 3; grid-row: 1 / span 4; align-self: center; opacity: 1; transform: none; border-color: var(--line); color: var(--ink); }
.kor-sek.v-liste .tile:hover .arrow { background: var(--ink); color: var(--paper); }
.kor-sek.v-liste .tile:hover h3 { text-decoration: underline; text-underline-offset: .15em; }
.kor-sek.v-liste .choirs .tile.tilt3d, .kor-sek.v-liste .choirs .tile.scroll-tilt { transform: none !important; rotate: none !important; }

/* Find dit kor: mørk baggrund */
.quiz-sek.v-moerk { background: radial-gradient(80% 100% at 0% 0%, rgba(177,69,173,.28), rgba(177,69,173,0) 60%), var(--night); color: var(--paper); --focus: var(--pink-l); }
.quiz-sek.v-moerk h2 { color: var(--paper); }
.quiz-sek.v-moerk .lead, .quiz-sek.v-moerk .lead p { color: var(--on-dark); }
.quiz-sek.v-moerk .quiz-box { border-color: transparent; color: var(--ink); --focus: var(--accent); }
.quiz-sek.v-moerk .quiz-box h3 { color: var(--ink); }
.quiz-sek.v-moerk .rk-edit-only { color: var(--ink); }

/* Find dit kor: overskriften centreret over spørgsmålene */
.quiz-sek.v-midt .quiz { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: var(--s-6); }
.quiz-sek.v-midt .quiz > div:first-child { max-width: 40em; }
.quiz-sek.v-midt .quiz-box { width: 100%; max-width: 760px; text-align: left; }

/* Trin: billederne til højre */
.join-sek.v-alt .join { grid-template-columns: .95fr 1.05fr; }
.join-sek.v-alt .join-media { order: 2; }
.join-sek.v-alt .join-media .float { left: -24px; right: auto; }
.join-sek.v-alt .join-media .spin-badge { right: auto; left: -26px; }
.join-sek.v-alt .quote-chip { left: 40%; right: 24px; rotate: 2.5deg; }

/* Trin: uden billeder, trinene side om side */
.join-sek.v-enkel .join { grid-template-columns: 1fr; }
.join-sek.v-enkel .join-tekst { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--gap-split); align-items: start; }
.join-sek.v-enkel .join-tekst > h2 { grid-column: 1; }
.join-sek.v-enkel .join-tekst > .lead { grid-column: 1; }
.join-sek.v-enkel .join-tekst > .fact-row { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; align-self: start; }
.join-sek.v-enkel .join-tekst > .rk-edit-only { grid-column: 1 / -1; }
.join-sek.v-enkel .steps { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--gap-grid); margin: var(--s-7) 0 var(--s-6); }
.join-sek.v-enkel .steps li, .join-sek.v-enkel .steps li:last-child { display: block; padding: var(--pad-md); border: 0; border-radius: var(--r-lg); background: var(--tint); }
.join-sek.v-enkel .steps li::before { display: block; margin-bottom: var(--s-4); font-size: 3.2rem; }
.join-sek.v-enkel .steps h3 { margin-bottom: var(--s-2); }
.join-sek.v-enkel .btn-row { grid-column: 1 / -1; }

/* Citater og spørgsmål: citaterne på række over spørgsmålene */
.voices-sec.v-stablet .vf-grid { grid-template-columns: 1fr; gap: var(--s-7); }
.voices-sec.v-stablet .quotes { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.voices-sec.v-stablet .quotes .mq:nth-child(2) { margin-left: 0; }
.voices-sec.v-stablet .acc { max-width: 880px; width: 100%; justify-self: center; }

/* Citater og spørgsmål: det første citat stort */
.voices-sec.v-stor .quotes .mq:first-child { padding: 0 0 var(--s-5); margin-bottom: var(--s-3); background: none; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; }
.voices-sec.v-stor .quotes .mq:first-child blockquote { font-size: clamp(1.6rem, 2.8vw, 2.25rem); line-height: 1.2; color: var(--ink); font-style: normal; }
.voices-sec.v-stor .quotes .mq:first-child blockquote::before { content: "»"; display: block; font-size: 3.4rem; line-height: .7; color: var(--pink); margin-bottom: var(--s-3); }
.voices-sec.v-stor .quotes .mq:nth-child(n+2) { margin-left: 0; padding: var(--s-4) var(--s-5); }
.voices-sec.v-stor .quotes .mq:nth-child(n+2) blockquote { font-size: 1.05rem; }

/* Korleder: portrættet til højre */
.sec-leader.v-alt .leader { grid-template-columns: 1.2fr .8fr; }
.sec-leader.v-alt .leader-photo { order: 2; }

/* Korleder: lys */
.sec-leader.v-lys { background: var(--tint); color: var(--ink); --focus: var(--accent); }
.sec-leader.v-lys blockquote { color: var(--ink); }
.sec-leader.v-lys blockquote::before { color: var(--pink); }
.sec-leader.v-lys cite { color: var(--ink); }
.sec-leader.v-lys .muted, .sec-leader.v-lys .prose p { color: var(--ink-2); }
.sec-leader.v-lys .link-more { color: var(--ink); }
.sec-leader.v-lys .link-more:hover { color: var(--accent); }
.sec-leader.v-lys .leader-photo img { background: var(--tint-2); }
.sec-leader.v-lys .leader-photo::before { border-color: rgba(177,69,173,.35); }
.sec-leader.v-lys .leader-photo::after { border-color: rgba(177,69,173,.16); }
.sec-leader.v-lys .stats { background: none; gap: var(--gap-grid); }
.sec-leader.v-lys .stat { background: var(--surface); border-radius: var(--r-lg); }
.sec-leader.v-lys .stat .num { color: var(--ink); }
.sec-leader.v-lys .stat .num em { color: var(--pink); }
.sec-leader.v-lys .stat p { color: var(--ink-2); }

/* Nyhedsbrev: mørkt bånd */
.news-sec.v-moerk { background: radial-gradient(70% 100% at 100% 0%, rgba(177,69,173,.3), rgba(177,69,173,0) 60%), var(--night); color: var(--paper); --focus: var(--pink-l); }
.news-sec.v-moerk h2 { color: var(--paper); }
.news-sec.v-moerk .lead, .news-sec.v-moerk .lead p { color: var(--on-dark); }
.news-sec.v-moerk .fb-links a { border-color: var(--line-dark); color: var(--paper); }
.news-sec.v-moerk .fb-links a:hover { background: var(--paper); color: var(--ink); }
.news-sec.v-moerk .news-form { background: rgba(250,248,251,.06); border-color: var(--line-dark); }
.news-sec.v-moerk .news-form h3 { color: var(--paper); }
.news-sec.v-moerk .news-form label { color: var(--on-dark); }
.news-sec.v-moerk .news-form input { background: rgba(250,248,251,.08); border-color: var(--line-dark); color: var(--paper); }
.news-sec.v-moerk .form-msg { color: var(--on-dark); }

/* Nyhedsbrev: centreret, med felterne på én linje */
.news-sec.v-kompakt .news { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: var(--s-6); }
.news-sec.v-kompakt .news > div:first-child { max-width: 40em; }
.news-sec.v-kompakt .fb-links { justify-content: center; }
.news-sec.v-kompakt .news-form { width: 100%; max-width: 860px; grid-template-columns: 1fr 1fr auto; column-gap: var(--s-3); row-gap: 6px; text-align: left; align-items: end; }
.news-sec.v-kompakt .news-form h3 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.news-sec.v-kompakt .news-form label[for^="nf-navn"] { grid-column: 1; grid-row: 1; }
.news-sec.v-kompakt .news-form label[for^="nf-mail"] { grid-column: 2; grid-row: 1; }
.news-sec.v-kompakt .news-form input[name="navn"] { grid-column: 1; grid-row: 2; }
.news-sec.v-kompakt .news-form input[name="email"] { grid-column: 2; grid-row: 2; }
.news-sec.v-kompakt .news-form .btn { grid-column: 3; grid-row: 2; min-height: 52px; }
.news-sec.v-kompakt .news-form .form-msg { grid-column: 1 / -1; grid-row: 3; }

@media (max-width: 900px) {
  .paths.v-stablet .door { grid-template-columns: 1fr; }
  .paths.v-stablet .door > img { contain: none; min-height: 0; aspect-ratio: 16 / 9 !important; order: 0; }
  .paths.v-stablet .door-yoga > img { order: 0; }
  .paths.v-stablet .door-arrow, .paths.v-stablet .door-yoga .door-arrow { top: 18px; right: 18px; bottom: auto; color: var(--paper); border-color: rgba(255,255,255,.6); background: rgba(58,37,96,.35); }
  .kor-sek.v-lige .choirs { grid-template-columns: 1fr 1fr; }
  .kor-sek.v-liste .choirs { grid-template-columns: 1fr; }
  .join-sek.v-alt .join { grid-template-columns: 1fr; }
  .join-sek.v-alt .join-media { order: 0; }
  .join-sek.v-alt .join-media .float { left: auto; right: 12px; }
  .join-sek.v-alt .quote-chip { left: 24px; right: 24px; }
  .join-sek.v-alt .join-media .spin-badge { left: auto; right: 8px; }
  .join-sek.v-enkel .join-tekst { grid-template-columns: 1fr; }
  .join-sek.v-enkel .join-tekst > .fact-row { grid-column: 1; grid-row: auto; margin-top: var(--s-5); }
  .sec-leader.v-alt .leader { grid-template-columns: 1fr; }
  .sec-leader.v-alt .leader-photo { order: 0; }
  .news-sec.v-kompakt .news-form { grid-template-columns: 1fr; }
  .news-sec.v-kompakt .news-form label, .news-sec.v-kompakt .news-form input, .news-sec.v-kompakt .news-form .btn, .news-sec.v-kompakt .news-form .form-msg { grid-column: 1 !important; grid-row: auto !important; }
}
@media (max-width: 620px) {
  .kor-sek.v-lige .choirs { grid-template-columns: 1fr; }
  .kor-sek.v-liste .tile { grid-template-columns: 80px 1fr; column-gap: var(--s-4); }
  .kor-sek.v-liste .tile > img, .kor-sek.v-liste .tile > .rk-managed { width: 80px; height: 80px; }
  .kor-sek.v-liste .tile .arrow { display: none; }
}

/* Forside-slider: fælles for de lyse varianter (delt skærm og billedbånd).
   Headeren er ikke gennemsigtig her (rytkor_slider_lys()), så sektionen starter under den. */
.hero-slider:is(.v-delt, .v-bund) { min-height: max(600px, calc(100svh - var(--head-h))); color: var(--ink); background: radial-gradient(70% 90% at 0% 0%, rgba(177,69,173,.1), rgba(177,69,173,0) 60%), linear-gradient(180deg, var(--tint) 0%, var(--paper) 100%); --focus: var(--accent); }
.hero-slider:is(.v-delt, .v-bund) .hero-bgs { translate: none !important; border-radius: var(--r-img); }
.hero-slider:is(.v-delt, .v-bund) :is(.hero-shade, .hero-tint, .floaters, .waves, .hero-edge) { display: none; }
.hero-slider:is(.v-delt, .v-bund) .hero-inner { padding-top: clamp(32px, 5vw, 64px); }
.hero-slider:is(.v-delt, .v-bund) .hero-kicker { color: var(--lilla); }
.hero-slider:is(.v-delt, .v-bund) .hero-kicker .pulse { background: var(--pink); }
.hero-slider:is(.v-delt, .v-bund) .hero-title { color: var(--ink); }
.hero-slider:is(.v-delt, .v-bund) .lead { color: var(--ink-2); }
.hero-slider:is(.v-delt, .v-bund) .btn-ghost-light { --fg: var(--ink); --bd: var(--line); }
.hero-slider:is(.v-delt, .v-bund) .btn-ghost-light:hover { --bg: var(--ink); --fg: var(--paper); --bd: var(--ink); color: var(--paper); }
.hero-slider:is(.v-delt, .v-bund) .slider-tab { color: var(--ink-2); }
.hero-slider:is(.v-delt, .v-bund) .slider-tab:hover, .hero-slider:is(.v-delt, .v-bund) .slider-tab.is-active { color: var(--ink); }
.hero-slider:is(.v-delt, .v-bund) .slider-tab .bar { background: var(--line); }
.hero-slider:is(.v-delt, .v-bund) .slider-tab .bar i { background: linear-gradient(90deg, var(--pink), var(--accent)); }
.hero-slider:is(.v-delt, .v-bund) .sl-btn { border-color: var(--line); color: var(--ink); }
.hero-slider:is(.v-delt, .v-bund) .sl-btn:hover { background: var(--ink); border-color: var(--ink); color: var(--paper); }

/* Forside-slider: delt skærm – billedet i højre halvdel */
.hero-slider.v-delt .hero-bgs { inset: 24px 24px 24px 54%; }
.hero-slider.v-delt .hero-inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.hero-slider.v-delt .seats-stack { justify-self: start; width: min(100%, 400px); margin-left: clamp(0px, 3vw, 48px); }
.hero-slider.v-delt .slider-nav { padding-right: calc(46% - max(0px, (100% - var(--max)) / 2) + 32px); padding-bottom: clamp(40px, 5vw, 64px); }
.hero-slider.v-delt .slider-tabs { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }
.hero-slider.v-delt .slider-tab .tab-label { font-size: .78rem; }

/* Forside-slider: billedbånd – overskriften øverst, et bredt billede under */
.hero-slider.v-bund { justify-content: flex-start; min-height: 0; }
.hero-slider.v-bund .hero-inner { order: 1; position: relative; z-index: 1; align-items: start; padding-bottom: clamp(24px, 3vw, 40px); }
.hero-slider.v-bund .slide { align-self: start; }
.hero-slider.v-bund .hero-title { max-width: 14ch; }
.hero-slider.v-bund .seats-stack { align-self: start; margin-bottom: -320px; width: min(100%, 400px); justify-self: end; }
.hero-slider.v-bund .hero-bgs { order: 2; position: relative; inset: auto; z-index: 0; height: clamp(340px, 46vh, 520px); margin-inline: calc(max(0px, (100% - var(--max)) / 2) + var(--gut)); }
.hero-slider.v-bund .slider-nav { order: 3; padding-top: var(--s-4); padding-bottom: clamp(40px, 5vw, 64px); }

/* Forside-slider: tofarvet billede og stor overskrift */
.hero-slider.v-duo .hero-bg { filter: grayscale(1) contrast(1.2) brightness(1.3); }
.hero-slider.v-duo .hero-shade { background: linear-gradient(125deg, #4B2F7E 0%, #8E3A93 50%, #F08FD2 100%); mix-blend-mode: multiply; }
.hero-slider.v-duo .hero-tint { background: linear-gradient(125deg, #6B2E66 0%, #B0509F 55%, #F6B6E4 100%); mix-blend-mode: multiply; }
.hero-slider.v-duo .hero-bgs::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(20,12,36,.5) 0%, rgba(20,12,36,.12) 60%, rgba(20,12,36,0) 100%), linear-gradient(0deg, rgba(20,12,36,.5) 0%, rgba(20,12,36,0) 45%), linear-gradient(180deg, rgba(20,12,36,.35) 0%, rgba(20,12,36,0) 20%); }
.hero-slider.v-duo .hero-title { font-size: clamp(3.2rem, 8.6vw, 8.25rem); line-height: .9; max-width: 12ch; }
.hero-slider.v-duo .hero-title .line:nth-child(2) { font-style: italic; color: var(--pink-l); }
.hero-slider.v-duo .waves, .hero-slider.v-duo .floaters { display: none; }
.hero-slider.v-duo .seats-stack { rotate: 0deg; }
.hero-slider.v-duo .seats-stack::before { display: none; }
.hero-slider.v-duo .seats-stack > .seats { border-radius: var(--r-md); box-shadow: 0 30px 60px -30px rgba(10,6,20,.8); }

/* Forside-slider: centreret overskrift uden kort */
.hero-slider.v-midt .hero-inner { flex: 1; grid-template-columns: minmax(0, 1fr); align-content: center; justify-items: center; text-align: center; }
.hero-slider.v-midt .seats-stack { display: none; }
.hero-slider.v-midt .slide { align-self: center; }
.hero-slider.v-midt .hero-kicker { justify-content: center; }
.hero-slider.v-midt .hero-title { max-width: 16ch; margin-inline: auto; }
.hero-slider.v-midt .lead { margin-inline: auto; max-width: 40em; }
.hero-slider.v-midt .btn-row { justify-content: center; }
.hero-slider.v-midt .hero-shade { background: radial-gradient(75% 70% at 50% 50%, rgba(58,37,96,.5) 0%, rgba(58,37,96,.82) 100%), linear-gradient(0deg, rgba(58,37,96,.75) 0%, rgba(58,37,96,0) 40%); }
.hero-slider.v-midt .slider-nav { max-width: 860px; }
.hero-slider.v-midt .waves { opacity: .25; }

@media (max-width: 900px) {
  .hero-slider:is(.v-delt, .v-bund) .hero-bgs { order: 0; position: relative; inset: auto; height: 62vw; max-height: 440px; margin: 16px var(--gut) 0; }
  .hero-slider:is(.v-delt, .v-bund) .slides { order: 1; padding-top: 28px; }
  .hero-slider:is(.v-delt, .v-bund) .slider-nav { order: 2; padding-right: var(--gut); padding-bottom: 24px; }
  .hero-slider:is(.v-delt, .v-bund) .seats-stack { order: 3; margin: 0 var(--gut) 40px; width: auto; justify-self: auto; }
  .hero-slider.v-bund .slides { order: 1; }
  .hero-slider.v-bund .hero-bgs { order: 2; margin-top: 0; }
  .hero-slider.v-bund .slider-nav { order: 3; padding-top: 12px; }
  .hero-slider.v-bund .seats-stack { order: 4; }
  .hero-slider.v-midt .slides { padding-top: calc(var(--head-h) + 64px); }
  .hero-slider.v-midt .slider-nav { margin-bottom: 40px; }
}
@media (max-width: 620px) {
  .hero-slider.v-duo .hero-title { font-size: clamp(2.8rem, 14vw, 3.8rem); }
}

/* Forside-slider: tæller («01 / 05») til «mini» og «plakat». Tallet kommer fra --cur, som scriptet sætter. */
.sl-count { display: flex; align-items: baseline; gap: .25em; margin: 0; font-family: var(--f-display); font-weight: 350; line-height: 1; color: var(--paper); letter-spacing: -.02em; }
.sl-cur::before { counter-reset: slcur var(--cur, 1); content: counter(slcur, decimal-leading-zero); }
.sl-tot { font-size: .38em; opacity: .7; }
.sl-tot::before { content: "/ "; }

/* Forside-slider: lodrette faner – slidene som en menu ved siden af et stort billede */
.hero-slider.v-faner { display: grid; grid-template-columns: minmax(240px, 300px) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); column-gap: clamp(20px, 3vw, 44px); padding: calc(var(--head-h) + 12px) clamp(14px, 2vw, 28px) clamp(14px, 2vw, 28px); background: radial-gradient(60% 80% at 0% 100%, rgba(177,69,173,.25), rgba(177,69,173,0) 60%), var(--night); }
.hero-slider.v-faner :is(.hero-bgs, .hero-shade, .hero-tint) { grid-column: 2; grid-row: 1; position: relative; inset: auto; border-radius: var(--r-img); overflow: hidden; }
.hero-slider.v-faner .hero-bgs { translate: none !important; }
.hero-slider.v-faner .hero-shade { background: linear-gradient(0deg, rgba(30,18,52,.92) 0%, rgba(30,18,52,.5) 45%, rgba(30,18,52,0) 75%); }
.hero-slider.v-faner :is(.floaters, .waves, .hero-edge, .seats-stack) { display: none; }
.hero-slider.v-faner .hero-inner { grid-column: 2; grid-row: 1; max-width: none; margin: 0; padding: clamp(28px, 4vw, 56px); grid-template-columns: minmax(0, 1fr); align-self: end; }
.hero-slider.v-faner .hero-title { font-size: clamp(2.6rem, 5.4vw, 5.25rem); max-width: 14ch; }
.hero-slider.v-faner .slider-nav { grid-column: 1; grid-row: 1; max-width: none; margin: 0; padding: 0 0 8px; flex-direction: column; align-items: stretch; justify-content: flex-end; gap: 24px; }
.hero-slider.v-faner .slider-tabs { flex: 0 0 auto; display: flex; flex-direction: column; gap: 0; counter-reset: fane; border-top: 1px solid var(--line-dark); }
.hero-slider.v-faner .slider-tab { counter-increment: fane; display: grid; grid-template-columns: 3px 42px minmax(0, 1fr); align-items: center; gap: 0 14px; padding: 14px 0; font-size: 1.02rem; border-bottom: 1px solid var(--line-dark); }
.hero-slider.v-faner .slider-tab::before { content: counter(fane, decimal-leading-zero); grid-column: 2; grid-row: 1; font-family: var(--f-display); font-size: 1.5rem; font-weight: 350; }
.hero-slider.v-faner .slider-tab .bar { grid-column: 1; grid-row: 1; align-self: stretch; width: 3px; height: auto; min-height: 36px; }
.hero-slider.v-faner .slider-tab .bar i { width: 100%; height: 0; }
.hero-slider.v-faner .slider-tab.is-active .bar i { animation-name: fillV; }
.hero-slider.v-faner .slider-tab.is-done .bar i { height: 100%; }
.hero-slider.v-faner .slider-tab .tab-label { grid-column: 3; grid-row: 1; font-size: inherit; }
@keyframes fillV { from { height: 0; } to { height: 100%; } }

/* Forside-slider: mosaik – alle slides på én gang som billedfliser, og det første kort */
.hero-slider.v-mosaik { display: block; min-height: 0; color: var(--ink); background: linear-gradient(180deg, var(--tint) 0%, var(--paper) 100%); padding: clamp(24px, 3vw, 40px) 0 clamp(48px, 6vw, 88px); }
.hero-slider.v-mosaik :is(.hero-shade, .hero-tint, .floaters, .waves, .hero-edge, .slider-nav) { display: none; }
.hero-slider.v-mosaik .hero-inner { padding-top: 0; padding-bottom: 0; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.15fr) minmax(0, 1fr) minmax(300px, 1.1fr); grid-auto-rows: minmax(240px, auto); gap: var(--gap-grid); align-items: stretch; }
.hero-slider.v-mosaik .slides { display: contents; }
.hero-slider.v-mosaik .slide { grid-area: auto; position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; min-height: 240px; padding: var(--pad-md); border-radius: var(--r-lg); color: var(--paper); background: var(--night); opacity: 1; visibility: visible; align-self: stretch; }
.hero-slider.v-mosaik .slide::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(30,18,52,.94) 0%, rgba(30,18,52,.55) 50%, rgba(30,18,52,.12) 100%); }
.hero-slider.v-mosaik .slide.track-yoga::after { background: linear-gradient(0deg, rgba(74,38,71,.94) 0%, rgba(107,46,102,.55) 50%, rgba(107,46,102,.12) 100%); }
.hero-slider.v-mosaik .slide-img { position: absolute; inset: 0; z-index: -2; }
.hero-slider.v-mosaik .slide-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.hero-slider.v-mosaik .slide:hover .slide-img img { transform: scale(1.04); }
.hero-slider.v-mosaik .slide:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / 3; padding: var(--pad-lg); }
.hero-slider.v-mosaik .slide:nth-child(2) { grid-column: 3; grid-row: 1; }
.hero-slider.v-mosaik .slide:nth-child(3) { grid-column: 3; grid-row: 2; }
.hero-slider.v-mosaik .slide:nth-child(n+4) { grid-column: span 2; }
.hero-slider.v-mosaik .slide:nth-child(n+4):last-child:nth-child(even) { grid-column: span 4; }
.hero-slider.v-mosaik .hero-kicker { margin-bottom: 10px; font-size: var(--fs-xs); }
.hero-slider.v-mosaik .hero-title { font-size: var(--fs-h5); line-height: 1.15; max-width: none; margin-bottom: 14px; letter-spacing: -.01em; }
.hero-slider.v-mosaik .hero-title .line { display: inline; }
.hero-slider.v-mosaik .hero-title .line + .line::before { content: " "; }
.hero-slider.v-mosaik .slide:nth-child(1) .hero-title { font-size: clamp(2.4rem, 4.4vw, 4.2rem); line-height: .98; letter-spacing: -.03em; }
.hero-slider.v-mosaik .slide:nth-child(1) .hero-title .line { display: block; }
.hero-slider.v-mosaik .slide:nth-child(1) .hero-title .line + .line::before { content: none; }
.hero-slider.v-mosaik .lead { margin-bottom: 22px; font-size: 1rem; }
.hero-slider.v-mosaik .slide:not(:nth-child(1)) .lead { display: none; }
.hero-slider.v-mosaik .slide:not(:nth-child(1)) .btn-row .btn:not(:first-child) { display: none; }
.hero-slider.v-mosaik .slide:not(:nth-child(1)) .btn { min-height: 40px; padding-inline: 18px; font-size: var(--fs-sm); }
.hero-slider.v-mosaik .slide:nth-child(n+4) { min-height: 200px; }
.hero-slider.v-mosaik .seats-stack { grid-column: 4; grid-row: 1 / 3; rotate: 0deg; align-self: stretch; }
.hero-slider.v-mosaik .seats-stack::before { display: none; }
.hero-slider.v-mosaik .seats-stack > .seats { align-self: stretch; border-radius: var(--r-lg); box-shadow: var(--sh-1); }

/* Forside-slider: plakat – kæmpe overskrift uden billeder */
.hero-slider.v-plakat { background: radial-gradient(70% 90% at 100% 0%, rgba(177,69,173,.45), rgba(177,69,173,0) 60%), radial-gradient(60% 80% at 0% 100%, rgba(101,90,129,.55), rgba(101,90,129,0) 60%), var(--night); }
.hero-slider.v-plakat :is(.hero-bgs, .hero-shade, .seats-stack, .floaters) { display: none; }
.hero-slider.v-plakat .waves { opacity: .22; }
.hero-slider.v-plakat .hero-inner { grid-template-columns: minmax(0, 1fr); }
.hero-slider.v-plakat .slide { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--gap-split); align-items: end; }
.hero-slider.v-plakat .slide > :is(.hero-kicker, .hero-title, .rk-edit-image) { grid-column: 1 / -1; }
.hero-slider.v-plakat .hero-kicker { justify-self: start; }
.hero-slider.v-plakat .hero-title { font-size: clamp(3.4rem, 11.4vw, 11.5rem); line-height: .86; letter-spacing: -.045em; max-width: none; margin-bottom: clamp(24px, 3vw, 40px); }
.hero-slider.v-plakat .hero-title .line:nth-child(2) { padding-left: 1.1em; font-style: italic; color: var(--pink-l); }
.hero-slider.v-plakat .hero-title .line:nth-child(3) { text-align: right; }
.hero-slider.v-plakat .lead { grid-column: 1; margin: 0; font-size: 1.15rem; max-width: 38em; }
.hero-slider.v-plakat .btn-row { grid-column: 2; margin: 0; }
.hero-slider.v-plakat .sl-count { font-size: 2.6rem; margin-left: 8px; }
.hero-slider.v-plakat .slider-tab .tab-label { font-size: .8rem; }

/* Forside-slider: små billeder som faner og en stor tæller */
.hero-slider.v-mini :is(.seats-stack, .waves) { display: none; }
.hero-slider.v-mini .hero-shade { background: linear-gradient(0deg, rgba(30,18,52,.85) 0%, rgba(30,18,52,.2) 45%, rgba(30,18,52,0) 70%), linear-gradient(180deg, rgba(30,18,52,.6) 0%, rgba(30,18,52,0) 25%); }
.hero-slider.v-mini .hero-inner { grid-template-columns: minmax(0, 620px); }
.hero-slider.v-mini .slides { padding: var(--pad-lg); border-radius: var(--r-lg); background: rgba(30,18,52,.55); border: 1px solid var(--line-dark); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.hero-slider.v-mini .hero-title { font-size: clamp(2.4rem, 4.6vw, 4.4rem); max-width: 13ch; }
.hero-slider.v-mini .lead { margin-bottom: 26px; }
.hero-slider.v-mini .slider-nav { position: static; align-items: flex-end; }
.hero-slider.v-mini .slider-tabs { gap: 12px; }
.hero-slider.v-mini .slider-tab { gap: 8px; }
.hero-slider.v-mini .tab-img { display: block; border-radius: var(--r-sm); overflow: hidden; outline: 2px solid transparent; outline-offset: 2px; transition: outline-color .3s; }
.hero-slider.v-mini .tab-img img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; opacity: .62; transition: opacity .3s, transform .6s var(--ease); }
.hero-slider.v-mini .slider-tab:hover .tab-img img { opacity: .85; }
.hero-slider.v-mini .slider-tab.is-active .tab-img { outline-color: var(--pink-l); }
.hero-slider.v-mini .slider-tab.is-active .tab-img img { opacity: 1; }
.hero-slider.v-mini .sl-count { position: absolute; z-index: 2; top: calc(var(--head-h) + clamp(24px, 4vw, 56px)); right: max(var(--gut), (100% - var(--max)) / 2 + var(--gut)); font-size: clamp(3.2rem, 7vw, 6.5rem); }

@media (prefers-reduced-motion: reduce) {
  .hero-slider.v-faner .slider-tab.is-active .bar i { animation: none; height: 100%; }
}
@media (max-width: 900px) {
  .hero-slider.v-faner { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto; padding: calc(var(--head-h) + 8px) 12px 12px; }
  .hero-slider.v-faner :is(.hero-bgs, .hero-shade, .hero-tint) { grid-column: 1; grid-row: 1; }
  .hero-slider.v-faner .slides { grid-column: 1; grid-row: 1; padding: 200px 22px 26px; align-self: end; }
  .hero-slider.v-faner .slider-nav { grid-column: 1; grid-row: 2; padding: 12px 6px 8px; }
  .hero-slider.v-faner .slider-tab .tab-label { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; white-space: normal; }
  .hero-slider.v-faner .slider-tab { padding: 10px 0; }
  .hero-slider.v-mosaik .hero-inner { display: grid; grid-template-columns: minmax(0, 1fr); }
  .hero-slider.v-mosaik .slides { padding: 0; }
  .hero-slider.v-mosaik :is(.slide, .seats-stack) { grid-column: auto !important; grid-row: auto !important; margin: 0; }
  .hero-slider.v-mosaik .slide:nth-child(1) { order: -2; min-height: 420px; }
  .hero-slider.v-mosaik .seats-stack { order: -1; max-width: none; }
  .hero-slider.v-plakat .slide { grid-template-columns: minmax(0, 1fr); }
  .hero-slider.v-plakat .btn-row { grid-column: 1; margin-top: 24px; }
  .hero-slider.v-plakat .hero-title .line:nth-child(3) { text-align: left; }
  .hero-slider.v-mini .slides { margin: 160px var(--gut) 0; padding: var(--pad-md); }
  .hero-slider.v-mini .sl-count { top: calc(var(--head-h) + 20px); font-size: 2.6rem; }
}
@media (max-width: 620px) {
  .hero-slider.v-plakat .hero-title { font-size: clamp(2.8rem, 15vw, 4.2rem); }
  .hero-slider.v-plakat .hero-title .line:nth-child(2) { padding-left: .6em; }
}

/* ===================================================================== Tema v0.11: mere fleksible sider */

/* Toner til meddelelser (sektionen og bjælken øverst) */
.rk-tone-info { --tone: var(--lilla); --tone-bg: #F1ECF7; --tone-line: rgba(101,90,129,.26); --tone-ink: var(--lilla); --bar-bg: var(--ink); }
.rk-tone-vigtig { --tone: #C2551D; --tone-bg: #FFF3EA; --tone-line: rgba(194,85,29,.32); --tone-ink: #9A3F10; --bar-bg: #A9471A; }
.rk-tone-glad { --tone: #23784C; --tone-bg: #EAF6EF; --tone-line: rgba(35,120,76,.3); --tone-ink: #1C6340; --bar-bg: #1E6B44; }

/* Sektion: Meddelelse */
.rk-msg-sek { padding-block: clamp(28px, 4vw, 56px); }
.rk-msg { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px 22px; align-items: start; max-width: 880px; margin-inline: auto; padding: clamp(22px, 3vw, 36px); border-radius: var(--r-lg); background: var(--tone-bg); border: 1px solid var(--tone-line); border-left: 6px solid var(--tone); }
.rk-msg-ikon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--tone); color: #fff; }
.rk-msg-ikon svg { width: 26px; height: 26px; }
.rk-msg-over { margin: 2px 0 6px; color: var(--tone-ink); font-size: .8rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.rk-msg .rk-msg-titel { margin: 0 0 10px; font-size: clamp(1.55rem, 2.8vw, 2.25rem); line-height: 1.12; letter-spacing: -.015em; }
.rk-msg-krop { color: var(--ink-2); font-size: 1.05rem; }
.rk-msg-krop p:last-child { margin-bottom: 0; }
.rk-msg-krop a { color: var(--tone-ink); font-weight: 700; }
.rk-msg-krop ul { padding-left: 1.2em; margin-bottom: 1em; }
.rk-msg-knap { margin: 18px 0 0; }
@media (max-width: 620px) {
  .rk-msg { grid-template-columns: 1fr; gap: 12px; border-left-width: 1px; border-top: 6px solid var(--tone); }
  .rk-msg-ikon { width: 40px; height: 40px; }
  .rk-msg-ikon svg { width: 22px; height: 22px; }
}

/* Sektion: Fri tekst */
.rk-fri .rk-fri-wrap { max-width: calc(760px + 2 * var(--gut)); }
.rk-fri-head { margin-bottom: var(--s-6); }
.rk-fri-head .over { font-weight: 700; color: var(--lilla); margin-bottom: 12px; }
.rk-fri-head :is(h1, h2) { max-width: 18ch; }
.rk-fri .rk-fri-blok-titel { margin-bottom: 12px; font-size: var(--fs-h4); line-height: 1.2; }
.rk-fri-blok + .rk-fri-blok { margin-top: var(--s-6); }
.rk-fri .prose { max-width: 40em; }
.rk-fri .prose p:last-child { margin-bottom: 0; }
.rk-fri .prose ol { padding-left: 1.3em; margin-bottom: 1em; }
.rk-fri-knap { margin: var(--s-6) 0 0; }
.rk-fri.v-spalter .rk-fri-wrap { max-width: var(--max); }
.rk-fri.v-spalter .rk-fri-blokke { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: var(--s-6) clamp(32px, 4vw, 64px); }
.rk-fri.v-spalter .rk-fri-blok + .rk-fri-blok { margin-top: 0; }
.rk-fri.v-boks .rk-fri-wrap { max-width: calc(880px + 2 * var(--gut)); }
.rk-fri.v-boks .rk-fri-indhold { padding: var(--pad-lg); border-radius: var(--r-lg); background: var(--paper-2); }
.rk-fri.v-billede .rk-fri-wrap { max-width: var(--max); display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: var(--gap-split); align-items: center; }
.rk-fri.v-billede .rk-frame img { width: 100%; border-radius: var(--r-img); }
@media (max-width: 860px) {
  .rk-fri.v-billede .rk-fri-wrap { grid-template-columns: 1fr; }
}

/* Meddelelsesbjælken øverst (inc/meddelelse.php) */
.rk-bar { position: relative; z-index: 51; background: var(--bar-bg); color: #fff; font-size: .95rem; line-height: 1.45; }
.rk-bar-in { display: flex; align-items: center; gap: 12px; min-height: 46px; padding-block: 7px; }
.rk-bar-ikon { flex: none; display: grid; place-items: center; }
.rk-bar-ikon svg { width: 20px; height: 20px; }
.rk-bar-tekst { flex: 1 1 auto; margin: 0; }
.rk-bar-tekst a { display: inline-flex; align-items: center; gap: 4px; margin-left: .35em; color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; white-space: nowrap; }
.rk-bar-tekst a svg { width: 14px; height: 14px; }
.rk-bar-tekst a:hover { color: #fff; text-decoration-thickness: 2px; }
.rk-bar-ret { flex: none; padding: 2px 10px; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; color: #fff; font-size: .78rem; text-decoration: none; }
.rk-bar-ret:hover { background: #fff; color: var(--ink); }
.rk-bar-luk { flex: none; display: grid; place-items: center; width: 36px; height: 36px; margin-right: -8px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #fff; cursor: pointer; }
.rk-bar-luk svg { width: 16px; height: 16px; }
.rk-bar-luk:hover { background: rgba(255,255,255,.16); }
.rk-bar :focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.site-head { top: var(--rk-bar-off, 0px); }
.mobile-menu { top: calc(var(--head-h) + var(--rk-bar-off, 0px)); }
html.har-rk-bar { scroll-padding-top: calc(var(--head-h) + var(--rk-bar-off, 0px) + 16px); }
@media (max-width: 620px) {
  .rk-bar { font-size: .9rem; }
  .rk-bar-in { align-items: flex-start; }
  .rk-bar-ikon { padding-top: 2px; }
  .rk-bar-ret { display: none; }
}
@media print { .rk-bar-luk, .rk-bar-ret { display: none; } }

/* Redaktører: tomme felter kan ses og udfyldes («+ Overskrift»). */
.rk-site .pencil-field:empty::before { content: "+ " attr(data-pencil-label); opacity: .55; font-style: italic; font-family: var(--f-body); font-size: max(.8em, 14px); font-weight: 500; letter-spacing: 0; }
.rk-site .pencil-richtext.pencil-field:empty { min-height: 1.6em; }

/* Redaktører: sektioner med datoer eller målgruppe, «Mere»-menuen og «Tilføj sektion». */
.rk-red-maerke .rk-red-status { padding: 2px 8px; border-radius: 999px; background: #c3e4f5; color: #1d2327; font-weight: 600; }
.rk-red-maerke .rk-red-status.er-skjult { background: #f5c451; }
.rk-red-usynlig { outline: 2px dashed #b26200; outline-offset: -8px; }
.rk-red-maerke:hover .rk-red-vaerktoej, .rk-red-maerke:focus-within .rk-red-vaerktoej { max-width: 820px; }
.rk-red-mere { position: relative; }
.rk-red-mere > summary { list-style: none; display: inline-flex; align-items: center; }
.rk-red-mere > summary::-webkit-details-marker { display: none; }
.rk-red-menu { position: absolute; top: calc(100% + 6px); left: 0; z-index: 2; display: grid; min-width: 230px; padding: 6px; border-radius: 10px; background: #fff; color: #1d2327; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.rk-red-menu button, .rk-red-menu a { display: block; width: 100%; padding: 8px 10px; border: 0; border-radius: 6px; background: none; color: #1d2327; font: 500 13px/1.3 system-ui, sans-serif; text-align: left; text-decoration: none; cursor: pointer; }
.rk-red-menu button:hover, .rk-red-menu a:hover, .rk-red-menu :focus-visible { background: #f0f0f1; outline: none; box-shadow: inset 0 0 0 2px #2271b1; }
.rk-red-menu hr { margin: 4px 6px; border: 0; border-top: 1px solid #dcdcde; }
.rk-red-dlg { width: min(94vw, 860px); max-height: min(88vh, 900px); padding: 0; border: 0; border-radius: 14px; background: #fff; color: #1d2327; font: 400 14px/1.45 system-ui, sans-serif; box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.rk-red-dlg::backdrop { background: rgba(29,35,39,.55); }
.rk-red-dlg form { display: flex; flex-direction: column; max-height: inherit; }
.rk-red-dlg-hoved { display: flex; align-items: center; gap: 12px; padding: 18px 20px 10px; }
.rk-red-dlg h2 { flex: 1; margin: 0; font: 600 18px/1.3 system-ui, sans-serif; letter-spacing: 0; }
.rk-red-dlg-krop { overflow: auto; padding: 4px 20px 16px; }
.rk-red-dlg-fod { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px 20px; border-top: 1px solid #dcdcde; background: #f6f7f7; }
.rk-red-dlg-fod .rk-red-pos { flex: 1; display: flex; gap: 14px; flex-wrap: wrap; }
.rk-red-dlg input[type="search"], .rk-red-dlg input[type="text"], .rk-red-dlg select { width: 100%; padding: 8px 10px; border: 1px solid #8c8f94; border-radius: 6px; font: inherit; }
.rk-red-dlg .rk-red-gruppe { margin: 14px 0 6px; font: 600 12px/1.3 system-ui, sans-serif; text-transform: uppercase; letter-spacing: .06em; color: #50575e; }
.rk-red-typer { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; }
.rk-red-type { display: grid; grid-template-rows: auto auto 1fr; gap: 4px; padding: 8px; border: 1px solid #dcdcde; border-radius: 10px; background: #fff; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.rk-red-type img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 6px; background: #f0f0f1; }
.rk-red-type b { font-size: 13px; }
.rk-red-type span { color: #50575e; font-size: 12px; line-height: 1.35; }
.rk-red-type:hover { border-color: #2271b1; }
.rk-red-type[aria-pressed="true"] { border-color: #2271b1; box-shadow: 0 0 0 2px #2271b1; }
.rk-red-type:focus-visible { outline: 2px solid #2271b1; outline-offset: 2px; }
.rk-red-dlg-knap { padding: 9px 16px; border: 1px solid #2271b1; border-radius: 6px; background: #2271b1; color: #fff; font: 600 13px/1 system-ui, sans-serif; cursor: pointer; }
.rk-red-dlg-knap.er-sekundaer { background: #fff; color: #2271b1; }
.rk-red-dlg-knap:disabled { opacity: .5; cursor: default; }
.rk-red-dlg-knap:focus-visible, .rk-red-dlg input:focus-visible, .rk-red-dlg select:focus-visible { outline: 2px solid #2271b1; outline-offset: 2px; }
.rk-red-dlg-luk { width: 32px; height: 32px; border: 0; border-radius: 50%; background: #f0f0f1; color: #1d2327; font: 600 18px/1 system-ui, sans-serif; cursor: pointer; }
.rk-red-tom { padding: 18px 0; color: #50575e; }
.rk-red-som { position: fixed; left: 14px; bottom: 62px; z-index: 1001; display: flex; align-items: center; gap: 4px; padding: 4px; border: 1px solid rgba(29,35,39,.2); border-radius: 999px; background: #fff; color: #1d2327; font: 600 12px/1.2 system-ui, sans-serif; box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.rk-red-som span { padding: 0 6px 0 8px; }
.rk-red-som a { padding: 5px 10px; border-radius: 999px; color: #1d2327; text-decoration: none; }
.rk-red-som a[aria-current="true"] { background: #1d2327; color: #fff; }
.rk-red-som a:focus-visible { outline: 2px solid #2271b1; outline-offset: 2px; }
@media print { .rk-red-som, .rk-red-dlg { display: none; } }
.rk-red-type[hidden], .rk-red-gruppe[hidden] { display: none; }

/* Live forhåndsvisning i wp-admin: klik på en tekst, et billede eller et data-felt for at
   finde det i formularen. Tomme felter vises ikke som pladsholdere her. */
.rk-live .pencil-field:empty::before { content: none; }
.rk-live [data-pencil-field], .rk-live [data-pencil-managed-edit-url] { cursor: pointer; }
.rk-live [data-pencil-field]:hover, .rk-live [data-pencil-managed-edit-url]:hover { outline: 2px dashed #2271b1; outline-offset: 3px; }

/* Bookingdialogen sender fra sitet (v0.11.10). */
.bf-submit[aria-busy="true"] { opacity: .6; cursor: progress; }
.book-done h2:focus { outline: none; }
/* «Skriv til …»: emnet over overskriften må ikke løbe ind under luk-knappen (v0.11.11). */
#henv-over { padding-right: 44px; }
