/* Stabilt komponentlag: formular, interaktioner, byggescener og privatliv. */

/* Heroen er kritisk indhold og vises uden reveal-forsinkelser. */
.banner .vises,.banner__overskrift.vises{opacity:1;transform:none;transition:none}

/* Spring dyr rendering over, indtil sektionerne nærmer sig viewporten. */
.afsnit,.principper,.sidefod{content-visibility:auto;contain-intrinsic-size:auto 900px}

/* Scrollfremdrift bruger browserens scroll-timeline, hvor det understøttes. */
@supports (animation-timeline:scroll()){
  .laese-fremdrift span{animation:laeseFremdrift linear both;animation-timeline:scroll(root block)}
}
@keyframes laeseFremdrift{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* Reveal-forsinkelser ligger i CSS, så JavaScript ikke skal skrive style-attributter. */
.vises[data-forsinkelse="70"]{transition-delay:70ms}
.vises[data-forsinkelse="140"]{transition-delay:140ms}
.vises[data-forsinkelse="180"]{transition-delay:180ms}
.vises[data-forsinkelse="210"]{transition-delay:210ms}
.vises[data-forsinkelse="280"]{transition-delay:280ms}
body.menu-aaben{overflow:hidden}

/* Poster og video deler samme lag. Det undgår en sen helskærms-fade, der kan flytte LCP. */
.banner__video{opacity:1;transition:none;background:#0b0c0d}
.banner__medie[data-banner-medie] .banner__baggrund{opacity:0;transition:none}

/* WCAG AA-kontrast for de små footer-links og copyrightteksten. */
.sidefod__bund{color:#858789}

/* Logoet må aldrig rage uden for den faste navigation, når headeren bliver lavere ved scroll. */
.maerke{height:100%;overflow:hidden}
.maerke img{flex:none}

/* Byggeviseren skal læses som en animation, ikke som en tom billedramme. */
.byggeviser{background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(255,255,255,.42));box-shadow:inset 0 1px rgba(255,255,255,.7),0 18px 46px rgba(28,31,33,.06)}
.byggeviser:before{content:"";position:absolute;left:28px;right:28px;bottom:65px;height:3px;border-radius:99px;background:linear-gradient(90deg,#6f5432,#b4894e,#6f5432);opacity:.45}
.byggeviser__mur span{opacity:.32!important;transform:none!important;background:rgba(145,106,57,.05)!important;border:1px solid rgba(130,91,44,.34);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.byggeviser[data-niveau="1"] .byggeviser__mur span:nth-child(-n+4),
.byggeviser[data-niveau="2"] .byggeviser__mur span:nth-child(-n+8),
.byggeviser[data-niveau="3"] .byggeviser__mur span:nth-child(-n+12),
.byggeviser[data-niveau="4"] .byggeviser__mur span:nth-child(-n+16),
.byggeviser[data-niveau="5"] .byggeviser__mur span:nth-child(-n+20){opacity:1!important;border-color:rgba(116,77,31,.42);background:linear-gradient(135deg,#8f6432,#c28f4a 52%,#7a5128)!important;box-shadow:inset 0 1px rgba(255,255,255,.2),0 5px 12px rgba(76,51,24,.15);animation:stenSat 520ms cubic-bezier(.16,1,.3,1) both}
.byggeviser__snor{box-shadow:0 0 14px rgba(213,169,78,.2)}

/* Om DME-scenen får mere dybde og et tydeligere murværk. */
.murvaerk-scene{background:radial-gradient(circle at 72% 22%,rgba(213,169,78,.11),transparent 28%),linear-gradient(145deg,#191c1f,#0d0f11)}
.murvaerk-scene__mur span{opacity:1;box-shadow:inset 0 1px rgba(255,255,255,.2),0 9px 18px rgba(0,0,0,.25);animation:stenPuls 5.6s ease-in-out infinite}
.murvaerk-scene__mur span:nth-child(4n+2){animation-delay:-1.1s}.murvaerk-scene__mur span:nth-child(4n+3){animation-delay:-2.2s}.murvaerk-scene__mur span:nth-child(4n+4){animation-delay:-3.3s}
.murvaerk-scene__snor{box-shadow:0 0 18px rgba(213,169,78,.2)}

/* Servicekort: hurtig dialog + almindeligt crawlable link til den fulde ydelsesside. */
.ydelseskort__aabn{display:block;width:100%;padding:0;background:transparent;color:inherit;text-align:left;cursor:pointer;border-radius:inherit}
.ydelseskort__aabn:focus-visible{outline:2px solid var(--guld);outline-offset:-3px}
.ydelseskort__laes{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:-2px 22px 20px;padding-top:14px;border-top:1px solid var(--linje);color:#686d71;font-size:.76rem;font-weight:800;transition:color var(--hurtig),transform var(--hurtig)}
.ydelseskort__laes span{color:#1b1d1f;transition:transform var(--hurtig)}
.ydelseskort__laes:hover,.ydelseskort__laes:focus-visible{color:#7d6637;outline:none}.ydelseskort__laes:hover span,.ydelseskort__laes:focus-visible span{transform:translateX(3px)}
.ydelsesdialog__handlinger{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:8px}
.ydelsesdialog__laes{font-size:.84rem;font-weight:800;color:#6d5a34;text-decoration:underline;text-decoration-color:rgba(213,169,78,.55);text-underline-offset:5px}
.ydelsesdialog__laes:hover,.ydelsesdialog__laes:focus-visible{color:#222;outline:none}

/* Brugerdefineret opgavetypevælger. Det oprindelige select bevares for formularlogik og validering. */
.felt.har-valg{overflow:visible;z-index:20}
.felt.har-valg.valg-aaben{z-index:80;border-color:rgba(213,169,78,.64);background:rgba(213,169,78,.06)}
.valg-original{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;inset:auto!important;margin:0!important;padding:0!important}
.valg{position:relative;margin:4px 0 10px}
.valg__knap{width:100%;min-height:41px;padding:7px 34px 7px 2px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:transparent;color:#fff;text-align:left;cursor:pointer;border-radius:7px;outline:0}
.valg__knap span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.valg__knap.er-tom span{color:rgba(255,255,255,.42)}
.valg__pil{position:absolute;right:7px;top:50%;width:9px;height:9px;border-right:1.5px solid var(--guld);border-bottom:1.5px solid var(--guld);transform:translateY(-72%) rotate(45deg);transition:transform var(--hurtig)}
.valg-aaben .valg__pil{transform:translateY(-28%) rotate(225deg)}
.valg__liste{position:absolute;left:0;right:0;top:calc(100% + 9px);padding:7px;display:grid;gap:4px;background:#171a1d;border:1px solid rgba(213,169,78,.35);border-radius:15px;box-shadow:0 24px 58px rgba(0,0,0,.36);opacity:0;visibility:hidden;transform:translateY(-6px) scale(.985);transform-origin:top;transition:opacity 160ms ease,transform 220ms cubic-bezier(.16,1,.3,1),visibility 160ms;max-height:310px;overflow:auto;overscroll-behavior:contain}
.valg-aaben .valg__liste{opacity:1;visibility:visible;transform:none}
.valg__mulighed{position:relative;width:100%;min-height:43px;padding:10px 42px 10px 13px;border-radius:10px;background:transparent;color:rgba(255,255,255,.78);text-align:left;cursor:pointer;outline:0;transition:background var(--hurtig),color var(--hurtig),transform var(--hurtig)}
.valg__mulighed:hover,.valg__mulighed:focus-visible{background:rgba(255,255,255,.075);color:#fff;transform:translateX(2px)}
.valg__mulighed[aria-selected="true"]{background:rgba(213,169,78,.12);color:var(--guldlys)}
.valg__mulighed[aria-selected="true"]:after{content:"";position:absolute;right:15px;top:50%;width:11px;height:6px;border-left:2px solid var(--guld);border-bottom:2px solid var(--guld);transform:translateY(-70%) rotate(-45deg)}
.valg__liste::-webkit-scrollbar{width:8px}.valg__liste::-webkit-scrollbar-thumb{background:rgba(213,169,78,.32);border-radius:99px;border:2px solid #171a1d}

/* Formularens fallback er altid synlig, også hvis JavaScript eller mailklienten ikke virker. */
.kontaktformular__fallback{margin:0;padding-top:4px;color:rgba(255,255,255,.58);font-size:.76rem;line-height:1.6}
.kontaktformular__fallback a{color:var(--guldlys);text-decoration:underline;text-underline-offset:4px}
.samtykke.har-fejl{outline:1px solid rgba(230,114,91,.7);outline-offset:7px;border-radius:7px}
.javascript-fallback{padding:18px 0}

/* Verificerede virksomhedsoplysninger i sidefoden. */
.sidefod__kontakt{display:grid;justify-items:end;gap:7px}
.sidefod__kontakt .sidefod__mail{white-space:nowrap}
.sidefod__telefon{color:var(--guldlys);font-size:.92rem;font-weight:800;letter-spacing:.02em}
.sidefod__telefon:hover,.sidefod__telefon:focus-visible{color:#fff;outline:none}

/* Privatliv: samme visuelle system som forsiden. */
.privatlivsside{background:#f3f1ea;color:var(--tekst)}
.privatlivsside .sidehoved{background:rgba(11,12,13,.94);border-color:rgba(255,255,255,.08);backdrop-filter:blur(18px)}
.privatlivshero{position:relative;overflow:hidden;padding:clamp(158px,18vw,225px) 0 clamp(72px,8vw,118px);background:var(--sort);color:#fff}
.privatlivshero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 28%,rgba(213,169,78,.15),transparent 26%),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:auto,54px 54px,54px 54px;mask-image:linear-gradient(90deg,#000 0%,#000 62%,transparent 100%)}
.privatlivshero__indre{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.36fr);gap:clamp(50px,9vw,140px);align-items:end}
.privatlivshero h1{max-width:940px;margin:0;font-size:clamp(3.5rem,7.4vw,7.6rem);line-height:.9;letter-spacing:-.062em;font-weight:820;text-wrap:balance}
.privatlivshero h1 span{color:var(--guld)}
.privatlivshero__intro{max-width:720px;margin:30px 0 0;color:rgba(255,255,255,.7);font-size:clamp(1rem,1.5vw,1.24rem);line-height:1.72}
.privatlivshero__maerke{justify-self:end;align-self:end;width:min(290px,100%);padding:22px;border:1px solid rgba(255,255,255,.11);border-radius:18px;background:rgba(255,255,255,.035);color:rgba(255,255,255,.66);font-size:.75rem;line-height:1.6}
.privatlivshero__maerke strong{display:block;color:var(--guldlys);font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;margin-bottom:6px}
.privatlivsindhold{padding:clamp(78px,9vw,135px) 0;background:linear-gradient(180deg,#f4f2eb,#faf9f6)}
.privatliv__gitter{display:grid;grid-template-columns:minmax(220px,.32fr) minmax(0,1fr);gap:clamp(55px,9vw,145px);align-items:start}
.privatliv__menu{position:sticky;top:110px;padding:22px;border:1px solid rgba(18,20,22,.1);border-radius:18px;background:rgba(255,255,255,.68);box-shadow:0 20px 55px rgba(25,28,30,.05)}
.privatliv__menu strong{display:block;margin-bottom:14px;font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:#8b7342}
.privatliv__menu a{display:block;padding:10px 9px;border-radius:9px;color:#62676b;font-size:.82rem;font-weight:720;transition:background var(--hurtig),color var(--hurtig),transform var(--hurtig)}
.privatliv__menu a:hover,.privatliv__menu a:focus-visible{background:rgba(213,169,78,.11);color:#202326;transform:translateX(2px);outline:none}
.privatliv__tekst{max-width:900px}
.privatliv__tekst>p:first-child{font-size:clamp(1.12rem,1.7vw,1.32rem);line-height:1.7;color:#34383b}
.privatliv__tekst section{padding:36px 0;border-top:1px solid rgba(18,20,22,.1);scroll-margin-top:110px}
.privatliv__tekst section:first-of-type{margin-top:44px}
.privatliv__tekst h2{margin:0 0 13px;font-size:clamp(1.55rem,2.3vw,2.2rem);line-height:1.15;letter-spacing:-.035em}
.privatliv__tekst p{margin:0 0 14px;color:#5d6266;line-height:1.78}
.privatliv__tekst p:last-child{margin-bottom:0}
.privatliv__tekst a:not(.knap){text-decoration:underline;text-decoration-color:rgba(213,169,78,.65);text-underline-offset:4px}
.privatliv__dato{display:inline-flex;align-items:center;gap:9px;margin-top:18px!important;color:#73787c!important;font-size:.78rem}
.privatliv__dato:before{content:"";width:7px;height:7px;border:1px solid var(--guld);transform:rotate(45deg)}
.privatliv__handling{margin-top:34px;display:flex;flex-wrap:wrap;gap:12px}

@keyframes stenSat{from{transform:translateY(12px) scale(.96);filter:brightness(1.25)}to{transform:none;filter:none}}
@keyframes stenPuls{0%,100%{filter:brightness(.9)}50%{filter:brightness(1.08)}}

@media(max-width:900px){
  .navigation{z-index:2;min-height:100dvh;overflow-y:auto;overscroll-behavior:contain;background:radial-gradient(circle at 82% 14%,rgba(213,169,78,.16),transparent 28%),linear-gradient(155deg,#15181b 0%,#090a0b 58%,#12100c 100%);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid rgba(213,169,78,.18);box-shadow:0 24px 70px rgba(0,0,0,.38)}
  .navigation>a{color:#fff;border:1px solid transparent}
  .navigation>a:hover,.navigation>a:focus-visible{background:rgba(255,255,255,.08);border-color:rgba(213,169,78,.22)}
  .navigation .navigation__tilbud{background:var(--guld);color:#111;border-color:var(--guld)}
  .privatlivshero__indre,.privatliv__gitter{grid-template-columns:1fr}
  .privatlivshero__maerke{justify-self:start;width:auto;max-width:420px}
  .privatliv__menu{position:relative;top:auto;display:flex;gap:6px;overflow:auto;padding:10px;scrollbar-width:none}
  .privatliv__menu::-webkit-scrollbar{display:none}.privatliv__menu strong{display:none}.privatliv__menu a{white-space:nowrap;background:rgba(255,255,255,.55)}
  .sidefod__kontakt{justify-items:start}
}
@media(max-width:620px){
  .valg__liste{left:0;right:0;max-height:270px}
  .ydelseskort__laes{margin-inline:18px}
  .ydelsesdialog__handlinger{align-items:stretch}.ydelsesdialog__handlinger .knap{width:100%;justify-content:space-between}
  .privatlivshero{padding-top:135px}.privatlivshero h1{font-size:clamp(3.2rem,14vw,5rem)}
  .privatliv__gitter{gap:34px}.privatliv__tekst section{padding:29px 0}
}
@media(prefers-reduced-motion:reduce){.byggeviser__mur span,.murvaerk-scene__mur span{animation:none!important}}