/* NF-Polering – sitestyling til Elementor. Værdier 1:1 med Lovable-designet (Tailwind). */
:root {
	--nf-bg: #fafcfe;
	--nf-fg: #0c2842;
	--nf-card: #fff;
	--nf-primary: #194f81;
	--nf-primary-fg: #fafcfd;
	--nf-secondary: #e7f0f8;
	--nf-muted-fg: #4f606d;
	--nf-accent: #d8ebfb;
	--nf-border: #d4e0e6;
	--nf-input: #ccdae0;
	--nf-ink: #0a2d4c;
	--nf-ink-fg: #eef7f9;
	--nf-aqua: #4f8ec8;
	--nf-mist: #e8f1fa;
	--nf-sun: #f7cc4b;
	--nf-sky: linear-gradient(180deg, #f2f7fc, #e7f0f8);
	--nf-ink-grad: linear-gradient(150deg, #0b3c67, #05223f);
	--nf-shadow-soft: 0 20px 50px -24px rgba(10, 45, 76, .35);
	--nf-shadow-glow: 0 18px 40px -16px rgba(25, 79, 129, .55);
	--nf-font: "Barlow", ui-sans-serif, system-ui, sans-serif;
}

/* ---------- Grundlag ---------- */
html { scroll-padding-top: 96px; }
body { background-color: var(--nf-bg); color: var(--nf-fg); font-family: var(--nf-font); -webkit-font-smoothing: antialiased; line-height: 1.5; }
body a { color: inherit; }
.elementor svg.lucide { fill: none !important; stroke: currentColor; }
.elementor h1, .elementor h2, .elementor h3 { letter-spacing: -.01em; }
.elementor .nf-text p, .elementor .nf-text dl, .elementor .nf-text dd, .elementor .nf-text ul,
.elementor .elementor-widget-text-editor p, .elementor .elementor-widget-text-editor dl, .elementor .elementor-widget-text-editor dd { margin: 0; padding: 0; }
.elementor .nf-text { color: inherit; font-size: 1rem; line-height: 1.5rem; }
.elementor .nf-text a { color: inherit; }

/* ---------- Typografi ---------- */
.elementor .nf-eyebrow .elementor-heading-title {
	font-family: var(--nf-font); text-transform: uppercase; letter-spacing: .16em; color: var(--nf-primary);
	font-size: .75rem; line-height: 1rem; font-weight: 800;
}
.elementor .nf-eyebrow--aqua .elementor-heading-title { color: var(--nf-aqua); }
.elementor .nf-h1 .elementor-heading-title, .elementor .nf-h2 .elementor-heading-title, .elementor .nf-h-cta .elementor-heading-title,
.elementor .nf-svc-t .elementor-heading-title {
	font-family: var(--nf-font); font-weight: 700; letter-spacing: -.02em; color: var(--nf-ink);
}
.elementor .nf-h1 .elementor-heading-title em, .elementor .nf-h2 .elementor-heading-title em { font-style: normal; color: var(--nf-primary); }
.elementor .nf-h1 .elementor-heading-title { font-size: 2.25rem; line-height: 1.05; }
@media (min-width: 640px) { .elementor .nf-h1 .elementor-heading-title { font-size: 3rem; } }
@media (min-width: 1024px) { .elementor .nf-h1:not(.nf-h1--md) .elementor-heading-title { font-size: 3.75rem; } }
.elementor .nf-h1--light .elementor-heading-title { color: var(--nf-ink-fg); }
.elementor .nf-h2 .elementor-heading-title { font-size: 1.875rem; line-height: 1.25; }
@media (min-width: 640px) { .elementor .nf-h2 .elementor-heading-title { font-size: 2.25rem; } }
.elementor .nf-h-cta .elementor-heading-title { font-size: 2.25rem; line-height: 1.05; color: var(--nf-ink-fg); max-width: 48rem; margin: 0 auto; }
@media (min-width: 640px) { .elementor .nf-h-cta .elementor-heading-title { font-size: 3.75rem; } }
.elementor .nf-lead { font-size: 1.125rem; line-height: 2rem; color: var(--nf-muted-fg); max-width: 36rem; }
.elementor .nf-lead--light { color: rgba(238, 247, 249, .8); }
.elementor .nf-body { line-height: 2rem; color: var(--nf-muted-fg); }
.elementor .nf-muted { color: var(--nf-muted-fg); }
.elementor .nf-max3 { max-width: 48rem; }
.elementor .nf-max-xl { max-width: 36rem; }
.elementor .nf-max-md { max-width: 28rem; }
.elementor .nf-max-3xl { max-width: 48rem; margin-left: auto; margin-right: auto; width: 100%; }
.elementor .nf-pill .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 8px; border-radius: 9999px; background: rgba(238, 247, 249, .1);
	padding: 8px 16px; font-family: var(--nf-font); font-size: .75rem; line-height: 1rem; font-weight: 700; text-transform: uppercase;
	letter-spacing: .14em; color: var(--nf-ink-fg); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}

/* ---------- Knapper ---------- */
.elementor .nf-btn .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; border-radius: 9999px;
	font-family: var(--nf-font); font-weight: 700; font-size: 1rem; line-height: 1.5rem; height: 52px; padding: 0 28px;
	text-decoration: none; transition: all .15s cubic-bezier(.4, 0, .2, 1); box-shadow: none; border: 0; letter-spacing: normal; text-transform: none;
}
.elementor .nf-btn .elementor-button-content-wrapper { display: inline-flex; align-items: center; gap: 8px; }
.elementor .nf-btn .elementor-button-icon { display: inline-flex; margin: 0; }
.elementor .nf-btn .elementor-button-icon svg { width: 16px; height: 16px; }
.elementor .nf-btn--lg .elementor-button { height: 40px; padding: 0 24px; font-size: .875rem; line-height: 1.25rem; }
.elementor .nf-btn--block, .elementor .nf-btn--block .elementor-button { width: 100%; }
.elementor .nf-btn--hero .elementor-button { background-color: var(--nf-primary); color: var(--nf-primary-fg); box-shadow: var(--nf-shadow-glow); }
.elementor .nf-btn--hero .elementor-button:hover, .elementor .nf-btn--hero .elementor-button:focus-visible { background-color: rgba(25, 79, 129, .9); color: var(--nf-primary-fg); transform: translateY(-2px); }
.elementor .nf-btn--soft .elementor-button { border: 1px solid var(--nf-border); background-color: var(--nf-card); color: var(--nf-fg); }
.elementor .nf-btn--soft .elementor-button:hover { background-color: var(--nf-mist); color: var(--nf-fg); }
.elementor .nf-btn--glass .elementor-button { border: 1px solid rgba(238, 247, 249, .25); background-color: rgba(238, 247, 249, .1); color: var(--nf-ink-fg); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.elementor .nf-btn--glass .elementor-button:hover { background-color: rgba(238, 247, 249, .2); color: var(--nf-ink-fg); }
.elementor .nf-btn--ink .elementor-button { background-color: var(--nf-ink); color: var(--nf-ink-fg); }
.elementor .nf-btn--ink .elementor-button:hover { background-color: rgba(10, 45, 76, .9); color: var(--nf-ink-fg); }
@media (max-width: 639px) {
	.elementor .nf-btnrow.e-con { --flex-direction: column; flex-direction: column; align-items: stretch; }
	.elementor .nf-btnrow .elementor-widget-button, .elementor .nf-btnrow .elementor-button { width: 100%; }
}
.nf-pulse .elementor-button { animation: nf-cta-pulse 1.5s ease-out infinite; }
@keyframes nf-cta-pulse {
	0% { box-shadow: 0 0 0 0 rgba(79, 142, 200, .55); transform: scale(1.05); }
	12% { transform: scale(1); }
	50% { box-shadow: 0 0 0 12px rgba(79, 142, 200, 0); }
	100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(79, 142, 200, 0); }
}

