:root { --bg:#121110; --sten:#1c1a17; --tekst:#f1ece2; --daempet:#a59d8f; --lys:#efe9de; --moerk:#2a241d; --valnoed:#5a3d2b; --accent:#c8a77a; }
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--tekst); font-family:"Jost", system-ui, sans-serif; font-weight:300; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; }
a { color:inherit; }
h2 { font-weight:300; font-size:clamp(30px,4.2vw,58px); line-height:1.08; letter-spacing:-.01em; }
.kicker { font-size:12px; letter-spacing:.32em; text-transform:uppercase; color:var(--accent); margin-bottom:18px; }
.knap { display:inline-block; padding:14px 26px; border:1px solid currentColor; text-decoration:none; font:inherit; font-size:13px; letter-spacing:.2em; text-transform:uppercase; background:none; color:inherit; cursor:pointer; transition:background .3s, color .3s; }
.knap:hover { background:var(--tekst); color:var(--bg); }

/* Wordmark: stacked LA / MU / NA, as in the brand book */
.mark { display:inline-grid; font-weight:400; font-size:clamp(64px,10vw,150px); line-height:.86; letter-spacing:.02em; position:relative; }
.mark .tag { position:absolute; left:100%; bottom:.08em; margin-left:.25em; font-style:normal; font-size:clamp(11px,.95vw,14px); letter-spacing:.12em; text-transform:uppercase; line-height:1.15; width:9em; }
.mark .tag i { font-family:"Cormorant Garamond", serif; text-transform:none; font-size:1.35em; letter-spacing:0; margin:0 .3em; }
.mark-sm { font-size:34px; }

