/* Villa Gallina — fælles stylesheet for alle sider */
:root{
  /* lys, varm palet — ingen mørk tilstand */
  --paper:#FBF8F2;
  --surface:#FFFFFF;
  --surface-2:#F2ECE0;
  --ink:#2A211A;
  --ink-soft:#6E6257;
  --falu:#8A3A2B;
  --falu-deep:#6E2A1E;
  --thatch:#A97A34;
  --pine:#8A7460;
  --lake:#6E8A92;
  --line:rgba(42,33,26,.14);
  --line-strong:rgba(42,33,26,.26);
  --shadow:0 18px 40px -22px rgba(60,44,30,.28);
  --shadow-lift:0 30px 60px -28px rgba(60,44,30,.42);
  --radius:4px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --gutter:clamp(18px,5vw,56px);
  --nav-h:4.2rem;
  color-scheme:light;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-padding-top:6rem;}
@media (prefers-reduced-motion:no-preference){ html{scroll-behavior:smooth;} }
body{
  margin:0;
  overflow-x:clip;
  background:var(--paper);
  color:var(--ink);
  font-family:"Libre Franklin",system-ui,sans-serif;
  font-size:17px;
  line-height:1.65;
  padding-inline:var(--gutter);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--falu);outline-offset:3px;border-radius:2px;}
h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:500;margin:0;text-wrap:balance;letter-spacing:-.005em;}
@media (max-width:560px){ h1,h2{hyphens:auto;} }
p{margin:0;}
.wrap{max-width:1180px;margin-inline:auto;}
.bleed{margin-inline:calc(var(--gutter) * -1);}
.skip{position:absolute;left:-9999px;}
.skip:focus{left:var(--gutter);top:.5rem;z-index:60;background:var(--falu);color:#fff;padding:.6rem 1rem;border-radius:var(--radius);}

.eyebrow{
  font:700 .74rem/1.35 "Libre Franklin",sans-serif;
  letter-spacing:.16em;text-transform:uppercase;color:var(--pine);
}

/* ---------- knapper ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font:600 .9rem/1 "Libre Franklin",sans-serif;
  text-decoration:none;white-space:nowrap;cursor:pointer;
  padding:.72rem 1.25rem;border-radius:999px;
  border:1px solid var(--line-strong);background:transparent;color:inherit;
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease);
}
.btn:hover{transform:translateY(-1px);}
.btn--primary{background:var(--falu);border-color:var(--falu);color:#FFF9F0;box-shadow:0 10px 24px -14px rgba(138,58,43,.8);}
.btn--primary:hover{background:var(--falu-deep);border-color:var(--falu-deep);}
.btn--ghost:hover{border-color:var(--falu);color:var(--falu);}
.btn--light{border-color:rgba(255,249,240,.5);color:#FFF9F0;}
.btn--light:hover{background:#FFF9F0;color:var(--ink);border-color:#FFF9F0;}
.btn--big{padding:.9rem 1.6rem;font-size:.98rem;}

/* ---------- åbent/lukket-status ---------- */
.status{
  display:inline-flex;align-items:center;gap:.55rem;
  font:600 .84rem/1 "Libre Franklin",sans-serif;
  padding:.5rem .95rem;border-radius:999px;
  background:var(--surface);border:1px solid var(--line-strong);
  white-space:nowrap;
}
.status__dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--ink-soft);flex:none;}
.status.is-open .status__dot{background:#2F7D45;box-shadow:0 0 0 3px rgba(47,125,69,.18);}
.status.is-closed .status__dot{background:#B4472F;}
.status--onmedia{background:rgba(255,249,240,.94);color:var(--ink);border-color:transparent;backdrop-filter:blur(6px) saturate(1.1);}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:40;
  padding-block:.9rem;padding-inline:var(--gutter);
  margin-inline:calc(var(--gutter) * -1);
  background:color-mix(in srgb, var(--paper) 90%, transparent);
  backdrop-filter:blur(10px) saturate(1.1);
  border-bottom:1px solid transparent;
  transition:border-color .35s var(--ease), box-shadow .35s var(--ease), padding-block .35s var(--ease);
}
.nav.is-stuck{border-bottom-color:var(--line);box-shadow:0 12px 30px -26px rgba(60,44,30,.9);padding-block:.62rem;}
.nav__inner{max-width:1180px;margin-inline:auto;width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;}
.nav__mark{
  text-decoration:none;color:inherit;display:flex;align-items:center;gap:.55rem;white-space:nowrap;
}
.nav__mark img{height:2.9rem;width:auto;display:block;}
.nav__mark small{font-family:"Libre Franklin",sans-serif;font-weight:600;font-size:.62rem;letter-spacing:.14em;color:var(--ink-soft);text-transform:uppercase;}
.nav__links{display:flex;gap:clamp(.8rem,2vw,1.7rem);list-style:none;margin:0;padding:0;font-size:.86rem;font-weight:500;}
.nav__links a{text-decoration:none;position:relative;padding-block:.2rem;white-space:nowrap;transition:color .25s var(--ease);}
.nav__links a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1px;background:var(--falu);transition:right .3s var(--ease);}
.nav__links a:hover,.nav__links a.is-active{color:var(--falu);}
.nav__links a:hover::after,.nav__links a.is-active::after{right:0;}
.nav__actions{display:flex;align-items:center;gap:.6rem;}
.nav__burger{
  display:none;align-items:center;justify-content:center;
  width:2.6rem;height:2.6rem;flex:none;padding:0;
  background:transparent;border:1px solid var(--line-strong);border-radius:999px;color:inherit;cursor:pointer;
}
.nav__burger span{position:relative;display:block;width:1.05rem;height:1.5px;background:currentColor;border-radius:2px;transition:transform .3s var(--ease),background .2s var(--ease);}
.nav__burger span::before,.nav__burger span::after{content:"";position:absolute;left:0;width:100%;height:1.5px;background:currentColor;border-radius:2px;transition:transform .3s var(--ease);}
.nav__burger span::before{top:-5px;}
.nav__burger span::after{top:5px;}
.nav__burger[aria-expanded="true"] span{background:transparent;}
.nav__burger[aria-expanded="true"] span::before{transform:translateY(5px) rotate(45deg);}
.nav__burger[aria-expanded="true"] span::after{transform:translateY(-5px) rotate(-45deg);}

