/* 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:#76614E; /* 5.5:1 på --paper */
  --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;}
::selection{background:rgba(138,58,43,.18);color:var(--ink);}
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:.68rem;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.75rem;height:2.75rem;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__frame picture{display:block;height:100%;}
.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;}
/* Telefon: som desktop med tekst oven på billedet, men kun titel og knapper, så huset ses. */
@media (max-width:520px){
  .hero__frame{height:clamp(360px,calc(100svh - 180px - env(safe-area-inset-bottom,0px)),660px);}
  .hero__frame img{object-position:31% 50%;}
  .hours-grid .fig{display:none;}
  .hero__scrim{background:linear-gradient(0deg, rgba(28,20,12,.86) 0%, rgba(28,20,12,.5) 32%, rgba(28,20,12,0) 56%);}
  .hero__eyebrow,.hero__sub,.hero__meta{display:none;}
  .hero__title{margin-block:0 .2rem;}
  .hero__cta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.9rem;gap:.6rem;}
  .hero__cta .btn{min-height:44px;}
  .hero__cta .btn--primary{flex-basis:100%;}
  .hero__cta .btn--light{flex:1 1 0;padding-inline:.6rem;font-size:.9rem;}
}

/* ---------- 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:50ch;}
.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);}
.house-photo{filter:sepia(.05) saturate(1.3) contrast(1.06) brightness(1.02);}
.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;flex-wrap:wrap;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;}
.menu-item{display:flex;align-items:baseline;gap:1.25rem;padding-block:.55rem;break-inside:avoid;}
.menu-item + .menu-item{border-top:1px dotted var(--line);}
.menu-item__name{font-size:.98rem;flex:1;min-width:0;}
.menu-item__desc{display:block;font-size:.85rem;color:var(--ink-soft);font-weight:400;margin-top:.15rem;}
.menu-item__price{flex:none;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap;color:var(--falu-deep);}
.menu-group__unit{font-weight:400;font-style:italic;font-size:.8rem;color:var(--ink-soft);margin-right:.45rem;}
.menu-group__sub{margin:-.55rem 0 .9rem;font-size:.78rem;color:var(--ink-soft);font-style:italic;}
.menu-group--wide{grid-column:1/-1;}
.menu-cols{columns:2;column-gap:2.5rem;}
.actions-row{margin-top:1.8rem;display:flex;gap:.8rem;flex-wrap:wrap;}
.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;}
  .menu-item__name{font-size:1.04rem;}
  .menu-item__desc{font-size:.9rem;}
  .menu-item__price{font-size:1.02rem;}
}

/* ---------- selskaber ---------- */
/* Ét bredt rumbillede i stedet for tre næsten ens */

.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:52ch;}
.events-note--page{margin-block:2.5rem;}
.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);
  scroll-padding-inline:var(--gutter);
}
.filmstrip figure{flex:0 0 clamp(230px,32vw,340px);scroll-snap-align:start;}
.filmstrip__frame{aspect-ratio:3/4;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;}
@media (pointer:fine){ .filmstrip-hint{display:none;} }

/* ---------- 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;}
.nw{white-space:nowrap;}
.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:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:start;}
.info__go{display:grid;gap:.7rem;justify-items:start;}
.info__addr{font-family:"Fraunces",serif;font-size:clamp(1.5rem,3vw,2rem);line-height:1.2;}
.info__go p{color:var(--ink-soft);}
.info__go .btn{margin-top:.6rem;}
.info__note{font-size:.84rem;}
.info__book{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.92rem;}
.access{background:var(--surface-2);border-radius:var(--radius);padding:clamp(22px,3vw,34px);display:grid;gap:.7rem;justify-items:start;}
.access svg{width:40px;height:40px;color:var(--falu);}
.access h3{font-size:clamp(1.3rem,2.4vw,1.6rem);}
.access p{font-size:1.02rem;}
@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;max-width:52ch;}
.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{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,1.2vw,16px);margin-bottom:clamp(32px,5vw,56px);}
.page-hero img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow);}
@media (max-width:640px){ .page-hero{grid-template-columns:repeat(2,1fr);} .page-hero img:nth-child(3){display:none;} }

.pkgs{display:grid;align-items:start;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__sub{font-size:.85rem;color:var(--ink-soft);}
.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--spaced{margin-top:clamp(36px,5vw,56px);}
.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 .foot-cta{margin-top:1.2rem;}
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;} }

/* ---------- touch: mindst 44px trykflade ---------- */
@media (pointer:coarse){
  .btn{min-height:44px;}
  .foot-col a{display:flex;align-items:center;min-height:44px;margin-bottom:0;}
  .crumb a{display:inline-block;padding-block:.6rem;}
}