#loader { position:fixed; inset:0; z-index:50; background:var(--bg); display:grid; place-items:center; cursor:pointer; transition:opacity .5s; }
#loader.vaek { opacity:0; pointer-events:none; }
.loadinner { text-align:center; } .loadinner small { font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--daempet); }
.bar { width:180px; height:1px; background:#333; margin:22px auto 14px; } .bar i { display:block; height:1px; width:0; background:var(--accent); transition:width .2s; }

header { position:fixed; top:0; left:0; right:0; z-index:30; display:flex; justify-content:space-between; align-items:center; padding:18px 4vw; background:linear-gradient(rgba(18,17,16,.55),rgba(18,17,16,0)); transition:background .4s; }
header.fast { background:rgba(18,17,16,.92); backdrop-filter:blur(8px); }
header .mini { text-decoration:none; letter-spacing:.3em; font-size:14px; font-weight:400; }
header nav { display:flex; gap:28px; align-items:center; font-size:13px; letter-spacing:.12em; text-transform:uppercase; }
header nav a { text-decoration:none; } header nav .knap { padding:10px 18px; font-size:12px; background:var(--tekst); color:var(--bg); border-color:var(--tekst); font-weight:500; }

#tour { position:relative; height:1050vh; padding:0 !important; }
#film { position:sticky; top:0; width:100%; height:100vh; display:block; opacity:0; transition:opacity .6s; }
#film.tegnet { opacity:1; }
#tour::after { content:""; position:sticky; top:0; display:block; height:100vh; margin-top:-100vh; pointer-events:none; background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,0) 30%,rgba(0,0,0,0) 55%,rgba(0,0,0,.55) 100%); }
.beat { position:fixed; z-index:5; left:6vw; bottom:13vh; max-width:600px; opacity:0; transform:translateY(24px); transition:opacity .6s, transform .6s; pointer-events:none; text-shadow:0 2px 24px rgba(0,0,0,.45); }
.beat.vis { opacity:1; transform:none; pointer-events:auto; }
.beat.hero { bottom:auto; top:50%; left:50%; transform:translate(-50%,-44%); max-width:none; }
.beat.hero.vis { transform:translate(-62%,-50%); }
.beat.hero::before { content:""; position:absolute; inset:-14vh -16vw; z-index:-1; background:radial-gradient(closest-side,rgba(14,12,10,.55),rgba(14,12,10,0)); }
.tilbud { margin-top:34px !important; font-size:17px !important; line-height:1.55; color:#f1ece2 !important; max-width:none !important; }
.tilbud b { font-weight:500; }
.skip { display:inline-block; margin-top:16px; font-size:13px; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; border-bottom:1px solid rgba(241,236,226,.5); padding-bottom:3px; }
.beat:not(.hero)::before { content:""; position:absolute; inset:-9vh -10vw -9vh -8vw; z-index:-1; background:radial-gradient(closest-side,rgba(14,12,10,.6),rgba(14,12,10,0)); }
.beat h2 { font-weight:400; }
.beat p { margin-top:14px; color:#e6dfd2; font-size:19px; max-width:440px; }
.beat .knap { margin-top:24px; background:var(--tekst); color:var(--bg); border-color:var(--tekst); font-weight:500; }
.beat .knap:hover { background:transparent; color:var(--tekst); }
#scrollhint { position:fixed; z-index:5; bottom:26px; left:50%; transform:translateX(-50%); font-size:11px; letter-spacing:.35em; text-transform:uppercase; color:#ddd5c6; transition:opacity .4s; }

section { padding:16vh 6vw; position:relative; z-index:6; }
.lys { background:var(--lys); color:var(--moerk); }
.lys .kicker { color:var(--valnoed); }
.lys .knap:hover { background:var(--moerk); color:var(--lys); }
#intro h2 { max-width:900px; }
.fakta { display:grid; grid-template-columns:repeat(4,1fr); margin-top:9vh; border-top:1px solid #cfc6b6; }
.fakta div { padding:28px 0 0; } .fakta b { display:block; font-weight:300; font-size:clamp(34px,4vw,56px); }
.fakta span { font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:#7a6f61; }

#rum { background:var(--sten); } #rum h2 { margin-bottom:6vh; }
#kort { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:18px; }
.rumkort { position:relative; aspect-ratio:16/10; overflow:hidden; cursor:pointer; background-color:#000; background-position:center; background-size:cover; background-repeat:no-repeat; }
.rumkort video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .5s; }
.rumkort.spiller video { opacity:1; }
.rumkort::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 55%,rgba(0,0,0,.6)); }
.rumkort span { position:absolute; z-index:1; left:18px; bottom:15px; letter-spacing:.16em; text-transform:uppercase; font-size:14px; font-weight:400; }
.rumkort small { position:absolute; z-index:1; right:20px; bottom:17px; font-size:12px; color:#d8d0c2; letter-spacing:.1em; }

.delt { display:grid; grid-template-columns:1fr 1.25fr; gap:6vw; align-items:center; }
.delt .tekst p:not(.kicker) { margin-top:22px; font-size:18px; line-height:1.6; max-width:460px; color:inherit; opacity:.85; }
#plan img { width:100%; }
#sted { grid-template-columns:.8fr 1fr; background:var(--bg); }
#sted img { width:100%; max-height:84vh; object-fit:cover; }

#galleri { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding:10px; background:var(--bg); }
#galleri figure { position:relative; overflow:hidden; aspect-ratio:4/3; }
#galleri .stor { grid-column:span 3; aspect-ratio:21/9; }
#galleri img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease; }
#galleri figure:hover img { transform:scale(1.03); }
#galleri figcaption { position:absolute; left:18px; bottom:14px; font-size:12px; letter-spacing:.25em; text-transform:uppercase; text-shadow:0 1px 12px rgba(0,0,0,.6); }

.priser { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:7vh; }
.pris { border:1px solid #cfc6b6; padding:34px; }
.pris span { font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:#7a6f61; }
.pris b { display:block; font-weight:300; font-size:clamp(40px,5vw,68px); margin:10px 0 8px; }
.pris small { font-size:15px; color:#5d5348; }
.note { margin-top:28px; font-size:15px; line-height:1.65; color:#4a4137; max-width:820px; } .note b { font-weight:500; }

#interesse > p:not(.kicker) { margin-top:18px; font-size:18px; }
#formular { display:grid; grid-template-columns:1fr 1fr 1.3fr auto; gap:14px; margin-top:6vh; align-items:end; }
#formular label { display:grid; gap:7px; font-size:13px; letter-spacing:.06em; color:#4a4137; }
#formular input { font:inherit; width:100%; font-size:16px; padding:14px 16px; border:1px solid #bfb5a4; background:#f7f3ec; color:var(--moerk); }
#formular .tak { display:none; grid-column:1/-1; font-size:17px; }
#formular.sendt label, #formular.sendt button { display:none; } #formular.sendt .tak { display:block; }

footer { padding:12vh 6vw 8vh; text-align:center; background:var(--bg); }
footer p { margin-top:22px; font-size:12px; letter-spacing:.3em; text-transform:uppercase; color:var(--daempet); }
footer small { display:block; margin:28px auto 0; max-width:620px; font-size:14px; color:#a59d8f; line-height:1.6; }
.galnote { grid-column:1/-1; padding:14px 8px 4px; font-size:14px; color:#a59d8f; }

#spiller { position:fixed; inset:0; z-index:40; background:#000; display:grid; grid-template-columns:260px 1fr; }
#spiller[hidden] { display:none; }
#spiller aside { padding:44px 28px; border-right:1px solid #222; } #spiller h3 { font-weight:300; font-size:26px; margin-bottom:26px; }
#kapitler { list-style:none; } #kapitler li { padding:12px 0; color:var(--daempet); cursor:pointer; border-bottom:1px solid #1d1d1b; font-size:15px; }
#kapitler li.aktiv { color:var(--tekst); } #kapitler li.aktiv::before { content:"— "; color:var(--accent); }
#video { width:100%; height:100vh; object-fit:cover; }
#titelkort { position:absolute; left:calc(260px + 6vw); bottom:12vh; font-size:52px; font-weight:300; opacity:0; transition:opacity .6s; pointer-events:none; }
#titelkort.vis { opacity:1; }
#spiller .ai { position:absolute; left:calc(260px + 24px); bottom:20px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#cfc6b6; background:rgba(0,0,0,.45); padding:6px 10px; }
#luk { position:absolute; top:16px; right:22px; z-index:2; background:none; border:0; color:#fff; font-size:36px; cursor:pointer; }

@media (max-width:820px) {
  header nav a:not(.knap) { display:none; }
  .beat { left:16px; right:16px; bottom:11vh; max-width:none; } .beat p { font-size:16px; font-weight:400; }
  .beat h2, .beat p { max-width:560px; }
  .beat::before, .beat:not(.hero)::before, .beat.hero::before { inset:-30vh -100vw -40vh -100vw !important; background:linear-gradient(180deg,rgba(14,12,10,0),rgba(14,12,10,.72) 45%,rgba(14,12,10,.8)) !important; }
  .beat.hero, .beat.hero.vis { top:auto; bottom:9vh; transform:none; }
  .mark { font-size:58px; } .tilbud { font-weight:400; }
  #kapitler li { padding:10px 12px !important; border:1px solid #333 !important; font-size:14px; }
  .ai { left:16px !important; bottom:16px !important; }
  .beat.hero, .beat.hero.vis { left:16px; right:16px; transform:translateY(-50%); } .tilbud { font-size:15px !important; }
  .mark .tag { position:static; display:block; margin:18px 0 0; width:auto; }
  section { padding:11vh 16px; }
  .fakta { grid-template-columns:1fr 1fr; } .fakta div:nth-child(n+3) { margin-top:16px; }
  .delt, #sted { grid-template-columns:1fr; } #sted img { max-height:60vh; }
  #galleri { grid-template-columns:1fr; } #galleri .stor { grid-column:auto; aspect-ratio:4/3; }
  .priser, #formular { grid-template-columns:1fr; }
  #spiller { grid-template-columns:1fr; grid-template-rows:auto 1fr; }
  #spiller aside { padding:16px; border:0; } #kapitler { display:flex; flex-wrap:wrap; gap:14px; } #kapitler li { border:0; padding:4px 0; }
  #video { height:100%; min-height:0; object-fit:cover; }
  #titelkort { left:16px; font-size:32px; }
}

/* v3: filmisk lag */
#bjaelker { position:fixed; inset:0; z-index:4; pointer-events:none; --aaben:0; }
body:not(.inde) #bjaelker i { height:50vh; }
#bjaelker i { position:absolute; left:0; right:0; height:calc(12vh * (1 - var(--aaben))); background:#000; transition:height 1.6s cubic-bezier(.2,.7,.1,1); }
#bjaelker i:first-child { top:0; } #bjaelker i:last-child { bottom:0; }
body.inde #bjaelker i { transition:height .25s linear; }
#korn { position:fixed; inset:-50%; z-index:3; pointer-events:none; opacity:.07; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:korn 1s steps(6) infinite; }
@keyframes korn { 0%{transform:translate(0,0)} 20%{transform:translate(-3%,2%)} 40%{transform:translate(2%,-3%)} 60%{transform:translate(-2%,-1%)} 80%{transform:translate(3%,3%)} 100%{transform:translate(0,0)} }
@media (prefers-reduced-motion: reduce) { #korn { animation:none; } }
#film { position:sticky; }
#tour::before { content:""; position:sticky; top:0; display:block; height:100vh; margin-bottom:-100vh; z-index:2; pointer-events:none; background:radial-gradient(ellipse at center, rgba(0,0,0,0) 55%, rgba(0,0,0,.38) 100%); }
.beat h2 { letter-spacing:.005em; filter:blur(6px); transition:filter .9s ease, opacity .9s ease, transform .9s ease; }
.beat.vis h2 { filter:none; }
.beat { transition:opacity .9s ease, transform .9s ease; }
#lydknap { position:fixed; z-index:6; right:4vw; bottom:24px; display:flex; align-items:flex-end; gap:3px; background:none; border:0; color:#e9e2d4; cursor:pointer; font:inherit; font-size:11px; letter-spacing:.28em; text-transform:uppercase; transition:opacity .4s; }
#lydknap b { display:block; width:2px; height:6px; background:currentColor; opacity:.8; }
#lydknap.paa b { animation:eq 1.1s ease-in-out infinite; } #lydknap.paa b:nth-child(2){animation-delay:.25s} #lydknap.paa b:nth-child(3){animation-delay:.5s}
@keyframes eq { 0%,100%{height:4px} 50%{height:12px} }
#lydknap span { margin-left:10px; }
body:not(.inde) #lydknap { opacity:0; }
.honning { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
#formular .fejltekst { display:none; grid-column:1/-1; color:#8a2f1d; }
#formular.fejl .fejltekst { display:block; }
#formular.sender button { opacity:.5; pointer-events:none; }
@media (max-width:820px) { #lydknap { right:16px; bottom:18px; } #scrollhint { bottom:20px; left:24px; transform:none; } }

/* v5: redaktionel typografi, rolig rytme, nye moduler (panel-review 2/11) */
:root { --serif:"Cormorant Garamond", Georgia, serif; }
h2, .beat h2 { font-family:var(--serif); font-weight:400; letter-spacing:-.005em; line-height:1.02; }
section h2 { font-size:clamp(38px,5vw,76px); max-width:16ch; }
.beat h2 { font-size:clamp(40px,5.2vw,82px); }
.beat.hero .tilbud { font-size:18px !important; }
.kicker { font-size:12px; letter-spacing:.3em; }
body { font-size:17px; line-height:1.6; }
#intro { background:var(--bg); color:var(--tekst); padding-top:18vh; }
#intro .kicker { color:var(--accent); }
#intro .fakta { border-top-color:#3a352e; } #intro .fakta span { color:var(--daempet); }
#rum { background:var(--bg); padding-top:6vh; }
#kort { grid-template-columns:repeat(4,1fr); grid-auto-rows:minmax(0,auto); }
#kort .rumkort:first-child { grid-column:span 2; grid-row:span 2; aspect-ratio:auto; min-height:100%; }
#kort .rumkort { aspect-ratio:4/3; }
#kort .rumkort span { font-size:15px; }
#kort .rumkort:first-child span { font-family:var(--serif); font-size:34px; letter-spacing:0; text-transform:none; left:26px; bottom:22px; }
#galleri { padding:10px 10px 6vh; }
#galleri .galnote { grid-column:1/-1; text-align:center; padding:22px 16px 0; }

#plan { display:grid; grid-template-columns:.7fr 1.3fr; gap:5vw; align-items:center; }
.plantekst p:not(.kicker) { margin-top:22px; font-size:19px; max-width:420px; color:#4a4137; }
.plantegning { position:relative; }
.plantegning img { width:100%; box-shadow:0 30px 60px -30px rgba(42,36,29,.45); }
.zone { position:absolute; transform:translate(-50%,-50%); background:rgba(239,233,222,.92); color:var(--moerk); font-size:12px; letter-spacing:.14em; text-transform:uppercase; padding:6px 10px; white-space:nowrap; box-shadow:0 2px 10px rgba(0,0,0,.15); }
.zone::before { content:""; position:absolute; left:50%; top:100%; width:1px; height:10px; background:var(--moerk); }

#sted { background:var(--bg); }
#sted .tekst p:not(.kicker) { font-size:20px; }

#reserver { display:grid; gap:14vh; }
#reserver > div { max-width:1180px; }
.status { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:6vh; border-top:1px solid #cfc6b6; }
.status div { padding:22px 22px 0 0; }
.status dt { font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--valnoed); margin-bottom:8px; }
.status dd { font-size:17px; line-height:1.5; color:#3d352c; }
.pris.foerst { background:var(--moerk); color:var(--lys); border-color:var(--moerk); }
.pris.foerst span, .pris.foerst small { color:#d9cfbf; }
.pris b { font-family:var(--serif); font-weight:400; }
.roi { display:grid; grid-template-columns:repeat(4,1fr); margin-top:22px; border-top:1px solid #cfc6b6; border-bottom:1px solid #cfc6b6; }
.roi div { padding:22px 0; } .roi b { display:block; font-family:var(--serif); font-weight:400; font-size:40px; line-height:1; }
.roi span { font-size:13px; letter-spacing:.06em; color:#6b6155; }
.note { font-size:14px; color:#5a5046; }
.trin { list-style:none; counter-reset:t; display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:5vh; }
.trin li { counter-increment:t; font-size:17px; line-height:1.55; color:#3d352c; padding-top:18px; border-top:1px solid #cfc6b6; }
.trin li::before { content:counter(t, decimal-leading-zero); display:block; font-family:var(--serif); font-size:30px; color:var(--valnoed); margin-bottom:8px; }
#formular label em { font-style:normal; color:#8a7f72; }
#formular .knap { background:var(--moerk); color:var(--lys); border-color:var(--moerk); font-weight:500; }
#formular .knap:hover { background:transparent; color:var(--moerk); }

@media (max-width:820px) {
  section h2 { font-size:40px; }
  .beat h2 { font-size:36px; }
  body { font-size:16px; }
  #kort { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; margin:0 -16px; padding:0 16px 8px; scrollbar-width:none; }
  #kort::-webkit-scrollbar { display:none; }
  #kort .rumkort, #kort .rumkort:first-child { flex:0 0 82%; aspect-ratio:4/5; scroll-snap-align:center; min-height:0; }
  #kort .rumkort span { font-family:var(--serif); font-size:28px; letter-spacing:0; text-transform:none; }
  #plan { grid-template-columns:1fr; }
  .zone { font-size:10px; padding:4px 7px; }
  .status, .roi, .trin { grid-template-columns:1fr 1fr; }
  .trin { grid-template-columns:1fr; gap:16px; }
  .roi b { font-size:32px; }
  #reserver { gap:10vh; }
}

section h2 { max-width:22ch; }
#udvikler h2 { max-width:none; }
section, #udvikler, #tal, #interesse { scroll-margin-top:84px; }
#sted img { aspect-ratio:9/14; object-fit:cover; max-height:86vh; width:100%; }