@media (max-width:860px){
  .nav__burger{display:flex;}
  .nav__links{
    position:absolute;left:0;right:0;top:100%;
    flex-direction:column;gap:0;
    background:var(--paper);border-bottom:1px solid var(--line);
    box-shadow:0 20px 40px -28px rgba(60,44,30,.8);
    padding:.5rem var(--gutter) 1.2rem;
    font-size:1.05rem;
  }
  .nav__links[hidden]{display:none;}
  .nav__links li{border-bottom:1px solid var(--line);}
  .nav__links li:last-child{border-bottom:none;}
  .nav__links a{display:block;padding-block:.85rem;}
  .nav__links a::after{display:none;}
  .nav__cta-desktop{display:none;}
}
@media (min-width:861px){
  .nav__links[hidden]{display:flex;}
}

/* ---------- hero ---------- */
.hero{padding-block-start:clamp(28px,5vw,48px);}
.hero__frame{position:relative;border-radius:var(--radius);overflow:hidden;height:clamp(460px,60vw,640px);box-shadow:var(--shadow);background:var(--surface-2);}
.hero__frame img{width:100%;height:100%;object-fit:cover;object-position:50% 62%;}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(0deg, rgba(28,20,12,.84) 0%, rgba(28,20,12,.44) 52%, rgba(28,20,12,0) 86%);}
@media (min-width:861px){
  .hero__scrim{
    background:
      linear-gradient(0deg, rgba(28,20,12,.74) 0%, rgba(28,20,12,.26) 48%, rgba(28,20,12,0) 80%),
      linear-gradient(270deg, rgba(28,20,12,.6) 0%, rgba(28,20,12,.26) 40%, rgba(28,20,12,0) 64%);
  }
}
.hero__badge{
  position:absolute;z-index:2;
  top:clamp(16px,2.6vw,30px);
  left:clamp(16px,2.6vw,30px);
  margin:0;
  box-shadow:0 12px 26px -14px rgba(20,14,8,.75);
}
.hero__copy{
  position:absolute;left:0;right:0;bottom:0;
  padding:clamp(22px,4vw,56px);
  color:#FBF6EA;
  display:flex;justify-content:flex-end;
}
.hero__text{width:100%;max-width:min(100%,50ch);}
@media (max-width:860px){ .hero__copy{justify-content:flex-start;} .hero__text{max-width:none;} }
.hero__eyebrow{font:700 .74rem/1.35 "Libre Franklin",sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#E9C68C;}
.hero__title{font-family:"Fraunces",serif;font-weight:500;font-style:italic;font-size:clamp(2.7rem,8.4vw,6rem);line-height:.96;margin-block:.3rem .5rem;text-shadow:0 2px 30px rgba(20,14,8,.4);}
.hero__sub{max-width:38ch;font-size:1.02rem;color:#F0E9D9;}
.hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:1.3rem;}
.hero__meta{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;margin-top:1.1rem;font-size:.84rem;font-weight:600;color:#FBF6EA;}
.hero__meta span,.hero__meta a{opacity:.85;text-decoration:none;}
.hero__meta a:hover{opacity:1;}
@media (max-width:520px){
  .hero__frame{height:clamp(520px,80svh,660px);}
  .hero__frame img{object-position:32% 50%;}
  .hero__scrim{background:linear-gradient(0deg, rgba(28,20,12,.9) 0%, rgba(28,20,12,.62) 58%, rgba(28,20,12,.12) 100%);}
  .hero__cta .btn{flex:1 1 auto;}
  .hero__sub{font-size:.95rem;}
  .hero__meta{display:none;}
}

/* ---------- sektionsrytme ---------- */
section{padding-block:clamp(54px,8vw,104px);}
.section-head{max-width:640px;margin-bottom:clamp(26px,4vw,42px);}
.section-head h2{font-size:clamp(1.62rem,5.4vw,2.7rem);margin-top:.5rem;}
.section-head p{margin-top:.9rem;color:var(--ink-soft);font-size:1rem;max-width:56ch;}
.rule{border:none;border-top:1px solid var(--line);margin:0;max-width:1180px;margin-inline:auto;}

/* ---------- intro ---------- */
.intro{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:start;border-top:1px solid var(--line);padding-top:clamp(40px,6vw,64px);}
@media (min-width:841px){ .intro__text{position:sticky;top:6.5rem;align-self:start;} }
.intro__text h2,.lake__text h2{font-size:clamp(1.62rem,5.2vw,2.6rem);margin-top:.5rem;margin-bottom:1.15rem;}
.intro__text p{margin-bottom:1.1rem;}
.intro__text p.lede{font-size:1.12rem;}
.intro__quote{margin-top:1.6rem;padding-left:1.1rem;border-left:2px solid var(--falu);font-family:"Fraunces",serif;font-style:italic;font-size:1.14rem;color:var(--falu-deep);}
.hosts{display:flex;align-items:center;gap:1rem;margin-top:1.8rem;padding:.85rem 1.1rem .85rem .85rem;background:var(--surface);border:1px solid var(--line);border-radius:999px;width:fit-content;max-width:100%;}
.hosts img{width:56px;height:56px;border-radius:50%;object-fit:cover;object-position:50% 30%;flex:none;}
.hosts span{font-size:.86rem;color:var(--ink-soft);line-height:1.45;}
.hosts b{display:block;color:var(--ink);font-family:"Fraunces",serif;font-size:1.02rem;font-weight:500;}
.intro__media{display:grid;gap:1.1rem;}
figure{margin:0;}
.fig img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow);}
.fig figcaption{margin-top:.6rem;font-size:.8rem;color:var(--ink-soft);display:flex;justify-content:space-between;gap:1rem;}
@media (max-width:840px){ .intro{grid-template-columns:1fr;} }

