:root{
  --bg:#09090A;--bone:#EDEAE4;--dim:#8C8A85;--line:#242427;--paper:#EDEAE4;
  --pad:clamp(18px,4.4vw,60px);--gut:clamp(14px,1.9vw,26px);
  --body:'Chivo','Helvetica Neue',Helvetica,Arial,sans-serif;
  --disp:'Anton','Haettenschweiler','Arial Narrow',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--bone);font-family:var(--body);font-size:16.5px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:auto}
a{color:inherit}
.disp{font-family:var(--disp);font-weight:400;text-transform:uppercase;letter-spacing:.005em;line-height:.92;margin:0;text-wrap:balance}
.lab{font-size:11px;text-transform:uppercase;letter-spacing:.2em;font-weight:600;color:var(--dim);margin:0}
.wrap{max-width:1320px;margin:0 auto;padding:0 var(--pad)}
.num{font-variant-numeric:tabular-nums}

/* topbjælke over filmen */
.top{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .35s,border-color .35s;border-bottom:1px solid transparent}
.top.solid{background:rgba(9,9,10,.8);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:rgba(237,234,228,.14)}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:22px;height:64px}
.mark{font-family:var(--disp);font-size:22px;text-transform:uppercase;letter-spacing:.03em;text-decoration:none}
.nav{display:flex;gap:26px}
.nav a{text-decoration:none;font-size:12.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:600;color:rgba(237,234,228,.78);transition:color .2s}
.nav a:hover{color:var(--bone)}
.tel{text-decoration:none;font-size:12.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:700;border:1px solid rgba(237,234,228,.4);padding:10px 15px;transition:background .25s,color .25s}
.tel:hover{background:var(--bone);color:var(--bg)}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer}
.burger i{display:block;width:24px;height:2px;background:var(--bone);margin:5px 0}
.menu{position:fixed;inset:0;z-index:80;background:var(--bg);padding:var(--pad);display:none;flex-direction:column;justify-content:center;gap:2px}
.menu.on{display:flex}
.menu a{font-family:var(--disp);text-transform:uppercase;font-size:clamp(30px,10vw,52px);text-decoration:none;line-height:1.18;border-bottom:1px solid var(--line);padding:12px 0}
.menu .x{position:absolute;top:16px;right:var(--pad);background:none;border:0;color:var(--bone);font-size:34px;cursor:pointer;line-height:1}

/* hero: filmen i fuld bredde, helt op i toppen */
.hero{position:relative;width:100%;aspect-ratio:1.9/1;min-height:440px;background:#000;overflow:hidden}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .veil{position:absolute;inset:0;background:linear-gradient(rgba(9,9,10,.62) 0%,rgba(9,9,10,0) 26%,rgba(9,9,10,0) 42%,rgba(9,9,10,.9) 100%)}
.hero-in{position:absolute;left:0;right:0;bottom:0;padding-bottom:clamp(42px,7.4vw,116px)}
.hero h1{font-size:clamp(38px,7.4vw,110px)}
.hero .lab{color:rgba(237,234,228,.7);margin-bottom:14px}

.bar{border-bottom:1px solid var(--line)}
.bar-in{display:flex;flex-wrap:wrap;gap:26px;justify-content:space-between;align-items:center;padding:26px 0}
.bar p{margin:0;max-width:52ch;font-size:clamp(16px,1.35vw,19px);color:rgba(237,234,228,.86)}
.cta{display:inline-flex;align-items:center;gap:12px;text-decoration:none;background:var(--bone);color:var(--bg);padding:15px 22px;font-weight:700;font-size:15px;letter-spacing:-.005em;transition:background .25s,color .25s}
.cta:hover{background:#fff}
.cta svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;transition:transform .3s}
.cta:hover svg{transform:translateX(5px)}
.cta.hollow{background:transparent;color:var(--bone);border:1px solid rgba(237,234,228,.42)}
.cta.hollow:hover{background:var(--bone);color:var(--bg)}

section{padding:clamp(56px,7vw,108px) 0}
.head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;margin-bottom:clamp(24px,3.2vw,44px)}
.head h2{font-size:clamp(28px,4vw,58px)}
.more{text-decoration:none;font-size:12.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:700;border-bottom:1px solid var(--dim);padding-bottom:3px;color:var(--dim);transition:color .2s,border-color .2s}
.more:hover{color:var(--bone);border-color:var(--bone)}