/* ---------- Billeder ---------- */
.elementor .nf-img { text-align: left; width: 100%; }
.elementor .nf-img img { display: block; width: 100%; height: auto; object-fit: cover; border-radius: 32px; max-width: 100%; }
.elementor .nf-img--43 img { aspect-ratio: 4 / 3; }
.elementor .nf-img--34 img { aspect-ratio: 3 / 4; border-radius: 22px; }
.elementor .nf-img--45 img { aspect-ratio: 4 / 5; }
@media (min-width: 1024px) { .elementor .nf-img--45 img { max-width: 28rem; } }
.elementor .nf-img--1610 img { aspect-ratio: 16 / 10; border-radius: 0; }
.elementor .nf-img--shadow img { box-shadow: var(--nf-shadow-soft); }

/* ---------- Animation ved indlæsning (animate-rise) ---------- */
.nf-rise { animation: nf-rise .8s cubic-bezier(.2, .7, .2, 1) both; }
.nf-rise--d150 { animation-delay: .15s; }
@keyframes nf-rise { 0% { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .nf-rise, .nf-pulse .elementor-button { animation: none; } }
body.elementor-editor-active .nf-rise { animation: none; }

/* ---------- Sidehero (Ie) ---------- */
.elementor .nf-hero-page > .e-con-inner { min-width: 0; }
.elementor .nf-hero-page .nf-btnrow, .elementor .nf-hero-home .nf-btnrow { flex-wrap: wrap; }

/* ---------- Forside-hero ---------- */
.elementor .nf-hero-home { position: relative; overflow: hidden; isolation: isolate; color: var(--nf-ink-fg); }
.elementor .nf-hero-home::before {
	content: ""; position: absolute; inset: 0; z-index: 0; display: block; opacity: 1; mix-blend-mode: normal;
	background-image: linear-gradient(100deg, rgba(10, 45, 76, .92) 0%, rgba(10, 45, 76, .7) 55%, rgba(10, 45, 76, .45) 100%);
}
.elementor .nf-hero-home > .e-con-inner { position: relative; z-index: 1; }
.elementor .nf-hero-grid > .e-con { min-width: 0; }
.elementor .nf-stats { max-width: 32rem; border-top: 1px solid rgba(238, 247, 249, .15); padding-top: 24px !important; }
.elementor .nf-stat dt { font-size: .75rem; line-height: 1rem; color: rgba(238, 247, 249, .6); }
.elementor .nf-stat dd { margin-top: 4px; font-size: 1.5rem; line-height: 2rem; font-weight: 700; color: var(--nf-ink-fg); }
.elementor .nf-formcard { border-radius: 22px; background: var(--nf-card); color: var(--nf-fg); padding: 24px !important; box-shadow: var(--nf-shadow-soft); scroll-margin-top: 112px; }
.elementor .nf-formcard--border { border-radius: 28px; border: 1px solid var(--nf-border); }
@media (min-width: 640px) { .elementor .nf-formcard { padding: 32px !important; } }
.elementor .nf-formcard-h .elementor-heading-title { font-family: var(--nf-font); font-size: 1.5rem; line-height: 2rem; font-weight: 700; color: var(--nf-ink); letter-spacing: normal; }
@media (min-width: 640px) { .elementor .nf-formcard-h .elementor-heading-title { font-size: 1.875rem; line-height: 2.25rem; } }
.elementor .nf-formcard-p { margin-bottom: 24px !important; font-size: .875rem; line-height: 1.25rem; color: var(--nf-muted-fg); }

/* ---------- Fordele (4 kort) ---------- */
.elementor .nf-feature, .elementor .nf-ccard, .elementor .nf-headphone { --icon-box-icon-margin: 0px !important; }
.elementor .nf-feature .elementor-icon-box-wrapper { gap: 0 !important; }
.elementor .nf-ccard .elementor-icon-box-wrapper { gap: 16px !important; }
.elementor .nf-headphone .elementor-icon-box-wrapper { gap: 12px !important; }
.elementor .nf-feature { border-radius: 22px; border: 1px solid var(--nf-border); background: var(--nf-card); padding: 24px; }
.elementor .nf-feature .elementor-icon-box-wrapper { display: flex; flex-direction: column; align-items: flex-start; text-align: left; gap: 0; }
.elementor .nf-feature .elementor-icon-box-icon { margin: 0 !important; display: block; }
.elementor .nf-feature .elementor-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 18px; background: var(--nf-mist); color: var(--nf-primary); font-size: 20px; padding: 0; }
.elementor .nf-feature .elementor-icon svg { width: 20px; height: 20px; }
.elementor .nf-feature .elementor-icon-box-content { width: 100%; }
.elementor .nf-feature .elementor-icon-box-title { margin: 20px 0 0; font-family: var(--nf-font); font-size: 1rem; line-height: 1.5rem; font-weight: 700; color: var(--nf-ink); letter-spacing: normal; }
.elementor .nf-feature .elementor-icon-box-description { margin: 6px 0 0; font-size: .875rem; line-height: 1.25rem; color: var(--nf-muted-fg); }