/* ---------- fuldbredde-bånd ---------- */
/* Rækken vokser med det højeste af billede og tekst, så teksten aldrig kan klippes. */
.band{position:relative;display:grid;}
.band > img{
  grid-area:1/1;
  width:100%;height:100%;
  min-height:clamp(260px,26vw,460px);
  object-fit:cover;object-position:50% 54%;
}
/* Mørkner bag teksten frem for at lægge en flad grå dug over hele billedet. */
.band__veil{
  grid-area:1/1;
  background:radial-gradient(72% 82% at 50% 52%, rgba(24,17,9,.68) 0%, rgba(24,17,9,.38) 60%, rgba(24,17,9,.26) 100%);
}
.band__copy{
  grid-area:1/1;
  display:grid;align-content:center;justify-items:center;
  text-align:center;
  padding:clamp(28px,5vw,56px);
  color:#FBF6EA;
}
.band__copy p{font-family:"Fraunces",serif;font-style:italic;font-size:clamp(1.25rem,3.2vw,2rem);line-height:1.32;max-width:24ch;text-wrap:balance;text-shadow:0 2px 24px rgba(20,14,8,.45);}
.band__copy .eyebrow{color:#E9C68C;margin-bottom:.9rem;}

/* ---------- spisekort ---------- */
.menu-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(28px,4vw,56px) clamp(40px,6vw,72px);}
.menu-group{border-top:1px solid var(--line-strong);padding-top:1.1rem;}
.menu-group__label{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.9rem;}
.menu-group__label .eyebrow{color:var(--falu);}
.menu-group__note{font-size:.78rem;color:var(--ink-soft);font-style:italic;flex:none;}
.menu-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .5rem;padding-block:.5rem;break-inside:avoid;}
.menu-item + .menu-item{border-top:1px dotted var(--line);}
.menu-item__name{font-size:.98rem;flex:1 1 200px;min-width:0;}
.menu-item__desc{display:block;font-size:.85rem;color:var(--ink-soft);font-weight:400;margin-top:.15rem;}
.menu-item__leader{flex:1;border-bottom:1px dotted var(--line-strong);margin-bottom:.35rem;min-width:12px;}
.menu-item__price{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap;color:var(--falu-deep);}
.menu-foot{margin-top:clamp(28px,4vw,44px);padding-top:1.2rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 2rem;font-size:.84rem;color:var(--ink-soft);font-style:italic;}
@media (max-width:760px){
  .menu-groups{grid-template-columns:1fr;}
  .menu-cols{columns:1 !important;}
  .menu-item__name{font-size:1.04rem;}
  .menu-item__desc{font-size:.9rem;}
  .menu-item__leader{display:none;}
  .menu-item__price{font-size:1.02rem;}
}