/* film */
.films{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gut)}
.film{text-decoration:none;cursor:pointer;display:block}
.film .fr{position:relative;aspect-ratio:16/9;overflow:hidden;background:#111}
.film .fr img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.6,.2,1),opacity .35s}
.film:hover .fr img{transform:scale(1.05);opacity:.62}
.film .pl{position:absolute;left:50%;top:50%;width:66px;height:66px;margin:-33px 0 0 -33px;border:1px solid rgba(237,234,228,.75);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .3s,transform .35s}
.film:hover .pl{background:var(--bone);transform:scale(1.08)}
.film .pl::after{content:"";width:0;height:0;border-left:16px solid var(--bone);border-top:10px solid transparent;border-bottom:10px solid transparent;margin-left:5px;transition:border-left-color .3s}
.film:hover .pl::after{border-left-color:var(--bg)}
.film h3{font-family:var(--disp);text-transform:uppercase;font-size:21px;margin:16px 0 3px;letter-spacing:.01em}
.film p{margin:0;font-size:14px;color:var(--dim)}

/* ydelser som liste */
.list{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr) auto;gap:var(--gut);align-items:baseline;padding:24px 0;border-bottom:1px solid var(--line);position:relative;transition:padding-left .38s cubic-bezier(.65,0,.2,1)}
.row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--bone);transform:scaleY(0);transform-origin:top;transition:transform .38s cubic-bezier(.65,0,.2,1)}
.row:hover{padding-left:18px}
.row:hover::before{transform:none}
.row h3{font-family:var(--disp);text-transform:uppercase;font-size:clamp(20px,2.3vw,30px);margin:0;letter-spacing:.01em}
.row p{margin:0;color:var(--dim);font-size:15px}
.row .kr{font-family:var(--disp);font-size:clamp(19px,2vw,26px);white-space:nowrap}

/* logoer på lys bund */
.proof{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(26px,3.2vw,40px) 0;overflow:hidden}
.proof .wrap{margin-bottom:18px}
.track{display:flex;width:max-content;animation:roll 52s linear infinite}
.proof:hover .track{animation-play-state:paused}
.track ul{display:flex;align-items:center;gap:clamp(46px,6vw,88px);list-style:none;margin:0;padding:0 clamp(23px,3vw,44px)}
.track li{flex:0 0 auto;display:flex;align-items:center}
.track img{height:clamp(26px,3vw,38px);width:auto;opacity:.7;transition:opacity .3s}
.track li:hover img{opacity:1}
@keyframes roll{to{transform:translateX(-50%)}}

/* billeder i en vandret stribe */
.strip{display:flex;gap:var(--gut);overflow-x:auto;padding-bottom:12px;scroll-snap-type:x mandatory}
.strip figure{margin:0;flex:0 0 auto;scroll-snap-align:start}
.strip img{height:clamp(340px,52vw,640px);width:auto;object-fit:cover;transition:transform 1s cubic-bezier(.2,.6,.2,1)}
.strip figure:hover img{transform:scale(1.03)}

blockquote{margin:0;font-size:clamp(21px,2.4vw,34px);line-height:1.28;font-weight:300;letter-spacing:-.015em}
.quotes{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,4vw,64px)}
blockquote footer{margin-top:18px}

.end{border-top:1px solid var(--line);padding:clamp(52px,6.4vw,96px) 0 40px}
.kbig{display:inline-block;font-family:var(--disp);text-transform:uppercase;font-size:clamp(38px,8vw,104px);text-decoration:none;line-height:.94;transition:opacity .25s}
.kbig:hover{opacity:.65}
.endgrid{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end;margin-top:34px;padding-top:22px;border-top:1px solid var(--line)}
.endgrid .lab{line-height:1.7}

