/* ══════════════════════════════════════════════════════════════════════════════════════════════
   Bedemanden på Vestegnen — hand-built from Jesper's Claude Design handoff (2026-08-06 export,
   Desktop.dc.html D1a/D1b/D1c + Forside.dc.html mobile 1a/2a/3a). OWNED theme: see .nb-owned.

   Rules this file keeps (Design-System Constitution, nembedemand-wp/CLAUDE.md):
   · brand values are defined ONCE on :root and consumed as vars — no hex below the token block
   · one button: .btn + .btn--primary / .btn--ghost, framing bound to ACSS's --btn-* vars
   · no !important; scope is .nb-site (+ the generic tiers that render outside it)
   · band spacing belongs to rhythm.css — bands carry data-bleed + data-fill, nothing here sets
     padding-block/margin-block on a band
   Two deliberate departures from the mock, both for WCAG AA (the visual gate blocks otherwise):
   · terracotta #AE6E54 → --vb-clay #925740 where it carries text or sits behind text
     (cream on #AE6E54 measures 3.5:1, and clay text on the sand fill must clear 4.5:1 too)
   · the terracotta eyebrow on navy → --vb-clay-light (the mock's 2.8:1 → 4.7:1)
   ══════════════════════════════════════════════════════════════════════════════════════════════ */