/* ---------- selskaber ---------- */
.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.4vw,18px);margin-bottom:clamp(28px,4vw,44px);}
.strip figure{overflow:hidden;border-radius:var(--radius);aspect-ratio:4/3;box-shadow:var(--shadow);}
.strip img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.strip figure:hover img{transform:scale(1.05);}
@media (max-width:640px){ .strip{grid-template-columns:1fr 1fr;} .strip figure:last-child{display:none;} }

.events{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong);}
.event{
  position:relative;text-decoration:none;color:inherit;
  padding:1.5rem 1.4rem;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);
  display:flex;flex-direction:column;gap:.45rem;min-height:180px;
  transition:background .35s var(--ease), transform .35s var(--ease), box-shadow .35s var(--ease);
}
.event::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:0;background:var(--falu);transition:width .45s var(--ease);}
.event:hover{background:var(--surface);transform:translateY(-2px);box-shadow:var(--shadow);z-index:1;}
.event:hover::before{width:100%;}
.event h3{font-size:1.14rem;}
.event .price{font-size:.82rem;font-weight:700;color:var(--falu);font-variant-numeric:tabular-nums;}
.event p{font-size:.86rem;color:var(--ink-soft);}
.event .more{margin-top:auto;font-size:.8rem;font-weight:600;color:var(--falu);}
.event .more::after{content:" →";}
@media (max-width:900px){ .events{grid-template-columns:repeat(2,1fr);} }
@media (max-width:480px){ .events{grid-template-columns:1fr;} .event{min-height:0;} }
.events-note{margin-top:1.6rem;font-size:.92rem;color:var(--ink-soft);max-width:62ch;}
.events-note strong{color:var(--ink);font-weight:600;}

/* ---------- galleri: vandret filmstrimmel ---------- */
.filmstrip{
  display:flex;gap:clamp(10px,1.4vw,18px);
  overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:1rem;
  scrollbar-width:thin;-webkit-overflow-scrolling:touch;
  margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);
}
.filmstrip figure{flex:0 0 clamp(230px,32vw,340px);scroll-snap-align:start;}
.filmstrip__frame{aspect-ratio:1/1;overflow:hidden;border-radius:var(--radius);background:var(--surface-2);}
.filmstrip__frame img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.filmstrip figure:hover img{transform:scale(1.05);}
.filmstrip figcaption{margin-top:.55rem;font-size:.84rem;color:var(--ink-soft);}
.filmstrip-hint{margin-top:.2rem;font-size:.8rem;color:var(--ink-soft);font-style:italic;}