.rev{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.rev.in{opacity:1;transform:none}
html.nojs .rev{opacity:1;transform:none}

/* afspiller */
.lb{position:fixed;inset:0;z-index:120;background:rgba(4,4,5,.96);display:flex;align-items:center;justify-content:center;padding:var(--pad)}
.lb[hidden]{display:none}
.lb-box{width:min(1180px,100%)}
.lb-fr{position:relative;width:100%;aspect-ratio:16/9;background:#000}
.lb-fr iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lb-bar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:12px;flex-wrap:wrap}
.lb-x{background:none;border:1px solid rgba(237,234,228,.45);color:var(--bone);font-family:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.16em;font-weight:700;padding:9px 15px;cursor:pointer}
.lb-x:hover{background:var(--bone);color:var(--bg)}
:focus-visible{outline:2px solid var(--bone);outline-offset:3px}

@media (max-width:960px){
  .films{grid-template-columns:1fr}
  .quotes{grid-template-columns:1fr;gap:34px}
  .row{grid-template-columns:1fr auto;row-gap:6px}
  .row p{grid-column:1/-1;order:3}
}
@media (max-width:720px){
  .nav,.tel{display:none}
  .burger{display:block}
  .hero{aspect-ratio:auto;min-height:74svh}
  .endgrid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rev{opacity:1!important;transform:none!important}}

/* ===================================================================
   UNDERSIDER
   Alt herunder bruges kun på de indre sider. Forsiden rører det ikke.
   =================================================================== */

/* sidehoved uden film */
.sub{border-bottom:1px solid var(--line);padding:calc(64px + clamp(38px,5.4vw,88px)) 0 clamp(34px,4.6vw,72px)}
.sub h1{font-size:clamp(34px,6.2vw,84px);max-width:17ch}
.sub .lead{margin:clamp(20px,2.6vw,32px) 0 0;max-width:52ch;font-size:clamp(16.5px,1.4vw,20px);color:rgba(237,234,228,.84)}
.crumb{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 16px}
.crumb a{text-decoration:none;color:var(--dim);font-size:11px;text-transform:uppercase;letter-spacing:.19em;font-weight:600;transition:color .2s}
.crumb a:hover{color:var(--bone)}
.crumb span{color:var(--dim);font-size:11px}

/* brødtekst */
.two{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(30px,5vw,88px);align-items:start}
.prose{max-width:66ch}
.prose h2{font-family:var(--disp);text-transform:uppercase;font-size:clamp(24px,3.2vw,42px);line-height:.96;margin:clamp(38px,4.6vw,68px) 0 16px;letter-spacing:.008em}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:19px;font-weight:700;margin:30px 0 8px;letter-spacing:-.01em}
.prose p{margin:0 0 16px;color:rgba(237,234,228,.84)}
.prose ul{margin:0 0 18px;padding-left:0;list-style:none}
.prose ul li{position:relative;padding-left:26px;margin-bottom:10px;color:rgba(237,234,228,.84)}
.prose ul li::before{content:"";position:absolute;left:0;top:11px;width:13px;height:1px;background:var(--bone);opacity:.55}
.prose strong{color:var(--bone);font-weight:700}
.prose a{color:var(--bone);text-decoration:none;border-bottom:1px solid rgba(237,234,228,.4)}
.prose a:hover{border-bottom-color:var(--bone)}

/* faktaboks i siden */
.aside{border:1px solid var(--line);padding:clamp(20px,2.4vw,30px);position:sticky;top:88px}
.aside dl{margin:0}
.aside dt{margin:0 0 5px}
.aside dd{margin:0 0 18px;font-size:17px;font-weight:600}
.aside dd:last-of-type{margin-bottom:22px}
.aside .cta{width:100%;justify-content:space-between}

/* pris */
.pris{border-top:1px solid var(--bone);border-bottom:1px solid var(--line);padding:22px 0;display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;margin:8px 0 22px}
.pris b{font-family:var(--disp);font-size:clamp(28px,3.6vw,46px);font-weight:400;letter-spacing:.01em}
.pris span{color:var(--dim);font-size:14px}