/* ---------- 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;}}
.section-gap{margin-top:clamp(48px,6vw,80px);}

/* ---------- telefon: ring direkte ---------- */
.nav__phone{display:none;}
.hero__call{display:none;}
@media (max-width:860px){ .nav__phone{display:block;} .nav__phone a{color:var(--falu);font-weight:600;} }
@media (max-width:520px){ .hero__call{display:inline-flex;} }


/* ---------- andre selskaber (bunden af undersider) ---------- */
.related{border-top:1px solid var(--line-strong);padding-block:clamp(28px,4vw,40px) clamp(40px,6vw,64px);}
.related__title{font-size:1.25rem;font-style:italic;color:var(--falu-deep);margin-bottom:1rem;}
.related ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem;}
.related a{display:inline-flex;align-items:center;min-height:40px;padding:.4rem 1rem;border:1px solid var(--line-strong);border-radius:999px;text-decoration:none;font-size:.9rem;font-weight:500;transition:border-color .25s var(--ease),color .25s var(--ease);}
.related a:hover{border-color:var(--falu);color:var(--falu);}
@media (pointer:coarse){ .related a{min-height:44px;} }

/* Kontaktbjælken toner ind, når man scroller væk fra toppen. */
.mobile-contact{display:none;}
@media (max-width:860px){
  .has-mobile-contact{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px));}
  html{scroll-padding-bottom:calc(88px + env(safe-area-inset-bottom,0px));}
  .mobile-contact{
    position:fixed;inset:auto 0 0;z-index:45;
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;
    padding:12px max(18px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px));
    background:var(--paper);border-top:1px solid var(--line-strong);
    box-shadow:0 -6px 20px -14px rgba(60,44,30,.28);
  }
  .mobile-contact .btn{min-height:48px;padding-inline:.9rem;}
  .mobile-contact__icon{flex:none;}
  .js .mobile-contact{
    opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px);
    transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s;
  }
  .js.has-scrolled .mobile-contact{
    opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);
  }
}
@media (prefers-reduced-motion:reduce){
  .js .mobile-contact{transition:none;transform:none;}
}
@media print{
  .mobile-contact{display:none;}
  .has-mobile-contact{padding-bottom:0;}
}

/* Et fælles mailvalg fra forsiden og kontaktbjælken. */
html.email-panel-open{overflow:hidden;}
.email-panel{
  padding:0;border:1px solid var(--line-strong);border-radius:var(--radius);
  width:calc(100% - 32px);max-width:460px;max-height:calc(100svh - 32px);
  background:var(--paper);color:var(--ink);box-shadow:var(--shadow-lift);
}
.email-panel::backdrop{background:rgba(42,33,26,.48);}
.email-panel[open]{animation:email-panel-in .25s var(--ease) both;}
.email-panel__content{position:relative;padding:32px 28px 18px;}
.email-panel h2{padding-right:32px;font-size:1.8rem;line-height:1.2;}
.email-panel p{font-size:.9rem;color:var(--ink-soft);}
#email-panel-description{margin-top:.65rem;}
.email-panel__address{
  display:block;width:100%;margin:.8rem 0 1.25rem;padding:0;border:0;border-radius:0;
  font:600 .95rem/1.65 "Libre Franklin",sans-serif;background:transparent;color:var(--falu-deep);
}
.email-panel__close{
  position:absolute;top:18px;right:16px;display:grid;place-items:center;
  width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--ink-soft);cursor:pointer;
}
.email-panel__close:hover{color:var(--falu);}
.email-panel__options{border-top:1px solid var(--line-strong);}
.email-panel__option{
  display:flex;align-items:center;gap:16px;width:100%;padding:18px 2px;
  border:0;border-bottom:1px solid var(--line);background:transparent;
  color:var(--ink);font:inherit;text-align:left;text-decoration:none;cursor:pointer;
}
.email-panel__option:last-child{border-bottom:0;}
.email-panel__option svg{flex:none;color:var(--falu);}
.email-panel__option strong{display:block;font-size:.97rem;font-weight:600;}
.email-panel__option small{display:block;margin-top:3px;font-size:.78rem;line-height:1.5;color:var(--ink-soft);}
.email-panel__option:hover strong{color:var(--falu);}
.email-panel .email-panel__status{min-height:2.8em;padding-top:12px;font-size:.78rem;line-height:1.4;}
@keyframes email-panel-in{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
@media (max-width:640px){
  .email-panel{inset:auto 0 0;width:100%;max-width:none;max-height:calc(100svh - 16px);margin:0;border-bottom:0;border-radius:16px 16px 0 0;}
  .email-panel__content{padding:30px 24px calc(14px + env(safe-area-inset-bottom,0px));}
  .email-panel[open]{animation-name:email-panel-up;}
}
@keyframes email-panel-up{from{opacity:0;transform:translateY(32px);}to{opacity:1;transform:translateY(0);}}
@media (prefers-reduced-motion:reduce){.email-panel[open]{animation:none;}}
