/* Bakgården — restaurant & selskapslokale (Standard-konsept)
   Mørk glød (Akaneya) × åpen ro (Paisana) */

:root {
  --sort: #171310;
  --sort-varm: #201a15;
  --linen: #f3ede2;
  --linen-dyp: #ebe2d2;
  --glo: #b4461f;
  --glo-lys: #d4652f;
  --tekst-lys: #efe8da;
  --tekst-dempet-lys: rgba(239, 232, 218, 0.62);
  --tekst-dempet-mork: #8d7f6c;
  --strek-lys: rgba(239, 232, 218, 0.16);
  --strek-mork: rgba(23, 19, 16, 0.15);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--sort);
  color: var(--tekst-lys);
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  font-size: 19px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: "Cormorant Garamond", serif; font-weight: 500; line-height: 1.15; letter-spacing: 0.01em; }
em { font-style: italic; }

.caps {
  font-family: "Karla", sans-serif;
  font-size: 11px;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  font-weight: 700;
}

/* ---------- Nav ---------- */
nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 60;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  padding: 20px clamp(20px, 4vw, 48px);
  transition: background 0.4s ease, padding 0.4s ease;
}
nav.skrollet {
  background: rgba(23, 19, 16, 0.92);
  backdrop-filter: blur(8px);
  padding-top: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--strek-lys);
}
.nav-venstre { display: flex; gap: clamp(16px, 2.5vw, 34px); }
.nav-hoyre { display: flex; gap: clamp(16px, 2.5vw, 34px); justify-content: flex-end; align-items: center; }
nav a { text-decoration: none; }
nav .lenke {
  font-family: "Karla", sans-serif;
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--tekst-lys);
  opacity: 0.75;
  transition: opacity 0.2s;
}
nav .lenke:hover, nav .lenke.aktiv { opacity: 1; }
.wordmark {
  font-family: "Cormorant Garamond", serif;
  font-size: 26px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--tekst-lys);
}
.burger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  width: 40px; height: 40px;
  position: relative;
  z-index: 80;
  justify-self: end;
}
.burger span {
  display: block;
  width: 22px; height: 1.5px;
  background: var(--tekst-lys);
  margin: 5px auto;
  transition: transform 0.3s, opacity 0.3s;
}
body.meny-aapen .burger span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
body.meny-aapen .burger span:nth-child(2) { opacity: 0; }
body.meny-aapen .burger span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
.mobilmeny {
  position: fixed;
  inset: 0;
  z-index: 70;
  background: rgba(23, 19, 16, 0.98);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 30px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s ease;
}
body.meny-aapen .mobilmeny { opacity: 1; pointer-events: auto; }
.mobilmeny a {
  font-family: "Cormorant Garamond", serif;
  font-size: 32px;
  color: var(--tekst-lys);
  text-decoration: none;
}
.mobilmeny a:hover { color: var(--glo-lys); }
body.meny-aapen { overflow: hidden; }
@media (max-width: 860px) {
  nav { grid-template-columns: auto 1fr; }
  .nav-venstre { display: none; }
  .nav-hoyre .lenke { display: none; }
  .burger { display: block; }
}

/* ---------- Knapper ---------- */
.knapp {
  display: inline-block;
  font-family: "Karla", sans-serif;
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  font-weight: 700;
  padding: 15px 34px;
  border: 1px solid var(--strek-lys);
  color: var(--tekst-lys);
  text-decoration: none;
  transition: background 0.25s, border-color 0.25s, color 0.25s;
  background: transparent;
  cursor: pointer;
}
.knapp:hover { background: var(--tekst-lys); color: var(--sort); border-color: var(--tekst-lys); }
.knapp-mork {
  border-color: rgba(23, 19, 16, 0.4);
  color: var(--sort);
}
.knapp-mork:hover { background: var(--sort); color: var(--linen); border-color: var(--sort); }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
}
.hero-bilde { position: absolute; inset: 0; }
.hero-bilde img { width: 100%; height: 100%; object-fit: cover; animation: sakte-zoom 18s ease-out forwards; }
@keyframes sakte-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.hero-bilde::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(23,19,16,0.55) 0%, rgba(23,19,16,0.18) 45%, rgba(23,19,16,0.72) 100%);
}
.hero-innhold { position: relative; z-index: 2; padding: 0 20px; }
.hero-innhold .caps { color: var(--tekst-dempet-lys); display: block; margin-bottom: 28px; }
.hero-innhold h1 {
  font-size: clamp(56px, 9vw, 124px);
  font-weight: 400;
  letter-spacing: 0.04em;
  margin-bottom: 18px;
}
.hero-innhold .undertekst {
  font-style: italic;
  font-size: clamp(19px, 2vw, 24px);
  color: var(--tekst-dempet-lys);
}
.hero-scroll {
  position: absolute;
  bottom: 34px; left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  width: 1px; height: 56px;
  background: linear-gradient(to bottom, transparent, var(--tekst-lys));
  opacity: 0.55;
  animation: pust 2.6s ease-in-out infinite;
}
@keyframes pust { 0%, 100% { opacity: 0.25; } 50% { opacity: 0.7; } }