/* ofte stillede spørgsmål */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:20px 0;font-size:clamp(17px,1.7vw,21px);font-weight:600;display:flex;justify-content:space-between;gap:20px;align-items:baseline;transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--disp);font-size:26px;line-height:1;color:var(--dim);transition:transform .3s,color .3s}
.faq details[open] summary::after{transform:rotate(45deg);color:var(--bone)}
.faq summary:hover{color:#fff}
.faq p{margin:0 0 20px;color:rgba(237,234,228,.8);max-width:64ch}

/* ydelseskort */
.kort{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gut)}
.kort a{text-decoration:none;border:1px solid var(--line);padding:clamp(22px,2.6vw,32px);display:flex;flex-direction:column;gap:10px;transition:border-color .3s,background .3s,transform .3s}
.kort a:hover{border-color:var(--bone);background:#101013;transform:translateY(-3px)}
.kort h3{font-family:var(--disp);text-transform:uppercase;font-size:clamp(19px,2.1vw,26px);margin:0;letter-spacing:.01em}
.kort p{margin:0;color:var(--dim);font-size:15px;flex:1}
.kort .kr{font-size:14px;font-weight:700;color:var(--bone)}

/* stort galleri */
.gal{display:grid;grid-template-columns:1fr 1fr;gap:var(--gut)}
.gal figure{margin:0;overflow:hidden}
.gal img{transition:transform 1.2s cubic-bezier(.2,.6,.2,1)}
.gal figure:hover img{transform:scale(1.03)}
.gal figure.bred{grid-column:1/-1}
.gal figcaption{margin-top:9px;font-size:11px;text-transform:uppercase;letter-spacing:.19em;font-weight:600;color:var(--dim)}

/* videre herfra */
.videre{display:grid;grid-template-columns:1fr 1fr;gap:var(--gut);border-top:1px solid var(--line);padding-top:26px}
.videre a{text-decoration:none;display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);transition:padding-left .3s}
.videre a:hover{padding-left:12px}
.videre h3{font-family:var(--disp);text-transform:uppercase;font-size:clamp(18px,2vw,24px);margin:0}
.videre span{color:var(--dim);font-size:11px;text-transform:uppercase;letter-spacing:.19em;font-weight:600;white-space:nowrap}

/* afsluttende opfordring */
.slut-cta{border-top:1px solid var(--bone);padding:clamp(44px,5.6vw,88px) 0}
.slut-cta h2{font-family:var(--disp);text-transform:uppercase;font-size:clamp(28px,5vw,64px);margin:0 0 22px;line-height:.94}

@media (max-width:900px){
  .two{grid-template-columns:1fr}
  .aside{position:static}
  .kort{grid-template-columns:1fr 1fr}
  .videre{grid-template-columns:1fr}
}
@media (max-width:640px){
  .kort{grid-template-columns:1fr}
  .gal{grid-template-columns:1fr}
  .gal figure.bred{grid-column:auto}
}

/* ydelsesrækker er links på de nye sider */
.list a.row{text-decoration:none;color:inherit}
.list a.row:hover h3{color:#fff}

/* galleriets filtre */
.filtre{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:clamp(20px,2.6vw,32px)}
.filt{background:none;border:1px solid var(--line);color:var(--dim);font-family:inherit;font-size:12px;
      text-transform:uppercase;letter-spacing:.15em;font-weight:600;padding:11px 16px;cursor:pointer;
      transition:border-color .25s,color .25s,background .25s}
.filt:hover{border-color:var(--bone);color:var(--bone)}
.filt.on{background:var(--bone);border-color:var(--bone);color:var(--bg)}
.filt .num{opacity:.55;margin-left:5px}
.gal figure[hidden]{display:none}

/* ---------- logoet ---------- */
.mark{display:flex;align-items:center}
.mark img{height:34px;width:auto;display:block}
.menu-logo{height:52px;width:auto;margin-bottom:26px;opacity:.9}
.bund-logo{height:44px;width:auto;margin-bottom:12px;opacity:.8}

/* ---------- filmgitteret fylder pladsen ud ---------- */
.films{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}

/* ---------- ydelseskort med billede ---------- */
.gruppe{margin-bottom:clamp(44px,5.4vw,84px)}
.gruppe:last-child{margin-bottom:0}
.gruppe-hoved{display:flex;align-items:baseline;gap:16px;margin-bottom:clamp(18px,2.2vw,28px);padding-bottom:12px;border-bottom:1px solid var(--line)}
.gruppe-hoved h2{font-family:var(--disp);text-transform:uppercase;font-size:clamp(22px,2.8vw,34px);margin:0;letter-spacing:.01em}
.gruppe-hoved p{margin:0;color:var(--dim);font-size:15px;max-width:46ch}
.kort{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.kort a{padding:0;border-color:var(--line);overflow:hidden;gap:0}
.kort a:hover{transform:translateY(-3px)}
.kort .bil{aspect-ratio:4/3;overflow:hidden;background:#141416}
.kort .bil img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s cubic-bezier(.2,.6,.2,1)}
.kort a:hover .bil img{transform:scale(1.05)}
.kort .txt{padding:clamp(18px,2.1vw,26px);display:flex;flex-direction:column;gap:9px;flex:1}
.kort .kr{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:4px}
.kort .kr em{font-style:normal;font-size:11px;text-transform:uppercase;letter-spacing:.17em;color:var(--dim);transition:color .25s}
.kort a:hover .kr em{color:var(--bone)}

/* ---------- sidehoved med billede ---------- */
.sub{position:relative;overflow:hidden}
.sub.med-bil::before{content:"";position:absolute;inset:-2%;background-image:var(--bil);
  background-size:cover;background-position:center;opacity:.5;
  animation:naer 26s ease-in-out infinite alternate;z-index:0}
.sub.med-bil::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(95deg,rgba(9,9,10,.95) 0%,rgba(9,9,10,.78) 45%,rgba(9,9,10,.42) 100%)}
.sub.med-bil > .wrap{position:relative;z-index:2}
@keyframes naer{from{transform:scale(1)}to{transform:scale(1.09)}}

/* ---------- plads til Å, Æ og Ø over versalerne ---------- */
.disp{line-height:.96}
.hero .lab{margin-bottom:22px}
.sub h1,.hero h1{padding-top:.06em}

/* ===================================================================
   BEVAEGELSE
   Ét sprog: vandret bevægelse og streger der tegner sig. Alt er slået
   fra under prefers-reduced-motion, og alt ender synligt uanset hvad.
   =================================================================== */

/* fremdrift i toppen */
#prog{position:fixed;top:0;left:0;height:2px;width:0;background:var(--bone);z-index:100;
  transition:width .08s linear;pointer-events:none}