/* ---------- sø ---------- */
.lake{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:center;}
.lake__media{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:auto auto;gap:.9rem;}
.lake__media img{border-radius:var(--radius);box-shadow:var(--shadow);width:100%;height:100%;object-fit:cover;}
.lake__media .tall{grid-row:1/3;aspect-ratio:3/4;}
.lake__media .wide{aspect-ratio:4/3;align-self:end;}
.lake__media .small{aspect-ratio:1/1;}
.lake__text p{margin-bottom:1rem;}
.lake__diagram{display:flex;align-items:center;gap:1.1rem;margin-top:1.6rem;padding:1rem 1.2rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);}
.lake__diagram svg{flex:none;width:96px;height:74px;}
.lake__diagram .cap{font-size:.82rem;color:var(--ink-soft);flex:1;min-width:0;}
.lake__diagram .cap b{display:block;color:var(--ink);font-family:"Fraunces",serif;font-size:1.05rem;font-weight:500;}
@media (max-width:840px){ .lake{grid-template-columns:1fr;} }

/* ---------- åbningstider ---------- */
.hours-bar{
  display:flex;flex-wrap:wrap;align-items:center;gap:1rem;
  padding:1.1rem 1.3rem;margin-bottom:clamp(24px,3vw,36px);
  background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);
}
.hours-bar .status{border:none;background:transparent;padding:0;font-size:.98rem;}
.hours-bar__note{font-size:.88rem;color:var(--ink-soft);flex:1 1 220px;min-width:0;}
.hours-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(28px,5vw,64px);align-items:start;}
.hours{border-top:1px solid var(--line-strong);margin:0;}
.hours__row{display:grid;grid-template-columns:11rem 1fr;gap:1.5rem;padding-block:1rem;border-bottom:1px solid var(--line);}
.hours__row.is-now{background:var(--surface);box-shadow:inset 3px 0 0 var(--falu);padding-inline:.9rem;}
.hours__row dt{font-family:"Fraunces",serif;font-size:1.05rem;font-weight:500;}
.hours__row dd{margin:0;color:var(--ink-soft);font-size:.94rem;font-variant-numeric:tabular-nums;}
.hours__row dd b{color:var(--ink);font-weight:600;}
.hours-grid .fig img{aspect-ratio:4/5;object-fit:cover;object-position:50% 28%;}
@media (max-width:900px){ .hours-grid{grid-template-columns:1fr;} .hours-grid .fig{max-width:420px;} }
@media (max-width:600px){ .hours__row{grid-template-columns:1fr;gap:.3rem;} }

/* ---------- det sker ---------- */
.news{display:grid;gap:0;border-top:1px solid var(--line-strong);}
.news__item{display:grid;grid-template-columns:9rem 1fr auto;gap:1.2rem;align-items:baseline;padding-block:1.1rem;border-bottom:1px solid var(--line);}
.news__when{font-family:"Fraunces",serif;font-size:1.02rem;color:var(--falu);font-weight:500;}
.news__what b{font-weight:600;}
.news__what span{display:block;font-size:.88rem;color:var(--ink-soft);margin-top:.15rem;}
.news__price{font-variant-numeric:tabular-nums;font-weight:600;color:var(--falu-deep);white-space:nowrap;}
@media (max-width:640px){ .news__item{grid-template-columns:1fr auto;gap:.2rem .8rem;} .news__when{grid-column:1/-1;} }

/* ---------- find vej / praktisk ---------- */
.info{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,64px);align-items:center;}
.info__map{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--surface-2);display:grid;justify-items:center;padding-bottom:1.5rem;}
.info__map svg,.info__map img{width:100%;height:auto;display:block;}
.info__map .btn{margin-top:1.3rem;}
.info__list{display:grid;gap:1.1rem;}
.info__row{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;padding-bottom:1.1rem;border-bottom:1px solid var(--line);}
.info__row:last-child{border-bottom:none;padding-bottom:0;}
.info__row svg{width:26px;height:26px;flex:none;color:var(--falu);margin-top:.2rem;}
.info__row b{display:block;font-family:"Fraunces",serif;font-size:1.08rem;font-weight:500;}
.info__row p{font-size:.9rem;color:var(--ink-soft);margin-top:.15rem;}
@media (max-width:840px){ .info{grid-template-columns:1fr;} }

