<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nybyg &#8211; MitBoligProjekt.dk</title>
	<atom:link href="https://mitboligprojekt.dk/kategori/nybyg/feed/" rel="self" type="application/rss+xml" />
	<link>https://mitboligprojekt.dk</link>
	<description>Find de rette fagfolk til dit boligprojekt</description>
	<lastBuildDate>Fri, 06 Feb 2026 21:42:08 +0000</lastBuildDate>
	<language>da-DK</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://mitboligprojekt.dk/wp-content/uploads/2026/01/cropped-noun-minimal-house-3697721-CCFA74-32x32.png</url>
	<title>Nybyg &#8211; MitBoligProjekt.dk</title>
	<link>https://mitboligprojekt.dk</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Kan det betale sig at rive sit hus ned og bygge nyt?</title>
		<link>https://mitboligprojekt.dk/riv-hus-ned-og-byg-nyt/</link>
					<comments>https://mitboligprojekt.dk/riv-hus-ned-og-byg-nyt/#respond</comments>
		
		<dc:creator><![CDATA[Tobias]]></dc:creator>
		<pubDate>Thu, 05 Feb 2026 10:23:31 +0000</pubDate>
				<category><![CDATA[Nybyg]]></category>
		<category><![CDATA[Nedrivning]]></category>
		<guid isPermaLink="false">https://mitboligprojekt.dk/?p=885</guid>

					<description><![CDATA[Overvejer du at rive et hus ned og bygge nyt på samme grund? Her får du et realistisk overblik over økonomi, regler, beliggenhed og CO2, så du kan vælge med ro i maven — og med tal på bordet.]]></description>
										<content:encoded><![CDATA[<section class="bde-section-885-100 bde-section">
  
  
	



<div class="section-container"><div class="bde-columns-885-101 bde-columns"><div class="bde-column-885-102 bde-column">
  
  
	



<div class="bde-div-885-103 bde-div">
  
  
	



<div class="bde-breadcrumbs-885-104 bde-breadcrumbs"><nav aria-label="breadcrumbs" class="rank-math-breadcrumb"><p><a href="https://mitboligprojekt.dk">Forside</a><span class="separator"> &raquo; </span><span class="last">Nybyg</span></p></nav></div><ul class="bde-post-meta-885-105 bde-post-meta">            <li class="ee-postmeta-date-wrap">
                                                        <span class="ee-postmeta-date"><span
                            class="ee-postmeta-before">Senest opdateret: </span>5. februar 2026</span>
                                </li>
            </ul>
</div><div class="bde-fancy-divider-885-106 bde-fancy-divider">


<div class="bde-fancy-divider__wrapper">
  <div class="bde-fancy-divider__separator   ">
  	  </div>
</div>

</div><div class="bde-rich-text-885-107 bde-rich-text breakdance-rich-text-styles">
<h1>Kan det betale sig at rive huset ned og bygge nyt?</h1>
</div><div class="bde-text-885-108 bde-text">
<p>Overvejer du at rive et hus ned og bygge nyt på samme grund? Her får du et realistisk overblik over økonomi, regler, beliggenhed og CO2, så du kan vælge med ro i maven — og med tal på bordet.</p>

</div><img decoding="async" class="bde-image2-885-109 bde-image2" src="https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-6.-feb.-2026-22.23.34.webp" alt="Nybygget étplansvilla i mursten i dansk villakvarter ved en ældre villavej – illustrerer valget mellem nedrivning og nybyggeri." srcset="https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-6.-feb.-2026-22.23.34.webp 1536w, https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-6.-feb.-2026-22.23.34-300x200.webp 300w, https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-6.-feb.-2026-22.23.34-1024x683.webp 1024w, https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-6.-feb.-2026-22.23.34-768x512.webp 768w" sizes="(max-width: 1536px) 100vw, 1536px"><div class="bde-rich-text-885-110 bde-rich-text breakdance-rich-text-styles">
Nybygget étplansvilla i mursten i dansk villakvarter ved en ældre villavej – illustrerer valget mellem nedrivning og nybyggeri.
</div><div class="bde-fancy-divider-885-111 bde-fancy-divider">


<div class="bde-fancy-divider__wrapper">
  <div class="bde-fancy-divider__separator   ">
  	  </div>
</div>

</div><div class="bde-rich-text-885-112 bde-rich-text breakdance-rich-text-styles">
<p data-start="1987" data-end="2689">Forestil dig, at du endelig har fundet den slags adresse, der får hverdagen til at hænge sammen. Du kan aflevere børnene uden logistik-cirkus. Du er tæt på venner, fritidsliv og de ting, der gør, at man faktisk kan få en tirsdag til at fungere. Der står bare et hus på grunden, som ikke rigtig passer til jer. Måske er det opdelt i små rum. Måske er kælderen “kun lidt fugtig”, som mægleren siger, og måske kan du allerede mærke i maven, at I kommer til at bruge jeres weekender på at lappe og justere i årevis. Og så kommer spørgsmålet, som mange ender med at stille sig selv lidt for sent: Skal vi totalrenovere… eller skal vi overveje, om det i virkeligheden kan betale sig at rive ned og bygge nyt?</p>
<p data-start="2691" data-end="2999">Der er ikke ét svar, der passer til alle. Men der er et mønster i de situationer, hvor nedrivning og nybyg faktisk giver mening. Det handler sjældent om, at folk “bare vil have nyt”. Det handler om adressen. Om at få det moderne hjem, man drømmer om, uden at give slip på det sted, man allerede ved fungerer.</p>
<p data-start="3001" data-end="3344">Hvis du vil have et hurtigt overblik over mulighederne, kan du starte med vores side om <a class="decorated-link" href="https://mitboligprojekt.dk/nedrivning/" target="_new" rel="noopener" data-start="3091" data-end="3143">nedrivning</a> og vores guide til <a class="decorated-link" href="https://mitboligprojekt.dk/nybyg/" target="_new" rel="noopener" data-start="3167" data-end="3209">nybyg</a>. Ikke fordi du skal beslutte dig i dag, men fordi det er rart at forstå spillereglerne, før du begynder at regne på noget som helst.</p>
</div><div class="bde-globalblock-885-113 bde-globalblock"><div class="bde-rich-text-897-100-897-1 bde-rich-text bde-rich-text-897-100 breakdance-rich-text-styles">
<p><style>
:root{
  --brand: #203723;
  --brand-light: #CCFA74;
  --text-light: #F5F5F2;
}

.ad-690 {
  position: relative;
  width: 690px;
  height: 90px;
  background-color: var(--brand);
  border-radius: 8px;
  padding: 16px 20px;
  color: var(--text-light);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  display: flex;
  align-items: center;
  justify-content: space-between;
  overflow: hidden;
}

.ad-690::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(245,245,242,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(245,245,242,0.05) 1px, transparent 1px);
  background-size: 32px 32px;
  z-index: 0;
}

.ad-690::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      ellipse at center,
      rgba(255,255,255,0.06) 0%,
      rgba(0,0,0,0.35) 70%
    );
  z-index: 0;
}

.ad-690 > * {
  position: relative;
  z-index: 1;
}

.ad-690-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ad-690-label {
  font-size: 0.65rem;
  opacity: 0.8;
}

.ad-690-headline {
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.2;
}

.ad-690-text {
  font-size: 0.9rem;
  opacity: 0.9;
}