/* ── TOKENS ──────────────────────────────────────────────────────────────────────────────────── */
:root{
  /* fed to ACSS / the platform (same names token_root_css emits) */
  --primary:#1A3D59;
  --primary-dark:#1A3D59;
  --primary-hover:color-mix(in srgb, #1A3D59 82%, #000);
  --primary-ultra-light:color-mix(in srgb, #1A3D59 9%, #F4EEE3);
  --base:#F4EEE3;
  --base-ultra-light:#EDE6D8;
  --text-dark:#201D1A;
  --text-light:#F4EEE3;
  --action:#925740;
  --action-hover:color-mix(in srgb, #925740 86%, #000);
  --link-color:#1A3D59;
  --link-color-hover:#925740;
  --nb-green:#925740;
  --nb-link:#1A3D59;
  --c-primary:#1A3D59;
  --nb-container:72.5rem;
  --nb-pad:clamp(1.25rem, 4vw, 2.5rem);
  --nb-heading-weight:500;
  --btn-radius:13px;

  /* brand palette (from the handoff) */
  --vb-navy:#1A3D59;
  --vb-navy-deep:#153450;
  --vb-navy-soft:#25506E;
  --vb-paper:#F4EEE3;
  --vb-sand:#EDE6D8;
  --vb-sand-deep:#DCD2BF;
  --vb-ink:#201D1A;
  --vb-muted:#4C6274;
  --vb-clay:#925740;
  --vb-clay-hover:color-mix(in srgb, #925740 86%, #000);
  --vb-clay-light:#D49A80;
  --vb-clay-mark:#AE6E54;
  --vb-moss:#33473A;
  --vb-star:#00B67A;
  --vb-white:#FFFFFF;
  --vb-line:color-mix(in srgb, #1A3D59 10%, transparent);
  --vb-line-soft:color-mix(in srgb, #1A3D59 9%, transparent);
  --vb-on-dark:color-mix(in srgb, #F4EEE3 82%, transparent);
  --vb-on-dark-soft:color-mix(in srgb, #F4EEE3 62%, transparent);
  --vb-on-dark-line:color-mix(in srgb, #F4EEE3 35%, transparent);

  --vb-serif:var(--heading-font-family, "Lora"), Georgia, serif;
  --vb-sans:var(--text-font-family, "Plus Jakarta Sans"), system-ui, sans-serif;
  /* the platform tiers (content.css / cpt.css / SiteCta) read these names */
  --ff-heading:var(--vb-serif);
  --ff-body:var(--vb-sans);
  --nb-heading-font:var(--vb-serif);
  --nb-body-font:var(--vb-sans);
  --vb-r-sm:12px;
  --vb-r-md:16px;
  --vb-r-lg:20px;
  --vb-r-xl:24px;
  --vb-shadow:0 12px 34px -20px color-mix(in srgb, #1A3D59 50%, transparent);
}

/* ── HOST-CSS RESET (EtchImport::LAYOUT_RESET, scoped like build_site does) ──────────────────────── */
.nb-site header,.nb-site main,.nb-site section,.nb-site article,.nb-site aside,.nb-site footer,.nb-site nav,.nb-site figure{display:block}
.nb-site section>div{display:block}
.nb-site a:not(svg):not(math){display:revert}
.nb-site{overflow-x:clip}
:where(.nb-site) *,:where(.nb-site) *::before,:where(.nb-site) *::after{box-sizing:border-box}

/* ── BASE TYPE ─────────────────────────────────────────────────────────────────────────────────── */
.nb-site{font-family:var(--vb-sans);color:var(--vb-ink);line-height:1.6;-webkit-font-smoothing:antialiased}
:where(.nb-site) :where(h1,h2,h3,h4){font-family:var(--vb-serif);font-weight:500;color:var(--vb-navy);margin:0;line-height:1.15;letter-spacing:normal}
:where(.nb-site) :where(p,ul,ol,figure,blockquote){margin:0}
:where(.nb-site) img{max-width:100%;height:auto;display:block}
:where(.nb-site) a{color:inherit}
/* bespoke CPT <main>: rhythm.css's same-fill seam is a margin, so the main must carry the page colour */
.nb-site.nb-cpt-bespoke,.nb-content.nb-page{background:var(--vb-paper)}
/* ACSS pads every <section> horizontally (--section-padding-x ≈ 21px on a phone) and the band's own .vb-wrap pads
   again — content sat 41px from the edge while the header and footer sat at 20. The container owns the gutter;
   bands are edge-to-edge (inline only — block spacing stays rhythm.css's). */
.nb-site [data-bleed],.nb-site-cta[data-section="cta"]{padding-inline:0}
.nb-site .vb-wrap{width:100%;max-width:calc(var(--nb-container) + 2 * var(--nb-pad));margin-inline:auto;padding-inline:var(--nb-pad)}

:is(.nb-site,.nb-content) .eyebrow{display:block;font-family:var(--vb-sans);font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--vb-clay);margin:0 0 .75rem;line-height:1.3}
:is(.nb-site,.nb-content) .sec-head{margin-bottom:2.5rem;max-width:46rem}
:is(.nb-site,.nb-content) .sec-head.vb-head-center{margin-inline:auto;text-align:center;margin-bottom:2.75rem}
:is(.nb-site,.nb-content) .sec-title{font-family:var(--vb-serif);font-weight:500;font-size:clamp(1.625rem, 1.15rem + 1.9vw, 2.5rem);line-height:1.15;color:var(--vb-navy)}
:is(.nb-site,.nb-content) .lead{font-size:1rem;line-height:1.6;color:var(--vb-muted);margin-top:.75rem;max-width:36rem}
.nb-site .vb-muted{color:var(--vb-muted);font-size:.9375rem;line-height:1.6}
.nb-site .vb-arrow{color:var(--vb-clay);flex:none}

/* fills (rhythm.css owns the spacing; these only paint) */
.nb-site [data-fill="base"],.nb-site .nb-section--paper{background:var(--vb-paper)}
.nb-site [data-fill="warm"],.nb-site .nb-section--warm{background:var(--vb-sand)}
.nb-site [data-fill="dark"],.nb-site .nb-section--dark{background:var(--vb-navy);color:var(--vb-paper)}
.nb-site [data-fill="dark"] :where(h1,h2,h3,p,li,strong,span,blockquote){color:inherit}
.nb-site [data-fill="dark"] .eyebrow{color:var(--vb-clay-light)}

/* ── BUTTON (the one .btn; framing via ACSS's own --btn-* vars) ───────────────────────────────────── */
.btn,.nb-site .btn,.nb-cpt-bespoke .btn{
  --btn-padding-block:1.0625rem; --btn-padding-inline:1.75rem; --btn-font-weight:600; --btn-line-height:1.1; --btn-border-width:1px;
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:var(--btn-padding-block) var(--btn-padding-inline);
  border-radius:var(--btn-radius);border:var(--btn-border-width) solid transparent;
  font-family:var(--vb-sans);font-weight:var(--btn-font-weight);font-size:1.0625rem;line-height:var(--btn-line-height);
  text-decoration:none;text-transform:none;letter-spacing:normal;white-space:nowrap;cursor:pointer;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease
}
.btn svg{flex:none}
/* Bespoke CPT pages: the parent's cpt.css paints `.nb-cpt-bespoke .btn--primary:not(.nb-cta-btn)` with
   `background:var(--primary)!important`. We do not answer !important with !important — we feed the token it
   reads, scoped to the button, so nothing else on the page that consumes --primary changes. Ghost buttons there
   carry the platform's own exemption marker `.nb-cta-btn` ("owns its own contrast pair") in the template. */
.nb-cpt-bespoke .btn{--primary:var(--vb-clay)}
/* the LAYOUT_RESET's `.nb-site a:not(svg):not(math){display:revert}` is (0,1,3) and outranks a bare .btn */
.nb-site a.btn,.nb-site button.btn{display:inline-flex}
.btn--primary,.nb-site .btn--primary{--btn-background:var(--vb-clay);--btn-background-hover:var(--vb-clay-hover);--btn-text-color:var(--vb-paper);--btn-border-color:var(--vb-clay);background:var(--vb-clay);border-color:var(--vb-clay);color:var(--vb-paper)}
.btn--primary:hover,.btn--primary:focus-visible{background:var(--vb-clay-hover);border-color:var(--vb-clay-hover);color:var(--vb-paper)}

.btn--ghost,.nb-site .btn--ghost{--btn-background:transparent;--btn-text-color:var(--vb-navy);--btn-border-color:var(--vb-line);background:transparent;color:var(--vb-navy);border-color:color-mix(in srgb, var(--vb-navy) 30%, transparent);font-weight:500;font-size:1rem}
.btn--ghost:hover,.btn--ghost:focus-visible{background:color-mix(in srgb, var(--vb-navy) 6%, transparent);color:var(--vb-navy)}
.nb-site [data-fill="dark"] .btn--ghost,.nb-site .nb-section--dark .btn--ghost,.nb-site-cta .btn--ghost,.vb-mbar .btn--ghost{color:var(--vb-paper);border-color:var(--vb-on-dark-line)}
.nb-site [data-fill="dark"] .btn--ghost:hover,.nb-site .nb-section--dark .btn--ghost:hover,.nb-site-cta .btn--ghost:hover,.vb-mbar .btn--ghost:hover{background:color-mix(in srgb, var(--vb-paper) 10%, transparent);color:var(--vb-paper)}
.nb-site .vb-btn-lg{font-size:1.125rem;--btn-padding-block:1.125rem;--btn-padding-inline:2.125rem;border-radius:14px}
.nb-site .vb-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.875rem}
/* cpt.css gives the first .btn after a paragraph a top margin (0,3,2) — the row's gap owns spacing here */
.nb-site .vb-actions>a.btn:is(.btn--primary,.btn--ghost){margin:0}
.nb-site .vb-actions-center{justify-content:center}

/* ── HEADER ──────────────────────────────────────────────────────────────────────────────────── */
.nb-site .vb-hd{position:sticky;top:0;z-index:60;background:var(--vb-navy)}
.admin-bar .nb-site .vb-hd{top:32px}
.nb-site .vb-hd__in{display:flex;align-items:center;justify-content:space-between;gap:2rem;width:100%;max-width:calc(var(--nb-container) + 2 * var(--nb-pad));margin-inline:auto;padding:1rem var(--nb-pad);min-height:4.625rem}
/* ↑ the mock pads the header 40px edge-to-edge; it shares the content column instead (visualGate D14: header edge = content edge) */
.nb-site .vb-brand{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none;flex:none}
.nb-site .vb-brand .vb-brand__mark{height:42px;width:auto}
.nb-site .vb-brand .vb-brand__word{height:32px;width:auto}
.nb-site .vb-hd__nav{display:flex;align-items:center;gap:1.875rem;margin-left:auto}
.nb-site .vb-hd__nav a{font-family:var(--vb-sans);font-size:.875rem;font-weight:500;color:var(--vb-on-dark);text-decoration:none;white-space:nowrap}
.nb-site .vb-hd__nav a:hover,.nb-site .vb-hd__nav a:focus-visible{color:var(--vb-paper)}
.nb-site .vb-hd__nav .nb-navsub__caret{color:var(--vb-on-dark)}
.nb-site .vb-hd__nav .nb-sub{background:var(--vb-paper);border:1px solid var(--vb-line);border-radius:var(--vb-r-sm);box-shadow:var(--vb-shadow);padding:.5rem}
.nb-site .vb-hd__nav .nb-sub a{color:var(--vb-ink);font-size:.875rem;font-weight:500;display:block;padding:.5rem .75rem;border-radius:8px}
.nb-site .vb-hd__nav .nb-sub a:hover{background:var(--vb-sand);color:var(--vb-navy)}
.nb-site .nb-hdr-actions{display:flex;align-items:center;flex:none}
.nb-site .vb-hd .vb-hd__call{--btn-padding-block:.6875rem;--btn-padding-inline:1.25rem;font-size:.875rem;border-radius:11px;gap:.5rem}

/* the shared burger + drawer (nav.css / nav.js) — themed, not forked */
body .nb-burger{background:transparent;color:var(--vb-paper);border:1px solid color-mix(in srgb, var(--vb-paper) 28%, transparent);border-radius:50%;box-shadow:none;width:2.75rem;height:2.75rem}
body .nb-drawer__panel{background:var(--vb-paper);color:var(--vb-ink);font-family:var(--vb-sans)}
body .nb-drawer__head{border-bottom:1px solid var(--vb-line)}
body .nb-drawer__brand{font-family:var(--vb-serif);color:var(--vb-navy)}
body .nb-drawer__link{color:var(--vb-ink);font-weight:500}

/* nav.js COLLAPSES the header on narrow screens (adds .nb-hd-collapsed, position:fixed, moves the burger in,
   injects a .nb-hd-phone pill). nav.css paints that state with --base (cream) — themed here to the design's
   navy mobile header (Forside.dc.html 1a): mark + wordmark left, outlined round burger right. */
.nb-site > header.vb-hd.nb-hd-collapsed{background:var(--vb-navy);border-bottom:1px solid color-mix(in srgb, var(--vb-paper) 8%, transparent)}
.nb-site > header.vb-hd.nb-hd-collapsed .vb-brand{gap:.6875rem;margin-right:auto}
.nb-site > header.vb-hd.nb-hd-collapsed .vb-brand img.vb-brand__mark{height:38px;width:auto;max-width:none}
.nb-site > header.vb-hd.nb-hd-collapsed .vb-brand img.vb-brand__word{height:30px;width:auto;max-width:none}
.nb-site > header.vb-hd.nb-hd-collapsed .nb-burger{width:2.125rem;height:2.125rem;background:transparent;color:var(--vb-paper);border:1px solid color-mix(in srgb, var(--vb-paper) 28%, transparent)}

/* Phone in the collapsed header: nav.js MOVES .nb-hdr-actions into the drawer when the header collapses (and injects a
   raw-number .nb-hd-phone pill, hidden here). The header keeps its own compact "Ring" button (.vb-hd__tel), shown only
   while collapsed; the drawer ends with the moved actions — Ring til os + Skriv til os. */
.nb-site .vb-hd a.vb-hd__tel{display:none}
.nb-site > header.vb-hd.nb-hd-collapsed a.btn.vb-hd__tel{display:inline-flex;flex:none;width:auto;min-width:0;--btn-min-width:0;margin-left:auto;--btn-padding-block:.5625rem;--btn-padding-inline:.875rem;font-size:.8125rem;border-radius:10px;gap:.4375rem}
.nb-site > header.vb-hd.nb-hd-collapsed .vb-brand{margin-right:0}
.nb-site > header.vb-hd .nb-hd-phone{display:none}
.nb-site .vb-hd a.vb-hd__mail{display:none}
.nb-drawer .nb-hdr-actions{display:flex;flex-direction:column;gap:.625rem;padding:1.25rem}
.nb-drawer .nb-hdr-actions .btn{width:100%;font-size:1rem;--btn-padding-block:.875rem;border-radius:12px}
.nb-drawer .nb-hdr-actions .vb-hd__mail{display:inline-flex;color:var(--vb-navy);border-color:color-mix(in srgb, var(--vb-navy) 30%, transparent)}
.nb-drawer .vb-ico{display:inline-block;flex:none;width:1.0625rem;height:1.0625rem;background-color:currentColor;-webkit-mask:var(--vb-ico) center/contain no-repeat;mask:var(--vb-ico) center/contain no-repeat}
@media (max-width:359px){.nb-site > header.vb-hd.nb-hd-collapsed .vb-brand img.vb-brand__word{height:24px}}

/* breadcrumbs (nembedemand/breadcrumbs) — the design's deep-navy strip */
.nb-breadcrumbs{background:var(--vb-navy-deep);color:var(--vb-on-dark-soft);font-family:var(--vb-sans);font-size:.75rem;padding:.6875rem 0;border:0;margin:0 0 var(--rhythm-gap, clamp(32px, 4vw, 64px))}
/* hug a coloured first band (rhythm.css does this for .nb-content--bleed-first + bespoke CPTs; the theme's own archive/404 templates need it too) */
.nb-breadcrumbs:has(~ .nb-site > :not([data-fill="none"])[data-bleed]:first-child),
.nb-breadcrumbs:has(~ .nb-site > main > :not([data-fill="none"])[data-bleed]:first-child){margin-bottom:0}
.nb-breadcrumbs .nb-wrap{max-width:calc(var(--nb-container) + 2 * var(--nb-pad));margin-inline:auto;padding-inline:var(--nb-pad)}
.nb-breadcrumbs a{color:var(--vb-on-dark-soft);text-decoration:none}
.nb-breadcrumbs a:hover{color:var(--vb-paper)}
.nb-breadcrumbs .nb-breadcrumbs__sep{font-size:0;margin:0 .45rem}
.nb-breadcrumbs .nb-breadcrumbs__sep::before{content:"·";font-size:.75rem;opacity:.5}
.nb-breadcrumbs .nb-breadcrumbs__cur{color:var(--vb-paper);font-weight:600}

/* ── HERO ────────────────────────────────────────────────────────────────────────────────────── */
.nb-site .vb-hero{position:relative;overflow:hidden}
.nb-site .vb-watermark{position:absolute;left:-90px;bottom:-120px;width:360px;color:color-mix(in srgb, var(--vb-paper) 5%, transparent);pointer-events:none}
.nb-site .vb-watermark svg{display:block;width:100%;height:auto}
.nb-site .vb-hero__grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}
.nb-site .vb-hero__grid-town{grid-template-columns:1.15fr .85fr;gap:3rem}
.nb-site .vb-hero__title{font-family:var(--vb-serif);font-weight:500;font-size:clamp(2.0625rem, 1.2rem + 3.3vw, 3.625rem);line-height:1.08;letter-spacing:-.015em;color:var(--vb-paper);margin:0 0 1.375rem}
.nb-site .vb-hero__lead{font-size:clamp(.9375rem, .85rem + .4vw, 1.125rem);line-height:1.6;color:var(--vb-on-dark);max-width:30rem;margin:0 0 2rem}
.nb-site .vb-hero .eyebrow{letter-spacing:.18em;margin-bottom:1.125rem}
.nb-site .vb-hero .vb-actions{margin-bottom:1.125rem}
.nb-site .vb-trust{display:flex;align-items:center;flex-wrap:wrap;gap:.875rem;font-size:.875rem;color:var(--vb-on-dark)}
.nb-site .vb-trust strong{color:var(--vb-paper);font-weight:600}
.nb-site .vb-dot{width:3px;height:3px;border-radius:50%;background:color-mix(in srgb, var(--vb-paper) 40%, transparent);flex:none}
.nb-site .vb-dot-clay{width:4px;height:4px;background:var(--vb-clay-mark)}
.nb-site .vb-hero__photo{height:420px;border-radius:var(--vb-r-lg)}
.nb-site .vb-hero-center{text-align:center}
.nb-site .vb-hero__narrow{position:relative;max-width:calc(42.5rem + 2 * var(--nb-pad))}
.nb-site .vb-hero-center .vb-hero__lead{margin-inline:auto}
.nb-site .vb-hero__note{margin-top:.875rem;font-size:.8125rem;color:var(--vb-on-dark-soft)}

/* photos (real <img>, so Etch can swap them) */
.nb-site .vb-photo{position:relative;overflow:hidden;background:var(--vb-navy-soft);margin:0}
.nb-site .vb-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:38% 32%}
.nb-site .vb-photo__tag{position:absolute;left:1rem;bottom:.875rem;background:color-mix(in srgb, var(--vb-navy-deep) 62%, transparent);border:1px solid color-mix(in srgb, var(--vb-paper) 25%, transparent);border-radius:20px;padding:.3rem .875rem;font-size:.8125rem;font-weight:500;color:var(--vb-paper)}

/* stars (drawn, not glyphs — no text node for the contrast gate to misread) */
.nb-site .vb-stars{display:inline-flex;gap:2px;flex:none}
.nb-site .vb-stars i{width:14px;height:14px;border-radius:2px;background:var(--vb-star) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M12 3.5l2.6 5.6 6.1.7-4.5 4.2 1.2 6-5.4-3-5.4 3 1.2-6-4.5-4.2 6.1-.7z'/%3E%3C/svg%3E") center/72% no-repeat}
.nb-site .vb-stars-lg i{width:16px;height:16px}
.nb-site .vb-stars-lg{gap:3px}
.nb-site .vb-stars-sm i{width:13px;height:13px}

/* ── ICONS — CSS masks (Etch outputs inline <svg> only with allow_raw_html_unsafe_usage, which is off;
   a class is also what an editor can swap in Etch). Colour = currentColor. ─────────────────────────── */
.nb-site .vb-ico,.vb-mbar .vb-ico{display:inline-block;flex:none;width:1.125rem;height:1.125rem;background-color:currentColor;-webkit-mask:var(--vb-ico) center/contain no-repeat;mask:var(--vb-ico) center/contain no-repeat;vertical-align:middle}
.vb-ico-phone{--vb-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.9.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E")}
.vb-ico-talk{--vb-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.3'%3E%3Cpath d='M8 10h8M8 14h5'/%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3C/svg%3E")}
.vb-ico-drop{--vb-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.3'%3E%3Cpath d='M12 3c-3 3-5 5.5-5 9a5 5 0 0 0 10 0c0-3.5-2-6-5-9z'/%3E%3Cpath d='M12 21v-6'/%3E%3C/svg%3E")}
.vb-ico-box{--vb-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.3'%3E%3Cpath d='M4 8l8-4 8 4-8 4-8-4z'/%3E%3Cpath d='M4 8v8l8 4 8-4V8'/%3E%3Cpath d='M12 12v8'/%3E%3C/svg%3E")}
.vb-ico-flower{--vb-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.3'%3E%3Ccircle cx='12' cy='12' r='2.4'/%3E%3Cpath d='M12 9.6c0-3 .8-4.6 2.4-4.6S17 6.6 14.4 9.6M12 14.4c0 3 .8 4.6 2.4 4.6M12 9.6C12 6.6 11.2 5 9.6 5S7 6.6 9.6 9.6M12 14.4c0 3-.8 4.6-2.4 4.6M12 12h5.4M12 12H6.6'/%3E%3C/svg%3E")}
.vb-ico-coin{--vb-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.3'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M12 8v8M9.5 10.2c0-1 1.1-1.7 2.5-1.7s2.5.6 2.5 1.6-1.1 1.4-2.5 1.4-2.5.5-2.5 1.5 1.1 1.6 2.5 1.6 2.5-.7 2.5-1.7'/%3E%3C/svg%3E")}
.vb-ico-doc{--vb-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.3'%3E%3Cpath d='M6.5 3h7l4 4v14H6.5z'/%3E%3Cpath d='M13.5 3v4h4M9 12h6M9 15.5h6'/%3E%3C/svg%3E")}
.vb-ico-pin{--vb-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.4'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E")}
.vb-ico-clock{--vb-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.4'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E")}
.vb-ico-check{--vb-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.vb-ico-mail{--vb-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E")}
.vb-ico-plus{--vb-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.4'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v8M8 12h8'/%3E%3C/svg%3E")}
.nb-site .btn .vb-ico{width:1.0625rem;height:1.0625rem}
.nb-site .vb-hd .vb-ico{width:.9375rem;height:.9375rem}
.nb-site .vb-svc__icon .vb-ico{width:1.875rem;height:1.875rem}
.nb-site .vb-cpt .vb-svc__icon .vb-ico,.nb-cpt-bespoke .vb-svc__icon .vb-ico{width:1.75rem;height:1.75rem}
.nb-site .vb-check__icon .vb-ico{width:1.5rem;height:1.5rem}
.nb-site .vb-infocard__icon .vb-ico{width:1.375rem;height:1.375rem}
.nb-site .vb-mailcard__icon .vb-ico{width:1.25rem;height:1.25rem}
.nb-site .vb-watermark{aspect-ratio:128.74 / 87.12;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128.74 87.12'%3E%3Cg fill='black'%3E%3Cpath d='M42.2,77.16L47.91.8l43.56,76.64c1.51,2.31-.36,5.33-3.1,5.01l-46.18-5.29Z'/%3E%3Cpath d='M17.26,66.1L47.91.8l-5.71,76.36-22.16-5.04c-2.68-.61-4.06-3.59-2.79-6.03Z'/%3E%3Cpath d='M85.93,77.71L4.31,29.33c-1.87-1.11-4.09.73-3.37,2.77l13.03,36.65c.48,1.35,1.62,2.36,3.02,2.68l56.27,12.87,11.16-.54c3.23-.16,4.28-4.41,1.5-6.05Z'/%3E%3Cpath d='M7.51,50.53L125.03,16.72c1.92-.55,3.56,1.45,2.66,3.23l-28.87,56.37c-2.19,4.29-6.51,7.07-11.32,7.3l-11.01.53c-2.17.1-4.33-.36-6.26-1.36L7.51,50.53Z'/%3E%3C/g%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 128.74 87.12'%3E%3Cg fill='black'%3E%3Cpath d='M42.2,77.16L47.91.8l43.56,76.64c1.51,2.31-.36,5.33-3.1,5.01l-46.18-5.29Z'/%3E%3Cpath d='M17.26,66.1L47.91.8l-5.71,76.36-22.16-5.04c-2.68-.61-4.06-3.59-2.79-6.03Z'/%3E%3Cpath d='M85.93,77.71L4.31,29.33c-1.87-1.11-4.09.73-3.37,2.77l13.03,36.65c.48,1.35,1.62,2.36,3.02,2.68l56.27,12.87,11.16-.54c3.23-.16,4.28-4.41,1.5-6.05Z'/%3E%3Cpath d='M7.51,50.53L125.03,16.72c1.92-.55,3.56,1.45,2.66,3.23l-28.87,56.37c-2.19,4.29-6.51,7.07-11.32,7.3l-11.01.53c-2.17.1-4.33-.36-6.26-1.36L7.51,50.53Z'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}

/* social-proof strip — an inline strip, not a band */
.nb-site .vb-proof{background:var(--vb-sand);padding:1.625rem 0}
.nb-site .vb-proof__in{display:flex;align-items:center;justify-content:center;gap:1.25rem;flex-wrap:wrap}
.nb-site .vb-proof__score{font-size:.9375rem;font-weight:600;color:var(--vb-navy)}
.nb-site .vb-proof__quote{font-family:var(--vb-serif);font-style:italic;font-size:1.125rem;line-height:1.4;color:var(--vb-ink)}

/* ── STEPS ───────────────────────────────────────────────────────────────────────────────────── */
.nb-site .vb-steps__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem}
.nb-site .vb-step{text-align:center;padding:0 1rem}
.nb-site .vb-step__n{width:52px;height:52px;border-radius:50%;background:var(--vb-navy);color:var(--vb-paper);display:flex;align-items:center;justify-content:center;font-family:var(--vb-serif);font-size:1.375rem;font-weight:500;margin:0 auto 1.125rem}
.nb-site .vb-step__title{font-family:var(--vb-sans);font-size:1.125rem;font-weight:600;color:var(--vb-ink);margin-bottom:.5rem;line-height:1.3}
.nb-site .vb-step p{font-size:.9375rem;line-height:1.6;color:var(--vb-muted)}

/* ── CARDS ───────────────────────────────────────────────────────────────────────────────────── */
.nb-site .vb-cards{display:grid;gap:1.25rem}
.nb-site .vb-cards-3{grid-template-columns:repeat(3,1fr)}
.nb-site .vb-cards-2{grid-template-columns:repeat(2,1fr);gap:1.5rem}
.nb-site .vb-card{display:block;background:var(--vb-paper);border:1px solid var(--vb-line-soft);border-radius:var(--vb-r-md);padding:1.625rem 1.5rem;text-decoration:none;color:var(--vb-ink)}
.nb-site [data-fill="base"] .vb-card,.nb-site .nb-section--paper .vb-card{background:var(--vb-sand);border-color:transparent}
.nb-site a.vb-card{transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.nb-site a.vb-card:hover,.nb-site a.vb-card:focus-visible{border-color:color-mix(in srgb, var(--vb-navy) 25%, transparent);transform:translateY(-2px);box-shadow:var(--vb-shadow)}
.nb-site .vb-card__title{font-family:var(--vb-sans);font-size:1.0625rem;font-weight:600;color:var(--vb-ink);margin-bottom:.4375rem;line-height:1.3}
.nb-site .vb-card p{font-size:.875rem;line-height:1.55;color:var(--vb-muted)}
.nb-site .vb-svc__icon{display:block;color:var(--vb-navy);margin-bottom:1rem;line-height:0}
.nb-site .vb-check__icon{display:block;color:var(--vb-clay);margin-bottom:.75rem;line-height:0}
.nb-site .vb-qa{padding:1.5rem 1.625rem}
.nb-site .vb-qa__q{font-family:var(--vb-sans);font-size:1rem;font-weight:600;line-height:1.35;color:var(--vb-navy);margin-bottom:.5rem}
.nb-site .vb-qa p{line-height:1.6}

/* ── PRICE CARD (moss, inside a base band) ───────────────────────────────────────────────────── */
.nb-site .vb-pricecard{position:relative;overflow:hidden;background:var(--vb-moss);border-radius:var(--vb-r-xl);padding:3.25rem 3.5rem;display:grid;grid-template-columns:1.4fr 1fr;gap:2.5rem;align-items:center;color:var(--vb-paper)}
.nb-site .vb-watermark-card{left:auto;right:-50px;bottom:-70px;width:260px;color:color-mix(in srgb, var(--vb-paper) 6%, transparent)}
.nb-site .vb-pricecard__copy{position:relative}
.nb-site .vb-pricecard .eyebrow{color:color-mix(in srgb, var(--vb-paper) 70%, transparent);letter-spacing:.14em;margin-bottom:.875rem}
.nb-site .vb-pricecard__title{font-family:var(--vb-serif);font-weight:500;font-size:clamp(1.5rem, 1.1rem + 1.4vw, 2.125rem);line-height:1.2;color:var(--vb-paper);margin-bottom:.875rem}
.nb-site .vb-pricecard p{font-size:1rem;line-height:1.6;color:var(--vb-on-dark);max-width:32.5rem}
.nb-site .vb-pricecard__cta{position:relative;text-align:right}

/* ── QUOTE / STAFF ───────────────────────────────────────────────────────────────────────────── */
.nb-site .vb-quote__grid{display:grid;grid-template-columns:340px 1fr;gap:3rem;align-items:center}
.nb-site .vb-quote__grid-sm{grid-template-columns:300px 1fr;gap:2.75rem}
.nb-site .vb-quote__photo{height:360px;border-radius:var(--vb-r-lg)}
.nb-site .vb-quote__grid-sm .vb-quote__photo{height:300px}
.nb-site .vb-quote__photo img{object-position:50% 22%}
.nb-site .vb-quote__body{margin:0;padding:0;border:0}
.nb-site .vb-quote__text{font-family:var(--vb-serif);font-weight:500;font-size:clamp(1.375rem, 1rem + 1.4vw, 2rem);line-height:1.4;color:var(--vb-paper);margin-bottom:1.375rem}
.nb-site .vb-quote__grid-sm .vb-quote__text{font-size:clamp(1.25rem, .95rem + 1.2vw, 1.75rem);margin-bottom:1.125rem}
.nb-site .vb-quote__by{display:flex;flex-direction:column;gap:.125rem}
.nb-site .vb-quote__by strong{font-size:1rem;font-weight:600;color:var(--vb-paper)}
.nb-site .vb-quote__by span{font-size:.875rem;color:var(--vb-on-dark-soft)}

/* ── REVIEWS ─────────────────────────────────────────────────────────────────────────────────── */
.nb-site .vb-review{background:var(--vb-sand);border-radius:var(--vb-r-md);padding:1.875rem;margin:0}
.nb-site .vb-review .vb-stars{margin-bottom:.875rem}
.nb-site .vb-review__text{font-family:var(--vb-serif);font-style:italic;font-size:1.125rem;line-height:1.55;color:var(--vb-ink);margin:0 0 .875rem;padding:0;border:0}
.nb-site .vb-review__by{font-size:.875rem}
.nb-site .vb-review__by strong{font-weight:600;color:var(--vb-navy)}
.nb-site .vb-review__by span{color:var(--vb-muted)}

/* ── LOCAL / TOWNS / MAP ─────────────────────────────────────────────────────────────────────── */
.nb-site .vb-local__grid{display:grid;grid-template-columns:1fr 1fr;gap:2.75rem;align-items:start}
.nb-site .vb-local .sec-head{margin-bottom:1.5rem}
.nb-site .vb-towns{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.nb-site .vb-town{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--vb-paper);border:1px solid var(--vb-line);border-radius:var(--vb-r-sm);padding:.9375rem 1rem;text-decoration:none;transition:border-color .18s ease}
.nb-site .vb-town:hover,.nb-site .vb-town:focus-visible{border-color:var(--vb-clay)}
.nb-site .vb-town__name{font-size:.9375rem;font-weight:600;color:var(--vb-ink)}
.nb-site .vb-map{position:relative;height:420px;border-radius:var(--vb-r-lg);overflow:hidden;background-color:var(--vb-sand-deep);border:1px solid var(--vb-line);background-image:linear-gradient(var(--vb-line-soft) 1px, transparent 1px),linear-gradient(90deg, var(--vb-line-soft) 1px, transparent 1px);background-size:34px 34px}
.nb-site .vb-map-sm{height:220px;border-radius:var(--vb-r-md);background-size:30px 30px}
.nb-site .vb-map__pin{position:absolute;width:16px;height:16px;border-radius:50%;background:var(--vb-clay-mark);box-shadow:0 0 0 5px color-mix(in srgb, var(--vb-clay-mark) 24%, transparent);transform:translate(-50%,-50%)}
.nb-site .vb-pin-a{left:34%;top:40%}
.nb-site .vb-pin-b{left:56%;top:56%}
.nb-site .vb-pin-c{left:70%;top:38%}

/* ── FINAL CTA (front page) + the global SiteCta band (every other page) ─────────────────────── */
.nb-site .vb-cta{text-align:center}
.nb-site .vb-cta__title{font-family:var(--vb-serif);font-weight:500;font-size:clamp(1.75rem, 1.2rem + 2vw, 2.625rem);line-height:1.15;color:var(--vb-paper);margin-bottom:.875rem}
.nb-site .vb-cta__lead{font-size:1.0625rem;line-height:1.6;color:var(--vb-on-dark);margin:0 auto 1.875rem;max-width:36rem}
.nb-site-cta[data-section="cta"]:is([data-fill="brand"],[data-fill="dark"]),.nb-site-cta{background:var(--vb-navy);color:var(--vb-paper);font-family:var(--vb-sans)}
.nb-site-cta .nb-site-cta__eyebrow{display:none}
.nb-site-cta .nb-site-cta__title{font-family:var(--vb-serif);font-weight:500;font-size:clamp(1.75rem, 1.2rem + 2vw, 2.625rem);color:var(--vb-paper);margin-bottom:.875rem}
.nb-site-cta .nb-site-cta__body{font-size:1.0625rem;color:var(--vb-on-dark);opacity:1;margin-bottom:1.875rem}
.nb-site-cta .nb-site-cta__row{gap:.875rem}
.nb-site-cta .btn{font-family:var(--vb-sans);font-size:1.0625rem;padding:1.0625rem 1.875rem;border-radius:var(--btn-radius);line-height:1.1}
.nb-site-cta .btn--primary{background:var(--vb-clay);border-color:var(--vb-clay);color:var(--vb-paper)}
.nb-site-cta .btn--primary:hover{background:var(--vb-clay-hover);border-color:var(--vb-clay-hover);color:var(--vb-paper)}
.nb-site-cta .btn--ghost{background:transparent;font-weight:500;font-size:1rem}

/* ── TOWN PAGE (cpt-tpl-nbseo_location / _area) ─────────────────────────────────────────────── */
.nb-site .vb-infocard{position:relative;background:var(--vb-paper);color:var(--vb-ink);border-radius:var(--vb-r-lg);padding:.5rem 1.625rem}
.nb-site .vb-infocard__row{display:flex;gap:.875rem;padding:1.25rem 0}
.nb-site .vb-infocard__row+.vb-infocard__row{border-top:1px solid var(--vb-line)}
.nb-site .vb-infocard__icon{flex:none;color:var(--vb-clay);line-height:0;margin-top:1px}
.nb-site .vb-infocard strong{display:block;font-size:.9375rem;font-weight:600;color:var(--vb-ink);margin-bottom:.1875rem}
.nb-site .vb-infocard span{display:block;font-size:.875rem;line-height:1.5;color:var(--vb-muted)}
.nb-site [data-fill="dark"] .vb-infocard strong{color:var(--vb-ink)}
.nb-site [data-fill="dark"] .vb-infocard span:not(.vb-infocard__icon){color:var(--vb-muted)}
.nb-site .vb-banner{height:300px;border-radius:var(--vb-r-lg);margin-bottom:2rem}
.nb-site .vb-banner img{object-position:40% 30%}
.nb-site .vb-banner-sm{height:280px;margin-bottom:4rem}
.nb-site .vb-first .sec-head{margin-bottom:2.25rem}
.nb-site .vb-first .lead{max-width:38.75rem}
.nb-site .vb-know__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:2.75rem;align-items:center}
.nb-site .vb-know__grid:not(:has(.vb-know__photo)){grid-template-columns:1fr;max-width:46rem}
.nb-site .vb-know__copy .sec-title{margin-bottom:1rem}
.nb-site .vb-know__copy p{font-size:1.0625rem;line-height:1.7;color:var(--vb-muted)}
.nb-site .vb-know__copy p+p{margin-top:.75rem}
.nb-site .vb-know__photo{height:430px;border-radius:var(--vb-r-lg)}
.nb-site .vb-know__photo img{object-position:50% 40%}
.nb-site .vb-chips{list-style:none;margin:1.375rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.625rem}
.nb-site .vb-chips li{background:var(--vb-sand);border-radius:20px;padding:.5rem 1rem;font-size:.8125rem;font-weight:500;color:var(--vb-navy)}
.nb-site .vb-near .eyebrow{margin-bottom:1.125rem}
.nb-site .vb-near__list{display:grid;grid-template-columns:repeat(4,1fr);gap:.875rem}
.nb-site .vb-areas__list{grid-template-columns:repeat(3,1fr)}
.nb-site .vb-near__list>div{display:contents}
.nb-site .vb-near__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--vb-sand);border-radius:var(--vb-r-sm);padding:1rem 1.125rem;text-decoration:none;transition:background-color .18s ease}
.nb-site .vb-near__item:hover,.nb-site .vb-near__item:focus-visible{background:var(--vb-sand-deep)}
.nb-site .vb-near__item strong{display:block;font-size:.9375rem;font-weight:600;color:var(--vb-ink)}
.nb-site .vb-near__item small{font-size:.75rem;color:var(--vb-muted)}
/* "Andre afdelinger tæt på" leaves out the page you are on */
.nb-site [data-here="Albertslund"] [data-town="Albertslund"],.nb-site [data-here="Glostrup"] [data-town="Glostrup"],.nb-site [data-here="Brøndby"] [data-town="Brøndby"],.nb-site [data-here="Rødovre"] [data-town="Rødovre"],.nb-site [data-here="Vallensbæk"] [data-town="Vallensbæk"]{display:none}

/* the migrated page body ({{body}}) and plain prose */
.nb-site .vb-body__in{max-width:calc(48rem + 2 * var(--nb-pad))}
.nb-site .vb-prose,.nb-content .nb-flow,.nb-single .nb-prose{font-size:1.0625rem;line-height:1.7;color:var(--vb-ink)}
.nb-site .vb-prose>*+*{margin-top:1em}
.nb-site .vb-prose :where(h2){font-size:clamp(1.5rem, 1.15rem + 1.3vw, 2.125rem);margin-top:1.6em}
.nb-site .vb-prose :where(h3){font-size:1.375rem;margin-top:1.4em}
.nb-site .vb-prose>:first-child{margin-top:0}
/* the migrated body arrives wrapped (div.nb-cpt-body): its first heading's margin would otherwise collapse out of the band */
.nb-site .vb-prose>:first-child>:first-child{margin-top:0}
.nb-site .vb-prose a,.nb-content .nb-flow a:not(.btn),.nb-single .nb-prose a:not(.btn){color:var(--vb-navy);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--vb-clay) 60%, transparent);text-underline-offset:3px}
.nb-site .vb-prose ul,.nb-site .vb-prose ol{padding-left:1.25em}

/* news index (templates/home.html — the posts page, /nyheder/) */
.nb-site .vb-news__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.nb-site .vb-news__grid>div{display:contents}
.nb-site .vb-post{display:flex;flex-direction:column;gap:.625rem;padding:1.75rem 1.625rem 1.5rem}
.nb-site .vb-post{overflow:hidden}
.nb-site .vb-post__img{display:block;width:calc(100% + 3.25rem);max-width:none;margin:-1.75rem -1.625rem .5rem;aspect-ratio:16 / 10;object-fit:cover;background:var(--vb-sand-deep)}
/* Etch renders src="" for a post with no featured image (it cannot condition on dynamic data) */
.nb-site img.vb-post__img[src=""]{display:none}
.nb-site .vb-post__date{font-size:.75rem;font-weight:600;letter-spacing:.08em;color:var(--vb-clay)}
.nb-site .vb-post__title{font-family:var(--vb-serif);font-size:1.375rem;font-weight:500;line-height:1.25;color:var(--vb-navy);margin:0}
.nb-site .vb-post__excerpt{font-size:.9375rem;line-height:1.6;color:var(--vb-muted);flex:1}
.nb-site .vb-post__more{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;font-weight:600;color:var(--vb-navy);margin-top:.25rem}
@media (max-width:1000px){.nb-site .vb-news__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.nb-site .vb-news__grid{grid-template-columns:1fr}}

/* department + area archives */
.nb-site .vb-depts__list{display:flex;flex-direction:column;gap:.625rem}
.nb-site .vb-depts__list>div{display:contents}
.nb-site .vb-dept{display:flex;align-items:center;gap:.875rem;background:var(--vb-sand);border-radius:var(--vb-r-sm);padding:1rem 1.125rem;text-decoration:none;transition:background-color .18s ease}
.nb-site .vb-dept:hover,.nb-site .vb-dept:focus-visible{background:var(--vb-sand-deep)}
.nb-site .vb-dept__icon{flex:none;color:var(--vb-clay);line-height:0}
.nb-site .vb-dept__txt{flex:1}
.nb-site .vb-dept__txt strong{display:block;font-size:.9375rem;font-weight:600;color:var(--vb-ink)}
.nb-site .vb-dept__txt small{font-size:.8125rem;color:var(--vb-muted)}

/* ── CONTACT PAGE (kontakt-os body) ──────────────────────────────────────────────────────────── */
.nb-site .vb-contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:2.75rem;align-items:start}
.nb-site .vb-callout{display:flex;align-items:center;gap:.875rem;background:var(--vb-sand);border-radius:var(--vb-r-md);padding:1rem 1.125rem;margin-bottom:1.5rem}
.nb-site .vb-callout__avatar{flex:none;width:60px;height:60px;border-radius:50%;object-fit:cover;object-position:50% 16%;border:2px solid color-mix(in srgb, var(--vb-navy) 15%, transparent)}
.nb-site .vb-callout strong{display:block;font-size:.9375rem;font-weight:600;color:var(--vb-ink);margin-bottom:.125rem}
.nb-site .vb-callout span{display:block;font-size:.8125rem;line-height:1.45;color:var(--vb-muted)}
.nb-site .vb-title-md{font-size:clamp(1.5rem, 1.15rem + 1.2vw, 2.125rem);line-height:1.2;margin-bottom:.5rem}
.nb-site .vb-title-sm{font-size:clamp(1.375rem, 1.1rem + 1vw, 1.875rem);line-height:1.2;margin-bottom:1rem}
.nb-site .vb-contact__form .vb-muted{margin-bottom:1.375rem}
.nb-site .vb-formcard{background:var(--vb-sand);border-radius:18px;padding:1.625rem 1.5rem}
.nb-site .vb-form label{display:block;font-size:.8125rem;font-weight:600;color:var(--vb-ink);margin-bottom:.375rem}
.nb-site .vb-form label span{font-weight:400;color:var(--vb-muted)}
.nb-site .vb-form :is(input,textarea){display:block;width:100%;background:var(--vb-white);border:1px solid color-mix(in srgb, var(--vb-navy) 18%, transparent);border-radius:10px;padding:.875rem .9375rem;font-family:var(--vb-sans);font-size:.9375rem;line-height:1.5;color:var(--vb-ink);margin-bottom:.9375rem;resize:none}
.nb-site .vb-form textarea{margin-bottom:1.125rem}
.nb-site .vb-form :is(input,textarea):focus-visible{outline:2px solid var(--vb-navy);outline-offset:1px}
.nb-site .vb-form .vb-form__submit{width:100%;font-size:1rem;border-radius:12px}
.nb-site .vb-form__note{text-align:center;margin-top:.75rem;font-size:.78125rem;color:var(--vb-muted)}
.nb-site .vb-mailcard{display:flex;align-items:center;gap:.875rem;background:var(--vb-sand);border-radius:var(--vb-r-md);padding:1.125rem 1.25rem;text-decoration:none;margin-bottom:1.5rem}
.nb-site .vb-mailcard__icon{flex:none;width:44px;height:44px;border-radius:50%;background:var(--vb-navy);color:var(--vb-paper);display:flex;align-items:center;justify-content:center}
.nb-site .vb-mailcard__txt{flex:1}
.nb-site .vb-mailcard__txt strong{display:block;font-size:.9375rem;font-weight:600;color:var(--vb-ink)}
.nb-site .vb-mailcard__txt small{font-size:.84375rem;color:var(--vb-muted)}
.nb-site .vb-addrs{display:flex;flex-direction:column;gap:.625rem;margin-bottom:1.25rem}
.nb-site .vb-addr{display:flex;gap:.75rem;background:var(--vb-sand);border-radius:var(--vb-r-sm);padding:.875rem 1rem;text-decoration:none}
.nb-site .vb-addr:hover{background:var(--vb-sand-deep)}
.nb-site .vb-addr__icon{flex:none;color:var(--vb-clay);line-height:0;margin-top:1px}
.nb-site .vb-addr strong{display:block;font-size:.84375rem;font-weight:600;color:var(--vb-ink)}
.nb-site .vb-addr small{font-size:.78125rem;color:var(--vb-muted)}

/* ── GRAVITY FORMS (nembedemand-forms renders GF's structural sheet only; the look is ours) ────────────
   The submit button already IS `.btn btn--primary` (Styling::submit_button) — only fields are styled here. */
.nb-site .vb-formcard .gform_wrapper{margin:0;font-family:var(--vb-sans)}
.nb-site .vb-formcard>p:not([class]){display:none}
.nb-site .vb-formcard .gform_fields{display:flex;flex-direction:column;gap:.9375rem;grid-row-gap:.9375rem}
.nb-site .vb-formcard .gfield{margin:0;padding:0}
.nb-site .vb-formcard .gfield_label{display:block;font-size:.8125rem;font-weight:600;color:var(--vb-ink);margin:0 0 .375rem;padding:0}
.nb-site .vb-formcard .gfield_required{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nb-site .vb-formcard .gfield--type-textarea .gform-field-label__text::after{content:" (valgfri)";font-weight:400;color:var(--vb-muted)}
.nb-site .vb-formcard :is(input[type="text"],input[type="tel"],input[type="email"],textarea){display:block;width:100%;background:var(--vb-white);border:1px solid color-mix(in srgb, var(--vb-navy) 18%, transparent);border-radius:10px;padding:.875rem .9375rem;font-family:var(--vb-sans);font-size:.9375rem;line-height:1.5;color:var(--vb-ink);box-shadow:none;resize:none}
.nb-site .vb-formcard textarea,.nb-site .vb-formcard .ginput_container textarea.medium{height:6.25rem;min-height:0}
.nb-site .vb-formcard :is(input,textarea)::placeholder{color:color-mix(in srgb, var(--vb-muted) 85%, transparent);opacity:1}
.nb-site .vb-formcard :is(input,textarea):focus-visible{outline:2px solid var(--vb-navy);outline-offset:1px;border-color:var(--vb-navy)}
.nb-site .vb-formcard .gform_footer{margin:1.125rem 0 0;padding:0}
.nb-site .vb-formcard .gform_footer .btn{width:100%;font-size:1rem;border-radius:12px;margin:0}
.nb-site .vb-formcard .gfield_error :is(input,textarea){border-color:var(--vb-clay)}
.nb-site .vb-formcard :is(.gfield_validation_message,.validation_message,.gform_validation_errors){background:transparent;border:0;padding:.375rem 0 0;font-size:.8125rem;color:var(--vb-clay);box-shadow:none}
.nb-site .vb-formcard .gform_validation_errors{padding:0 0 .75rem}
.nb-site .vb-formcard .gform_confirmation_message{font-family:var(--vb-serif);font-size:1.25rem;line-height:1.45;color:var(--vb-navy)}

/* The platform's mid-page CTA (.nb-midcta, injected into long bodies): the design's sand card with a terracotta
   button, on the text column, with breathing room. Paper card when it sits on a sand band. */
:is(.nb-site,.nb-content,.nb-single) .nb-midcta{display:flex;align-items:center;justify-content:space-between;gap:1rem 1.5rem;flex-wrap:wrap;background:var(--vb-sand);border:0;border-radius:var(--vb-r-md);padding:1.375rem 1.625rem;margin:2.25rem 0;max-width:48rem}
:is(.nb-site,.nb-content,.nb-single) [data-fill="warm"] .nb-midcta,:is(.nb-content,.nb-single) .nb-section--warm .nb-midcta{background:var(--vb-paper)}
:is(.nb-site,.nb-content,.nb-single) .nb-midcta .nb-midcta__lead{margin:0;font-family:var(--vb-serif);font-size:1.25rem;font-weight:500;line-height:1.3;color:var(--vb-navy)}
:is(.nb-site,.nb-content,.nb-single) .nb-midcta>a.btn{margin:0;width:auto}
/* cpt.css gives the first .btn after a paragraph a top margin (0,3,2); in the CTA band row it pushed "Ring" down and
   the row stretched the ghost button to match */
.nb-site-cta[data-section="cta"] .nb-site-cta__row{align-items:center}
.nb-site-cta[data-section="cta"] .nb-site-cta__row>a.btn{margin:0}

/* the global CTA band also lives inside .nb-content, where content.css paints brand-band buttons white */
.nb-site-cta[data-section="cta"][data-fill] .btn--primary{background:var(--vb-clay);border-color:var(--vb-clay);color:var(--vb-paper)}
.nb-site-cta[data-section="cta"][data-fill] .btn--primary:hover{background:var(--vb-clay-hover);border-color:var(--vb-clay-hover)}
.nb-site-cta[data-section="cta"][data-fill] .btn--ghost{background:transparent;color:var(--vb-paper);border-color:var(--vb-on-dark-line)}
.nb-content .nb-section[data-fill="brand"] .btn--primary{background:var(--vb-clay);border-color:var(--vb-clay);color:var(--vb-paper)}

/* ── FOOTER ──────────────────────────────────────────────────────────────────────────────────── */
.nb-site .vb-ft{background:var(--vb-navy-deep);color:var(--vb-paper);padding:3.5rem 0 2.75rem}
.nb-site .vb-ft__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2.5rem}
.nb-site .vb-ft__logo{margin-bottom:1.125rem}
.nb-site .vb-ft .vb-brand__mark{height:34px}
.nb-site .vb-ft .vb-brand__word{height:26px}
.nb-site .vb-ft__brand{display:flex;flex-direction:column;align-items:flex-start}
.nb-site .vb-ft__phone{font-size:1.125rem;font-weight:600;color:var(--vb-paper);text-decoration:none;margin-bottom:.25rem}
.nb-site .vb-ft__mail{font-size:.875rem;color:color-mix(in srgb, var(--vb-paper) 75%, transparent);text-decoration:none}
.nb-site .vb-ft__col{display:flex;flex-direction:column;gap:.875rem}
.nb-site .vb-ft__dept{text-decoration:none}
.nb-site .vb-ft__dept strong{display:block;font-size:.8125rem;font-weight:600;color:var(--vb-paper);margin-bottom:.125rem}
.nb-site .vb-ft__dept span{display:block;font-size:.78125rem;color:var(--vb-on-dark-soft)}
.nb-site .vb-ft__dept:hover strong,.nb-site .vb-ft__phone:hover,.nb-site .vb-ft__mail:hover{text-decoration:underline;text-underline-offset:3px}
.nb-site .vb-ft__legal{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid color-mix(in srgb, var(--vb-paper) 14%, transparent)}
.nb-site .vb-ft__legal a{font-size:.75rem;color:var(--vb-on-dark-soft);text-decoration:none}
.nb-site .vb-ft__legal a:hover{color:var(--vb-paper)}
.nb-site .vb-mbar{display:none}

/* ── GENERIC TIERS (migrated pages, posts, plain pages) in the same language ─────────────────── */
.nb-content.nb-page,.nb-single{font-family:var(--vb-sans);color:var(--vb-ink);background:var(--vb-paper)}
.nb-content :where(h1,h2,h3),.nb-single :where(h1,h2,h3){font-family:var(--vb-serif);font-weight:500;color:var(--vb-navy)}
.nb-content .nb-section[data-fill="none"],.nb-content .nb-section[data-fill="base"]{background:var(--vb-paper)}
.nb-content .nb-section[data-fill="warm"],.nb-content .nb-section--warm{background:var(--vb-sand)}
.nb-content .nb-section[data-fill="brand"]{background:var(--vb-navy);color:var(--vb-paper)}
.nb-content .nb-section[data-fill="brand"] :where(h1,h2,h3,p,li,a:not(.btn)){color:var(--vb-paper)}
.nb-content .nb-section.has-bg-image{position:relative;overflow:hidden;background:var(--vb-navy);color:var(--vb-paper)}
.nb-content .nb-section.has-bg-image .nb-section__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32;filter:saturate(.7)}
.nb-content .nb-section.has-bg-image .nb-section__scrim{position:absolute;inset:0;background:linear-gradient(150deg, color-mix(in srgb, var(--vb-navy) 70%, transparent), color-mix(in srgb, var(--vb-navy) 92%, transparent))}
.nb-content .nb-section.has-bg-image .nb-contain{position:relative}
.nb-content .nb-section.has-bg-image :is(h1,h2,h3,p){color:var(--vb-paper)}
.nb-content .nb-section.has-bg-image .h1,.nb-content .nb-section h1{font-size:clamp(2rem, 1.2rem + 3vw, 3.25rem);line-height:1.1;letter-spacing:-.015em}
.nb-content .nb-section.has-bg-image p{color:var(--vb-on-dark);font-size:1.125rem}
.nb-content .nb-contain{max-width:calc(var(--nb-container) + 2 * var(--nb-pad));margin-inline:auto;padding-inline:var(--nb-pad)}
/* text sits on the header's left edge (visualGate D14) in a readable 48rem column, like the design's section heads */
.nb-content .nb-contain>*{max-width:48rem}
.nb-content .nb-head--center .nb-contain>*{margin-inline:auto}
.nb-content .nb-flow h2,.nb-content .h2{font-size:clamp(1.5rem, 1.15rem + 1.3vw, 2.125rem);line-height:1.2}
.nb-content .nb-flow h3{font-size:1.375rem;line-height:1.25}
.nb-content .nb-cta{background:var(--vb-sand)}
.nb-content .nb-cta :where(h2,h3){color:var(--vb-navy)}
.nb-single .nb-wrap{max-width:calc(var(--nb-container) + 2 * var(--nb-pad));margin-inline:auto;padding:3rem var(--nb-pad) 4rem}
.nb-single .nb-wrap>*{max-width:48rem}
.nb-single h1,.nb-single .nb-page__title{font-size:clamp(2rem, 1.2rem + 3vw, 3.25rem);line-height:1.1;margin-bottom:1.5rem}
.nb-single .nb-eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--vb-clay)}
.nb-arch .nb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem}
.nb-arch .nb-card{display:block;background:var(--vb-sand);border-radius:var(--vb-r-sm);padding:1.125rem 1.25rem;text-decoration:none;color:var(--vb-ink)}
.nb-arch .nb-card h3{font-family:var(--vb-sans);font-size:1rem;font-weight:600;color:var(--vb-ink)}

/* Posts whose migrated body is itself a set of Etch bands (own image hero carrying the title): the hero leads as a
   rounded card on the shared container edge (visualGate D14), the generic duplicate <h1> is hidden, and the
   contact card follows the body. Plain-text posts keep the generic single layout. */
.nb-single .nb-wrap:has(> .nb-cpt-body > .nb-content > .has-bg-image:first-child){display:flex;flex-direction:column;gap:1.5rem;padding-bottom:var(--space-l, 2.5rem)}
.nb-single .nb-wrap:has(> .nb-cpt-body > .nb-content > .has-bg-image:first-child)>:is(h1,.nb-eyebrow){display:none}
.nb-single .nb-wrap:has(> .nb-cpt-body > .nb-content > .has-bg-image:first-child)>.nb-cpt-body{order:-1;max-width:none;margin:0}
.nb-single .nb-cpt-body>.nb-content{border-radius:var(--vb-r-lg);overflow:hidden}
/* post masthead: compact — rhythm.css insets an image band by --space-xxl; scope a smaller step to post heroes */
.nb-single .nb-cpt-body .nb-section.has-bg-image{--space-xxl:clamp(2.5rem, 5vw, 3.75rem)}
.nb-single .nb-cpt-body .nb-section.has-bg-image .h1,.nb-single .nb-cpt-body .nb-section.has-bg-image h1{font-size:clamp(1.75rem, 1.2rem + 2vw, 2.625rem);margin-bottom:.5rem}
.nb-single .nb-cpt-body .nb-section.has-bg-image .nb-flow>*+*{margin-block-start:.625rem}
/* contact box: full content width, lead left / actions right */
.nb-single .nb-wrap>.nb-single__grid{max-width:none;display:block}
.nb-single .nb-wrap>.nb-single__grid>div{max-width:none}
.nb-single .nb-contact-cta{display:flex;align-items:center;justify-content:space-between;gap:1rem 1.5rem;flex-wrap:wrap;padding:1.5rem 1.75rem}
.nb-single .nb-contact-cta__lead{margin:0;font-family:var(--vb-serif);font-size:1.25rem;font-weight:500;color:var(--vb-navy)}
.nb-single .nb-contact-cta__row{display:flex;gap:.75rem;flex-wrap:wrap;margin:0}
.nb-single .nb-contact-cta__row>a.btn{margin:0;width:auto}
@media (max-width:760px){
  /* phones: tighter card insets so the content uses the width */
  .nb-site .vb-card{padding:1.25rem 1.125rem}
  .nb-site .vb-qa{padding:1.25rem 1.125rem}
  .nb-site .vb-review{padding:1.375rem 1.25rem}
  .nb-site .vb-formcard{padding:1.25rem 1rem}
  .nb-site .vb-callout,.nb-site .vb-mailcard{padding:.875rem 1rem}
  .nb-site .vb-infocard{padding:.25rem 1.125rem}
  .nb-site .vb-post{padding:1.375rem 1.25rem 1.25rem}
  .nb-site .vb-post__img{width:calc(100% + 2.5rem);margin:-1.375rem -1.25rem .5rem}
  .nb-single .nb-contact-cta,:is(.nb-site,.nb-content,.nb-single) .nb-midcta{padding:1.125rem 1.125rem}
  /* phones: the post runs edge to edge; the contact box keeps the page gutter (shared content edge) */
  .nb-single .nb-wrap:has(> .nb-cpt-body > .nb-content > .has-bg-image:first-child){padding-inline:0;padding-top:0}
  .nb-single .nb-wrap:has(> .nb-cpt-body > .nb-content > .has-bg-image:first-child)>.nb-single__grid{margin-inline:var(--nb-pad)}
  .nb-single .nb-cpt-body>.nb-content{border-radius:0}
  .nb-single .nb-contact-cta{flex-direction:column;align-items:stretch}
  .nb-single .nb-contact-cta__row>a.btn{flex:1}
}
.nb-single .nb-cpt-body>.nb-content{padding:0}
.nb-single .nb-contact-cta{background:var(--vb-sand);border:0;border-radius:var(--vb-r-md);padding:1.25rem 1.375rem}
.nb-single .nb-contact-cta__lead{font-weight:600;color:var(--vb-ink)}
/* image-hero lead copy: readable, not display-sized */
.nb-content .nb-section.has-bg-image p{font-size:clamp(1rem, .92rem + .35vw, 1.125rem);line-height:1.6;max-width:40rem;margin-inline:auto}
/* a filled last band must meet the closing CTA — the content wrapper's own bottom padding showed as a paper strip */
.nb-content>.nb-content:has(> [data-fill]:not([data-fill="none"]):last-child){padding-bottom:0}

/* ── RESPONSIVE (mobile = Forside.dc.html 1a/2a/3a) ─────────────────────────────────────────── */
@media (max-width:1000px){
  .nb-site .vb-hd__nav{display:none}
  .nb-site .vb-hd__in{padding:.9375rem 1.25rem .875rem;min-height:4.25rem}
  .nb-site .vb-hero__grid,.nb-site .vb-hero__grid-town{grid-template-columns:1fr;gap:2rem}
  .nb-site .vb-local__grid,.nb-site .vb-know__grid,.nb-site .vb-contact__grid{grid-template-columns:1fr}
  .nb-site .vb-quote__grid,.nb-site .vb-quote__grid-sm{grid-template-columns:240px 1fr;gap:2rem}
  .nb-site .vb-near__list{grid-template-columns:repeat(2,1fr)}
  .nb-site .vb-cards-3{grid-template-columns:repeat(2,1fr)}
  .nb-site .vb-ft__grid{grid-template-columns:1fr 1fr}
  .nb-site .vb-ft__brand{grid-column:1 / -1}
  body .nb-burger{top:.8rem}
}
@media (max-width:760px){
  /* rhythm.css zeroes a first image band's top padding on phones (image-on-top layout); ours is a background, so the inset moves to the inner container */
  .nb-content .nb-section.has-bg-image>.nb-contain{padding-block:2.5rem}
  .nb-site .btn,.nb-cpt-bespoke .btn{white-space:normal;text-align:center}
  .nb-site .vb-brand .vb-brand__mark{height:38px}
  .nb-site .vb-brand .vb-brand__word{height:30px}
  .nb-site .vb-hero__photo{height:232px;border-radius:var(--vb-r-md)}
  .nb-site .vb-hero .vb-actions{flex-direction:column}
  .nb-site .vb-hero .vb-actions .btn{width:100%}
  .nb-site .vb-trust{gap:.5rem;font-size:.75rem}
  .nb-site .vb-proof__in{justify-content:flex-start;gap:.5rem .75rem}
  .nb-site .vb-proof__quote{font-size:1rem;flex-basis:100%}
  .nb-site .sec-head.vb-head-center{text-align:left;margin-inline:0}
  .nb-site .vb-steps__list{grid-template-columns:1fr;gap:0}
  .nb-site .vb-step{display:grid;grid-template-columns:34px 1fr;column-gap:1rem;text-align:left;padding:1rem 0;border-bottom:1px solid var(--vb-line)}
  .nb-site .vb-step__n{width:34px;height:34px;font-size:.9375rem;margin:0;grid-row:span 2}
  .nb-site .vb-step__title{font-size:.9375rem;margin-bottom:.1875rem}
  .nb-site .vb-step p{font-size:.84375rem}
  .nb-site .vb-cards-3,.nb-site .vb-cards-2{grid-template-columns:1fr}
  .nb-site .vb-pricecard{grid-template-columns:1fr;padding:1.75rem 1.25rem;gap:1.25rem}
  .nb-site .vb-pricecard__cta{text-align:left}
  .nb-site .vb-quote__grid,.nb-site .vb-quote__grid-sm{grid-template-columns:1fr}
  .nb-site .vb-quote__photo,.nb-site .vb-quote__grid-sm .vb-quote__photo{height:280px}
  .nb-site .vb-map{height:240px}
  .nb-site .vb-banner{height:220px}
  .nb-site .vb-know__photo{height:260px}
  .nb-site .vb-near__list,.nb-site .vb-areas__list{grid-template-columns:1fr}
  .nb-site .vb-ft{padding:2rem 0 7rem}
  .nb-site .vb-ft__grid{grid-template-columns:1fr;gap:1.25rem}
  .nb-site .vb-mbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:55;background:color-mix(in srgb, var(--vb-navy-deep) 94%, transparent);backdrop-filter:blur(8px);border-top:1px solid color-mix(in srgb, var(--vb-paper) 12%, transparent);padding:.5rem 1rem .6875rem}
  .nb-site .vb-mbar__note{text-align:center;font-size:.65625rem;font-weight:500;letter-spacing:.02em;color:var(--vb-on-dark-soft);margin-bottom:.4375rem}
  .nb-site .vb-mbar__row{display:flex;gap:.625rem}
  .nb-site .vb-mbar .btn{--btn-padding-block:.8125rem;--btn-padding-inline:1rem;font-size:.9375rem;border-radius:12px}
  .nb-site .vb-mbar .btn{width:auto}
  .nb-site .vb-mbar .vb-mbar__call{flex:1}
  .nb-site .vb-mbar .vb-mbar__mail{font-size:.875rem}
}
/* ── GALLERY + TRUSTPILOT (content pages: kister og urner, blomster) ──────────────────────────────
   Page content, so the bands are Etch blocks an editor can change; behaviour comes from functions.php. */
.nb-content .nb-contain>:is(.vb-gal,.vb-tp-slot,.vb-gal-head,.vb-gal-note){max-width:none}
.nb-content .nb-contain>.sec-head{margin-bottom:2rem}
.nb-content .vb-gal-head{margin:2.75rem 0 1.25rem;font-size:1.375rem;line-height:1.25}
:is(.nb-site,.nb-content) .vb-gal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;margin:0;padding:0}
:is(.nb-site,.nb-content) .vb-gal__item{margin:0}
:is(.nb-site,.nb-content) .vb-gal__item>a{display:block;border-radius:var(--vb-r-md);overflow:hidden;background:var(--vb-sand);box-shadow:0 1px 0 color-mix(in srgb, var(--vb-navy) 8%, transparent)}
:is(.nb-site,.nb-content) .vb-gal__item img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transition:transform .5s ease}
:is(.nb-site,.nb-content) .vb-gal.vb-gal--square img{aspect-ratio:1}
:is(.nb-site,.nb-content) .vb-gal__item>a:hover img,:is(.nb-site,.nb-content) .vb-gal__item>a:focus-visible img{transform:scale(1.035)}
:is(.nb-site,.nb-content) .vb-gal__cap{margin:.75rem 0 0;font-size:.9375rem;font-weight:600;line-height:1.35;color:var(--vb-navy)}
:is(.nb-site,.nb-content) .vb-gal-note{margin:1.5rem 0 0;font-size:.9375rem;color:var(--vb-muted)}
.nb-content .vb-tp{margin-top:.5rem;min-height:140px}
.nb-content .vb-tp a{color:var(--vb-navy)}
.vb-lb{position:fixed;inset:0;margin:auto;border:0;padding:0;background:transparent;width:fit-content;height:fit-content;max-width:min(92vw,1100px);max-height:92vh;overflow:visible}
.vb-lb::backdrop{background:color-mix(in srgb, #0f2436 88%, transparent)}
.vb-lb__fig{margin:0;text-align:center}
.vb-lb__img{display:block;max-width:100%;max-height:82vh;width:auto;height:auto;margin:0 auto;border-radius:var(--vb-r-md)}
.vb-lb__cap{margin-top:.75rem;font-family:var(--vb-sans);font-size:1rem;color:var(--vb-paper)}
.vb-lb__close,.vb-lb__nav{position:fixed;border:0;background:color-mix(in srgb, var(--vb-paper) 14%, transparent);color:var(--vb-paper);width:3rem;height:3rem;border-radius:50%;font-size:2rem;line-height:1;cursor:pointer}
.vb-lb__close{top:1rem;right:1rem}
.vb-lb__nav{top:50%;translate:0 -50%}
.vb-lb__prev{left:1rem}
.vb-lb__next{right:1rem}
.vb-lb.is-single .vb-lb__nav{display:none}
.vb-lb :is(.vb-lb__close,.vb-lb__nav):focus-visible{outline:2px solid var(--vb-paper);outline-offset:2px}
@media (max-width:1000px){:is(.nb-site,.nb-content) .vb-gal{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){
  :is(.nb-site,.nb-content) .vb-gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
  :is(.nb-site,.nb-content) .vb-gal__item>a{border-radius:var(--vb-r-sm, 10px)}
  :is(.nb-site,.nb-content) .vb-gal__cap{font-size:.875rem;margin-top:.5rem}
  .vb-lb__nav{top:auto;bottom:1rem;translate:none}
}
/* ── FAQ ACCORDION (Spørgsmål og svar) — native <details>, so it works without JS and stays editable ── */
.nb-content .nb-contain>:is(.vb-faq,.vb-faq__more){max-width:52rem;margin-inline:auto}
.nb-content .vb-faq{display:grid;gap:.75rem}
.nb-content .vb-faq__item{background:var(--vb-sand);border-radius:var(--vb-r-md);transition:background-color .2s ease}
.nb-content .vb-faq__item[open]{background:color-mix(in srgb, var(--vb-sand) 55%, var(--white))}
.nb-content .vb-faq__q{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1.25rem 1.5rem;cursor:pointer;list-style:none;font-family:var(--vb-serif);font-size:1.1875rem;font-weight:500;line-height:1.35;color:var(--vb-navy)}
.nb-content .vb-faq__q::-webkit-details-marker{display:none}
.nb-content .vb-faq__q::after{content:"";flex:none;width:1.75rem;height:1.75rem;border-radius:50%;background:linear-gradient(var(--vb-clay),var(--vb-clay)) center/.75rem 2px no-repeat,linear-gradient(var(--vb-clay),var(--vb-clay)) center/2px .75rem no-repeat,var(--vb-paper);transition:transform .25s ease}
.nb-content .vb-faq__item[open]>.vb-faq__q::after{transform:rotate(45deg)}
.nb-content .vb-faq__q:hover{color:var(--vb-clay)}
.nb-content .vb-faq__q:focus-visible{outline:2px solid var(--vb-navy);outline-offset:-2px;border-radius:var(--vb-r-md)}
.nb-content .vb-faq__a{padding:0 1.5rem 1.5rem;font-size:1.0625rem;line-height:1.7;color:var(--vb-ink)}
.nb-content .vb-faq__a>*{margin:0}
.nb-content .vb-faq__a>*+*{margin-top:.875rem}
.nb-content .vb-faq__a ul{padding-left:1.25rem}
.nb-content .vb-faq__a li+li{margin-top:.25rem}
.nb-content .vb-faq__a a{color:var(--vb-navy);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--vb-clay) 60%, transparent);text-underline-offset:3px}
.nb-content .vb-faq__more{margin:2rem 0 0;font-size:1.0625rem;color:var(--vb-muted)}
.nb-content .vb-faq__more a{color:var(--vb-navy);font-weight:600}
@media (max-width:640px){
  .nb-content .vb-faq__q{padding:1rem 1.125rem;font-size:1.0625rem}
  .nb-content .vb-faq__a{padding:0 1.125rem 1.25rem;font-size:1rem}
}
/* ── VIDEO (core/video in page content — Økonomi) ── */
.nb-content .wp-block-video{margin:2rem 0}
.nb-content .wp-block-video video{display:block;width:100%;height:auto;aspect-ratio:16/9;border-radius:var(--vb-r-md);background:var(--vb-navy);box-shadow:var(--vb-shadow)}
@media (prefers-reduced-motion:reduce){
  .nb-content .vb-faq__item,.nb-content .vb-faq__q::after{transition:none}
  :is(.nb-site,.nb-content) .vb-gal__item img{transition:none}
  :is(.nb-site,.nb-content) .vb-gal__item>a:hover img{transform:none}
  .nb-site a.vb-card,.nb-site .vb-town,.nb-site .vb-near__item,.nb-site .vb-dept,.btn{transition:none}
  .nb-site a.vb-card:hover{transform:none}
}