/* ---------- Seksjoner ---------- */
.seksjon { padding: clamp(84px, 13vh, 160px) clamp(20px, 4vw, 48px); }
.seksjon-lys { background: var(--linen); color: var(--sort); }
.seksjon-lys .caps { color: var(--glo); }
.smal { max-width: 620px; margin: 0 auto; text-align: center; }
.smal .caps { display: block; margin-bottom: 26px; }
.smal p.stor {
  font-size: clamp(23px, 2.6vw, 32px);
  line-height: 1.55;
  font-weight: 500;
}
.smal p.stor em { color: var(--glo); }
.smal .etterord {
  margin-top: 34px;
  font-family: "Karla", sans-serif;
  font-size: 11.5px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--tekst-dempet-mork);
}
.bred { max-width: 1200px; margin: 0 auto; }

/* ---------- Bildepar ---------- */
.bildepar {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(16px, 3vw, 44px);
  max-width: 980px;
  margin: 0 auto;
  align-items: start;
}
@media (max-width: 720px) { .bildepar { grid-template-columns: 1fr; } }
.bildepar figure:nth-child(2) { margin-top: clamp(32px, 6vw, 84px); }
.bildepar img { aspect-ratio: 3/4; object-fit: cover; }
.bildepar figcaption {
  font-family: "Karla", sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--tekst-dempet-lys);
  margin-top: 14px;
}
.seksjon-lys .bildepar figcaption { color: var(--tekst-dempet-mork); }

/* ---------- Meny-utdrag ---------- */
.meny-utdrag { max-width: 560px; margin: 0 auto; text-align: center; }
.meny-utdrag .caps { display: block; margin-bottom: 30px; color: var(--glo-lys); }
.meny-utdrag h2 { font-size: clamp(30px, 3.6vw, 44px); margin-bottom: 44px; }
.rett { padding: 26px 0; border-top: 1px solid var(--strek-lys); }
.rett:last-of-type { border-bottom: 1px solid var(--strek-lys); }
.rett .navn { font-size: 23px; }
.rett .detalj { font-style: italic; color: var(--tekst-dempet-lys); font-size: 17.5px; margin-top: 4px; }
.rett .pris {
  font-family: "Karla", sans-serif;
  font-size: 12px;
  letter-spacing: 0.2em;
  font-weight: 700;
  color: var(--glo-lys);
  margin-top: 10px;
}
.meny-utdrag .knapp { margin-top: 44px; }

/* ---------- Fullbredde-bilde ---------- */
.fullbilde { position: relative; height: clamp(340px, 62vh, 640px); overflow: hidden; }
.fullbilde img { width: 100%; height: 100%; object-fit: cover; }
.fullbilde .tekst {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: rgba(23, 19, 16, 0.38);
  padding: 20px;
}
.fullbilde .tekst p {
  font-size: clamp(22px, 2.6vw, 30px);
  font-style: italic;
  max-width: 520px;
}

/* ---------- Delt seksjon ---------- */
.delt {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 88px);
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}
@media (max-width: 860px) { .delt { grid-template-columns: 1fr; } }
.delt img { aspect-ratio: 4/5; object-fit: cover; width: 100%; }
.delt-tekst .caps { display: block; margin-bottom: 22px; }
.delt-tekst h2 { font-size: clamp(30px, 3.6vw, 46px); margin-bottom: 22px; }
.delt-tekst p { margin-bottom: 18px; }
.delt-tekst .dempet { color: var(--tekst-dempet-mork); }
.seksjon:not(.seksjon-lys) .delt-tekst .dempet { color: var(--tekst-dempet-lys); }
.delt-tekst .knapp { margin-top: 12px; }

/* ---------- Aktuelt-kort ---------- */
.aktuelt-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(20px, 3vw, 44px);
  max-width: 900px;
  margin: 48px auto 0;
  text-align: left;
}
@media (max-width: 720px) { .aktuelt-grid { grid-template-columns: 1fr; } }
.aktuelt-kort {
  border-top: 1px solid var(--strek-mork);
  padding-top: 22px;
  text-decoration: none;
  display: block;
  transition: opacity 0.2s;
}
.aktuelt-kort:hover { opacity: 0.7; }
.aktuelt-kort .dato {
  font-family: "Karla", sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--glo);
}
.aktuelt-kort h3 { font-size: 25px; margin: 10px 0 8px; }
.aktuelt-kort p { color: var(--tekst-dempet-mork); font-size: 17.5px; }