.ad-690-cta {
  background: var(--brand-light);
  color: #10110C !important;
  padding: 12px 22px;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

@media (max-width: 768px) {

  .ad-690 {
    width: 336px;
    height: 280px;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    padding: 16px;
    gap: 0;
  }

  .ad-690-content {
    gap: 10px;
  }

  .ad-690-label {
    font-size: 0.7rem;
    opacity: 0.8;
  }

  .ad-690-headline {
    font-size: 1.35rem;
    line-height: 1.25;
    font-weight: 600;
  }

  .ad-690-text {
    font-size: 0.95rem;
    line-height: 1.5;
    color: #E6ECE8;
  }

  .ad-690-cta {
    width: 100%;
    text-align: center;
    padding: 12px;
    font-size: 1.1rem;
    border-radius: 999px;
  }
}

</style></p>
<aside class="ad-690">
<div class="ad-690-content">
<div class="ad-690-label">Annonce</div>
<div class="ad-690-headline">Nedrivning af hus?</div>
<div class="ad-690-text">Sammenlign tilbud på nedrivning af hus.</div>
</div>
<a class="ad-690-cta" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/nedrivning/" target="_blank" rel="nofollow sponsored noopener"> Få 3 gratis tilbud </a></aside>
</div></div><div class="bde-rich-text-885-114 bde-rich-text breakdance-rich-text-styles">
<h2 data-start="3346" data-end="3412">Nedrivning i Danmark sker oftest der, hvor beliggenheden er dyr</h2>
<p data-start="3414" data-end="3759">Man ser “riv ned og byg nyt” allerflest steder, hvor grundene er eftertragtede. Det er typisk i og omkring de større byer, hvor mange villaveje allerede er fyldt op, og hvor en tom grund nærmest er en myte. Her kan det give mening at købe et ældre hus, selv om man egentlig ikke køber huset for husets skyld. Man køber retten til at bo lige dér.</p>
<p data-start="3761" data-end="4185">I områder, hvor boligpriserne er lavere, ser regnestykket ofte anderledes ud. Du kan sagtens drømme om nybyg, men hvis du ender med at bygge et dyrt hus i et område, hvor markedet ikke følger med, skal du gøre det for jeres egen livskvalitet. Ikke fordi du regner med at “tjene det hjem” ved et salg. Og det er en vigtig ærlighed at have med sig. For det er præcis sådan nogle beslutninger, der senere kan give ondt i maven.</p>
</div><div class="bde-rich-text-885-115 bde-rich-text breakdance-rich-text-styles">
<h2 data-start="4187" data-end="4251">Hvad koster en nedrivning, og hvad er det, der kan overraske?</h2>
<p data-start="4253" data-end="4654">Selve nedrivningen er ofte mere ligetil, end mange forestiller sig. Det, der kan ændre prisen, er alt det rundt om. Adgangsforhold. Affaldssortering. Miljøscreening. Og om der er materialer, der kræver særlig håndtering. Hvis du vil have et realistisk prisspænd, er det typisk bedst at få flere tilbud, så du ikke læner dig op ad én mavefornemmelse eller én tilfældig pris, du har hørt fra en bekendt.</p>
<p data-start="4656" data-end="5024">Når du er dér, hvor du gerne vil se konkrete bud, kan du indhente <a class="decorated-link" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/nedrivning/" target="_new" rel="noopener" data-start="4724" data-end="4879">tilb</a><a class="decorated-link" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/nedrivning/" target="_new" rel="noopener" data-start="4724" data-end="4879">ud</a><a class="decorated-link" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/nedrivning/" target="_new" rel="noopener" data-start="4724" data-end="4879"> på nedrivning</a> og sammenligne på samme opgavebeskrivelse. Det gør valget meget mere håndgribeligt. Og det er som regel dér, beslutningen begynder at give ro.</p>
</div><div class="bde-rich-text-885-133 bde-rich-text breakdance-rich-text-styles">
<!-- NEDRIVNING – PRISBEREGNER (Breakdance HTML-element) -->
<p><style>
  .demo-mini {
    background: #F5F5F2;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    padding: 1.25rem;
    max-width: 760px;
    margin: 0 auto;
    color: #10110C;
    line-height: 1.55;
    font-weight: 300;

    /* Mobil-sikkerhed */
    width: 100%;
    overflow-x: hidden;
  }
  .demo-mini * { box-sizing: border-box; }

  /* VIGTIGT: Flex/grid-børn må kunne krympe, ellers kan de skabe horisontal scroll */
  .demo-mini, .dm-top, .dm-card, .dm-grid, .dm-field, .dm-control, .dm-results,
  .dm-kpi, .dm-kpi-top, .dm-breakdown, .dm-line, .dm-actions, .dm-cta {
    min-width: 0;
  }
  .dm-control > * { min-width: 0; }

  .dm-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
  }
  .dm-title {
    margin: 0;
    font-size: 1.15rem;
    color: #203723;
    font-weight: 500;
  }
  .dm-sub {
    margin: 0.25rem 0 0 0;
    font-size: 0.95rem;
    color: #333;
    font-weight: 300;
    max-width: 72ch;
  }
  .dm-pill {
    background: #fff;
    border: 1px solid #E1E1E1;
    border-radius: 999px;
    padding: 0.4rem 0.7rem;
    font-size: 0.9rem;
    color: #203723;
    font-weight: 400;
    white-space: nowrap;
    flex: 0 0 auto;
  }

  .dm-card {
    background: #fff;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    padding: 1rem;
  }

  .dm-section-title {
    margin: 0 0 0.75rem 0;
    color: #203723;
    font-size: 1.02rem;
    font-weight: 500;
  }

  .dm-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.85rem;
    align-items: start;
  }
  .dm-field { display: grid; gap: 0.35rem; align-content: start; }
  .dm-label { font-size: 0.92rem; color: #333; font-weight: 400; }

  .dm-control { display: flex; gap: 0.5rem; align-items: stretch; }

  .dm-input, .dm-select {
    width: 100%;
    max-width: 100%;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    padding: 0.62rem 0.75rem;
    background: #fff;
    color: #10110C;
    font-size: 0.98rem;
    font-weight: 300;
    outline: none;
    min-height: 44px;
  }
  .dm-input:focus, .dm-select:focus { border-color: #203723; }

  .dm-select{
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 2.35rem;
    background-repeat: no-repeat;
    background-position: right 0.85rem center;
    background-size: 14px 14px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23203723' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  }

  .dm-unit {
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    padding: 0.62rem 0.5rem;
    background: #F5F5F2;
    font-size: 0.9rem;
    color: #333;
    font-weight: 400;
    min-height: 44px;
    width: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
    flex: 0 0 auto;
  }

  .dm-help {
    margin: 0.05rem 0 0 0;
    font-size: 0.86rem;
    color: #555;
    font-weight: 300;
    min-height: 2.2em;
  }
  .dm-help--blank { visibility: hidden; }

  .dm-divider {
    height: 1px;
    background: #E1E1E1;
    border: 0;
    margin: 0.95rem 0;
  }

  .dm-results { display: grid; gap: 0.65rem; margin-top: 0.75rem; }

  .dm-kpi {
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    padding: 0.85rem;
    background: #fff;
  }
  .dm-kpi-top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.15rem;
  }
  .dm-kpi-label { font-size: 0.92rem; color: #333; font-weight: 400; }
  .dm-kpi-value { font-size: 1.08rem; color: #10110C; font-weight: 500; }
  .dm-kpi-sub { margin: 0.15rem 0 0 0; font-size: 0.86rem; color: #555; font-weight: 300; }

  .dm-breakdown { display: grid; gap: 0.4rem; padding-top: 0.25rem; }
  .dm-line {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.92rem;
    color: #333;
    font-weight: 300;
  }
  .dm-line span:last-child { font-weight: 400; color: #10110C; white-space: nowrap; }

  .dm-actions {
    display: flex;
    gap: 0.55rem;
    flex-wrap: wrap;
    margin-top: 0.9rem;
  }
  .dm-btn {
    appearance: none;
    border: 1px solid #E1E1E1;
    background: #fff;
    color: #10110C;
    padding: 0.6rem 0.85rem;
    border-radius: 10px;
    font-size: 0.95rem;
    cursor: pointer;
    font-weight: 400;
    transition: transform 0.08s ease, border-color 0.12s ease;
  }
  .dm-btn:hover { border-color: #203723; }
  .dm-btn:active { transform: scale(0.99); }

  .dm-toast {
    display: none;
    margin-top: 0.65rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    border: 1px solid #E1E1E1;
    background: #F5F5F2;
    color: #333;
    font-size: 0.9rem;
    font-weight: 300;
  }

  .dm-cta {
    margin-top: 0.9rem;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    background: #fff;
    padding: 1rem;
  }
  .dm-cta p {
    margin: 0 0 0.75rem 0;
    font-size: 0.95rem;
    color: #333;
    font-weight: 300;
  }
  .dm-cta a {
    display: inline-block;
    background: #203723;
    border: 1px solid #203723;
    color: #fff !important;
    text-decoration: none;
    padding: 0.75rem 1.05rem;
    border-radius: 10px;
    font-size: 1rem;
    font-weight: 500;
  }
  .dm-cta a:hover { filter: brightness(0.95); }

  .dm-smallprint {
    margin-top: 0.65rem;
    font-size: 0.82rem;
    color: #666;
    font-weight: 300;
  }

  @media (max-width: 640px) {
    .demo-mini { padding: 1.05rem; }
    .dm-top { flex-direction: column; }
    .dm-grid { grid-template-columns: 1fr; }
    .dm-actions .dm-btn, .dm-cta a { width: 100%; text-align: center; }
  }
</style></p>

<div id="nedrivningBeregnerV1" class="demo-mini" role="region" aria-label="Prisberegner til nedrivning af hus">
  <div class="dm-top">
    <div>
      <p class="dm-title">Prisberegner: nedrivning af hus</p>
      <p class="dm-sub">Svar på få spørgsmål og få et vejledende estimat med prisspænd. Beregneren er lavet til hele husnedrivninger og tager højde for kælder, materialer, adgang og miljøsanering.</p>
    </div>
    <div class="dm-pill" aria-hidden="true">Vejledende estimat</div>
  </div>

  <div class="dm-card">
    <p id="dmSection1" class="dm-section-title">Huset og forholdene</p>

    <div class="dm-grid" role="group" aria-labelledby="dmSection1">
      <div class="dm-field">
        <label class="dm-label" for="dmArea">Grundareal (m²)</label>
        <div class="dm-control">
          <input id="dmArea" class="dm-input" inputmode="numeric" max="350" min="40" step="1" type="number" value="140" aria-describedby="dmAreaHelp" />
          <div class="dm-unit" aria-hidden="true">m²</div>
        </div>
        <p id="dmAreaHelp" class="dm-help">Brug husets grundplan/etageareal pr. plan. Ved to plan: vælg samlet etageareal i næste felt.</p>
      </div>

      <div class="dm-field">
        <label class="dm-label" for="dmFloors">Etager</label>
        <select id="dmFloors" class="dm-select" aria-describedby="dmFloorsHelp">
          <option selected="selected" value="1">1 plan</option>
          <option value="2">2 plan</option>
          <option value="3">3 plan (sjældent)</option>
        </select>
        <p id="dmFloorsHelp" class="dm-help">Flere etager giver ofte mere tid, sikring og sortering.</p>
      </div>

      <div class="dm-field">
        <label class="dm-label" for="dmBasement">Kælder</label>
        <select id="dmBasement" class="dm-select" aria-describedby="dmBasementHelp">
          <option selected="selected" value="none">Ingen kælder</option>
          <option value="partial">Delvis kælder</option>
          <option value="full">Fuld kælder</option>
        </select>
        <p id="dmBasementHelp" class="dm-help">Kælder løfter prisen, fordi der er mere beton, håndtering og evt. opfyldning.</p>
      </div>

      <div class="dm-field">
        <label class="dm-label" for="dmMaterial">Primære materialer</label>
        <select id="dmMaterial" class="dm-select" aria-describedby="dmMaterialHelp">
          <option value="light">Let konstruktion (træ/let facade)</option>
          <option selected="selected" value="mix">Blandet (typisk parcelhus)</option>
          <option value="masonry">Tungt (mursten/beton)</option>
        </select>
        <p id="dmMaterialHelp" class="dm-help">Tunge materialer giver mere affald, flere maskintimer og højere sorteringskrav.</p>
      </div>

      <div class="dm-field">
        <label class="dm-label" for="dmHazard">Miljøfarlige stoffer</label>
        <select id="dmHazard" class="dm-select" aria-describedby="dmHazardHelp">
          <option selected="selected" value="none">Ingen kendte (screening viser intet)</option>
          <option value="unknown">Ikke afklaret endnu</option>
          <option value="some">Muligt / mindre omfang (fx enkelte tagplader)</option>
          <option value="high">Sandsynligt / større omfang (asbest/PCB m.m.)</option>
        </select>
        <p id="dmHazardHelp" class="dm-help">Sanering kan flytte prisen mest. Ved “ikke afklaret” bør du regne med en buffer.</p>
      </div>

      <div class="dm-field">
        <label class="dm-label" for="dmAccess">Adgang for maskiner</label>
        <select id="dmAccess" class="dm-select" aria-describedby="dmAccessHelp">
          <option value="easy">Nemt (bred indkørsel, fri adgang)</option>
          <option selected="selected" value="normal">Normalt</option>
          <option value="hard">Svært (smal vej, tæt bebyggelse, mange hensyn)</option>
        </select>
        <p id="dmAccessHelp" class="dm-help">Svær adgang kan give flere timer, mindre maskiner og mere manuel sortering.</p>
      </div>

      <div class="dm-field">
        <label class="dm-label" for="dmSorting">Krav til sortering</label>
        <select id="dmSorting" class="dm-select" aria-describedby="dmSortingHelp">
          <option selected="selected" value="standard">Standard kildesortering</option>
          <option value="high">Høj (mange fraktioner / selektiv nedrivning)</option>
        </select>
        <p id="dmSortingHelp" class="dm-help">Høj sortering koster mere, men kan give bedre genanvendelse.</p>
      </div>

      <div class="dm-field">
        <label class="dm-label" for="dmOutbuildings">Udhuse/garage</label>
        <select id="dmOutbuildings" class="dm-select" aria-describedby="dmOutHelp">
          <option selected="selected" value="0">Ingen</option>
          <option value="1">1 mindre udhus/garage</option>
          <option value="2">2 mindre udhuse/garage</option>
          <option value="3">Flere eller større bygninger</option>
        </select>
        <p id="dmOutHelp" class="dm-help">Små bygninger kan være 10.000 kr. og op, afhængigt af materialer og tag.</p>
      </div>

      <div class="dm-field">
        <label class="dm-label" for="dmInterior">Indvendig “rydning” før nedrivning</label>
        <select id="dmInterior" class="dm-select" aria-describedby="dmInteriorHelp">
          <option selected="selected" value="none">Nej (normalt indbo fjernes af ejer)</option>
          <option value="some">Ja, lidt (fx køkken/lofter lokalt)</option>
          <option value="full">Ja, meget (tung indvendig strip)</option>
        </select>
        <p id="dmInteriorHelp" class="dm-help">Hvis der skal ryddes mange materialer ud først, stiger timeforbruget.</p>
      </div>

      <div class="dm-field">
        <label class="dm-label" for="dmVat">Momsvisning</label>
        <select id="dmVat" class="dm-select" aria-describedby="dmVatHelp">
          <option selected="selected" value="inc">Inkl. moms</option>
          <option value="ex">Ekskl. moms</option>
        </select>
        <p id="dmVatHelp" class="dm-help">Vælg hvordan priserne vises.</p>
      </div>
    </div>

    <hr class="dm-divider" />

    <div class="dm-results" aria-label="Resultater">
      <div class="dm-kpi" aria-live="polite" aria-atomic="true">
        <div class="dm-kpi-top">
          <div class="dm-kpi-label">Forventet total</div>
          <div id="dmTotal" class="dm-kpi-value">0 kr.</div>
        </div>
        <p id="dmRange" class="dm-kpi-sub">Prisspænd 0–0 kr.</p>
        <p id="dmPerM2" class="dm-kpi-sub">Ca. 0 kr./m²</p>
      </div>

      <div class="dm-kpi" aria-live="polite" aria-atomic="true">
        <div class="dm-kpi-top">
          <div class="dm-kpi-label">Prisfordeling</div>
          <div id="dmHint" class="dm-kpi-value">Overblik</div>
        </div>

        <div class="dm-breakdown" aria-label="Prisfordeling i poster">
          <div class="dm-line">Grundnedrivning<span id="dmBase">0 kr.</span></div>
          <div class="dm-line">Miljø / sanering<span id="dmEnv">0 kr.</span></div>
          <div class="dm-line">Kælder og beton<span id="dmBas">0 kr.</span></div>
          <div class="dm-line">Sortering og bortskaffelse<span id="dmWaste">0 kr.</span></div>
          <div class="dm-line">Adgang og logistik<span id="dmAcc">0 kr.</span></div>
          <div class="dm-line">Ekstra bygninger<span id="dmOut">0 kr.</span></div>
          <div class="dm-line">Buffer<span id="dmBuf">0 kr.</span></div>
        </div>

        <p id="dmAssume" class="dm-kpi-sub" style="margin-top: 0.55rem;">Estimatet er vejledende. En entreprenør skal altid se huset, især ved mistanke om asbest/PCB eller kælder.</p>
      </div>
    </div>

    <div class="dm-actions" aria-label="Handlinger">
      <button id="dmCopy" class="dm-btn" type="button">Kopiér projektbeskrivelse</button>
      <button id="dmReset" class="dm-btn" type="button">Nulstil</button>
    </div>

    <div id="dmToast" class="dm-toast" role="status" aria-live="polite">Kopieret.</div>

    <div class="dm-cta">
      <p>Vil du have en rigtig pris, så sammenlign flere tilbud på den samme beskrivelse.</p>
      <a href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/nedrivning/" target="_blank" rel="nofollow sponsored noopener">Få 3 uforpligtende tilbud på nedrivning</a>
      <div class="dm-smallprint">Priser varierer meget. Den endelige pris afhænger især af miljøscreening/sanering, kælder, materialer, adgang og krav til sortering.</div>
    </div>
  </div>
</div>

<p><script>
(function () {
  const root = document.getElementById("nedrivningBeregnerV1");
  if (!root) return;

  const storageKey = "nedrivning_beregner_v1";
  const el = (id) => document.getElementById(id);

  const area = el("dmArea");
  const floors = el("dmFloors");
  const basement = el("dmBasement");
  const material = el("dmMaterial");
  const hazard = el("dmHazard");
  const access = el("dmAccess");
  const sorting = el("dmSorting");
  const outbuildings = el("dmOutbuildings");
  const interior = el("dmInterior");
  const vat = el("dmVat");

  const totalOut = el("dmTotal");
  const rangeOut = el("dmRange");
  const perM2Out = el("dmPerM2");

  const baseOut = el("dmBase");
  const envOut = el("dmEnv");
  const basOut = el("dmBas");
  const wasteOut = el("dmWaste");
  const accOut = el("dmAcc");
  const outOut = el("dmOut");
  const bufOut = el("dmBuf");

  const assumeOut = el("dmAssume");
  const toast = el("dmToast");

  const copyBtn = el("dmCopy");
  const resetBtn = el("dmReset");

  const nfCur = new Intl.NumberFormat("da-DK", { style: "currency", currency: "DKK", maximumFractionDigits: 0 });
  const nfInt = new Intl.NumberFormat("da-DK", { maximumFractionDigits: 0 });

  const clamp = (n, min, max) => Math.min(max, Math.max(min, n));

  function baseRatePerM2() {
    let rate = 750;

    if (material.value === "light") rate -= 80;
    if (material.value === "masonry") rate += 120;

    if (floors.value === "2") rate += 60;
    if (floors.value === "3") rate += 110;

    if (sorting.value === "high") rate += 70;

    if (access.value === "easy") rate -= 40;
    if (access.value === "hard") rate += 90;

    if (interior.value === "some") rate += 45;
    if (interior.value === "full") rate += 95;

    return clamp(rate, 520, 980);
  }

  function envCost(A) {
    if (hazard.value === "none") return 0;
    if (hazard.value === "unknown") return 14000 + A * 35;
    if (hazard.value === "some") return 28000 + A * 65;
    return 65000 + A * 140;
  }

  function basementCost(A) {
    if (basement.value === "none") return 0;
    if (basement.value === "partial") return 22000 + A * 70;
    return 48000 + A * 120;
  }

  function wasteCost(A) {
    let w = 0;

    if (material.value === "masonry") w += 9000 + A * 40;
    if (material.value === "mix") w += 5500 + A * 25;
    if (material.value === "light") w += 3000 + A * 15;

    if (sorting.value === "high") w *= 1.18;

    if (basement.value === "partial") w += 4500;
    if (basement.value === "full") w += 9500;

    return w;
  }

  function accessCost(A) {
    let c = 0;

    if (access.value === "normal") c += 4500;
    if (access.value === "hard") c += 12500 + A * 20;

    if (floors.value === "2") c += 2500;
    if (floors.value === "3") c += 5500;

    return c;
  }

  function outbuildingCost() {
    const v = outbuildings.value;
    if (v === "0") return 0;
    if (v === "1") return 14000;
    if (v === "2") return 22000;
    return 38000;
  }

  function compute() {
    const A = clamp(parseFloat(area.value || 0), 40, 350);
    if (!Number.isFinite(A)) return;

    const rate = baseRatePerM2();
    const base = A * rate;

    const env = envCost(A);
    const bas = basementCost(A);
    const waste = wasteCost(A);
    const acc = accessCost(A);
    const out = outbuildingCost();

    const subtotal = base + env + bas + waste + acc + out;

    let bufRate = 0.08;
    if (hazard.value === "unknown") bufRate += 0.04;
    if (hazard.value === "some") bufRate += 0.03;
    if (hazard.value === "high") bufRate += 0.05;

    if (basement.value === "partial") bufRate += 0.02;
    if (basement.value === "full") bufRate += 0.03;

    if (access.value === "hard") bufRate += 0.02;
    if (sorting.value === "high") bufRate += 0.01;

    bufRate = clamp(bufRate, 0.08, 0.18);

    const buffer = subtotal * bufRate;
    const totalMid = subtotal + buffer;

    let lowF = 0.90;
    let highF = 1.14;

    if (hazard.value === "unknown") { lowF -= 0.02; highF += 0.05; }
    if (hazard.value === "some") { lowF -= 0.01; highF += 0.06; }
    if (hazard.value === "high") { lowF -= 0.03; highF += 0.10; }

    if (basement.value !== "none") { lowF -= 0.01; highF += 0.04; }
    if (access.value === "hard") { lowF -= 0.01; highF += 0.03; }
    if (sorting.value === "high") { highF += 0.02; }

    const low = totalMid * lowF;
    const high = totalMid * highF;

    const vatF = (vat.value === "inc") ? 1.25 : 1.0;

    totalOut.textContent = nfCur.format(totalMid * vatF);
    rangeOut.textContent = "Prisspænd " + nfCur.format(low * vatF) + "–" + nfCur.format(high * vatF);

    const perM2 = (totalMid * vatF) / Math.max(1, A);
    perM2Out.textContent = "Ca. " + nfInt.format(perM2) + " kr./m²";

    baseOut.textContent = nfCur.format(base * vatF);
    envOut.textContent = nfCur.format(env * vatF);
    basOut.textContent = nfCur.format(bas * vatF);
    wasteOut.textContent = nfCur.format(waste * vatF);
    accOut.textContent = nfCur.format(acc * vatF);
    outOut.textContent = nfCur.format(out * vatF);
    bufOut.textContent = nfCur.format(buffer * vatF);

    const vatTxt = (vat.value === "inc") ? "inkl. moms" : "ekskl. moms";
    const hazardTxt = hazard.options[hazard.selectedIndex]?.textContent?.trim() || "";
    const basTxt = basement.options[basement.selectedIndex]?.textContent?.trim() || "";

    assumeOut.textContent =
      "Vejledende estimat " + vatTxt + ". " +
      "Særligt " + hazardTxt.toLowerCase() + " og " + basTxt.toLowerCase() +
      " kan ændre prisen, når entreprenøren har set huset og evt. screeningsrapport.";

    const state = {
      A,
      floors: floors.value,
      basement: basement.value,
      material: material.value,
      hazard: hazard.value,
      access: access.value,
      sorting: sorting.value,
      outbuildings: outbuildings.value,
      interior: interior.value,
      vat: vat.value
    };
    try { localStorage.setItem(storageKey, JSON.stringify(state)); } catch (e) {}
  }

  function restore() {
    try {
      const saved = JSON.parse(localStorage.getItem(storageKey) || "null");
      if (!saved) return;

      area.value = saved.A ?? area.value;
      floors.value = saved.floors || floors.value;
      basement.value = saved.basement || basement.value;
      material.value = saved.material || material.value;
      hazard.value = saved.hazard || hazard.value;
      access.value = saved.access || access.value;
      sorting.value = saved.sorting || sorting.value;
      outbuildings.value = saved.outbuildings || outbuildings.value;
      interior.value = saved.interior || interior.value;
      vat.value = saved.vat || vat.value;
    } catch (e) {}
  }

  function projectText() {
    const A = clamp(parseFloat(area.value || 0), 40, 350);
    const vatTxt = (vat.value === "inc") ? "inkl. moms" : "ekskl. moms";

    const floorsTxt = floors.options[floors.selectedIndex]?.textContent?.trim() || "";
    const basTxt = basement.options[basement.selectedIndex]?.textContent?.trim() || "";
    const matTxt = material.options[material.selectedIndex]?.textContent?.trim() || "";
    const hazTxt = hazard.options[hazard.selectedIndex]?.textContent?.trim() || "";
    const accTxt = access.options[access.selectedIndex]?.textContent?.trim() || "";
    const sortTxt = sorting.options[sorting.selectedIndex]?.textContent?.trim() || "";
    const outTxt = outbuildings.options[outbuildings.selectedIndex]?.textContent?.trim() || "";
    const intTxt = interior.options[interior.selectedIndex]?.textContent?.trim() || "";

    return (
      "Nedrivning af enfamiliehus. " +
      "Areal ca. " + A + " m². " +
      "Etager: " + floorsTxt + ". " +
      "Kælder: " + basTxt + ". " +
      "Materialer: " + matTxt + ". " +
      "Miljøforhold: " + hazTxt + ". " +
      "Adgang: " + accTxt + ". " +
      "Sortering: " + sortTxt + ". " +
      "Udhuse/garage: " + outTxt + ". " +
      "Indvendig rydning før nedrivning: " + intTxt + ". " +
      "Ønske: pris inkl. afkobling af forsyninger, lovpligtig håndtering af affald, bortkørsel og aflevering af grund i terræn (afklares i tilbud). " +
      "Vejledende budget: " + totalOut.textContent + " (" + rangeOut.textContent.replace("Prisspænd ", "") + "), " + vatTxt + "."
    );
  }

  function showToast(msg) {
    toast.textContent = msg;
    toast.style.display = "block";
    setTimeout(() => (toast.style.display = "none"), 2200);
  }

  function bind(node) {
    node.addEventListener("input", compute);
    node.addEventListener("change", compute);
  }

  [area, floors, basement, material, hazard, access, sorting, outbuildings, interior, vat].forEach(bind);

  copyBtn.addEventListener("click", async () => {
    const text = projectText();
    try {
      await navigator.clipboard.writeText(text);
      showToast("Kopieret. Du kan indsætte teksten i din opgavebeskrivelse.");
    } catch (e) {
      const ta = document.createElement("textarea");
      ta.value = text;
      document.body.appendChild(ta);
      ta.select();
      try { document.execCommand("copy"); } catch (err) {}
      document.body.removeChild(ta);
      showToast("Kopieret. Du kan indsætte teksten i din opgavebeskrivelse.");
    }
  });

  resetBtn.addEventListener("click", () => {
    area.value = 140;
    floors.value = "1";
    basement.value = "none";
    material.value = "mix";
    hazard.value = "unknown";
    access.value = "normal";
    sorting.value = "standard";
    outbuildings.value = "0";
    interior.value = "none";
    vat.value = "inc";
    try { localStorage.removeItem(storageKey); } catch (e) {}
    compute();
    showToast("Nulstillet.");
  });

  restore();
  compute();
})();
</script></p>

</div><div class="bde-rich-text-885-116 bde-rich-text breakdance-rich-text-styles">
<div class="flex flex-col text-sm pb-25">
<article class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" dir="auto" tabindex="-1" data-turn-id="c51f4d2c-8b6c-4096-ac61-cb45c88e09d2" data-testid="conversation-turn-72" data-scroll-anchor="true" data-turn="assistant">
<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm/main:[--thread-content-margin:--spacing(6)] @w-lg/main:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)">
<div class="[--thread-content-max-width:40rem] @w-lg/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1">
<div class="flex max-w-full flex-col grow">
<div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-1" dir="auto" data-message-author-role="assistant" data-message-id="f33e637f-a4f9-4cec-9a54-c33d85d1f41c" data-message-model-slug="gpt-5-2-thinking">
<div class="flex w-full flex-col gap-1 empty:hidden first:pt-[1px]">
<div class="markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling">
<h2 data-start="5026" data-end="5093">Må du bygge nyt på grunden, eller bliver du stoppet af reglerne?</h2>
<p data-start="5095" data-end="5481">Det her er et punkt, der kan spare dig for rigtig meget tid. For du kan i princippet forelske dig i den perfekte idé, og så viser det sig, at du ikke kan bygge den bolig, du havde set for dig. Lokalplan, bebyggelsesprocent, placering på grunden, højde, materialer og udtryk kan i nogle områder være stramt styret. Og selv om du river det gamle hus ned, får du ikke automatisk frit spil.</p>
<p data-start="5483" data-end="5743">Hvis du drømmer om nybyg på en eksisterende grund, så gør dig selv en tjeneste og få rammerne afklaret tidligt. Det behøver ikke være en stor øvelse, men det er vigtigt at vide, hvad der faktisk er realistisk, før du bruger energi på plantegninger og detaljer.</p>
<h2 data-start="5745" data-end="5780">Hvornår giver nybyg mest mening?</h2>
<p data-start="5782" data-end="6248">Nybyg giver ofte mest mening, når I reelt har brug for at starte forfra. Det kan være fordi huset er i så dårlig stand, at en renovering bliver en form for genopbygning, bare uden den forudsigelighed, man normalt forbinder med nybyg. Det kan også være fordi I vil noget, huset ikke naturligt kan give jer. En helt anden planløsning. Et andet flow i hverdagen. Et hus, der er indrettet til den måde, man lever på i dag, og ikke den måde man levede på for 60 år siden.</p>
<p data-start="6250" data-end="6559">Der er også noget psykologisk i nybyg, som man ikke skal undervurdere. For nogle er det en lettelse at tage beslutninger én gang. At få det gjort ordentligt. At vide, hvad man går ind til. Renovering kan være fantastisk, men den kan også være en lang serie af valg, hvor “lige det næste” hele tiden dukker op.</p>
<p data-start="6561" data-end="6956">Hvis du vil teste nybyg-sporet seriøst, kan du indhente <a class="decorated-link" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/lp/nybyg/" target="_new" rel="noopener" data-start="6619" data-end="6760">tilbud på nybyg</a> og se, hvad en samlet løsning i praksis lander på. Det er svært at vurdere nybyg ud fra løse tal, fordi tilvalg og forudsætninger betyder så meget. Men konkrete bud gør det hele mere virkeligt.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</article>
</div>
</div><img decoding="async" class="bde-image2-885-123 bde-image2" src="https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-6.-feb.-2026-22.41.02.webp" alt="Unge dansk par set bagfra vurderer ældre gul murstensvilla med tegltag i dansk villakvarter – huskøb og mulig nedrivning." loading="lazy" srcset="https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-6.-feb.-2026-22.41.02.webp 1536w, https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-6.-feb.-2026-22.41.02-300x200.webp 300w, https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-6.-feb.-2026-22.41.02-1024x683.webp 1024w, https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-6.-feb.-2026-22.41.02-768x512.webp 768w" sizes="(max-width: 1536px) 100vw, 1536px"><div class="bde-rich-text-885-118 bde-rich-text breakdance-rich-text-styles">
<h2 data-start="6958" data-end="7006">Klima, CO2 og den misforståelse mange ender i</h2>
<p data-start="7008" data-end="7378">Det er fristende at tænke, at et nyt hus altid er “bedre”, fordi energimærket er bedre. Men energimærket handler primært om drift, og klimaregnskabet handler også om materialer, produktion og affald. Nedrivning skaber affald. Nybyg bruger mange nye materialer. Så selv om et nyt hus kan være billigere at varme op, er det ikke automatisk den klimamæssigt bedste løsning.</p>
<p data-start="7380" data-end="7714">Omvendt er renovering heller ikke altid “det rigtige”, hvis huset er i virkelig dårlig stand, eller hvis I ender med at skifte så meget, at I næsten bygger nyt, bare på en mere bøvlet måde. Pointen er, at det her ikke er sort/hvidt. Det er netop derfor, det er værd at regne på det for jeres konkrete hus, jeres område og jeres behov.</p>
<h2 data-start="7716" data-end="7792">Totaløkonomi er nøglen, hvis du vil træffe en beslutning uden at fortryde</h2>
<p data-start="7794" data-end="8048">Når man står midt i det her, kommer man hurtigt til at fokusere på den store pris. Hvad koster nedrivningen? Hvad koster huset? Hvad koster byggeriet? Men hvis du vil træffe en beslutning, der stadig føles rigtig om fem år, så kig også på totaløkonomien.</p>
<p data-start="8050" data-end="8508">Hvad koster det at bo i huset? Ikke kun varme, men også vedligehold. Hvad betyder det for jeres tid og energi, hvis I renoverer i etaper? Hvad betyder det for jeres hverdag, hvis I bygger nyt? Og hvor længe vil I egentlig blive boende? Jo længere tidshorisont, jo mere vægt får komfort, drift og vedligehold. Jo kortere tidshorisont, jo vigtigere bliver områdets prisniveau og sandsynligheden for at kunne sælge uden at blive ramt af “I har bygget for dyrt”.</p>
<p data-start="8510" data-end="8794">Det er også her, mange opdager, at de i virkeligheden har to projekter, ikke ét. De har huset. Og de har haven, belægningen, hegn, skur, carport og alt det, der får et hjem til at fungere i Danmark. Det er ikke altid det mest romantiske at tale om, men det er sådan, budgetter holder.</p>
</div><div class="bde-rich-text-885-119 bde-rich-text breakdance-rich-text-styles">
<!-- NYBYG ELLER NEDRIVNING – SMART SPØRGEHJÆLPER (1 KOLONNE / BREAKDANCE) -->

<p><style>
  .choice-mini {
    background: #F5F5F2;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    padding: 1.25rem;
    max-width: 760px;
    margin: 0 auto;
    color: #10110C;
    line-height: 1.55;
    font-weight: 300;

    /* Mobil-sikkerhed */
    width: 100%;
    max-width: 760px;
    overflow-x: hidden;
  }
  .choice-mini * { box-sizing: border-box; }

  /* Kritisk: flex/grid børn må krympe */
  .choice-mini,
  .cg-top, .cg-card, .cg-stephead, .cg-progress, .cg-field, .cg-under,
  .cg-nav, .cg-kpi-top, .cg-bar-labels, .cg-actions, .cg-cta {
    min-width: 0;
  }
  .cg-top > div,
  .cg-kpi-top > div { min-width: 0; }

  .cg-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
  }
  .cg-title {
    margin: 0;
    font-size: 1.15rem;
    color: #203723;
    font-weight: 500;
  }
  .cg-sub {
    margin: 0.25rem 0 0 0;
    font-size: 0.95rem;
    color: #333;
    font-weight: 300;
    max-width: 72ch;
  }
  .cg-pill {
    background: #fff;
    border: 1px solid #E1E1E1;
    border-radius: 999px;
    padding: 0.4rem 0.7rem;
    font-size: 0.9rem;
    color: #203723;
    font-weight: 400;
    white-space: nowrap;
    flex: 0 0 auto;
    max-width: 100%;
  }

  .cg-card {
    background: #fff;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    padding: 1rem;
  }
  .cg-card + .cg-card { margin-top: 0.85rem; }

  .cg-section-title {
    margin: 0 0 0.75rem 0;
    color: #203723;
    font-size: 1.02rem;
    font-weight: 500;
  }

  .cg-stephead {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
  }
  .cg-step-pill {
    background: #F5F5F2;
    border: 1px solid #E1E1E1;
    border-radius: 999px;
    padding: 0.25rem 0.55rem;
    font-size: 0.84rem;
    color: #333;
    font-weight: 300;
    white-space: nowrap;
    flex: 0 0 auto;
    max-width: 100%;
  }
  .cg-progress {
    flex: 1;
    height: 8px;
    border: 1px solid #E1E1E1;
    background: #F5F5F2;
    border-radius: 999px;
    overflow: hidden;
    min-width: 0;
  }
  .cg-progress > div {
    height: 100%;
    width: 10%;
    background: #203723;
  }

  .cg-field { display: grid; gap: 0.45rem; }
  .cg-label {
    font-size: 0.98rem;
    color: #10110C;
    font-weight: 400;
    overflow-wrap: anywhere;
  }

  .cg-select {
    width: 100%;
    max-width: 100%;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    padding: 0.72rem 2.35rem 0.72rem 0.75rem;
    background: #fff;
    color: #10110C;
    font-size: 0.98rem;
    font-weight: 300;
    outline: none;
    min-height: 46px;

    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-repeat: no-repeat;
    background-position: right 0.85rem center;
    background-size: 14px 14px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23203723' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  }
  .cg-select:focus { border-color: #203723; }

  .cg-under {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.15rem;
    min-width: 0;
  }
  .cg-why {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    color: #203723;
    cursor: pointer;
    font-size: 0.88rem;
    font-weight: 400;
    text-decoration: underline;
    max-width: 100%;
    overflow-wrap: anywhere;
    text-align: left;
  }

  .cg-tip {
    display: none;
    margin-top: 0.65rem;
    padding: 0.65rem 0.7rem;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    background: #F5F5F2;
    font-size: 0.88rem;
    color: #333;
    font-weight: 300;
    overflow-wrap: anywhere;
  }

  .cg-nav {
    display: flex;
    gap: 0.55rem;
    flex-wrap: wrap;
    margin-top: 0.95rem;
    min-width: 0;
  }
  .cg-btn {
    appearance: none;
    border: 1px solid #E1E1E1;
    background: #fff;
    color: #10110C;
    padding: 0.6rem 0.85rem;
    border-radius: 10px;
    font-size: 0.95rem;
    cursor: pointer;
    font-weight: 400;
    transition: transform 0.08s ease, border-color 0.12s ease;
    max-width: 100%;
  }
  .cg-btn:hover { border-color: #203723; }
  .cg-btn:active { transform: scale(0.99); }
  .cg-btn[disabled] { opacity: 0.55; cursor: not-allowed; }

  .cg-primary {
    background: #203723;
    border-color: #203723;
    color: #fff;
  }
  .cg-primary:hover { filter: brightness(0.95); }

  .cg-kpi-top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.15rem;
    min-width: 0;
  }
  .cg-kpi-label { font-size: 0.92rem; color: #333; font-weight: 400; }
  .cg-kpi-value {
    font-size: 1.08rem;
    color: #10110C;
    font-weight: 500;
    text-align: right;
    overflow-wrap: anywhere;
  }

  .cg-explain {
    margin: 0.35rem 0 0 0;
    font-size: 0.92rem;
    color: #333;
    font-weight: 300;
    overflow-wrap: anywhere;
  }

  .cg-bar {
    margin-top: 0.65rem;
    border: 1px solid #E1E1E1;
    border-radius: 999px;
    height: 12px;
    background: #F5F5F2;
    overflow: hidden;
  }
  .cg-bar-fill {
    height: 100%;
    width: 50%;
    background: #203723;
  }
  .cg-bar-labels {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.35rem;
    font-size: 0.82rem;
    color: #666;
    font-weight: 300;
    min-width: 0;
  }
  .cg-bar-labels span { overflow-wrap: anywhere; min-width: 0; }

  .cg-actions {
    display: flex;
    gap: 0.55rem;
    flex-wrap: wrap;
    margin-top: 0.9rem;
    min-width: 0;
  }
  .cg-toast {
    display: none;
    margin-top: 0.65rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    border: 1px solid #E1E1E1;
    background: #F5F5F2;
    color: #333;
    font-size: 0.9rem;
    font-weight: 300;
    overflow-wrap: anywhere;
  }

  .cg-cta {
    margin-top: 0.95rem;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    background: #fff;
    padding: 1rem;
    min-width: 0;
  }
  .cg-cta p {
    margin: 0 0 0.75rem 0;
    font-size: 0.95rem;
    color: #333;
    font-weight: 300;
    overflow-wrap: anywhere;
  }
  .cg-cta-btn {
    display: block;
    width: 100%;
    max-width: 100%;
    text-align: center;
    text-decoration: none;
    padding: 0.75rem 1.05rem;
    border-radius: 10px;
    font-size: 1rem;
    font-weight: 500;
    margin-top: 0.55rem;
    border: 1px solid #E1E1E1;
  }
  .cg-cta-btn--primary {
    background: #203723;
    border-color: #203723;
    color: #fff !important;
  }
  .cg-cta-btn--secondary {
    background: #fff;
    border-color: #203723;
    color: #203723 !important;
  }
  .cg-cta-btn--primary:hover,
  .cg-cta-btn--secondary:hover { filter: brightness(0.97); }

  .cg-smallprint {
    margin-top: 0.65rem;
    font-size: 0.82rem;
    color: #666;
    font-weight: 300;
    overflow-wrap: anywhere;
  }

  @media (max-width: 640px) {
    .choice-mini { padding: 1.05rem; }
    .cg-top { flex-direction: column; }
    .cg-nav .cg-btn, .cg-actions .cg-btn { width: 100%; text-align: center; }
  }
</style></p>

<div id="choiceGuide_nybyg_nedriv_v1" class="choice-mini">
  <div class="cg-top">
    <div>
      <p class="cg-title">Nybyg eller riv ned og byg nyt?</p>
      <p class="cg-sub">
        Denne hjælper stiller kun de spørgsmål, der giver mening for jeres situation.
        Svar ét ad gangen og få en retning samt en tekst, du kan bruge til tilbud og dialog.
      </p>
    </div>
    <div class="cg-pill">Vejledende guide</div>
  </div>

  <div class="cg-card">
    <p class="cg-section-title">Spørgsmål der tilpasser sig jeres svar</p>

    <div class="cg-stephead">
      <div class="cg-step-pill" id="cgStepPill_nd1">Spørgsmål 1 af 7</div>
      <div class="cg-progress" aria-hidden="true"><div id="cgProg_nd1"></div></div>
    </div>

    <div class="cg-field">
      <label class="cg-label" id="cgQLabel_nd1" for="cgSelect_nd1">Spørgsmål?</label>
      <select class="cg-select" id="cgSelect_nd1" name="cgSelect_nd1"></select>

      <div class="cg-under">
        <button class="cg-why" type="button" id="cgWhy_nd1">Hvorfor spørger vi?</button>
      </div>

      <div class="cg-tip" id="cgTip_nd1"></div>
    </div>

    <div class="cg-nav">
      <button class="cg-btn" type="button" id="cgBack_nd1" disabled>Tilbage</button>
      <button class="cg-btn cg-primary" type="button" id="cgNext_nd1">Næste</button>
    </div>
  </div>

  <div class="cg-card" id="cgResultCard_nd1">
    <p class="cg-section-title">Jeres retning lige nu</p>

    <div class="cg-kpi-top">
      <div class="cg-kpi-label">Pejer mod</div>
      <div class="cg-kpi-value" id="cgResult_nd1">Riv ned og byg nyt</div>
    </div>

    <p class="cg-explain" id="cgExplain_nd1"></p>

    <div class="cg-bar" aria-hidden="true">
      <div class="cg-bar-fill" id="cgBar_nd1" style="width: 50%;"></div>
    </div>
    <div class="cg-bar-labels" aria-hidden="true">
      <span>Riv ned og byg nyt</span>
      <span>Nybyg andet sted</span>
    </div>

    <div class="cg-actions">
      <button class="cg-btn" type="button" id="cgCopy_nd1">Kopiér opsummering</button>
      <button class="cg-btn" type="button" id="cgReset_nd1">Nulstil</button>
    </div>
    <div class="cg-toast" id="cgToast_nd1" role="status" aria-live="polite">Kopieret.</div>

    <div class="cg-cta" id="cgCtaBox_nd1">
      <p id="cgCtaText_nd1">Næste skridt er at få konkrete bud, så I kan sammenligne på samme grundlag.</p>

      <a class="cg-cta-btn cg-cta-btn--primary" id="cgCtaPrimary_nd1" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/nedrivning/" target="_blank" rel="nofollow sponsored noopener">
        Indhent tilbud på nedrivning
      </a>

      <a class="cg-cta-btn cg-cta-btn--secondary" id="cgCtaAlt_nd1" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/lp/nybyg/" target="_blank" rel="nofollow sponsored noopener">
        Indhent tilbud på nybyg
      </a>

      <div class="cg-smallprint">
        Guiden er vejledende. Den kan ikke erstatte byggesag, lokalplan og miljøscreening, men den gør jer skarpere på, hvad I bør afklare.
      </div>
    </div>
  </div>
</div>

<p><script>
(function () {
  const root = document.getElementById("choiceGuide_nybyg_nedriv_v1");
  if (!root) return;

  const storageKey = "nybyg_vs_nedrivning_v1";
  const el = (id) => document.getElementById(id);

  const stepPill = el("cgStepPill_nd1");
  const prog = el("cgProg_nd1");
  const qLabel = el("cgQLabel_nd1");
  const select = el("cgSelect_nd1");
  const whyBtn = el("cgWhy_nd1");
  const tipBox = el("cgTip_nd1");
  const backBtn = el("cgBack_nd1");
  const nextBtn = el("cgNext_nd1");

  const resultOut = el("cgResult_nd1");
  const explainOut = el("cgExplain_nd1");
  const barOut = el("cgBar_nd1");

  const copyBtn = el("cgCopy_nd1");
  const resetBtn = el("cgReset_nd1");
  const toast = el("cgToast_nd1");

  const ctaText = el("cgCtaText_nd1");
  const ctaPrimary = el("cgCtaPrimary_nd1"); // nedrivning
  const ctaAlt = el("cgCtaAlt_nd1");         // nybyg

  const links = {
    demo: "https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&bannerid=25692&htmlurl=https://www.3byggetilbud.dk/tilbud/nedrivning/",
    newb: "https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&bannerid=25692&htmlurl=https://www.3byggetilbud.dk/lp/nybyg/"
  };

  const clamp = (n, min, max) => Math.min(max, Math.max(min, n));

  const QUESTIONS = [
    {
      key: "situation",
      label: "Hvad passer bedst på jeres situation?",
      tip: "Det vigtigste først. Hvis I allerede har en attraktiv adresse, handler valget typisk om at bevare beliggenheden eller starte forfra et andet sted.",
      def: "own",
      options: [
        { v: "own",  t: "Vi har allerede et hus på en adresse, vi gerne vil blive på", demo: 3, newb: 0, flags: [] },
        { v: "look", t: "Vi leder efter den rigtige adresse (kigger på både grunde og huse)", demo: 1, newb: 1, flags: [] },
        { v: "land", t: "Vi har (eller kan få) en byggegrund uden hus", demo: 0, newb: 3, flags: [] }
      ]
    },
    {
      key: "location",
      label: "Hvor vigtig er beliggenheden helt konkret for jer?",
      tip: "Når beliggenheden er ‘alt’, ender mange med at acceptere nedrivning/byg nyt, hvis huset ikke kan løses fornuftigt.",
      def: "high",
      showIf: (s) => s.situation === "own" || s.situation === "look",
      options: [
        { v: "high", t: "Meget vigtig (skole, netværk, hverdag er bundet til området)", demo: 3, newb: 0, flags: [] },
        { v: "mid",  t: "Vigtig, men vi kan godt flytte 10–30 minutter", demo: 1, newb: 2, flags: [] },
        { v: "low",  t: "Ikke afgørende (vi er fleksible)", demo: 0, newb: 3, flags: [] }
      ]
    },
    {
      key: "permit",
      label: "Er det realistisk at bygge nyt på den adresse, I har i tankerne?",
      tip: "Det her er en gamechanger. Lokalplan, bebyggelsesprocent, afstandskrav, bevaringshensyn og servitutter kan afgøre alt.",
      def: "unknown",
      showIf: (s) => s.situation === "own" || s.situation === "look" || s.situation === "land",
      options: [
        { v: "yes",     t: "Ja, vi ved at nybyg kan godkendes her", demo: 2, newb: 1, flags: [] },
        { v: "maybe",   t: "Måske (vi skal tjekke lokalplan/servitutter)", demo: 1, newb: 1, flags: ["needs_clarity"] },
        { v: "unknown", t: "Vi ved det ikke endnu", demo: 1, newb: 1, flags: ["needs_clarity"] },
        { v: "no",      t: "Nej, nybyg er ikke realistisk på adressen", demo: 0, newb: 3, flags: ["block_demo"] }
      ]
    },
    {
      key: "condition",
      label: "Hvor træt er huset, I har i tankerne?",
      tip: "Hvis næsten alt alligevel skal skiftes, kan nedrivning + nybyg blive mere relevant at regne på.",
      def: "mid",
      showIf: (s) => s.situation === "own" || s.situation === "look",
      options: [
        { v: "ok",  t: "Overordnet ok (mindre renoveringer)", demo: 0, newb: 2, flags: [] },
        { v: "mid", t: "Blandet (flere store poster nærmer sig)", demo: 1, newb: 1, flags: [] },
        { v: "bad", t: "Meget slidt (tag/installationer/fugt/pladsproblemer)", demo: 3, newb: 0, flags: [] }
      ]
    },
    {
      key: "hazard",
      label: "Er der mistanke om asbest, PCB eller andre miljøforhold?",
      tip: "Miljøscreening og sanering kan ændre både pris og tempo. Hvis det er uklart, så planlæg som minimum en buffer.",
      def: "unknown",
      showIf: (s) => s.situation === "own" || s.situation === "look",
      options: [
        { v: "none",    t: "Nej, vi tror ikke der er noget", demo: 1, newb: 1, flags: [] },
        { v: "unknown", t: "Vi ved det ikke endnu", demo: 1, newb: 1, flags: ["needs_clarity"] },
        { v: "some",    t: "Muligt (fx tagplader/fuger)", demo: 2, newb: 0, flags: ["needs_clarity"] },
        { v: "high",    t: "Sandsynligt / større omfang", demo: 2, newb: 0, flags: ["needs_clarity"] }
      ]
    },
    {
      key: "basement",
      label: "Har huset kælder eller meget beton, som vil gøre nedrivning tungere?",
      tip: "Kælder kan skubbe prisen på nedrivning og jordarbejde, men det betyder ikke automatisk at nybyg andet sted er bedre.",
      def: "none",
      showIf: (s) => s.situation === "own" || s.situation === "look",
      options: [
        { v: "none", t: "Ingen kælder", demo: 1, newb: 1, flags: [] },
        { v: "part", t: "Delvis kælder", demo: 1, newb: 1, flags: [] },
        { v: "full", t: "Fuld kælder", demo: 0, newb: 2, flags: [] }
      ]
    },
    {
      key: "altPlot",
      label: "Hvis I vælger nybyg andet sted, hvor realistisk er det at finde en grund i jeres ønskede område?",
      tip: "Hvis grunde i jeres område er få og dyre, bliver nedrivning på en eksisterende adresse ofte den ‘praktiske’ vej til beliggenheden.",
      def: "mid",
      showIf: (s) => s.situation !== "land",
      options: [
        { v: "easy", t: "Ret realistisk (der er grunde/udstykninger)", demo: 0, newb: 3, flags: [] },
        { v: "mid",  t: "Muligt, men vi skal være tålmodige", demo: 1, newb: 2, flags: [] },
        { v: "hard", t: "Meget svært (næsten ingen grunde i området)", demo: 3, newb: 0, flags: [] }
      ]
    },
    {
      key: "budget",
      label: "Hvilken budget- og risikoprofil passer bedst på jer?",
      tip: "Her handler det ikke om ‘billigst’. Det handler om, hvor meget usikkerhed I vil acceptere, og hvor stram en ramme I har.",
      def: "mid",
      options: [
        { v: "tight", t: "Stramt budget (vi skal undgå store overraskelser)", demo: 0, newb: 2, flags: [] },
        { v: "mid",   t: "Mellem (vi kan håndtere noget variation)", demo: 1, newb: 1, flags: [] },
        { v: "flex",  t: "Fleksibelt (vi prioriterer beliggenhed og løsning)", demo: 2, newb: 0, flags: [] }
      ]
    },
    {
      key: "timeline",
      label: "Hvad er vigtigst for jer tidsmæssigt?",
      tip: "Nedrivning + nybyg kan være effektivt, men kræver afklaringer. Nybyg i udstykning kan være mere ‘standardiseret’.",
      def: "balanced",
      options: [
        { v: "fast",     t: "Vi vil hurtigt i gang med en overskuelig proces", demo: 0, newb: 2, flags: [] },
        { v: "balanced", t: "Vi kan leve med planlægning, hvis det giver en bedre løsning", demo: 1, newb: 1, flags: [] },
        { v: "right",    t: "Vi går efter den rigtige løsning, selv om det tager tid", demo: 2, newb: 0, flags: [] }
      ]
    }
  ];

  let state = { idx: 0 };
  QUESTIONS.forEach(q => state[q.key] = q.def);

  function isActive(q) {
    if (!q.showIf) return true;
    try { return !!q.showIf(state); } catch (e) { return false; }
  }

  function activeQuestions() {
    return QUESTIONS.filter(isActive);
  }

  function optFor(q, value) {
    return q.options.find(o => o.v === value) || q.options[0];
  }

  function computeScores() {
    let demo = 0, newb = 0;
    let flags = new Set();

    QUESTIONS.forEach(q => {
      if (!isActive(q)) return;
      const opt = optFor(q, state[q.key]);
      demo += (opt.demo || 0);
      newb += (opt.newb || 0);
      (opt.flags || []).forEach(f => flags.add(f));
    });

    return { demo, newb, flags };
  }

  function buildResult(scores) {
    if (scores.flags.has("block_demo")) {
      return {
        heading: "Nybyg andet sted",
        text:
          "Jeres svar tyder på, at nybyg ikke er realistisk på den adresse, I tænker på. " +
          "Så giver det mest mening at kigge efter en grund eller en løsning i et område, hvor nybyg kan godkendes."
      };
    }

    const needsClarity = scores.flags.has("needs_clarity");
    const diff = scores.demo - scores.newb;

    if (needsClarity && Math.abs(diff) <= 2) {
      return {
        heading: "Stop op og få afklaring",
        text:
          "I er i et punkt, hvor et par få afklaringer kan afgøre hele regnestykket. " +
          "Start med at få styr på byggeret og miljøforhold, og først derefter giver det mening at sammenligne priser."
      };
    }

    if (Math.abs(diff) <= 2) {
      let txt =
        "Det er tæt løb. Begge veje kan være rigtige, og her er det typisk beliggenhed, byggeret og de konkrete tilbud, der afgør det.";
      if (needsClarity) {
        txt += " Når miljø eller regler ikke er afklaret, så planlæg med en buffer og få afklaring tidligt.";
      }
      return { heading: "Det er tæt løb", text: txt };
    }

    if (diff > 2) {
      let txt =
        "Jeres svar peger på, at beliggenheden og udgangspunktet gør det relevant at regne seriøst på at rive ned og bygge nyt på samme adresse.";
      if (state.permit === "maybe" || state.permit === "unknown") {
        txt += " Før I går langt, bør I dog få afklaret lokalplan/servitutter, så I ved, hvad I faktisk må bygge.";
      }
      if (state.hazard === "unknown" || state.hazard === "some" || state.hazard === "high") {
        txt += " Og hvis der er miljøforhold, bør det indgå tidligt i plan og budget.";
      }
      return { heading: "Riv ned og byg nyt", text: txt };
    }

    let txt =
      "Jeres svar tyder på, at nybyg andet sted er det mest oplagte spor. " +
      "Det passer ofte bedst, når beliggenheden er fleksibel, og I gerne vil have en mere standardiseret proces.";
    if (state.situation === "look") {
      txt += " Hvis I stadig kigger, kan det være en god idé at sammenligne en tom grund med et hus til nedrivning i samme område.";
    }
    return { heading: "Nybyg andet sted", text: txt };
  }

  function applyCtas(heading, scores) {
    ctaPrimary.style.display = "block";
    ctaAlt.style.display = "block";

    if (heading === "Riv ned og byg nyt") {
      ctaText.textContent =
        "Næste skridt er at få konkrete priser på nedrivning og forstå, hvad der er inkluderet, så I kan regne nybyg-delen rigtigt efterfølgende.";
      ctaPrimary.textContent = "Indhent tilbud på nedrivning";
      ctaPrimary.href = links.demo;

      ctaAlt.textContent = "Indhent tilbud på nybyg";
      ctaAlt.href = links.newb;
    }
    else if (heading === "Nybyg andet sted") {
      ctaText.textContent =
        "Næste skridt er at få konkrete bud på nybyg, så I kan sammenligne løsninger, energiniveau og totaløkonomi.";
      ctaPrimary.textContent = "Indhent tilbud på nybyg";
      ctaPrimary.href = links.newb;

      ctaAlt.textContent = "Indhent tilbud på nedrivning";
      ctaAlt.href = links.demo;
    }
    else if (heading === "Stop op og få afklaring") {
      ctaText.textContent =
        "Start med at få afklaret byggeret, lokalplan og miljøforhold. Når det er på plads, kan I indhente priser og sammenligne fair.";
      ctaPrimary.textContent = "Indhent tilbud på nedrivning";
      ctaPrimary.href = links.demo;

      ctaAlt.textContent = "Indhent tilbud på nybyg";
      ctaAlt.href = links.newb;
    }
    else {
      ctaText.textContent =
        "Når det er tæt løb, giver det mest ro at indhente konkrete bud på begge spor, så I sammenligner på samme grundlag.";
      ctaPrimary.textContent = "Indhent tilbud på nedrivning";
      ctaPrimary.href = links.demo;

      ctaAlt.textContent = "Indhent tilbud på nybyg";
      ctaAlt.href = links.newb;
    }

    if (scores.flags.has("needs_clarity")) {
      ctaText.textContent += " Planlæg med en buffer, indtil I har fakta på bordet.";
    }
  }

  function render() {
    const active = activeQuestions();
    state.idx = clamp(state.idx, 0, active.length - 1);

    const q = active[state.idx];

    stepPill.textContent = "Spørgsmål " + (state.idx + 1) + " af " + active.length;
    prog.style.width = Math.round(((state.idx + 1) / active.length) * 100) + "%";

    qLabel.textContent = q.label;

    select.innerHTML = "";
    q.options.forEach(opt => {
      const o = document.createElement("option");
      o.value = opt.v;
      o.textContent = opt.t;
      select.appendChild(o);
    });
    select.value = state[q.key];

    tipBox.style.display = "none";
    tipBox.textContent = q.tip;

    backBtn.disabled = (state.idx === 0);
    nextBtn.textContent = (state.idx === active.length - 1) ? "Se resultat" : "Næste";
  }

  function update() {
    const scores = computeScores();
    const total = Math.max(1, scores.demo + scores.newb);
    const newShare = scores.newb / total;

    const width = clamp(Math.round(newShare * 100), 10, 90);
    barOut.style.width = width + "%";

    const res = buildResult(scores);
    resultOut.textContent = res.heading;
    explainOut.textContent = res.text;

    applyCtas(res.heading, scores);

    try { localStorage.setItem(storageKey, JSON.stringify(state)); } catch (e) {}
  }

  function summaryText() {
    const active = activeQuestions();
    const lines = active.map(q => {
      const opt = optFor(q, state[q.key]);
      return q.label + " " + opt.t;
    });

    return (
      "Mini afklaring: Nybyg vs. riv ned og byg nyt\n" +
      lines.join("\n") + "\n\n" +
      "Pejer mod: " + resultOut.textContent + "\n" +
      explainOut.textContent
    );
  }

  function showToast(msg) {
    toast.textContent = msg;
    toast.style.display = "block";
    setTimeout(() => (toast.style.display = "none"), 2200);
  }

  function restore() {
    try {
      const saved = JSON.parse(localStorage.getItem(storageKey) || "null");
      if (!saved) return;

      state = Object.assign(state, saved);

      QUESTIONS.forEach(q => {
        if (!(q.key in state)) state[q.key] = q.def;
      });

      state.idx = clamp(parseInt(state.idx || 0, 10), 0, 50);
    } catch (e) {}
  }

  select.addEventListener("change", () => {
    const active = activeQuestions();
    const q = active[state.idx];
    state[q.key] = select.value;

    const newActive = activeQuestions();
    state.idx = clamp(state.idx, 0, newActive.length - 1);

    render();
    update();
  });

  whyBtn.addEventListener("click", () => {
    tipBox.style.display = (tipBox.style.display === "none" || !tipBox.style.display) ? "block" : "none";
  });

  backBtn.addEventListener("click", () => {
    state.idx = clamp(state.idx - 1, 0, 999);
    render();
  });

  nextBtn.addEventListener("click", () => {
    const active = activeQuestions();
    if (state.idx < active.length - 1) {
      state.idx += 1;
      render();
    } else {
      const resCard = el("cgResultCard_nd1");
      if (resCard) resCard.scrollIntoView({ behavior: "smooth", block: "start" });
    }
  });

  copyBtn.addEventListener("click", async () => {
    const text = summaryText();
    try {
      await navigator.clipboard.writeText(text);
      showToast("Kopieret. Du kan bruge opsummeringen i dialogen.");
    } catch (e) {
      const ta = document.createElement("textarea");
      ta.value = text;
      document.body.appendChild(ta);
      ta.select();
      try { document.execCommand("copy"); } catch (err) {}
      document.body.removeChild(ta);
      showToast("Kopieret. Du kan bruge opsummeringen i dialogen.");
    }
  });

  resetBtn.addEventListener("click", () => {
    state = { idx: 0 };
    QUESTIONS.forEach(q => state[q.key] = q.def);
    try { localStorage.removeItem(storageKey); } catch (e) {}
    render();
    update();
    showToast("Nulstillet.");
  });

  restore();
  render();
  update();
})();
</script></p>

</div><div class="bde-rich-text-885-134 bde-rich-text breakdance-rich-text-styles">
<h2 data-start="8796" data-end="8855">Sådan kommer du videre uden at låse dig fast for tidligt</h2>
<p data-start="8857" data-end="9021">Du behøver ikke vælge nybyg eller renovering i dag. Men du kan vælge at gøre det konkret. Det er ofte det, der skaber ro, fordi du går fra forestillinger til fakta.</p>
<p data-start="9023" data-end="9575">Start med at få indblik i, hvad nedrivningen vil koste gennem <a class="decorated-link" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/nedrivning/" target="_new" rel="noopener" data-start="9087" data-end="9242">tilbud på nedrivning</a>. Og hvis nybyg reelt er et spor, I overvejer, så sammenlign med <a class="decorated-link" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/lp/nybyg/" target="_new" rel="noopener" data-start="9311" data-end="9452">tilbud på nybyg</a>. Ikke for at “vinde” et regnestykke, men for at se, hvad der følger med i de to valg, og hvad I faktisk får for pengene.</p>
<p data-start="9577" data-end="9790">Når du står med konkrete bud, bliver det tydeligt, hvad der er realistisk. Og hvad der bare var en idé. Det er dér, du kan tage beslutningen på et oplyst grundlag, uden at det føles som et spring ud fra en klippe.</p>
</div><div class="bde-globalblock-885-120 bde-globalblock"><div class="bde-rich-text-897-100-897-2 bde-rich-text bde-rich-text-897-100 breakdance-rich-text-styles">
<p><style>
:root{
  --brand: #203723;
  --brand-light: #CCFA74;
  --text-light: #F5F5F2;
}

.ad-690 {
  position: relative;
  width: 690px;
  height: 90px;
  background-color: var(--brand);
  border-radius: 8px;
  padding: 16px 20px;
  color: var(--text-light);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  display: flex;
  align-items: center;
  justify-content: space-between;
  overflow: hidden;
}

.ad-690::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(245,245,242,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(245,245,242,0.05) 1px, transparent 1px);
  background-size: 32px 32px;
  z-index: 0;
}

.ad-690::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      ellipse at center,
      rgba(255,255,255,0.06) 0%,
      rgba(0,0,0,0.35) 70%
    );
  z-index: 0;
}

.ad-690 > * {
  position: relative;
  z-index: 1;
}

.ad-690-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ad-690-label {
  font-size: 0.65rem;
  opacity: 0.8;
}

.ad-690-headline {
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.2;
}

.ad-690-text {
  font-size: 0.9rem;
  opacity: 0.9;
}

.ad-690-cta {
  background: var(--brand-light);
  color: #10110C !important;
  padding: 12px 22px;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

@media (max-width: 768px) {

  .ad-690 {
    width: 336px;
    height: 280px;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    padding: 16px;
    gap: 0;
  }

  .ad-690-content {
    gap: 10px;
  }

  .ad-690-label {
    font-size: 0.7rem;
    opacity: 0.8;
  }

  .ad-690-headline {
    font-size: 1.35rem;
    line-height: 1.25;
    font-weight: 600;
  }

  .ad-690-text {
    font-size: 0.95rem;
    line-height: 1.5;
    color: #E6ECE8;
  }

  .ad-690-cta {
    width: 100%;
    text-align: center;
    padding: 12px;
    font-size: 1.1rem;
    border-radius: 999px;
  }
}

</style></p>
<aside class="ad-690">
<div class="ad-690-content">
<div class="ad-690-label">Annonce</div>
<div class="ad-690-headline">Nedrivning af hus?</div>
<div class="ad-690-text">Sammenlign tilbud på nedrivning af hus.</div>
</div>
<a class="ad-690-cta" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/nedrivning/" target="_blank" rel="nofollow sponsored noopener"> Få 3 gratis tilbud </a></aside>
</div></div><div class="bde-rich-text-885-127 bde-rich-text breakdance-rich-text-styles">

</div>
</div><div class="bde-column-885-128 bde-column">
  
  
	



<div class="bde-table-of-contents-885-129 bde-table-of-contents">
<div class="bde-table-of-contents__wrapper">
  <header class="bde-table-of-contents__header">
        <h3 class="bde-table-of-contents__title toc-ignore">Indholdsfortegnelse</h3>
           </header>
  
  <div class="bde-table-of-contents__list">
    <nav id="bde-toc" class="toc js-breakdance-toc" aria-label="Indholdsfortegnelse">There are no headings in this document.</nav>
  </div>
</div>


</div><div class="bde-div-885-130 bde-div">
  
  
	



<div class="bde-text-885-131 bde-text">
Vi samarbejder med 3Byggetilbud.dk og modtager provision for henvisninger via links på denne side. Vi tager ikke ansvar for kvaliteten af det udførte arbejde eller for aftaler indgået mellem dig og de formidlede håndværkere. Alle aftaler indgås direkte mellem dig og den valgte håndværker.
</div>
</div><div class="bde-globalblock-885-132 bde-globalblock"><div class="bde-rich-text-898-100-898-1 bde-rich-text bde-rich-text-898-100 breakdance-rich-text-styles">
<style>
:root{
  --brand: #203723;
  --brand-light: #CCFA74;
  --text-light: #F5F5F2;
}

.ad-336 {
  position: relative;
  width: 336px;
  height: 280px;
  background-color: var(--brand);
  border-radius: 8px;
  padding: 16px;
  color: var(--text-light);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
}

.ad-336::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(
      rgba(245,245,242,0.05) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(245,245,242,0.05) 1px,
      transparent 1px
    );
  background-size: 32px 32px;
  z-index: 0;
}

.ad-336::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      ellipse at top,
      rgba(255,255,255,0.06) 0%,
      rgba(0,0,0,0.35) 70%
    );
  z-index: 0;
}

.ad-336 > * {
  position: relative;
  z-index: 1;
}

.ad-content {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ad-label {
  font-size: 0.7rem;
  opacity: 0.8;
}

.ad-headline {
  font-size: 1.35rem;
  line-height: 1.25;
  font-weight: 600;
}

.ad-text {
  font-size: 0.95rem;
  line-height: 1.5;
  color: #E6ECE8;
}

.ad-badge {
  align-self: flex-start;
  border: 1px solid rgba(204,250,116,0.6);
  color: #EAF7C8;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 0.75rem;
}

.ad-footer {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ad-cta {
  background: var(--brand-light);
  color: #10110C !important;
  text-align: center;
  padding: 12px;
  border-radius: 999px;
  font-size: 1.1rem;
  font-weight: 600;
  text-decoration: none;
}

.ad-note {
  font-size: 0.7rem;
  opacity: 0.85;
  text-align: center;
}
</style>

<aside class="ad-336">
  <div class="ad-content">
    <div class="ad-label">Annonce</div>

    <div class="ad-headline">
  Nedrivning af hus
    </div>

    <div class="ad-text">
      Få 3 uforpligtende tilbud fra lokale nedrivningsfirmaer og sammenlign pris.
    </div>

    <div class="ad-badge">
      Gratis og uforpligtende
    </div>
  </div>

  <div class="ad-footer">
    <a href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/nedrivning/" class="ad-cta" target="_blank" rel="nofollow sponsored noopener">
      Få 3 gratis tilbud
    </a>

    <div class="ad-note">
      Sammenlign pris og løsning
    </div>
  </div>
</aside>

</div></div>
</div></div></div>
</section>]]></content:encoded>
					
					<wfw:commentRss>https://mitboligprojekt.dk/riv-hus-ned-og-byg-nyt/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Nybyg vs. totalrenovering: sådan finder I den rette løsning</title>
		<link>https://mitboligprojekt.dk/nybyg-vs-totalrenovering/</link>
					<comments>https://mitboligprojekt.dk/nybyg-vs-totalrenovering/#respond</comments>
		
		<dc:creator><![CDATA[Tobias]]></dc:creator>
		<pubDate>Wed, 04 Feb 2026 13:57:27 +0000</pubDate>
				<category><![CDATA[Totalentreprise]]></category>
		<category><![CDATA[Nybyg]]></category>
		<guid isPermaLink="false">https://mitboligprojekt.dk/?p=851</guid>

					<description><![CDATA[Nybyg og totalrenovering kan begge ende med et hjem, der føles som en ny start. Forskellen ligger i, hvad I vil bevare, hvor meget usikkerhed I kan leve med, og hvordan økonomi og tidsplan hænger sammen. Her får I en guide, der gør valget mere roligt og mere realistisk.]]></description>
										<content:encoded><![CDATA[<section class="bde-section-851-100 bde-section">
  
  
	



<div class="section-container"><div class="bde-columns-851-101 bde-columns"><div class="bde-column-851-102 bde-column">
  
  
	



<div class="bde-div-851-103 bde-div">
  
  
	



<div class="bde-breadcrumbs-851-104 bde-breadcrumbs"><nav aria-label="breadcrumbs" class="rank-math-breadcrumb"><p><a href="https://mitboligprojekt.dk">Forside</a><span class="separator"> &raquo; </span><span class="last">Nybyg</span></p></nav></div><ul class="bde-post-meta-851-105 bde-post-meta">            <li class="ee-postmeta-date-wrap">
                                                        <span class="ee-postmeta-date"><span
                            class="ee-postmeta-before">Senest opdateret: </span>4. februar 2026</span>
                                </li>
            </ul>
</div><div class="bde-fancy-divider-851-106 bde-fancy-divider">


<div class="bde-fancy-divider__wrapper">
  <div class="bde-fancy-divider__separator   ">
  	  </div>
</div>

</div><div class="bde-rich-text-851-107 bde-rich-text breakdance-rich-text-styles">
<h1><span style="font-weight: bold;">Nybyg vs. totalrenovering:</span> <span style="font-weight: 500;">sådan finder I den rette løsning</span></h1>
</div><div class="bde-text-851-108 bde-text">
<p>Nybyg og totalrenovering kan begge ende med et hjem, der føles som en ny start. Forskellen ligger i, hvad I vil bevare, hvor meget usikkerhed I kan leve med, og hvordan økonomi og tidsplan hænger sammen. Her får I en guide, der gør valget mere roligt og mere realistisk.</p>

</div><img decoding="async" class="bde-image2-851-109 bde-image2" src="https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-4.-feb.-2026-14.08.45.webp" alt="Nybyg parcelhus vs totalrenovering af 60/70’er hus i Danmark (split-screen)." srcset="https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-4.-feb.-2026-14.08.45.webp 1536w, https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-4.-feb.-2026-14.08.45-300x200.webp 300w, https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-4.-feb.-2026-14.08.45-1024x683.webp 1024w, https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-4.-feb.-2026-14.08.45-768x512.webp 768w" sizes="(max-width: 1536px) 100vw, 1536px"><div class="bde-rich-text-851-110 bde-rich-text breakdance-rich-text-styles">
Nybyg parcelhus vs totalrenovering af 60/70’er hus i Danmark (split-screen).
</div><div class="bde-fancy-divider-851-111 bde-fancy-divider">


<div class="bde-fancy-divider__wrapper">
  <div class="bde-fancy-divider__separator   ">
  	  </div>
</div>

</div><div class="bde-rich-text-851-112 bde-rich-text breakdance-rich-text-styles">
<p>Måske er det pladsen, der mangler. Måske er det planløsningen, der driller. Eller måske er huset egentlig fint, men det føles som om I hele tiden lapper og aldrig rigtig kommer i mål.</p>
<p>Uanset årsagen ender mange danske boligejere samme sted: Skal vi bygge nyt, eller skal vi totalrenovere det, vi allerede har? Det er et stort valg, men det behøver ikke føles som et sats.</p>
<p>På <a href="https://mitboligprojekt.dk/">MitBoligProjekt.dk</a> hjælper vi boligejere med at skabe overblik før de binder sig. Denne artikel er skrevet til jer, der gerne vil træffe en god beslutning uden at drukne i detaljer. I får de vigtigste kriterier, de typiske faldgruber og en praktisk måde at komme videre på.</p>
</div><div class="bde-globalblock-851-113 bde-globalblock"><div class="bde-rich-text-838-100-838-1 bde-rich-text bde-rich-text-838-100 breakdance-rich-text-styles">
<style>
:root{
  --brand: #203723;
  --brand-light: #CCFA74;
  --text-light: #F5F5F2;
}

.ad-690 {
  position: relative;
  width: 690px;
  height: 90px;
  background-color: var(--brand);
  border-radius: 8px;
  padding: 16px 20px;
  color: var(--text-light);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  display: flex;
  align-items: center;
  justify-content: space-between;
  overflow: hidden;
}

.ad-690::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(245,245,242,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(245,245,242,0.05) 1px, transparent 1px);
  background-size: 32px 32px;
  z-index: 0;
}

.ad-690::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      ellipse at center,
      rgba(255,255,255,0.06) 0%,
      rgba(0,0,0,0.35) 70%
    );
  z-index: 0;
}

.ad-690 > * {
  position: relative;
  z-index: 1;
}

.ad-690-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ad-690-label {
  font-size: 0.65rem;
  opacity: 0.8;
}

.ad-690-headline {
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.2;
}

.ad-690-text {
  font-size: 0.9rem;
  opacity: 0.9;
}

.ad-690-cta {
  background: var(--brand-light);
  color: #10110C !important;
  padding: 12px 22px;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

@media (max-width: 768px) {

  .ad-690 {
    width: 336px;
    height: 280px;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    padding: 16px;
    gap: 0;
  }

  .ad-690-content {
    gap: 10px;
  }

  .ad-690-label {
    font-size: 0.7rem;
    opacity: 0.8;
  }

  .ad-690-headline {
    font-size: 1.35rem;
    line-height: 1.25;
    font-weight: 600;
  }

  .ad-690-text {
    font-size: 0.95rem;
    line-height: 1.5;
    color: #E6ECE8;
  }

  .ad-690-cta {
    width: 100%;
    text-align: center;
    padding: 12px;
    font-size: 1.1rem;
    border-radius: 999px;
  }
}

</style>

<aside class="ad-690">
  <div class="ad-690-content">
    <div class="ad-690-label">Annonce</div>

    <div class="ad-690-headline">
      Overvejer du totalrenovering?
    </div>

    <div class="ad-690-text">
      Sammenlign tilbud på totalrenovering af hus.
    </div>
  </div>

  <a class="ad-690-cta" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/totalentreprise/" target="_blank" rel="nofollow sponsored noopener">
    Få 3 gratis tilbud
  </a>
</aside>

</div></div><div class="bde-rich-text-851-114 bde-rich-text breakdance-rich-text-styles">
<h2>Start med det, I vil opnå</h2>
<p>Før I overhovedet begynder at regne på m² og materialer, er der ét spørgsmål, der gør alt lettere: Hvad er det, I vil have mere af i hverdagen?</p>
<p>For nogle handler det om ro. For andre handler det om flow, zoner og opbevaring. Og for mange handler det om livsfase.</p>
<p>Når der kommer børn til, bliver ekstra værelser, et ekstra bad og et køkken, der kan rumme kaos og madpakker, pludselig meget konkret. Når børnene flytter hjemmefra, handler ønsket ofte om det modsatte: færre kvadratmeter, bedre komfort og et hus, der er nemt at bo i og billigere at varme op.</p>
<p>Hvis I kan formulere målet i én sætning, bliver resten mere overskueligt. “Vi vil have et køkken-alrum og et ekstra bad.” “Vi vil have lavere drift og mindre vedligehold.” “Vi vil have et hus, der passer til de næste 10–15 år.”</p>
</div><div class="bde-rich-text-851-115 bde-rich-text breakdance-rich-text-styles">
<h2>To veje til et hjem, der føles nyt</h2>
<p>Nybyg og totalrenovering kan begge give jer den samme følelse, når I er færdige: “Nu fungerer det.” Men vejen dertil er forskellig.</p>
<p>Nybyg er et blankt lærred. I kan tegne huset til jeres liv, jeres vaner og jeres næste kapitel. Mange oplever også, at processen er lettere at forstå, fordi man bygger fremad fra en plan.</p>
<p>Totalrenovering er en opgradering af noget, der allerede har værdi. Beliggenheden, grunden, skolevejen, haven, nabolaget og måske også husets proportioner eller særlige detaljer. En god totalrenovering kan føles lige så moderne som nybyg, men med den store fordel, at I ikke skal starte forfra på adressen.</p>
<p>Hvis I vil læse mere om mulighederne ved nybyg, kan I bruge guiden om nybyg på MitBoligProjekt.dk. Og hvis I hælder mod en renovering med samlet ansvar, giver guiden om totalentreprise et godt udgangspunkt.</p>
</div><div class="bde-rich-text-851-133 bde-rich-text breakdance-rich-text-styles">
<div class="flex flex-col text-sm pb-25">
<article class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" dir="auto" tabindex="-1" data-turn-id="c51f4d2c-8b6c-4096-ac61-cb45c88e09d2" data-testid="conversation-turn-72" data-scroll-anchor="true" data-turn="assistant">
<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm/main:[--thread-content-margin:--spacing(6)] @w-lg/main:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)">
<div class="[--thread-content-max-width:40rem] @w-lg/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1">
<div class="flex max-w-full flex-col grow">
<div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-1" dir="auto" data-message-author-role="assistant" data-message-id="f33e637f-a4f9-4cec-9a54-c33d85d1f41c" data-message-model-slug="gpt-5-2-thinking">
<div class="flex w-full flex-col gap-1 empty:hidden first:pt-[1px]">
<div class="markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling">
<h2 data-start="968" data-end="1039">Nybyg eller totalrenovering? Få en første retning på et par minutter</h2>
<p data-start="1041" data-end="1407" data-is-last-node="" data-is-only-node="">Er I i tvivl om, hvor det giver mest mening at lægge pengene: i et nyt hus eller i at løfte det, I allerede bor i? Denne guide hjælper jer med at få en realistisk mavefornemmelse, før I tager næste skridt.</p>
<p data-start="1041" data-end="1407" data-is-last-node="" data-is-only-node="">I svarer på 6 spørgsmål, ét ad gangen, og får en kort opsummering, som er nem at tage med ind i dialogen med en totalentreprenør eller en bygherrerådgiver.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</article>
</div>
</div><div class="bde-rich-text-851-116 bde-rich-text breakdance-rich-text-styles">

<p><style>
  .choice-mini {
    background: #F5F5F2;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    padding: 1.25rem;
    max-width: 760px;
    margin: 0 auto;
    color: #10110C;
    line-height: 1.55;
    font-weight: 300;
  }
  .choice-mini * { box-sizing: border-box; }

  .cg-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
  }
  .cg-title {
    margin: 0;
    font-size: 1.15rem;
    color: #203723;
    font-weight: 500;
  }
  .cg-sub {
    margin: 0.25rem 0 0 0;
    font-size: 0.95rem;
    color: #333;
    font-weight: 300;
    max-width: 72ch;
  }
  .cg-pill {
    background: #fff;
    border: 1px solid #E1E1E1;
    border-radius: 999px;
    padding: 0.4rem 0.7rem;
    font-size: 0.9rem;
    color: #203723;
    font-weight: 400;
    white-space: nowrap;
  }

  .cg-card {
    background: #fff;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    padding: 1rem;
  }
  .cg-card + .cg-card { margin-top: 0.85rem; }

  .cg-section-title {
    margin: 0 0 0.75rem 0;
    color: #203723;
    font-size: 1.02rem;
    font-weight: 500;
  }

  .cg-stephead {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
  }
  .cg-step-pill {
    background: #F5F5F2;
    border: 1px solid #E1E1E1;
    border-radius: 999px;
    padding: 0.25rem 0.55rem;
    font-size: 0.84rem;
    color: #333;
    font-weight: 300;
    white-space: nowrap;
  }
  .cg-progress {
    flex: 1;
    height: 8px;
    border: 1px solid #E1E1E1;
    background: #F5F5F2;
    border-radius: 999px;
    overflow: hidden;
  }
  .cg-progress > div {
    height: 100%;
    width: 16%;
    background: #203723;
  }

  .cg-field { display: grid; gap: 0.45rem; }
  .cg-label { font-size: 0.98rem; color: #10110C; font-weight: 400; }

  .cg-select {
    width: 100%;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    padding: 0.72rem 2.35rem 0.72rem 0.75rem;
    background: #fff;
    color: #10110C;
    font-size: 0.98rem;
    font-weight: 300;
    outline: none;
    min-height: 46px;

    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-repeat: no-repeat;
    background-position: right 0.85rem center;
    background-size: 14px 14px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23203723' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  }
  .cg-select:focus { border-color: #203723; }

  .cg-under {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.15rem;
  }
  .cg-why {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    color: #203723;
    cursor: pointer;
    font-size: 0.88rem;
    font-weight: 400;
    text-decoration: underline;
  }

  .cg-tip {
    display: none;
    margin-top: 0.65rem;
    padding: 0.65rem 0.7rem;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    background: #F5F5F2;
    font-size: 0.88rem;
    color: #333;
    font-weight: 300;
  }

  .cg-nav {
    display: flex;
    gap: 0.55rem;
    flex-wrap: wrap;
    margin-top: 0.95rem;
  }
  .cg-btn {
    appearance: none;
    border: 1px solid #E1E1E1;
    background: #fff;
    color: #10110C;
    padding: 0.6rem 0.85rem;
    border-radius: 10px;
    font-size: 0.95rem;
    cursor: pointer;
    font-weight: 400;
    transition: transform 0.08s ease, border-color 0.12s ease;
  }
  .cg-btn:hover { border-color: #203723; }
  .cg-btn:active { transform: scale(0.99); }
  .cg-btn[disabled] { opacity: 0.55; cursor: not-allowed; }

  .cg-primary {
    background: #203723;
    border-color: #203723;
    color: #fff;
  }
  .cg-primary:hover { filter: brightness(0.95); }

  .cg-kpi-top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.15rem;
  }
  .cg-kpi-label { font-size: 0.92rem; color: #333; font-weight: 400; }
  .cg-kpi-value { font-size: 1.08rem; color: #10110C; font-weight: 500; }

  .cg-explain {
    margin: 0.35rem 0 0 0;
    font-size: 0.92rem;
    color: #333;
    font-weight: 300;
  }

  .cg-bar {
    margin-top: 0.65rem;
    border: 1px solid #E1E1E1;
    border-radius: 999px;
    height: 12px;
    background: #F5F5F2;
    overflow: hidden;
  }
  .cg-bar-fill {
    height: 100%;
    width: 50%;
    background: #203723;
  }
  .cg-bar-labels {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.35rem;
    font-size: 0.82rem;
    color: #666;
    font-weight: 300;
  }

  .cg-actions {
    display: flex;
    gap: 0.55rem;
    flex-wrap: wrap;
    margin-top: 0.9rem;
  }

  .cg-toast {
    display: none;
    margin-top: 0.65rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    border: 1px solid #E1E1E1;
    background: #F5F5F2;
    color: #333;
    font-size: 0.9rem;
    font-weight: 300;
  }

  .cg-cta {
    margin-top: 0.95rem;
    border: 1px solid #E1E1E1;
    border-radius: 10px;
    background: #fff;
    padding: 1rem;
  }
  .cg-cta p {
    margin: 0 0 0.75rem 0;
    font-size: 0.95rem;
    color: #333;
    font-weight: 300;
  }

  .cg-cta-btn {
    display: block;
    width: 100%;
    text-align: center;
    text-decoration: none;
    padding: 0.75rem 1.05rem;
    border-radius: 10px;
    font-size: 1rem;
    font-weight: 500;
    margin-top: 0.55rem;
    border: 1px solid #E1E1E1;
  }
  .cg-cta-btn--primary {
    background: #203723;
    border-color: #203723;
    color: #fff !important;
  }
  .cg-cta-btn--secondary {
    background: #fff;
    border-color: #203723;
    color: #203723 !important;
  }
  .cg-cta-btn--primary:hover,
  .cg-cta-btn--secondary:hover { filter: brightness(0.97); }

  .cg-smallprint {
    margin-top: 0.65rem;
    font-size: 0.82rem;
    color: #666;
    font-weight: 300;
  }

  @media (max-width: 640px) {
    .choice-mini { padding: 1.05rem; }
    .cg-top { flex-direction: column; }
    .cg-nav .cg-btn, .cg-actions .cg-btn { width: 100%; text-align: center; }
  }
</style></p>

<div id="choiceGuide_singlecol_v4" class="choice-mini">
  <div class="cg-top">
    <div>
      <p class="cg-title">Nybyg eller totalrenovering?</p>
      <p class="cg-sub">Svar på 6 spørgsmål. Ét ad gangen. I får en retning og en opsummering, som er nem at bruge i dialogen bagefter.</p>
    </div>
    <div class="cg-pill">Vejledende guide</div>
  </div>

  <div class="cg-card">
    <p class="cg-section-title">6 spørgsmål der afklarer retningen</p>

    <div class="cg-stephead">
      <div class="cg-step-pill" id="cgStepPill_v4">Spørgsmål 1 af 6</div>
      <div class="cg-progress" aria-hidden="true"><div id="cgProg_v4"></div></div>
    </div>

    <div class="cg-field">
      <label class="cg-label" id="cgQLabel_v4" for="cgSelect_v4">Spørgsmål?</label>
      <select class="cg-select" id="cgSelect_v4" name="cgSelect_v4"></select>

      <div class="cg-under">
        <button class="cg-why" type="button" id="cgWhy_v4">Hvorfor spørger vi?</button>
      </div>

      <div class="cg-tip" id="cgTip_v4"></div>
    </div>

    <div class="cg-nav">
      <button class="cg-btn" type="button" id="cgBack_v4" disabled>Tilbage</button>
      <button class="cg-btn cg-primary" type="button" id="cgNext_v4">Næste</button>
    </div>
  </div>

  <div class="cg-card" id="cgResultCard_v4">
    <p class="cg-section-title">Jeres retning lige nu</p>

    <div class="cg-kpi-top">
      <div class="cg-kpi-label">Pejer mod</div>
      <div class="cg-kpi-value" id="cgResult_v4">Totalrenovering</div>
    </div>

    <p class="cg-explain" id="cgExplain_v4"></p>

    <div class="cg-bar" aria-hidden="true">
      <div class="cg-bar-fill" id="cgBar_v4" style="width: 50%;"></div>
    </div>
    <div class="cg-bar-labels" aria-hidden="true">
      <span>Totalrenovering</span>
      <span>Nybyg</span>
    </div>

    <div class="cg-actions">
      <button class="cg-btn" type="button" id="cgCopy_v4">Kopiér opsummering</button>
      <button class="cg-btn" type="button" id="cgReset_v4">Nulstil</button>
    </div>
    <div class="cg-toast" id="cgToast_v4" role="status" aria-live="polite">Kopieret.</div>

    <div class="cg-cta" id="cgCtaBox_v4">
      <p id="cgCtaText_v4">Næste skridt er at få konkrete bud, så I kan sammenligne på samme grundlag.</p>

      <a class="cg-cta-btn cg-cta-btn--primary" id="cgCtaPrimary_v4" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/totalentreprise/" target="_blank" rel="nofollow sponsored noopener">Få 3 uforpligtende tilbud på totalentreprise</a>

      <a class="cg-cta-btn cg-cta-btn--secondary" id="cgCtaAdvisor_v4" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/bygherreraadgivning/" target="_blank" rel="nofollow sponsored noopener">Få tilbud på bygherrerådgivning</a>

      <a class="cg-cta-btn cg-cta-btn--secondary" id="cgCtaAlt_v4" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/lp/nybyg/" target="_blank" rel="nofollow sponsored noopener" style="display:none;">Få 3 uforpligtende tilbud på nybyg</a>

      <div class="cg-smallprint">Guiden er vejledende. Brug den som retning og som tjekliste før dialogen.</div>
    </div>
  </div>
</div>

<p><script>
(function () {
  const root = document.getElementById("choiceGuide_singlecol_v4");
  if (!root) return;

  const storageKey = "nybyg_vs_totalreno_singlecol_v4";
  const el = (id) => document.getElementById(id);

  const stepPill = el("cgStepPill_v4");
  const prog = el("cgProg_v4");
  const qLabel = el("cgQLabel_v4");
  const select = el("cgSelect_v4");
  const whyBtn = el("cgWhy_v4");
  const tipBox = el("cgTip_v4");
  const backBtn = el("cgBack_v4");
  const nextBtn = el("cgNext_v4");

  const resultOut = el("cgResult_v4");
  const explainOut = el("cgExplain_v4");
  const barOut = el("cgBar_v4");

  const copyBtn = el("cgCopy_v4");
  const resetBtn = el("cgReset_v4");
  const toast = el("cgToast_v4");

  const ctaText = el("cgCtaText_v4");
  const ctaPrimary = el("cgCtaPrimary_v4");
  const ctaAdvisor = el("cgCtaAdvisor_v4");
  const ctaAlt = el("cgCtaAlt_v4");

  const links = {
    reno: "https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&bannerid=25692&htmlurl=https://www.3byggetilbud.dk/tilbud/totalentreprise/",
    advisor: "https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&bannerid=25692&htmlurl=https://www.3byggetilbud.dk/tilbud/bygherreraadgivning/",
    nybyg: "https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&bannerid=25692&htmlurl=https://www.3byggetilbud.dk/lp/nybyg/"
  };

  const clamp = (n, min, max) => Math.min(max, Math.max(min, n));

  // Alle spørgsmål (vi viser 6, men 2 af dem skifter afhængigt af “flytte vs blive”)
  const stepsAll = {
    stay: {
      key: "stay",
      label: "Hvor vigtigt er det at blive boende på adressen?",
      tip: "Hvis beliggenheden er hele pointen, peger det ofte mod totalrenovering.",
      def: "stay",
      options: [
        { v: "stay",  t: "Meget vigtigt", reno: 4, ny: 0 },
        { v: "maybe", t: "Rart, men ikke afgørende", reno: 2, ny: 1 },
        { v: "move",  t: "Vi er åbne for at flytte", reno: 0, ny: 3 }
      ]
    },
    nybygReal: {
      key: "nybygReal",
      label: "Er nybyg realistisk hos jer (på nuværende grund eller en ny)?",
      tip: "Hvis nybyg ikke er realistisk lige nu, giver det ofte mest mening at arbejde videre med huset og få et konkret renoveringsspor på plads.",
      def: "no",
      options: [
        { v: "no",        t: "Nej, ikke realistisk lige nu", reno: 2, ny: 0 },
        { v: "maybe",     t: "Måske (vi undersøger det)", reno: 1, ny: 2 },
        { v: "yesCurrent",t: "Ja, på nuværende grund", reno: 0, ny: 4 },
        { v: "yesOther",  t: "Ja, på anden grund", reno: 0, ny: 4 },
        { v: "dontknow",  t: "Ved ikke endnu", reno: 1, ny: 1 }
      ]
    },

    // Renoveringsrelevante (bruges især når man bliver)
    scope: {
      key: "scope",
      label: "Hvor meget skal reelt skiftes i huset?",
      tip: "Hvis næsten alt skal udskiftes, er nybyg værd at regne seriøst på som alternativ.",
      def: "much",
      options: [
        { v: "some", t: "Noget indvendigt, men ikke det hele", reno: 3, ny: 0 },
        { v: "much", t: "Meget indvendigt og flere store poster", reno: 2, ny: 2 },
        { v: "all",  t: "Næsten alt, inkl. installationer og klimaskærm", reno: 1, ny: 4 }
      ]
    },
    hidden: {
      key: "hidden",
      label: "Er der tegn på skjulte problemer i huset?",
      tip: "Ved tvivl om fugt, skimmel eller konstruktion giver en uvildig gennemgang ofte mest ro før I beslutter jer.",
      def: "none",
      options: [
        { v: "none",    t: "Nej, ikke hvad vi har set", reno: 2, ny: 0 },
        { v: "unknown", t: "Ved ikke endnu / ikke undersøgt", reno: 1, ny: 1 },
        { v: "yes",     t: "Ja, vi mistænker noget", reno: 0, ny: 4 }
      ]
    },

    // Flytte-scenarie: gør totalrenovering “relevant” som køb + renovering
    altHousing: {
      key: "altHousing",
      label: "Hvis I flytter: er I åbne for at købe et eksisterende hus og totalrenovere?",
      tip: "Når man flytter, handler valget ofte om: nybyg på grund vs. køb af hus (evt. håndværkertilbud) og en samlet renovering.",
      def: "maybe",
      options: [
        { v: "yes",     t: "Ja, det er realistisk for os", reno: 3, ny: 0 },
        { v: "maybe",   t: "Måske – vi vil gerne regne på det", reno: 1, ny: 1 },
        { v: "no",      t: "Nej, vi vil helst bygge nyt", reno: 0, ny: 3 },
        { v: "dontknow",t: "Ved ikke endnu", reno: 1, ny: 1 }
      ]
    },
    climate: {
      key: "climate",
      label: "Hvor vigtigt er klima og ressourcehensyn for jer?",
      tip: "At bevare mest muligt og genbruge konstruktioner/materialer peger ofte mod renovering frem for nedrivning/nybyg.",
      def: "some",
      options: [
        { v: "high", t: "Meget vigtigt", reno: 3, ny: 0 },
        { v: "some", t: "Det betyder noget, men er ikke alt", reno: 1, ny: 1 },
        { v: "low",  t: "Det er ikke afgørende for valget", reno: 0, ny: 2 }
      ]
    },

    // Altid relevante
    freedom: {
      key: "freedom",
      label: "Hvor frit vil I kunne ændre planløsning og boligtype?",
      tip: "Et blankt lærred peger typisk mod nybyg, især hvis I vil ændre boligtypen markant.",
      def: "work",
      options: [
        { v: "work",  t: "Vi kan arbejde med huset", reno: 3, ny: 0 },
        { v: "mix",   t: "Både og", reno: 2, ny: 2 },
        { v: "blank", t: "Vi vil starte fra nul", reno: 0, ny: 4 }
      ]
    },
    predict: {
      key: "predict",
      label: "Hvad betyder mest lige nu?",
      tip: "Forudsigelighed peger ofte mod nybyg eller en stramt afgrænset renovering med tydelig pakke og forventningsafstemning.",
      def: "clarity",
      options: [
        { v: "clarity", t: "Mest mulig forudsigelighed", reno: 1, ny: 3 },
        { v: "balance", t: "En balanceret løsning", reno: 2, ny: 2 },
        { v: "tailor",  t: "Skræddersy hjemmet, også hvis det bliver mere komplekst", reno: 3, ny: 1 }
      ]
    }
  };

  // State (gemmer alle keys – også dem der kan være “inaktive”)
  let state = { step: 0 };
  Object.keys(stepsAll).forEach(k => state[k] = stepsAll[k].def);

  function getActiveSteps() {
    // ALTID de 4 “faste”
    const base = [stepsAll.stay, stepsAll.nybygReal];

    // Skift de to midterspørgsmål afhængigt af “flytte”
    if (state.stay === "move") {
      base.push(stepsAll.altHousing, stepsAll.climate);
    } else {
      base.push(stepsAll.scope, stepsAll.hidden);
    }

    // Slut altid med de 2 “faste”
    base.push(stepsAll.freedom, stepsAll.predict);
    return base; // altid 6
  }

  function pickOption(step, value) {
    return step.options.find(o => o.v === value) || step.options[0];
  }

  function computeScores(activeSteps) {
    let reno = 0, ny = 0;
    activeSteps.forEach(step => {
      const opt = pickOption(step, state[step.key]);
      reno += (opt.reno || 0);
      ny += (opt.ny || 0);
    });
    return { reno, ny };
  }

  function shouldNudgeAdvisor(activeSteps) {
    // Kun hvis “usikkerhed”-svar er valgt på aktive spørgsmål
    const unsurePairs = [
      ["nybygReal", "maybe"], ["nybygReal", "dontknow"],
      ["hidden", "unknown"],
      ["altHousing", "dontknow"], ["altHousing", "maybe"]
    ];
    return unsurePairs.some(([k, v]) => activeSteps.some(s => s.key === k) && state[k] === v);
  }

  function buildResult(scores, activeSteps) {
    const diff = scores.reno - scores.ny;

    if (Math.abs(diff) <= 2) {
      let txt = "Jeres svar peger i begge retninger. Her er det typisk de konkrete løsninger og tilbud, der afgør det.";
      if (shouldNudgeAdvisor(activeSteps)) txt += " Hvis rammerne ikke er helt afklaret endnu, kan en uvildig vurdering give ro og retning.";
      return { heading: "Det er tæt løb", text: txt };
    }

    if (diff > 2) {
      let txt = "I kan sandsynligvis nå jeres mål ved at bygge videre på det, I har – og det trækker mest i retning af totalrenovering.";
      if (state.stay === "stay") txt = "I lægger vægt på adressen, og I kan sandsynligvis nå jeres mål ved at bygge videre på huset.";
      if (activeSteps.some(s => s.key === "hidden") && state.hidden === "unknown") txt += " Hvis I ikke har undersøgt skjulte forhold endnu, kan en uvildig gennemgang være en god genvej til klarhed.";
      if (activeSteps.some(s => s.key === "climate") && state.climate === "high") txt += " Og når klima/ressourcehensyn vægter højt, giver bevaring ofte ekstra mening.";
      return { heading: "Totalrenovering", text: txt };
    }

    let txt = "Jeres svar tyder på, at nybyg er værd at tage seriøst, især hvis I ønsker frihed og forudsigelighed.";
    if (state.nybygReal === "yesCurrent") txt = "Når nybyg er realistisk på jeres nuværende grund, bliver det ofte mere konkret og lettere at sammenligne på pris og proces.";
    if (state.nybygReal === "yesOther") txt = "Når I har en realistisk mulighed på en anden grund, kan nybyg blive et stærkt hovedspor, fordi rammerne kan defineres tydeligt fra start.";
    if (activeSteps.some(s => s.key === "altHousing") && state.altHousing === "yes") txt += " Samtidig er I åbne for køb + renovering, så det kan give mening at sammenligne begge spor med konkrete tilbud.";
    return { heading: "Nybyg", text: txt };
  }

  function applyCtas(heading, activeSteps) {
    ctaAdvisor.href = links.advisor;
    ctaAlt.style.display = "none";

    if (heading === "Totalrenovering") {
      ctaText.textContent = "Næste skridt er at få konkrete bud på totalrenovering, så I kan se pris, proces og ansvar i en samlet løsning.";
      ctaPrimary.textContent = "Få 3 uforpligtende tilbud på totalentreprise";
      ctaPrimary.href = links.reno;

      const showNybygAlt =
        state.nybygReal === "yesCurrent" || state.nybygReal === "yesOther" || state.nybygReal === "maybe" ||
        state.freedom === "blank" ||
        (activeSteps.some(s => s.key === "scope") && state.scope === "all");

      if (showNybygAlt) {
        ctaAlt.style.display = "block";
        ctaAlt.textContent = "Få 3 uforpligtende tilbud på nybyg";
        ctaAlt.href = links.nybyg;
      }
    }
    else if (heading === "Nybyg") {
      ctaText.textContent = "Næste skridt er at få konkrete bud på nybyg, så I kan sammenligne løsninger og få styr på den samlede økonomi.";
      ctaPrimary.textContent = "Få 3 uforpligtende tilbud på nybyg";
      ctaPrimary.href = links.nybyg;

      ctaAlt.style.display = "block";
      ctaAlt.textContent = "Få 3 uforpligtende tilbud på totalentreprise";
      ctaAlt.href = links.reno;
    }
    else {
      ctaText.textContent = "Når det er tæt løb, giver det mest ro at få konkrete bud på begge spor, eller starte med en uvildig vurdering før I låser jer fast.";
      ctaPrimary.textContent = "Få 3 uforpligtende tilbud på totalentreprise";
      ctaPrimary.href = links.reno;

      ctaAlt.style.display = "block";
      ctaAlt.textContent = "Få 3 uforpligtende tilbud på nybyg";
      ctaAlt.href = links.nybyg;
    }

    if (shouldNudgeAdvisor(activeSteps)) {
      ctaText.textContent += " Ved uafklarede rammer kan bygherrerådgivning være en god genvej til klarhed.";
    }
  }

  function getCurrentStep(activeSteps) {
    return activeSteps[clamp(state.step, 0, activeSteps.length - 1)];
  }

  function renderStep() {
    const activeSteps = getActiveSteps();
    state.step = clamp(state.step, 0, activeSteps.length - 1);

    const i = state.step;
    const s = activeSteps[i];

    stepPill.textContent = "Spørgsmål " + (i + 1) + " af " + activeSteps.length;
    prog.style.width = Math.round(((i + 1) / activeSteps.length) * 100) + "%";

    qLabel.textContent = s.label;

    select.innerHTML = "";
    s.options.forEach(opt => {
      const o = document.createElement("option");
      o.value = opt.v;
      o.textContent = opt.t;
      select.appendChild(o);
    });
    select.value = state[s.key];

    tipBox.style.display = "none";
    tipBox.textContent = s.tip;

    backBtn.disabled = (i === 0);
    nextBtn.textContent = (i === activeSteps.length - 1) ? "Se resultat" : "Næste";
  }

  function updateResult() {
    const activeSteps = getActiveSteps();
    const scores = computeScores(activeSteps);

    const total = Math.max(1, scores.reno + scores.ny);
    const nyShare = scores.ny / total;
    const width = clamp(Math.round(nyShare * 100), 10, 90);
    barOut.style.width = width + "%";

    const res = buildResult(scores, activeSteps);
    resultOut.textContent = res.heading;
    explainOut.textContent = res.text;

    applyCtas(res.heading, activeSteps);

    try { localStorage.setItem(storageKey, JSON.stringify(state)); } catch (e) {}
  }

  function summaryText() {
    const activeSteps = getActiveSteps();
    const lines = activeSteps.map(step => {
      const opt = pickOption(step, state[step.key]);
      return step.label + " " + opt.t;
    });

    return (
      "Mini afklaring: Nybyg vs. totalrenovering\n" +
      lines.join("\n") + "\n\n" +
      "Pejer mod: " + resultOut.textContent + "\n" +
      explainOut.textContent
    );
  }

  function showToast(msg) {
    toast.textContent = msg;
    toast.style.display = "block";
    setTimeout(() => (toast.style.display = "none"), 2200);
  }

  function restore() {
    try {
      const saved = JSON.parse(localStorage.getItem(storageKey) || "null");
      if (!saved) return;
      state = Object.assign(state, saved);

      // Guardrails (hvis noget ændrer sig over tid)
      Object.keys(stepsAll).forEach(k => {
        if (!(k in state)) state[k] = stepsAll[k].def;
      });
      state.step = clamp(parseInt(state.step || 0, 10), 0, 5);
    } catch (e) {}
  }

  // Events
  select.addEventListener("change", () => {
    const activeSteps = getActiveSteps();
    const current = getCurrentStep(activeSteps);
    state[current.key] = select.value;

    // Hvis “stay” ændres, skifter 2 spørgsmål → sørg for at step-index stadig giver mening
    const newActive = getActiveSteps();
    state.step = clamp(state.step, 0, newActive.length - 1);

    renderStep();
    updateResult();
  });

  whyBtn.addEventListener("click", () => {
    tipBox.style.display = (tipBox.style.display === "none" || !tipBox.style.display) ? "block" : "none";
  });

  backBtn.addEventListener("click", () => {
    state.step = clamp(state.step - 1, 0, 5);
    renderStep();
  });

  nextBtn.addEventListener("click", () => {
    const activeSteps = getActiveSteps();
    if (state.step < activeSteps.length - 1) {
      state.step += 1;
      renderStep();
    } else {
      const resCard = el("cgResultCard_v4");
      if (resCard) resCard.scrollIntoView({ behavior: "smooth", block: "start" });
    }
  });

  copyBtn.addEventListener("click", async () => {
    const text = summaryText();
    try {
      await navigator.clipboard.writeText(text);
      showToast("Kopieret. Du kan bruge opsummeringen i dialogen.");
    } catch (e) {
      const ta = document.createElement("textarea");
      ta.value = text;
      document.body.appendChild(ta);
      ta.select();
      try { document.execCommand("copy"); } catch (err) {}
      document.body.removeChild(ta);
      showToast("Kopieret. Du kan bruge opsummeringen i dialogen.");
    }
  });

  resetBtn.addEventListener("click", () => {
    state = { step: 0 };
    Object.keys(stepsAll).forEach(k => state[k] = stepsAll[k].def);
    try { localStorage.removeItem(storageKey); } catch (e) {}
    renderStep();
    updateResult();
    showToast("Nulstillet.");
  });

  // Init
  restore();
  renderStep();
  updateResult();
})();
</script></p>

</div><div class="bde-rich-text-851-117 bde-rich-text breakdance-rich-text-styles">
<h2>Økonomi: sammenlign det samme med det samme</h2>
<p>Økonomi fylder altid. Også når man prøver at lade være.</p>
<p>Det, der skaber mest forvirring, er ikke priserne i sig selv. Det er, at mange sammenligner to forskellige regnestykker.</p>
<p>Ved nybyg bliver budgettet ofte tænkt som “huset”. Men en bolig er mere end selve huset. Der kan komme udgifter til nedrivning, jordarbejde, byggemodning, belægning, indkørsel, have, hegn, skur og carport. Det er helt normale poster, men de bliver ofte opdaget sent.</p>
<p>Ved totalrenovering er faldgruben den modsatte: man starter med “vi tager køkkenet først” eller “vi tager badet næste år”, selv om målet egentlig er et hjem, der føles gennemført. Hvis I i praksis ønsker en samlet opgradering, skal budgettet også afspejle det.</p>
<p>Som pejlemærke ligger en indvendig totalrenovering ofte i niveauet 6.000–12.000 kr. pr. m², mens en kombineret indvendig og udvendig totalrenovering typisk ligger højere, ofte omkring 14.000–20.000 kr. pr. m², afhængigt af omfang og materialevalg. Det er brede spænd, men de giver en vigtig pointe: det er de store poster samlet set, der flytter billedet.</p>
<p>En metode, der næsten altid hjælper, er at lave to budgetspor. Første spor er “minimum, så huset fungerer og føles rigtigt”. Andet spor er “det hjem vi faktisk drømmer om”, inklusive de ting der ellers ender som halve løsninger. Når I kan se forskellen mellem de to, bliver valget mellem nybyg og totalrenovering ofte mere klart.</p>
</div><div class="bde-rich-text-851-118 bde-rich-text breakdance-rich-text-styles">
<h2>Drift og komfort: det I betaler bagefter</h2>
<p>Nybyg har ofte en fordel i driften. Moderne konstruktioner, bedre tæthed og nyere standarder giver typisk lavere varmeforbrug og en mere stabil komfort.</p>
<p>Men et ældre hus kan løftes rigtig langt med de rigtige greb.</p>
<p>Nye vinduer, bedre isolering, ventilation og en varmeløsning, der passer til huset, kan ændre både varmeregning og indeklima. Og så er der planløsningen. Mange boligejere opdager først bagefter, at det ikke var energien, der var den største irritation. Det var flowet. Når rumfordelingen fungerer, føles huset større, selv hvis det ikke bliver det.</p>
<p>Derfor er det værd at tænke komfort ind som et konkret kriterium. Ikke som pynt. Som hverdag.</p>
<h2>Klima og ressourcer: et valg der er svært at ignorere</h2>
<p>Klima fylder mere i boligvalg i dag, og det giver god mening.</p>
<p>Bolius peger blandt andet på, at byggeriet står for en betydelig del af Danmarks CO2-udledning, og at byggeaffald udgør en stor del af den samlede affaldsmængde. Når man river et hus ned, kasserer man ikke bare mursten og træ. Man kasserer også den energi og de ressourcer, der allerede er brugt.</p>
<p>Det betyder ikke, at nybyg altid er forkert. Nogle huse er så nedslidte, at det ikke er rimeligt at bygge videre. Men hvis bygningen kan bevares helt eller delvist, vil totalrenovering i mange tilfælde være et stærkt valg, også når man ser på klimaaftryk.</p>
</div><div class="bde-globalblock-851-119 bde-globalblock"><div class="bde-rich-text-838-100-838-2 bde-rich-text bde-rich-text-838-100 breakdance-rich-text-styles">
<style>
:root{
  --brand: #203723;
  --brand-light: #CCFA74;
  --text-light: #F5F5F2;
}

.ad-690 {
  position: relative;
  width: 690px;
  height: 90px;
  background-color: var(--brand);
  border-radius: 8px;
  padding: 16px 20px;
  color: var(--text-light);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  display: flex;
  align-items: center;
  justify-content: space-between;
  overflow: hidden;
}

.ad-690::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(245,245,242,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(245,245,242,0.05) 1px, transparent 1px);
  background-size: 32px 32px;
  z-index: 0;
}

.ad-690::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      ellipse at center,
      rgba(255,255,255,0.06) 0%,
      rgba(0,0,0,0.35) 70%
    );
  z-index: 0;
}

.ad-690 > * {
  position: relative;
  z-index: 1;
}

.ad-690-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ad-690-label {
  font-size: 0.65rem;
  opacity: 0.8;
}

.ad-690-headline {
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.2;
}

.ad-690-text {
  font-size: 0.9rem;
  opacity: 0.9;
}

.ad-690-cta {
  background: var(--brand-light);
  color: #10110C !important;
  padding: 12px 22px;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

@media (max-width: 768px) {

  .ad-690 {
    width: 336px;
    height: 280px;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    padding: 16px;
    gap: 0;
  }

  .ad-690-content {
    gap: 10px;
  }

  .ad-690-label {
    font-size: 0.7rem;
    opacity: 0.8;
  }

  .ad-690-headline {
    font-size: 1.35rem;
    line-height: 1.25;
    font-weight: 600;
  }

  .ad-690-text {
    font-size: 0.95rem;
    line-height: 1.5;
    color: #E6ECE8;
  }

  .ad-690-cta {
    width: 100%;
    text-align: center;
    padding: 12px;
    font-size: 1.1rem;
    border-radius: 999px;
  }
}

</style>

<aside class="ad-690">
  <div class="ad-690-content">
    <div class="ad-690-label">Annonce</div>

    <div class="ad-690-headline">
      Overvejer du totalrenovering?
    </div>

    <div class="ad-690-text">
      Sammenlign tilbud på totalrenovering af hus.
    </div>
  </div>

  <a class="ad-690-cta" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/totalentreprise/" target="_blank" rel="nofollow sponsored noopener">
    Få 3 gratis tilbud
  </a>
</aside>

</div></div><div class="bde-rich-text-851-120 bde-rich-text breakdance-rich-text-styles">
<h2>Risiko og uforudsete forhold: hvor kommer overraskelserne fra</h2>
<p>Overraskelser kan opstå i begge løsninger. Det er bare ikke de samme overraskelser.</p>
<p>Ved nybyg handler usikkerhed ofte om tilvalg, grænseflader og det, der ikke var med i den første pris. Leverancer, myndigheder og tidsplan kan også spille ind.</p>
<p>Ved totalrenovering ligger usikkerheden typisk i det skjulte. Det, man først opdager, når man åbner op. Gamle installationer, skjulte vandskader eller konstruktioner, der kræver ekstra forstærkning.</p>
<p>Her er der to ting, der virkelig gør en forskel: afklaring og buffer. Ikke en buffer “fordi man altid siger det”. Men fordi den beskytter jeres økonomi og jeres samarbejde, når virkeligheden viser sig.</p>
<h2>Tidsplan og hverdagslogistik: det som ofte afgør valget</h2>
<p>Tidsplanen lyder som et praktisk punkt. For de fleste familier er det et afgørende punkt.</p>
<p>Ved nybyg kan man ofte bo et andet sted imens. Det koster, men det giver også en klar adskillelse mellem hverdag og byggeplads. Når man flytter ind, er hjemmet typisk færdigt.</p>
<p>Ved totalrenovering vælger nogle at blive boende. Det kan fungere, men så skal projektet planlægges som etaper, og entreprenøren skal være vant til at arbejde i et hjem, hvor livet fortsætter. Det handler om mere end støv. Det handler om beslutningspres, logistik og det mentale overskud.</p>
<p>Hvis I allerede nu tænker “det her bliver for meget”, er det ikke et problem. Det er vigtig information.</p>
<h2>Beliggenhed, arkitektur og herlighedsværdi: det I ikke kan bestille</h2>
<p>Der er ting, man kan købe. Og der er ting, man ikke kan genskabe.</p>
<p>Et ældre hus kan have proportioner, materialer og detaljer, der er svære at få igen. Dagslys, murværk, loftshøjde, rummenes størrelse. Og så er der beliggenheden: skolevej, naboer, haven, træerne og det liv, I allerede har.</p>
<p>Hvis I elsker stedet, men ikke huset, er totalrenovering ofte den løsning, der giver mest mening. Hvis I drømmer om en helt anden boligtype, eller hvis huset er i så dårlig stand, at I reelt står overfor et næsten nyt projekt, kan nybyg være den mere ligetil vej.</p>
</div><div class="bde-rich-text-851-121 bde-rich-text breakdance-rich-text-styles">
<h2>Hvem skal holde trådene?</h2>
<p>Det er her mange boligejere mærker forskellen mellem “idé” og “projekt”.</p>
<p>Nybyg og totalrenovering kræver koordinering mellem fag. Tidsplaner skal hænge sammen. Budgettet skal følges. Beslutninger skal tages i den rigtige rækkefølge. Og der er meget, der kan blive dyrt, hvis det bliver taget for sent.</p>
<p>Hvis I ikke har lyst til at være projektleder, er totalentreprise ofte det naturlige valg. Én ansvarlig part. Ét samlet overblik. Og en proces, hvor I kan fokusere på beslutningerne frem for styringen. Læs mere i guiden om <a href="https://mitboligprojekt.dk/totalentreprise/">totalentreprise</a> på <a href="https://mitboligprojekt.dk/">MitBoligProjekt.dk</a>.</p>
<p>Hvis I gerne vil have en uvildig fagperson på jeres side, kan <a href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/bygherreraadgivning/" rel="sponsored noopener" target="_blank">bygherrerådgivning</a> være den ekstra sikkerhed, der gør beslutningen tryg. Især når I skal vurdere tilbud, forventninger og aftalegrundlag. Læs mere i guiden om <a href="https://mitboligprojekt.dk/bygherreraadgivning/">bygherrerådgivning</a> på MitBoligProjekt.dk.</p>
</div><img decoding="async" class="bde-image2-851-122 bde-image2" src="https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-4.-feb.-2026-14.54.35.webp" alt="Foto af et moderne københavnerpar i en lys lejlighed i København, der sidder på en grå sofa og undersøger nybyg vs. totalrenovering af parcelhus." loading="lazy" srcset="https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-4.-feb.-2026-14.54.35.webp 1536w, https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-4.-feb.-2026-14.54.35-300x200.webp 300w, https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-4.-feb.-2026-14.54.35-1024x683.webp 1024w, https://mitboligprojekt.dk/wp-content/uploads/2026/02/ChatGPT-Image-4.-feb.-2026-14.54.35-768x512.webp 768w" sizes="(max-width: 1536px) 100vw, 1536px"><div class="bde-rich-text-851-123 bde-rich-text breakdance-rich-text-styles">
<h2>Sådan bruger I tilbud som beslutningsværktøj</h2>
<p>Mange tror, at tilbudsfasen handler om at finde den laveste pris. I praksis handler den om at blive klogere.</p>
<p>Når I får flere tilbud på den samme beskrivelse, får I flere faglige perspektiver. Forskellige entreprenører ser forskellige muligheder i huset, og de stiller ofte forskellige spørgsmål. Det er guld værd, fordi det gør jeres projekt tydeligere.</p>
<p>Brug derfor tilbud til at teste jeres plan.</p>
<p>Er omfanget forstået ens. Er ansvaret tydeligt. Er tidsplanen realistisk. Og virker kommunikationen ordentlig. For en stor del af et vellykket projekt handler ikke om at “vinde” på prisen. Det handler om at undgå at tabe på misforståelser.</p>
<p>Hvis I vil læse videre og få et samlet overblik over jeres muligheder, kan I starte på MitBoligProjekt.dk.</p>
</div><div class="bde-rich-text-851-124 bde-rich-text breakdance-rich-text-styles">
<h2>Få 3 uforpligtende tilbud på nybyg eller totalrenovering</h2>
<p>Når I vil videre fra overvejelse til beslutning, hjælper det at få konkrete bud på bordet. Ikke fordi I skal vælge hurtigst muligt, men fordi tal og løsninger bliver tydelige, når flere fagfolk regner på den samme idé.</p>
<p>Hvis I hælder mod totalrenovering og gerne vil have én part til at samle ansvar, plan og udførelse, kan I få <a href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/totalentreprise/" rel="sponsored noopener" target="_blank">tre uforpligtende tilbud på totalentreprise gennem 3byggetilbud.dk</a>. Det giver jer et realistisk spænd på økonomi og tidsplan, og det gør det lettere at se, hvad der reelt er med i prisen.</p>
<p>Hvis I i stedet overvejer nybyg, kan I få <a href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/lp/nybyg/" rel="sponsored noopener" target="_blank">tre uforpligtende tilbud på nybyg gennem 3byggetilbud.dk</a>. Her får I typisk et bedre grundlag for at sammenligne pakkeløsninger, tilvalg og den samlede økonomi, før I binder jer til en retning.</p>
<p>Og hvis I gerne vil have en uvildig fagperson, der kan hjælpe med at gennemgå tilbud, forventninger og aftalegrundlag, kan I også få <a href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/bygherreraadgivning/" rel="sponsored noopener" target="_blank">tilbud på bygherrerådgivning gennem 3byggetilbud.dk</a>. Det kan især være en tryghed, når projektet er stort, og I vil undgå dyre misforståelser.</p>
<p>Vil I læse jer varme først, så start på MitBoligProjekt.dk og brug vores guider om <a href="https://mitboligprojekt.dk/nybyg/">nybyg</a>, <a href="https://mitboligprojekt.dk/totalentreprise/">totalentreprise</a> og <a href="https://mitboligprojekt.dk/bygherreraadgivning/">bygherrerådgivning</a> som næste stop.</p>
</div><div class="bde-globalblock-851-126 bde-globalblock"><div class="bde-rich-text-838-100-838-3 bde-rich-text bde-rich-text-838-100 breakdance-rich-text-styles">
<style>
:root{
  --brand: #203723;
  --brand-light: #CCFA74;
  --text-light: #F5F5F2;
}

.ad-690 {
  position: relative;
  width: 690px;
  height: 90px;
  background-color: var(--brand);
  border-radius: 8px;
  padding: 16px 20px;
  color: var(--text-light);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  display: flex;
  align-items: center;
  justify-content: space-between;
  overflow: hidden;
}

.ad-690::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(245,245,242,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(245,245,242,0.05) 1px, transparent 1px);
  background-size: 32px 32px;
  z-index: 0;
}

.ad-690::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      ellipse at center,
      rgba(255,255,255,0.06) 0%,
      rgba(0,0,0,0.35) 70%
    );
  z-index: 0;
}

.ad-690 > * {
  position: relative;
  z-index: 1;
}

.ad-690-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ad-690-label {
  font-size: 0.65rem;
  opacity: 0.8;
}

.ad-690-headline {
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.2;
}

.ad-690-text {
  font-size: 0.9rem;
  opacity: 0.9;
}

.ad-690-cta {
  background: var(--brand-light);
  color: #10110C !important;
  padding: 12px 22px;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

@media (max-width: 768px) {

  .ad-690 {
    width: 336px;
    height: 280px;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    padding: 16px;
    gap: 0;
  }

  .ad-690-content {
    gap: 10px;
  }

  .ad-690-label {
    font-size: 0.7rem;
    opacity: 0.8;
  }

  .ad-690-headline {
    font-size: 1.35rem;
    line-height: 1.25;
    font-weight: 600;
  }

  .ad-690-text {
    font-size: 0.95rem;
    line-height: 1.5;
    color: #E6ECE8;
  }

  .ad-690-cta {
    width: 100%;
    text-align: center;
    padding: 12px;
    font-size: 1.1rem;
    border-radius: 999px;
  }
}

</style>

<aside class="ad-690">
  <div class="ad-690-content">
    <div class="ad-690-label">Annonce</div>

    <div class="ad-690-headline">
      Overvejer du totalrenovering?
    </div>

    <div class="ad-690-text">
      Sammenlign tilbud på totalrenovering af hus.
    </div>
  </div>

  <a class="ad-690-cta" href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/totalentreprise/" target="_blank" rel="nofollow sponsored noopener">
    Få 3 gratis tilbud
  </a>
</aside>

</div></div><div class="bde-rich-text-851-127 bde-rich-text breakdance-rich-text-styles">

</div>
</div><div class="bde-column-851-128 bde-column">
  
  
	



<div class="bde-table-of-contents-851-129 bde-table-of-contents">
<div class="bde-table-of-contents__wrapper">
  <header class="bde-table-of-contents__header">
        <h3 class="bde-table-of-contents__title toc-ignore">Indholdsfortegnelse</h3>
           </header>
  
  <div class="bde-table-of-contents__list">
    <nav id="bde-toc" class="toc js-breakdance-toc" aria-label="Indholdsfortegnelse">There are no headings in this document.</nav>
  </div>
</div>


</div><div class="bde-div-851-130 bde-div">
  
  
	



<div class="bde-text-851-131 bde-text">
Vi samarbejder med 3Byggetilbud.dk og modtager provision for henvisninger via links på denne side. Vi tager ikke ansvar for kvaliteten af det udførte arbejde eller for aftaler indgået mellem dig og de formidlede håndværkere. Alle aftaler indgås direkte mellem dig og den valgte håndværker.
</div>
</div><div class="bde-globalblock-851-132 bde-globalblock"><div class="bde-rich-text-839-100-839-1 bde-rich-text bde-rich-text-839-100 breakdance-rich-text-styles">
<style>
:root{
  --brand: #203723;
  --brand-light: #CCFA74;
  --text-light: #F5F5F2;
}

.ad-336 {
  position: relative;
  width: 336px;
  height: 280px;
  background-color: var(--brand);
  border-radius: 8px;
  padding: 16px;
  color: var(--text-light);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
}

.ad-336::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(
      rgba(245,245,242,0.05) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(245,245,242,0.05) 1px,
      transparent 1px
    );
  background-size: 32px 32px;
  z-index: 0;
}

.ad-336::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      ellipse at top,
      rgba(255,255,255,0.06) 0%,
      rgba(0,0,0,0.35) 70%
    );
  z-index: 0;
}