/* ---------- Sektionsoverskrift (Q) ---------- */
.elementor .nf-sechead { max-width: 42rem; margin-left: auto; margin-right: auto; text-align: center; }
.elementor .nf-sechead .elementor-widget { width: 100%; text-align: center; }
.elementor .nf-sechead .elementor-heading-title { text-align: center; }

/* ---------- Ydelser (forside) ---------- */
.elementor a.nf-svc {
	display: flex; flex-direction: column; overflow: hidden; border-radius: 28px; border: 1px solid var(--nf-border); background: var(--nf-card);
	text-decoration: none; color: inherit; transition: all .15s cubic-bezier(.4, 0, .2, 1);
}
.elementor a.nf-svc:hover { transform: translateY(-4px); box-shadow: var(--nf-shadow-soft); }
.elementor .nf-svc-img { overflow: hidden; }
.elementor .nf-svc-img img { transition: transform .7s; }
.elementor a.nf-svc:hover .nf-svc-img img { transform: scale(1.05); }
.elementor .nf-svc-ico .elementor-icon-wrapper, .elementor .nf-quote .elementor-icon-wrapper, .elementor .nf-tak-ico .elementor-icon-wrapper { line-height: 0; }
.elementor .nf-svc-ico .elementor-icon { color: var(--nf-primary); font-size: 24px; display: inline-flex; }
.elementor .nf-svc-ico .elementor-icon svg { width: 24px; height: 24px; }
.elementor .nf-svc-price .elementor-heading-title { border-radius: 9999px; background: var(--nf-mist); padding: 4px 12px; font-family: var(--nf-font); font-size: .75rem; line-height: 1rem; font-weight: 700; color: var(--nf-ink); }
.elementor .nf-svc-t .elementor-heading-title { font-size: 1.875rem; line-height: 2.25rem; }
.elementor .nf-svc-d { font-size: .875rem; line-height: 1.25rem; color: var(--nf-muted-fg); }
.elementor .nf-more { display: inline-flex; align-items: center; gap: 6px; font-size: .875rem; line-height: 1.25rem; font-weight: 700; color: var(--nf-primary); }
.elementor .nf-more svg { width: 16px; height: 16px; transition: transform .15s; }
.elementor a.nf-svc:hover .nf-more svg { transform: translateX(4px); }

/* ---------- Uger (forside) ---------- */
.elementor .nf-week { border-radius: 22px; border: 1px solid var(--nf-border); background: var(--nf-card); padding: 16px; text-align: center; }
.elementor .nf-wk { font-family: var(--nf-font); font-weight: 700; letter-spacing: -.02em; font-size: 1.875rem; line-height: 2.25rem; color: var(--nf-ink); }
.elementor .nf-wk-l { margin-top: 4px !important; font-size: .75rem; line-height: 1rem; color: var(--nf-muted-fg); }