/* invitation til at scrolle */
.cue{position:absolute;left:var(--pad);bottom:0;z-index:6;display:flex;align-items:center;gap:12px;
  padding-bottom:18px;color:rgba(237,234,228,.66);font-size:10.5px;text-transform:uppercase;
  letter-spacing:.2em;font-weight:600}
.cue i{display:block;width:1px;height:46px;background:rgba(237,234,228,.3);position:relative;overflow:hidden}
.cue i::after{content:"";position:absolute;inset:0;background:var(--bone);
  animation:falder 2.6s cubic-bezier(.7,0,.3,1) infinite}
@keyframes falder{0%{transform:translateY(-100%)}55%,100%{transform:translateY(100%)}}

/* sektionsoverskriften tegner sin streg */
.head{position:relative}
.head::after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;
  background:var(--bone);transform:scaleX(0);transform-origin:left;
  transition:transform 1.1s cubic-bezier(.16,.84,.24,1)}
.head.in::after{transform:none}
.gruppe-hoved{position:relative}
.gruppe-hoved::after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;
  background:var(--bone);transform:scaleX(0);transform-origin:left;
  transition:transform 1.1s cubic-bezier(.16,.84,.24,1)}
.gruppe.in .gruppe-hoved::after{transform:none}

/* billeder driver langsommere end siden */
.par{will-change:transform}

/* forskudt indtoning i gitre */
.films .film,.kort a,.gal figure,.strip figure{opacity:0;transform:translateY(22px);
  transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);
  transition-delay:calc(var(--i,0)*80ms)}
.in .films .film,.in.kort a,.in .kort a,.in.gal figure,.in .gal figure,.in .strip figure,
.films.in .film,.kort.in a,.gal.in figure,.strip.in figure{opacity:1;transform:none}
html.nojs .films .film,html.nojs .kort a,html.nojs .gal figure,html.nojs .strip figure{
  opacity:1;transform:none}

/* filmstriben glider sidelaens mens man scroller forbi */
.strip-ydre{overflow:hidden}
.strip.driv{overflow:visible;will-change:transform}

@media (prefers-reduced-motion:reduce){
  #prog{display:none}
  .cue i::after{animation:none}
  .head::after,.gruppe-hoved::after{transform:none!important}
  .par{transform:none!important}
  .films .film,.kort a,.gal figure,.strip figure{opacity:1!important;transform:none!important}
  .strip.driv{transform:none!important}
}