.ad-336 > * {
  position: relative;
  z-index: 1;
}

.ad-content {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ad-label {
  font-size: 0.7rem;
  opacity: 0.8;
}

.ad-headline {
  font-size: 1.35rem;
  line-height: 1.25;
  font-weight: 600;
}

.ad-text {
  font-size: 0.95rem;
  line-height: 1.5;
  color: #E6ECE8;
}

.ad-badge {
  align-self: flex-start;
  border: 1px solid rgba(204,250,116,0.6);
  color: #EAF7C8;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 0.75rem;
}

.ad-footer {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ad-cta {
  background: var(--brand-light);
  color: #10110C !important;
  text-align: center;
  padding: 12px;
  border-radius: 999px;
  font-size: 1.1rem;
  font-weight: 600;
  text-decoration: none;
}

.ad-note {
  font-size: 0.7rem;
  opacity: 0.85;
  text-align: center;
}
</style>

<aside class="ad-336">
  <div class="ad-content">
    <div class="ad-label">Annonce</div>

    <div class="ad-headline">
  Totalrenovering af hus
    </div>

    <div class="ad-text">
      Få 3 uforpligtende tilbud fra lokale håndværkere og sammenlign pris og løsning.
    </div>

    <div class="ad-badge">
      Gratis og uforpligtende
    </div>
  </div>

  <div class="ad-footer">
    <a href="https://www.partner-ads.com/dk/klikbanner.php?partnerid=41736&amp;bannerid=25692&amp;htmlurl=https://www.3byggetilbud.dk/tilbud/totalentreprise/" class="ad-cta" target="_blank" rel="nofollow sponsored noopener">
      Få 3 gratis tilbud
    </a>

    <div class="ad-note">
      Sammenlign pris og løsning
    </div>
  </div>
</aside>

</div></div>
</div></div></div>
</section>]]></content:encoded>
					
					<wfw:commentRss>https://mitboligprojekt.dk/nybyg-vs-totalrenovering/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