/* ---------- Dækningsområde ---------- */
.elementor .nf-citylist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; row-gap: 10px; list-style: none; }
@media (min-width: 640px) { .elementor .nf-citylist { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.elementor .nf-citylist li { margin: 0; }
.elementor .nf-citylist a { display: inline-flex; align-items: center; gap: 8px; font-size: .875rem; line-height: 1.25rem; font-weight: 600; color: var(--nf-ink); text-decoration: none; transition: color .15s; }
.elementor .nf-citylist a:hover { color: var(--nf-primary); }
.elementor .nf-citylist a span { width: 6px; height: 6px; flex-shrink: 0; border-radius: 9999px; background: var(--nf-primary); }
.elementor .nf-map { position: relative; margin: 0 auto; width: 100%; max-width: 24rem; }
.elementor .nf-map img { display: block; width: 100%; height: auto; }
.elementor .nf-map-dot { position: absolute; width: 8px; height: 8px; transform: translate(-50%, -50%); border-radius: 9999px; border: 1px solid #fff; background: var(--nf-ink); }
.elementor .nf-map-label { position: absolute; }
.elementor .nf-map-label span { display: inline-block; border-radius: 9999px; background: #fff; padding: 4px 12px; font-size: .75rem; line-height: 1rem; font-weight: 700; white-space: nowrap; color: var(--nf-ink); box-shadow: var(--nf-shadow-soft), 0 0 0 1px var(--nf-border); }

/* ---------- Anmeldelser ---------- */
.elementor .nf-review { border-radius: 22px; background: var(--nf-card); padding: 28px !important; box-shadow: var(--nf-shadow-soft); }
.elementor .nf-quote .elementor-icon { color: var(--nf-aqua); font-size: 28px; }
.elementor .nf-quote .elementor-icon svg { width: 28px; height: 28px; }
.elementor .nf-quote .elementor-icon-wrapper { text-align: left; line-height: 0; }
.elementor .nf-quote, .elementor .nf-review .elementor-widget { text-align: left; width: 100%; }
.elementor .nf-stars { margin-top: 12px; display: flex; gap: 2px; color: var(--nf-sun); }
.elementor .nf-stars svg { width: 16px; height: 16px; fill: currentColor; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.elementor .nf-review-q { margin-top: 16px; flex-grow: 1; font-size: 1.125rem; line-height: 1.75rem; color: var(--nf-ink); }
.elementor .nf-review-by { margin-top: 24px; font-size: .875rem; line-height: 1.25rem; }
.elementor .nf-review-by strong { font-weight: 700; color: var(--nf-ink); }
.elementor .nf-review-by span { display: block; color: var(--nf-muted-fg); }

/* ---------- Prispakker (Be) ---------- */
.elementor .nf-price { position: relative; border-radius: 28px; border: 1px solid var(--nf-border); background: var(--nf-card); padding: 32px !important; color: var(--nf-fg); }
.elementor .nf-price--feat { border: 0; background-image: var(--nf-ink-grad); color: var(--nf-ink-fg); box-shadow: var(--nf-shadow-soft); }
.elementor .nf-badge-pop-w { position: absolute; right: 24px; top: 24px; width: auto !important; }
.elementor .nf-badge-pop { display: inline-block; border-radius: 9999px; background: var(--nf-aqua); padding: 4px 12px; font-size: .75rem; line-height: 1rem; font-weight: 700; color: var(--nf-ink); }
.elementor .nf-price-t .elementor-heading-title { font-family: var(--nf-font); font-size: 1.125rem; line-height: 1.75rem; font-weight: 700; color: inherit; letter-spacing: normal; }
.elementor .nf-price--feat .nf-price-t .elementor-heading-title { color: var(--nf-ink-fg); }
.elementor .nf-price:not(.nf-price--feat) .nf-price-t .elementor-heading-title { color: var(--nf-fg); }
.elementor .nf-price-big { font-family: var(--nf-font); font-weight: 700; letter-spacing: -.02em; font-size: 3rem; line-height: 1; }
.elementor .nf-price-unit { margin-left: 8px; font-size: .875rem; line-height: 1.25rem; color: var(--nf-muted-fg); }
.elementor .nf-price--feat .nf-price-unit { color: rgba(238, 247, 249, .6); }
.elementor .nf-price-d { font-size: .875rem; line-height: 1.25rem; color: var(--nf-muted-fg); }
.elementor .nf-price--feat .nf-price-d { color: rgba(238, 247, 249, .7); }
.elementor .nf-price-list .elementor-icon-list-items { font-size: .875rem; line-height: 1.25rem; }
.elementor .nf-price-list .elementor-icon-list-item { align-items: flex-start; }
.elementor .nf-price-list .elementor-icon-list-item:not(:last-child) { padding-bottom: 10px; margin-bottom: 0; }
.elementor .nf-price-list .elementor-icon-list-icon { padding-top: 2px; }
.elementor .nf-price-list .elementor-icon-list-icon svg { width: 16px; height: 16px; color: var(--nf-primary); }
.elementor .nf-price--feat .nf-price-list .elementor-icon-list-icon svg { color: var(--nf-aqua); }
.elementor .nf-price-list .elementor-icon-list-text { color: inherit; padding-left: 10px; }

/* ---------- Tjekliste (to kolonner) ---------- */
.elementor .nf-checks .elementor-icon-list-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; font-size: .875rem; line-height: 1.25rem; font-weight: 600; color: var(--nf-ink); }
.elementor .nf-checks .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; align-items: flex-start; }
.elementor .nf-checks .elementor-icon-list-item::after { display: none !important; }
.elementor .nf-checks .elementor-icon-list-icon svg { width: 16px; height: 16px; color: var(--nf-primary); }
.elementor .nf-checks .elementor-icon-list-text { color: var(--nf-ink); padding-left: 8px; }
.elementor .nf-cityline { font-size: .875rem; line-height: 1.25rem; color: var(--nf-muted-fg); }
.elementor .nf-cityline strong { font-weight: 700; color: var(--nf-ink); }
.elementor .nf-cityline a { text-decoration: none; }
.elementor .nf-cityline a:hover { color: var(--nf-primary); text-decoration: underline; }

/* ---------- Store links (telefon / mail) ---------- */
.elementor .nf-biglink .elementor-icon-list-item > a, .elementor .nf-biglink .elementor-icon-list-item { display: inline-flex; align-items: center; gap: 12px; }
.elementor .nf-biglink .elementor-icon-list-text { font-family: var(--nf-font); font-weight: 700; letter-spacing: -.02em; font-size: 1.5rem; line-height: 2rem; color: var(--nf-primary); padding: 0; word-break: break-all; }
@media (min-width: 640px) { .elementor .nf-biglink .elementor-icon-list-text { font-size: 1.875rem; line-height: 2.25rem; } }
.elementor .nf-biglink .elementor-icon-list-icon svg { width: 24px; height: 24px; color: var(--nf-primary); }
.elementor .nf-biglink--u a:hover .elementor-icon-list-text { text-decoration: underline; }

/* ---------- Kontaktkort (kontaktside) ---------- */
.elementor .nf-kontakt-left > .nf-ccard { margin-top: 16px; }
.elementor .nf-kontakt-left > .nf-lead + .nf-ccard { margin-top: 40px; }
.elementor .nf-ccard { border-radius: 22px; background: var(--nf-card); padding: 20px; }
.elementor .nf-ccard--shadow { box-shadow: var(--nf-shadow-soft); }
.elementor .nf-ccard .elementor-icon-box-wrapper { display: flex; flex-direction: row; align-items: center; gap: 16px; text-align: left; }
.elementor .nf-ccard--small .elementor-icon-box-wrapper { align-items: flex-start; }
.elementor .nf-ccard .elementor-icon-box-icon { margin: 0 !important; flex-shrink: 0; display: block; }
.elementor .nf-ccard .elementor-icon { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border-radius: 9999px; background: var(--nf-mist); color: var(--nf-primary); fill: var(--nf-primary); font-size: 20px; }
.elementor .nf-ccard--primary .elementor-icon { background: var(--nf-primary); color: var(--nf-primary-fg); fill: var(--nf-primary-fg); }
.elementor .nf-ccard .elementor-icon svg { width: 20px; height: 20px; }
.elementor .nf-ccard .elementor-icon-box-content { min-width: 0; }
.elementor .nf-ccard .elementor-icon-box-title { margin: 0; display: block; font-family: var(--nf-font); font-size: .75rem; line-height: 1rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--nf-muted-fg); }
.elementor .nf-ccard .elementor-icon-box-title a { color: inherit; }
.elementor .nf-ccard .elementor-icon-box-description { margin: 0; font-family: var(--nf-font); font-weight: 700; letter-spacing: -.02em; font-size: 1.5rem; line-height: 2rem; color: var(--nf-ink); word-break: break-all; }
@media (min-width: 640px) { .elementor .nf-ccard .elementor-icon-box-description { font-size: 1.875rem; line-height: 2.25rem; } }
.elementor .nf-ccard--small .elementor-icon-box-description { font-weight: 400; letter-spacing: normal; font-size: .875rem !important; line-height: 1.5rem !important; word-break: normal; }

/* ---------- FAQ ---------- */
.elementor .nf-faq .e-n-accordion { border: 0; }
.elementor .nf-faq .e-n-accordion-item { border-bottom: 1px solid var(--nf-border); border-radius: 0; background: transparent; margin: 0; }
.elementor .nf-faq .e-n-accordion-item + .e-n-accordion-item { margin-top: 0; }
.elementor .nf-faq .e-n-accordion-item-title {
	display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 0; border: 0; background: transparent;
	cursor: pointer; list-style: none;
}
.elementor .nf-faq .e-n-accordion-item-title::-webkit-details-marker { display: none; }
.elementor .nf-faq .e-n-accordion-item-title-header { flex: 1 1 auto; }
.elementor .nf-faq .e-n-accordion-item-title-text { font-family: var(--nf-font); font-size: 1rem; line-height: 1.5rem; font-weight: 600; color: var(--nf-ink); letter-spacing: normal; text-align: left; }
.elementor .nf-faq .e-n-accordion-item-title-icon { display: inline-flex; color: var(--nf-muted-fg); }
.elementor .nf-faq .e-n-accordion-item-title-icon svg { width: 16px; height: 16px; transition: transform .2s; }
.elementor .nf-faq .e-n-accordion-item-title-icon .e-closed { display: inline-flex; }
.elementor .nf-faq .e-n-accordion-item-title-icon .e-opened { display: none; }
.elementor .nf-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon .e-closed svg { transform: rotate(180deg); }
.elementor .nf-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon .e-closed { display: inline-flex; }
.elementor .nf-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon .e-opened { display: none; }
.elementor .nf-faq .e-n-accordion-item > .e-con { border: 0; padding: 0 24px 16px 0 !important; background: transparent; }
.elementor .nf-faq-a { font-size: 1rem; line-height: 1.75rem; color: var(--nf-muted-fg); }

/* ---------- CTA (Ta) ---------- */
.elementor .nf-cta-card {
	position: relative; overflow: hidden; border-radius: 32px; background-image: var(--nf-ink-grad); color: var(--nf-ink-fg);
	padding: 56px 24px !important; text-align: center; isolation: isolate;
}
@media (min-width: 640px) { .elementor .nf-cta-card { padding: 80px 48px !important; } }
.elementor .nf-cta-card::before, .elementor .nf-cta-card::after { content: ""; position: absolute; width: 320px; height: 320px; border-radius: 9999px; filter: blur(64px); pointer-events: none; z-index: -1; }
.elementor .nf-cta-card::before { right: -96px; top: -96px; background: rgba(79, 142, 200, .2); }
.elementor .nf-cta-card::after { left: -64px; bottom: -128px; background: rgba(25, 79, 129, .3); }
.elementor .nf-cta-card .elementor-widget { width: 100%; }
.elementor .nf-cta-card .nf-btnrow { width: auto; }
.elementor .nf-cta-card .nf-btnrow .elementor-widget { width: auto; }
.elementor .nf-cta-p { max-width: 36rem; margin-left: auto; margin-right: auto; color: rgba(238, 247, 249, .7); text-align: center; }
@media (max-width: 639px) { .elementor .nf-cta-card .nf-btnrow, .elementor .nf-cta-card .nf-btnrow .elementor-widget { width: 100%; } }

/* ---------- Beregnere i sektioner ---------- */
@media (max-width: 639px) {
	.elementor .nf-sec-prisberegner.e-con, .elementor .nf-sec-calc.e-con { padding-left: 0 !important; padding-right: 0 !important; }
	.elementor .nf-sec-calc .nfpc-card-simple { margin: 0 20px; }
}
.elementor .nf-calc-note { font-size: .875rem; line-height: 1.25rem; color: var(--nf-muted-fg); padding: 0 20px; }
.elementor .nf-calc-note a { font-weight: 700; color: var(--nf-primary); text-decoration: none; }
.elementor .nf-calc-note a:hover { text-decoration: underline; }

/* ---------- Tak og cookiepolitik ---------- */
.elementor .nf-tak { min-height: 60vh; text-align: center; padding-top: 0 !important; padding-bottom: 0 !important; }
.elementor .nf-tak-ico .elementor-icon { color: var(--nf-primary); font-size: 56px; }
.elementor .nf-tak-ico .elementor-icon svg { width: 56px; height: 56px; }
.elementor .nf-tak .elementor-widget { text-align: center; }
.elementor .nf-legal { line-height: 1.75rem; color: var(--nf-muted-fg); }
.elementor .nf-legal p + p, .elementor .nf-legal p + h2, .elementor .nf-legal h2 + p { margin-top: 20px; }
.elementor .nf-legal h2 { padding-top: 16px; font-family: var(--nf-font); font-size: 1.25rem; line-height: 1.75rem; font-weight: 700; color: var(--nf-ink); letter-spacing: normal; margin: 20px 0 0; }

/* ---------- Header ---------- */
.elementor-location-header, .nf-site-header { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; }
.elementor .nf-header { border-bottom: 1px solid rgba(212, 224, 230, .7); background: rgba(250, 252, 254, .9); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); }
.elementor .nf-head-row { min-height: 80px; height: 80px; }
.elementor .nf-logo { flex-shrink: 0; width: auto !important; }
.elementor .nf-logo .elementor-widget { width: auto; }
.elementor .nf-logo-img img { width: 48px; height: 48px; display: block; object-fit: contain; }
@media (min-width: 640px) { .elementor .nf-logo-img img { width: 56px; height: 56px; } }
.elementor .nf-logo-text .elementor-heading-title { font-family: var(--nf-font); font-size: 1.25rem; line-height: 1; font-weight: 800; text-transform: uppercase; letter-spacing: .025em; color: var(--nf-ink); }
.elementor .nf-logo-text .elementor-heading-title a { color: inherit; }
.elementor .nf-logo--light .nf-logo-text .elementor-heading-title { color: var(--nf-ink-fg); }
@media (max-width: 639px) { .elementor .nf-header .nf-logo-text { display: none; } }
.elementor .nf-nav-w { width: auto; }
.nf-nav-list { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.nf-nav-list li { margin: 0; }
.nf-nav-list a { display: block; border-radius: 14px; padding: 8px 16px; font-size: 15px; line-height: 1.5rem; font-weight: 600; color: rgba(12, 40, 66, .75); text-decoration: none; transition: all .15s; }
.nf-nav-list a:hover, .nf-nav-list .current-menu-item > a, .nf-nav-list .current_page_item > a { background: var(--nf-mist); color: var(--nf-fg); }
.elementor .nf-head-right { width: auto !important; }
.elementor .nf-headphone .elementor-icon-box-wrapper { display: flex; flex-direction: row; align-items: center; gap: 12px; text-align: left; }
.elementor .nf-headphone .elementor-icon-box-icon { margin: 0 !important; display: block; }
.elementor .nf-headphone .elementor-icon { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border-radius: 9999px; background: var(--nf-primary); color: var(--nf-primary-fg); fill: var(--nf-primary-fg); font-size: 20px; }
.elementor .nf-headphone .elementor-icon svg { width: 20px; height: 20px; }
.elementor .nf-headphone .elementor-icon-box-content { line-height: 1.25; }
.elementor .nf-headphone .elementor-icon-box-title { margin: 0; display: block; font-family: var(--nf-font); font-size: .75rem; line-height: 1rem; font-weight: 400; color: var(--nf-muted-fg); letter-spacing: normal; }
.elementor .nf-headphone .elementor-icon-box-title a { color: inherit; }
.elementor .nf-headphone .elementor-icon-box-description { margin: 0; font-size: 1rem; line-height: 1.25; font-weight: 700; color: var(--nf-ink); }
.elementor .nf-burger-w { display: none; width: auto; }
.nf-burger { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 9999px; background: var(--nf-ink) !important; color: var(--nf-ink-fg) !important; border: 0 !important; padding: 0 !important; cursor: pointer; }
.nf-burger svg { width: 20px; height: 20px; }
.nf-burger .nf-burger-close { display: none; }
@media (max-width: 1023px) {
	.elementor .nf-nav-w, .elementor .nf-head-right { display: none !important; }
	.elementor .nf-burger-w { display: block; }
}

/* ---------- Mobilmenu ---------- */
.nf-mm { position: fixed; inset: 0; z-index: 9990; display: flex; flex-direction: column; height: 100dvh; overflow-y: auto; background-image: var(--nf-ink-grad); color: var(--nf-ink-fg); font-family: var(--nf-font); animation: nf-menu-reveal .7s cubic-bezier(.7, 0, .2, 1) both; }
.nf-mm[hidden] { display: none; }
.nf-mm-top { display: flex; height: 80px; flex-shrink: 0; align-items: center; justify-content: space-between; width: 100%; max-width: 76rem; margin: 0 auto; padding: 0 20px; }
.nf-mm-logo { display: flex; align-items: center; gap: 12px; color: var(--nf-ink-fg) !important; text-decoration: none; }
.nf-mm-logo img { width: 48px; height: 48px; }
.nf-mm-logo span { display: none; font-size: 1.25rem; line-height: 1; font-weight: 800; text-transform: uppercase; letter-spacing: .025em; }
@media (min-width: 640px) { .nf-mm-logo img { width: 56px; height: 56px; } .nf-mm-logo span { display: block; } }
.nf-mm-close { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 9999px; background: var(--nf-ink) !important; color: var(--nf-ink-fg) !important; border: 0 !important; padding: 0 !important; cursor: pointer; }
.nf-mm-close svg { width: 20px; height: 20px; }
.nf-mm-nav { display: flex; flex: 1 1 auto; flex-direction: column; justify-content: center; gap: 4px; width: 100%; max-width: 76rem; margin: 0 auto; padding: 32px 20px; }
.nf-mm-nav a { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(238, 247, 249, .1); padding: 16px 0; font-size: 1.875rem; line-height: 2.25rem; font-weight: 700; color: var(--nf-ink-fg) !important; text-decoration: none; animation: nf-menu-item .6s cubic-bezier(.2, .7, .2, 1) both; }
.nf-mm-nav a.is-active { color: var(--nf-aqua) !important; }
.nf-mm-nav a svg { width: 28px; height: 28px; opacity: .4; transition: all .15s; fill: none; stroke: currentColor; }
.nf-mm-nav a:hover svg { transform: rotate(45deg); opacity: 1; }
@media (min-width: 640px) { .nf-mm-nav a { font-size: 2.25rem; line-height: 2.5rem; } }
.nf-mm-cta { display: grid; gap: 12px; width: 100%; max-width: 76rem; margin: 0 auto; padding: 0 20px 40px; animation: nf-menu-item .6s cubic-bezier(.2, .7, .2, 1) both; }
.nf-hbtn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 52px; padding: 0 28px; border-radius: 9999px; font-size: 1rem; font-weight: 700; text-decoration: none; transition: all .15s; }
.nf-hbtn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; }
.nf-hbtn--hero { background: var(--nf-primary); color: var(--nf-primary-fg) !important; box-shadow: var(--nf-shadow-glow); }
.nf-hbtn--hero:hover { background: rgba(25, 79, 129, .9); transform: translateY(-2px); }
.nf-hbtn--glass { border: 1px solid rgba(238, 247, 249, .25); background: rgba(238, 247, 249, .1); color: var(--nf-ink-fg) !important; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.nf-hbtn--glass:hover { background: rgba(238, 247, 249, .2); }
html.nf-mm-open, html.nf-mm-open body { overflow: hidden; }
@keyframes nf-menu-reveal { 0% { clip-path: circle(0% at calc(100% - 2.5rem) 2.5rem); } to { clip-path: circle(150% at calc(100% - 2.5rem) 2.5rem); } }
@keyframes nf-menu-item { 0% { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: none; } }

/* ---------- Footer ---------- */
.elementor .nf-footer { color: var(--nf-ink-fg); }
.elementor .nf-foot-about p { max-width: 24rem; }
.elementor .nf-foot-about { max-width: 24rem; font-size: .875rem; line-height: 1.5rem; color: rgba(238, 247, 249, .65); }
.elementor .nf-foot-phone .elementor-icon-list-item > a, .elementor .nf-foot-mail .elementor-icon-list-item > a { display: inline-flex; align-items: center; gap: 8px; }
.elementor .nf-foot-phone .elementor-icon-list-text { font-size: 1.5rem; line-height: 2rem; font-weight: 700; color: var(--nf-ink-fg); padding: 0; }
.elementor .nf-foot-phone .elementor-icon-list-icon svg, .elementor .nf-foot-mail .elementor-icon-list-icon svg { width: 20px; height: 20px; color: var(--nf-aqua); }
.elementor .nf-foot-mail .elementor-icon-list-text { font-size: 1rem; line-height: 1.5rem; color: rgba(238, 247, 249, .8); padding: 0; transition: color .15s; }
.elementor .nf-foot-mail a:hover .elementor-icon-list-text { color: var(--nf-ink-fg); }
.elementor .nf-foot-h .elementor-heading-title { font-family: var(--nf-font); font-size: .75rem; line-height: 1rem; font-weight: 700; text-transform: uppercase; letter-spacing: .16em; color: rgba(238, 247, 249, .5); }
.elementor .nf-foot-links .elementor-icon-list-items { font-size: .875rem; line-height: 1.25rem; }
.elementor .nf-foot-links .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.elementor .nf-foot-links .elementor-icon-list-item + .elementor-icon-list-item { margin-top: 10px !important; }
.elementor .nf-foot-links .elementor-icon-list-icon { display: none; }
.elementor .nf-foot-links .elementor-icon-list-text { color: rgba(238, 247, 249, .8); padding: 0; transition: color .15s; }
.elementor .nf-foot-links a:hover .elementor-icon-list-text { color: var(--nf-ink-fg); }
.elementor .nf-foot-cities .elementor-icon-list-items { line-height: 1.75rem; }
.elementor .nf-foot-cities .elementor-icon-list-item + .elementor-icon-list-item { margin-top: 4px !important; }
.elementor .nf-foot-cities .elementor-icon-list-text { color: rgba(238, 247, 249, .7); }
.elementor .nf-foot-cities:not(.is-open) .elementor-icon-list-item:nth-child(n+7) { display: none; }
.nf-cities-toggle { margin-top: 4px; background: none !important; border: 0 !important; padding: 0 !important; font: inherit; font-size: .875rem; line-height: 1.75rem; font-weight: 700; color: var(--nf-aqua) !important; cursor: pointer; }
.nf-cities-toggle:hover { color: var(--nf-ink-fg) !important; }
.elementor .nf-foot-bar { border-top: 1px solid rgba(238, 247, 249, .1); }
.elementor .nf-foot-small { font-size: .75rem; line-height: 1rem; color: rgba(238, 247, 249, .5); width: auto; }
.elementor .nf-foot-legal { display: flex; flex-wrap: wrap; gap: 16px; }
.elementor .nf-foot-legal a { color: inherit; text-decoration: none; transition: color .15s; }
.elementor .nf-foot-legal a:hover { color: var(--nf-ink-fg); }
@media (max-width: 639px) { .elementor .nf-foot-bottom.e-con > .e-con-inner { flex-direction: column; } }

/* ---------- Cookiebanner ---------- */
.nf-cookie { position: fixed; bottom: 0; left: 0; z-index: 9980; width: 100%; border-top: 1px solid var(--nf-border); background: var(--nf-card); box-shadow: var(--nf-shadow-soft); font-family: var(--nf-font); color: var(--nf-fg); animation: nf-rise .8s cubic-bezier(.2, .7, .2, 1) both; }
.nf-cookie[hidden] { display: none; }
.nf-cookie-in { width: 100%; max-width: 76rem; margin: 0 auto; padding: 16px 20px; }
@media (min-width: 640px) { .nf-cookie-in { padding: 16px 32px; } .nf-mm-top, .nf-mm-nav { padding-left: 32px; padding-right: 32px; } .nf-mm-cta { padding-left: 32px; padding-right: 32px; } }
.nf-cookie-row { display: flex; flex-direction: column; gap: 16px; }
@media (min-width: 1024px) { .nf-cookie-row { flex-direction: row; align-items: center; gap: 32px; } }
.nf-cookie-logo { display: none; width: 56px; height: 56px; flex-shrink: 0; }
@media (min-width: 1024px) { .nf-cookie-logo { display: block; } }
.nf-cookie-txt { min-width: 0; flex: 1 1 0%; }
.nf-cookie-txt h2 { margin: 0; font-family: var(--nf-font); font-size: 1rem; line-height: 1.5rem; font-weight: 700; color: var(--nf-ink); letter-spacing: normal; }
.nf-cookie-txt p { margin: 4px 0 0; font-size: .875rem; line-height: 1.625; color: var(--nf-muted-fg); }
.nf-cookie-txt a { color: inherit; text-decoration: underline; }
.nf-cookie-txt a:hover { color: var(--nf-primary); }
.nf-cookie-btns { display: flex; flex-shrink: 0; flex-wrap: wrap; align-items: center; gap: 8px; }
.nf-cookie .nf-cb { border: 0; border-radius: 14px; padding: 10px 16px; font-family: var(--nf-font); font-size: .875rem; line-height: 1.25rem; font-weight: 700; cursor: pointer; transition: all .15s; text-transform: none; letter-spacing: normal; }
.nf-cookie .nf-cb[hidden] { display: none; }
.nf-cookie .nf-cb--primary, .nf-cookie .nf-cb--primary:hover, .nf-cookie .nf-cb--primary:focus { background: var(--nf-primary); color: var(--nf-primary-fg); }
.nf-cookie .nf-cb--primary:hover { transform: translateY(-2px); }
.nf-cookie .nf-cb--secondary, .nf-cookie .nf-cb--secondary:focus { background: var(--nf-secondary); color: var(--nf-fg); }
.nf-cookie .nf-cb--secondary:hover { background: var(--nf-accent); color: var(--nf-fg); }
.nf-cookie .nf-cb--ghost, .nf-cookie .nf-cb--ghost:focus { background: transparent; padding: 8px 16px; font-weight: 600; color: var(--nf-muted-fg); }
.nf-cookie .nf-cb--ghost:hover { background: transparent; color: var(--nf-fg); }
.nf-cookie-opts { margin-top: 16px; display: grid; gap: 12px; border-top: 1px solid var(--nf-border); padding-top: 16px; font-size: .875rem; line-height: 1.25rem; }
.nf-cookie-opts[hidden] { display: none; }
@media (min-width: 640px) { .nf-cookie-opts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.nf-cookie-opts label { display: flex; align-items: flex-start; gap: 12px; margin: 0; font-weight: 400; }
.nf-cookie-opts label.is-disabled { opacity: .7; }
.nf-cookie-opts input { margin-top: 4px; accent-color: var(--nf-primary); width: auto; }

/* ---------- Fælles blokke indlejret som skabelon/shortcode ---------- */
.elementor .nf-blockwrap.e-con { --gap: 0px; --row-gap: 0px; --column-gap: 0px; }
.elementor .nf-block { width: 100%; }
.elementor .nf-block > .elementor-widget-container, .elementor .nf-block .elementor-template { width: 100%; }
.elementor .nf-cta-wrap { width: 100%; }