/* ---------- Footer ---------- */
footer { background: var(--sort); border-top: 1px solid var(--strek-lys); overflow: hidden; }
.footer-info {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(48px, 8vh, 80px) clamp(20px, 4vw, 48px) 40px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(28px, 4vw, 64px);
}
@media (max-width: 760px) { .footer-info { grid-template-columns: 1fr; } }
.footer-info h4 {
  font-family: "Karla", sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--glo-lys);
  margin-bottom: 16px;
}
.footer-info p, .footer-info a { color: var(--tekst-dempet-lys); font-size: 18px; text-decoration: none; display: block; margin-bottom: 6px; }
.footer-info a:hover { color: var(--tekst-lys); }
.footer-ordmerke {
  font-family: "Cormorant Garamond", serif;
  font-weight: 400;
  font-size: clamp(72px, 13vw, 190px);
  letter-spacing: 0.05em;
  text-align: center;
  color: var(--tekst-lys);
  opacity: 0.14;
  line-height: 1;
  white-space: nowrap;
  padding-bottom: 10px;
  user-select: none;
}
.footer-bunn {
  border-top: 1px solid var(--strek-lys);
  padding: 18px clamp(20px, 4vw, 48px) 26px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  font-family: "Karla", sans-serif;
  font-size: 12px;
  color: var(--tekst-dempet-lys);
}
.footer-bunn a { color: var(--glo-lys); text-decoration: none; }
.footer-bunn a:hover { text-decoration: underline; }

/* ---------- Skjema (kontakt/selskaper) ---------- */
form label {
  display: block;
  font-family: "Karla", sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--tekst-dempet-mork);
  margin: 22px 0 8px;
}
form input, form select, form textarea {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--strek-mork);
  color: var(--sort);
  font-family: "Cormorant Garamond", serif;
  font-size: 19px;
  padding: 10px 2px;
  transition: border-color 0.2s;
}
form input:focus, form select:focus, form textarea:focus { outline: none; border-bottom-color: var(--glo); }
form textarea { resize: vertical; min-height: 90px; }

/* ---------- Undersider ---------- */
.side-hode {
  padding: clamp(150px, 22vh, 210px) clamp(20px, 4vw, 48px) clamp(56px, 9vh, 90px);
  text-align: center;
}
.side-hode .caps { color: var(--glo-lys); display: block; margin-bottom: 22px; }
.side-hode h1 { font-size: clamp(42px, 6vw, 76px); font-weight: 400; letter-spacing: 0.03em; }
.side-hode .undertekst { font-style: italic; color: var(--tekst-dempet-lys); margin-top: 14px; font-size: 20px; }

.meny-del { max-width: 560px; margin: 0 auto clamp(56px, 9vh, 88px); text-align: center; }
.meny-del h2 {
  font-size: 30px;
  margin-bottom: 8px;
}
.meny-del .del-notis { font-style: italic; color: var(--tekst-dempet-lys); font-size: 17px; margin-bottom: 26px; }
.meny-fotnote {
  text-align: center;
  font-family: "Karla", sans-serif;
  font-size: 11.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--tekst-dempet-lys);
  padding-bottom: clamp(64px, 10vh, 110px);
}

.galleri-grid {
  columns: 3;
  column-gap: 14px;
  max-width: 1200px;
  margin: 0 auto;
  padding-bottom: clamp(64px, 10vh, 110px);
}
@media (max-width: 900px) { .galleri-grid { columns: 2; } }
@media (max-width: 560px) { .galleri-grid { columns: 1; } }
.galleri-grid figure { break-inside: avoid; margin: 0 0 14px; position: relative; overflow: hidden; }
.galleri-grid img { width: 100%; transition: transform 0.5s ease; }
.galleri-grid figure:hover img { transform: scale(1.03); }
.galleri-grid figcaption {
  font-family: "Karla", sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--tekst-dempet-lys);
  padding: 12px 2px 4px;
}

.artikkel {
  max-width: 640px;
  margin: 0 auto;
  padding-bottom: clamp(56px, 9vh, 88px);
}
.artikkel .dato {
  font-family: "Karla", sans-serif;
  font-size: 11px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--glo);
}
.artikkel h2 { font-size: clamp(30px, 3.6vw, 42px); margin: 12px 0 20px; }
.artikkel p { margin-bottom: 18px; }
.artikkel + .artikkel { border-top: 1px solid var(--strek-mork); padding-top: clamp(48px, 7vh, 72px); }

.fakta-rad {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 3vw, 48px);
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
}
@media (max-width: 720px) { .fakta-rad { grid-template-columns: 1fr; } }
.faktum-stor .tall {
  font-size: clamp(38px, 4.4vw, 54px);
  font-weight: 400;
  color: var(--glo-lys);
  line-height: 1;
}
.faktum-stor .forklaring {
  font-family: "Karla", sans-serif;
  font-size: 11px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--tekst-dempet-lys);
  margin-top: 12px;
}
.seksjon-lys .faktum-stor .forklaring { color: var(--tekst-dempet-mork); }

.kontakt-kolonner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 88px);
  max-width: 1000px;
  margin: 0 auto;
  align-items: start;
}
@media (max-width: 860px) { .kontakt-kolonner { grid-template-columns: 1fr; } }
.kontakt-kolonner dt {
  font-family: "Karla", sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--glo);
  margin-top: 24px;
}
.kontakt-kolonner dd { margin-top: 6px; font-size: 20px; }
.kontakt-kolonner dd a { text-decoration: none; }

/* ---------- Animasjon ---------- */
.fade {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 1s ease, transform 1s ease;
}
.fade.vis { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .fade { opacity: 1; transform: none; transition: none; }
  .hero-bilde img { animation: none; }
  .hero-scroll { animation: none; }
  html { scroll-behavior: auto; }
}