/* ---------- undersider (selskaber m.m.) ---------- */
.page-head{padding-block:clamp(40px,6vw,72px) clamp(24px,3vw,36px);max-width:70ch;}
.page-head h1{font-size:clamp(1.9rem,6vw,3.6rem);font-style:italic;margin-block:.4rem .8rem;}
.page-head p{color:var(--ink-soft);font-size:1.05rem;}
.crumb{font-size:.84rem;color:var(--ink-soft);}
.crumb a{color:var(--falu);text-decoration:none;font-weight:600;}
.crumb a:hover{text-decoration:underline;}
.page-hero{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin-bottom:clamp(32px,5vw,56px);}
.page-hero img{width:100%;aspect-ratio:21/9;object-fit:cover;}
@media (max-width:640px){ .page-hero img{aspect-ratio:3/2;} }

.pkgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:clamp(20px,3vw,32px);}
.pkg{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,3vw,30px);display:flex;flex-direction:column;}
.pkg h2,.pkg h3{font-size:1.4rem;}
.pkg .pkg__price{font:700 1.5rem/1.2 "Libre Franklin",sans-serif;color:var(--falu);font-variant-numeric:tabular-nums;margin-block:.5rem .2rem;}
.pkg .pkg__unit{font-size:.82rem;color:var(--ink-soft);font-weight:600;}
.pkg ul{list-style:none;margin:1.1rem 0 0;padding:0;display:grid;gap:.5rem;}
.pkg li{font-size:.94rem;padding-left:1.35rem;position:relative;}
.pkg li::before{content:"";position:absolute;left:0;top:.62em;width:.5rem;height:.5rem;border-radius:50%;background:var(--falu);opacity:.45;}
.pkg .pkg__note{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--ink-soft);}

.prose{max-width:68ch;}
.prose p{margin-bottom:1.1rem;}
.prose h2{font-size:clamp(1.5rem,3.4vw,2rem);margin-block:2rem 1rem;}
.prose h3{font-size:1.2rem;margin-block:1.6rem .6rem;}
.prose ul{padding-left:1.2rem;margin-block:0 1.1rem;}
.prose li{margin-bottom:.35rem;}
.prose strong{font-weight:600;}

.cta-block{
  margin-top:clamp(40px,6vw,72px);padding:clamp(26px,4vw,40px);
  background:var(--surface-2);border-radius:var(--radius);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem 2rem;
}
.cta-block h2{font-size:clamp(1.4rem,3vw,1.9rem);}
.cta-block p{color:var(--ink-soft);font-size:.94rem;margin-top:.4rem;max-width:44ch;}
.cta-block__actions{display:flex;flex-wrap:wrap;gap:.7rem;}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line-strong);padding-block:clamp(40px,6vw,64px) clamp(24px,4vw,32px);display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2.5rem;}
footer h3{font-size:1.4rem;font-style:italic;}
footer .colophon{font-size:.86rem;color:var(--ink-soft);max-width:32ch;margin-top:.7rem;}
.foot-col .eyebrow{margin-bottom:.7rem;display:block;}
.foot-col a{display:block;text-decoration:none;font-size:.95rem;margin-bottom:.55rem;width:fit-content;transition:color .25s var(--ease), transform .25s var(--ease);}
.foot-col a:hover{color:var(--falu);transform:translateX(3px);}
.foot-bottom{margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--line);font-size:.78rem;color:var(--ink-soft);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem;}
@media (max-width:760px){ footer{grid-template-columns:1fr 1fr;} footer .colophon{grid-column:1/-1;} }
@media (max-width:480px){ footer{grid-template-columns:1fr;} }

/* ---------- bevægelse ---------- */
.reveal,.stagger > *{opacity:1;transform:none;}
@media (prefers-reduced-motion:no-preference){
  .js .reveal{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease), transform .8s var(--ease);}
  .js .reveal.in{opacity:1;transform:none;}
  .js .stagger > *{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease), transform .7s var(--ease);}
  .js .stagger.in > *{opacity:1;transform:none;}
  .hero__frame img{animation:kenburns 28s var(--ease) forwards;}
  .hero__text > *{animation:rise 1s var(--ease) both;}
  .hero__text > *:nth-child(2){animation-delay:.1s;}
  .hero__text > *:nth-child(3){animation-delay:.2s;}
  .hero__text > *:nth-child(4){animation-delay:.3s;}
  .hero__text > *:nth-child(5){animation-delay:.4s;}
  .hero__badge{animation:rise .9s var(--ease) .5s both;}
}
@keyframes kenburns{from{transform:scale(1.07);}to{transform:scale(1);}}
@keyframes rise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
