/* Palett hentet direkte fra Bygdas Matkasse-logoen (grønn tekst, kremhvit bunn,
   gulrot-oransje og kraftpapir-brun) — Claudias ønske 13. august 2026. */
:root {
  --forest: #2d5645;
  --forest-dark: #1b382c;
  --forest-soft: #46705a;
  --cream: #f6f0dc;
  --cream-2: #fdf8e9;
  --coral: #c9683a;
  --pink: #eadfc4;
  --gold: #c99353;
  --ink: #22301f;
  --muted: #667062;
  --line: #ddd5c2;
  /* Claudias fontvalg 19. aug: «Amsterdam Four» på overskrifter og «Helvetica World»
     ellers. Begge er lisensierte — nærmeste frie: Dancing Script (håndskrift) og
     ekte Helvetica der den finnes, med Arimo som web-reserve. */
  --script: "Dancing Script", "Brush Script MT", "Segoe Script", cursive;
  --serif: "Arimo", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --sans: "Arimo", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --shadow: 0 28px 80px rgba(27, 56, 44, .16);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream-2); font-family: var(--sans); }
body:has(dialog[open]) { overflow: hidden; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
[hidden] { display: none !important; }
.skip-link { position: fixed; z-index: 1000; left: 1rem; top: 1rem; translate: 0 -160%; padding: .75rem 1rem; background: #fff; }
.skip-link:focus { translate: 0; }
.section { padding: clamp(5.5rem, 9vw, 9rem) clamp(1.25rem, 6vw, 7rem); }
.reveal { opacity: 0; translate: 0 18px; transition: opacity .7s ease, translate .7s ease; }
.reveal.is-visible { opacity: 1; translate: 0; }

h1, h2, h3, p { margin-top: 0; }
h1, h2 { margin-bottom: 0; color: var(--forest); font-family: var(--script); font-weight: 700; line-height: 1.04; letter-spacing: 0; }
h1 { font-size: clamp(4.4rem, 7.5vw, 8.2rem); }
h2 { font-size: clamp(3.4rem, 6.3vw, 6.7rem); }
h1 em, h2 em { color: var(--forest-soft); font-style: normal; font-weight: 700; }
.eyebrow { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.5rem; color: var(--forest); font-size: .67rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow > span { width: 34px; height: 1px; background: currentColor; }
.eyebrow-light { color: #f5eee1; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 1rem; min-height: 56px; padding: .9rem 1.55rem; border: 0; border-radius: 999px; font-size: .8rem; font-weight: 700; cursor: pointer; transition: translate .2s, box-shadow .2s, background .2s; }
.button:hover { translate: 0 -2px; }
.button-coral { color: var(--forest-dark); background: var(--coral); box-shadow: 0 12px 30px rgba(201, 104, 58, .2); }
.button-coral:hover { background: #da7c4b; box-shadow: 0 16px 34px rgba(201, 104, 58, .28); }
.button-dark { color: #fff; background: var(--forest); }
.button-dark:hover { background: var(--forest-dark); }
.button-small { min-height: 46px; padding: .75rem 1.25rem; }
.button-full { width: 100%; }
.text-link { display: inline-flex; align-items: center; gap: .55rem; padding: .45rem 0; border-bottom: 1px solid currentColor; color: var(--forest); font-size: .78rem; font-weight: 700; }

.deadline-strip { position: relative; z-index: 60; display: flex; align-items: center; justify-content: center; gap: .75rem; min-height: 38px; padding: .5rem 1rem; color: #fff; background: var(--forest-dark); font-size: .66rem; letter-spacing: .025em; }
.deadline-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 4px rgba(201,104,58,.15); }
.deadline-divider { width: 1px; height: 12px; background: rgba(255,255,255,.3); }
.site-header { position: absolute; z-index: 50; top: 38px; left: 0; right: 0; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 86px; padding: 0 clamp(1.25rem, 5vw, 5rem); color: var(--forest); transition: top .25s, height .25s, background .25s, box-shadow .25s; }
.site-header.is-sticky { position: fixed; top: 0; height: 70px; color: var(--forest); background: rgba(253,248,233,.96); box-shadow: 0 10px 40px rgba(27,56,44,.09); backdrop-filter: blur(14px); }
.brand { display: flex; align-items: center; gap: .75rem; justify-self: start; }
.brand img { width: 58px; height: 58px; border-radius: 50%; }
.brand span { display: flex; flex-direction: column; }
.brand strong { font-family: var(--serif); font-size: 1.55rem; font-weight: 400; line-height: 1; }
.brand small { margin-top: .25rem; font-size: .49rem; letter-spacing: .15em; text-transform: uppercase; }
.desktop-nav { display: flex; align-items: center; gap: clamp(1.25rem, 3vw, 2.8rem); font-size: .72rem; font-weight: 600; }
.desktop-nav a { position: relative; padding: .6rem 0; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 1px; background: currentColor; transition: right .2s; }
.desktop-nav a:hover::after { right: 0; }
.header-cta { justify-self: end; }
.menu-toggle, .mobile-menu { display: none; }

.hero { display: grid; grid-template-columns: .86fr 1.14fr; min-height: min(900px, calc(100svh - 38px)); padding: 9.5rem clamp(1.25rem, 5vw, 5rem) 4rem; overflow: hidden; background: var(--cream); }
.hero-copy { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; padding: 2rem clamp(1rem, 4vw, 4rem) 2rem 0; }
.hero-copy h1 { max-width: 780px; }
.hero-lead { max-width: 570px; margin: 2rem 0 0; color: #536259; font-size: clamp(.95rem, 1.2vw, 1.1rem); line-height: 1.75; }
.hero-actions { display: flex; align-items: center; gap: 1.7rem; margin-top: 2.1rem; }
.hero-facts { display: flex; gap: 0; margin: 3.5rem 0 0; padding: 0; list-style: none; }
.hero-facts li { display: flex; flex-direction: column; min-width: 120px; padding: 0 1.5rem; border-left: 1px solid var(--line); }
.hero-facts li:first-child { padding-left: 0; border-left: 0; }
.hero-facts strong { color: var(--forest); font-family: var(--serif); font-size: 1.7rem; font-weight: 400; }
.hero-facts span { margin-top: .2rem; color: #758078; font-size: .55rem; letter-spacing: .14em; text-transform: uppercase; }
.hero-gallery { position: relative; min-height: 630px; margin-left: 1.5rem; overflow: hidden; background: var(--forest); box-shadow: var(--shadow); }
.gallery-track, .gallery-slide { position: absolute; inset: 0; }
.gallery-slide { margin: 0; opacity: 0; transition: opacity .65s ease; }
.gallery-slide.is-active { opacity: 1; z-index: 1; }
.gallery-slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14,34,25,.62), transparent 55%); }
.gallery-slide img, .gallery-slide video { width: 100%; height: 100%; object-fit: cover; }
.gallery-slide:first-child img { object-position: 48% center; }
.gallery-slide:nth-child(2) img { object-position: 50% 58%; }
.gallery-slide figcaption { position: absolute; z-index: 2; left: 2.2rem; bottom: 2rem; display: flex; flex-direction: column; color: #fff; }
.gallery-slide figcaption strong { font-family: var(--serif); font-size: 2rem; font-weight: 400; }
.gallery-slide figcaption span { margin-top: .2rem; font-size: .6rem; letter-spacing: .13em; text-transform: uppercase; }
.gallery-controls { position: absolute; z-index: 3; right: 1.3rem; bottom: 1.3rem; display: flex; align-items: center; gap: .8rem; color: #fff; }
.gallery-controls button { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; color: #fff; background: rgba(27,56,44,.25); cursor: pointer; }
.gallery-controls span { font-size: .62rem; letter-spacing: .12em; }

.week-menu { background: var(--cream-2); }
.section-kicker { display: flex; align-items: flex-end; justify-content: space-between; gap: 3rem; max-width: 1420px; margin: 0 auto 2.2rem; }
.section-kicker h2 { font-size: clamp(3.8rem, 6.5vw, 7rem); }
.week-meta { display: flex; flex-direction: column; align-items: flex-end; padding: 1.2rem 0 1.2rem 2rem; border-left: 1px solid var(--line); text-align: right; }
.week-meta span { color: var(--forest-soft); font-size: .58rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.week-meta strong { margin: .4rem 0; color: var(--forest); font-family: var(--serif); font-size: 1.65rem; font-weight: 400; }
.week-meta small { color: var(--muted); font-size: .68rem; }
.prototype-note { max-width: 1420px; margin: 0 auto 2.5rem; padding: .75rem 1rem; border-left: 3px solid var(--gold); color: #6a6559; background: #f3ead7; font-size: .7rem; line-height: 1.55; }
.dish-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; max-width: 1420px; margin: auto; }
.dish-card { grid-column: span 2; overflow: hidden; border: 1px solid var(--line); background: #fffdf8; transition: translate .25s, box-shadow .25s; }
.dish-card:hover { translate: 0 -4px; box-shadow: 0 18px 40px rgba(45,86,69,.1); }
.dish-card-large { grid-column: span 2; }
.dish-photo { position: relative; height: 250px; background-size: cover; background-position: center; }
.dish-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(27,56,44,.56), transparent 55%); }
.dish-photo span { position: absolute; z-index: 1; left: 1rem; bottom: .9rem; padding: .35rem .65rem; border-radius: 999px; color: #fff; background: rgba(45,86,69,.75); font-size: .55rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; backdrop-filter: blur(8px); }
.dish-photo-1 { background-image: url("assets/raavarer-bord.webp"); background-position: 68% 48%; }
.dish-photo-2 { background-image: url("assets/matkasse-innhold.webp"); background-position: 30% 52%; }
.dish-photo-3 { background-image: url("assets/matkasser-produksjon.webp"); background-position: 25% 38%; }
.dish-photo-4 { background-image: url("assets/raavarer-bord.webp"); background-position: 12% 55%; }
.dish-photo-5 { background-image: url("assets/matkasse-naer.webp"); background-position: center; }
.dish-copy { padding: 1.35rem 1.4rem 1.5rem; }
.dish-copy small { color: var(--forest-soft); font-size: .57rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.dish-copy h3 { margin: .55rem 0 .6rem; color: var(--forest); font-family: var(--serif); font-size: 1.65rem; font-weight: 400; }
.dish-copy p { min-height: 2.8em; margin-bottom: 1rem; color: var(--muted); font-size: .75rem; line-height: 1.55; }
.allergens { color: #8a8f89; font-size: .58rem; }
.menu-order-bar { display: flex; align-items: center; justify-content: space-between; gap: 2rem; max-width: 1420px; margin: 1rem auto 0; padding: 1.25rem 1.3rem 1.25rem 1.6rem; color: #fff; background: var(--forest); }
.menu-order-bar > div { display: flex; flex-direction: column; }
.menu-order-bar strong { font-family: var(--serif); font-size: 1.5rem; font-weight: 400; }
.menu-order-bar span { margin-top: .2rem; color: rgba(255,255,255,.65); font-size: .65rem; }
.menu-order-bar .button { color: var(--forest-dark); background: var(--cream-2); }

.how { background: var(--cream); }
.section-heading { max-width: 1180px; margin: 0 auto 4rem; text-align: center; }
.section-heading .eyebrow { justify-content: center; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; max-width: 1280px; margin: auto; border: 1px solid var(--line); background: var(--line); }
.step { min-height: 330px; padding: 2rem; background: var(--cream-2); }
.step > span { color: var(--forest-soft); font-family: var(--serif); font-style: italic; }
.step-icon { display: grid; place-items: center; width: 66px; height: 66px; margin: 2rem 0 2.6rem; border-radius: 50%; color: var(--forest); background: var(--cream); font-family: var(--serif); font-size: 2rem; }
.step h3 { margin-bottom: .75rem; color: var(--forest); font-family: var(--serif); font-size: 1.75rem; font-weight: 400; }
.step p { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.7; }

.build-box { display: grid; grid-template-columns: .83fr 1.17fr; gap: clamp(3rem, 9vw, 10rem); color: #fff; background: var(--forest); }
.build-copy { padding-top: 2rem; }
.build-copy h2 { color: #fff; }
.build-copy h2 em { color: var(--pink); }
.build-copy > p:not(.eyebrow) { max-width: 430px; margin: 2rem 0; color: rgba(255,255,255,.68); line-height: 1.7; }
.delivery-fact { display: flex; align-items: center; gap: 1rem; max-width: 430px; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,.18); }
.delivery-fact > span { display: grid; flex: 0 0 48px; place-items: center; width: 48px; height: 48px; border-radius: 50%; color: var(--forest); background: var(--gold); }
.delivery-fact p { margin: 0; color: rgba(255,255,255,.68); font-size: .73rem; line-height: 1.55; }
.delivery-fact strong { color: #fff; }
.calculator { padding: clamp(1.4rem, 4vw, 3.3rem); color: var(--ink); background: var(--cream-2); box-shadow: var(--shadow); }
.calc-top { display: flex; align-items: center; justify-content: space-between; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); }
.calc-top span { color: var(--forest); font-family: var(--serif); font-size: 2rem; }
.calc-top small { padding: .4rem .7rem; border-radius: 999px; color: var(--forest); background: #dce8d7; font-size: .55rem; letter-spacing: .08em; text-transform: uppercase; }
fieldset { margin: 1.7rem 0 0; padding: 0; border: 0; }
legend { margin-bottom: .75rem; color: #4e5c53; font-size: .7rem; font-weight: 700; }
.choice-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: .45rem; }
.choice { height: 50px; border: 1px solid var(--line); color: var(--ink); background: transparent; cursor: pointer; }
.choice.active { color: #fff; border-color: var(--forest); background: var(--forest); }
.meal-options { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.meal-choice { display: flex; align-items: center; justify-content: space-between; min-height: 76px; padding: .85rem 1rem; border: 1px solid var(--line); color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.meal-choice > span { display: flex; flex-direction: column; }
.meal-choice small { margin-top: .2rem; color: #788279; font-size: .58rem; }
.meal-choice i { color: #657168; font-size: .68rem; font-style: normal; }
.meal-choice.active { outline: 2px solid var(--forest); outline-offset: -2px; background: #edf2e9; }
.delivery-toggle { display: flex; align-items: center; justify-content: space-between; margin: 1.6rem 0; padding: 1rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); cursor: pointer; }
.delivery-toggle > span { display: flex; flex-direction: column; font-size: .75rem; }
.delivery-toggle small { margin-top: .25rem; color: #7a837c; }
.delivery-toggle input { position: absolute; opacity: 0; }
.delivery-toggle i { position: relative; width: 44px; height: 24px; border-radius: 999px; background: #c8cec6; }
.delivery-toggle i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: translate .2s; }
.delivery-toggle input:checked + i { background: var(--forest); }
.delivery-toggle input:checked + i::after { translate: 20px 0; }
.calc-result { display: flex; align-items: flex-end; justify-content: space-between; margin: 1.5rem 0; }
.calc-result span { display: flex; flex-direction: column; }
.calc-result small { margin-bottom: .25rem; color: #7b847d; font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; }
.calc-result strong { color: var(--forest); font-size: .78rem; }
.calc-result .total { text-align: right; }
.calc-result .total strong { font-family: var(--serif); font-size: 1.8rem; font-weight: 400; }
.calc-result b { font-weight: 400; }

.about { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: clamp(3rem, 8vw, 9rem); background: var(--cream-2); }
.about-photo { position: relative; max-width: 700px; }
.about-photo::before { content: ""; position: absolute; z-index: -1; left: -1rem; bottom: -1rem; width: 70%; height: 70%; background: var(--gold); }
.about-photo img { width: 100%; max-height: 720px; object-fit: cover; object-position: center 38%; }
.about-photo > span { position: absolute; left: 1rem; bottom: 1rem; padding: .5rem .7rem; color: #fff; background: rgba(27,56,44,.72); font-size: .52rem; letter-spacing: .1em; text-transform: uppercase; }
.about-copy { max-width: 620px; }
.about-copy h2 { font-size: clamp(3.6rem, 5.7vw, 6.2rem); }
.about-copy p { color: var(--muted); line-height: 1.75; }
.about-copy .lead { margin-top: 2rem; color: var(--ink); font-size: 1.05rem; }
.about-copy .text-link { margin-top: 1rem; }

.producers { display: grid; grid-template-columns: .85fr 1.05fr .8fr; align-items: center; gap: clamp(2rem, 5vw, 5rem); color: #fff; background: var(--forest); }
.producers-head h2 { color: #fff; font-size: clamp(3.6rem, 5.5vw, 6rem); }
.producers-head h2 em { color: var(--pink); }
.producers-head > p:last-child { margin-top: 2rem; color: rgba(255,255,255,.63); font-size: .78rem; line-height: 1.7; }
.producer-photo img { width: 100%; height: 560px; object-fit: cover; }
.producer-list article { display: grid; grid-template-columns: 50px 1fr; gap: .9rem; padding: 1.5rem 0; border-top: 1px solid rgba(255,255,255,.18); }
.producer-list article:last-child { border-bottom: 1px solid rgba(255,255,255,.18); }
.producer-list article > span { color: var(--forest-soft); font-family: var(--serif); font-style: italic; }
.producer-list h3 { margin: 0 0 .35rem; font-family: var(--serif); font-size: 1.45rem; font-weight: 400; }
.producer-list p { margin: 0; color: rgba(255,255,255,.58); font-size: .7rem; line-height: 1.55; }

.testimonials { display: grid; grid-template-columns: .75fr 1.25fr; align-items: center; gap: clamp(3rem, 8vw, 9rem); background: var(--cream); }
.testimonial-head h2 { font-size: clamp(3.7rem, 5.8vw, 6.4rem); }
.testimonial-slider { position: relative; min-height: 420px; padding: clamp(2rem, 5vw, 4.5rem); color: #fff; background: var(--forest); box-shadow: var(--shadow); }
.testimonial { display: none; }
.testimonial.is-active { display: block; animation: quoteIn .45s ease; }
@keyframes quoteIn { from { opacity: 0; translate: 12px 0; } }
.quote-mark { color: var(--pink); font-family: var(--serif); font-size: 5rem; line-height: .7; }
.testimonial blockquote { max-width: 760px; margin: 2rem 0; font-family: var(--serif); font-size: clamp(2rem, 3.6vw, 3.7rem); line-height: 1.12; }
.testimonial > p { color: var(--gold); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }
.testimonial-controls { position: absolute; left: clamp(2rem, 5vw, 4.5rem); right: clamp(2rem, 5vw, 4.5rem); bottom: 1.7rem; display: flex; align-items: center; justify-content: space-between; }
.testimonial-controls > button { width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; color: #fff; background: transparent; cursor: pointer; }
.testimonial-controls > div { display: flex; gap: .45rem; }
.testimonial-controls > div button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.3); cursor: pointer; }
.testimonial-controls > div button.is-active { width: 22px; border-radius: 999px; background: var(--coral); }

.final-cta { position: relative; display: grid; min-height: 690px; place-items: center; overflow: hidden; text-align: center; }
.final-cta > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.final-cta-shade { position: absolute; inset: 0; background: rgba(14,34,25,.72); }
.final-cta-content { position: relative; z-index: 1; color: #fff; }
.final-cta-content > img { margin: 0 auto 1.5rem; border-radius: 50%; }
.final-cta-content .eyebrow { justify-content: center; }
.final-cta-content h2 { color: #fff; }
.final-cta-content h2 em { color: var(--pink); }
.final-cta-content .button { margin-top: 2.3rem; }

.footer { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1fr; gap: 3rem; padding: 5rem clamp(1.25rem, 6vw, 7rem) 2rem; color: var(--forest); background: var(--cream); }
.footer-brand { display: flex; align-items: center; gap: 1rem; font-family: var(--serif); font-size: 1.2rem; }
.footer-brand img { border-radius: 50%; }
.footer > div:not(.footer-brand) { display: flex; flex-direction: column; align-items: flex-start; gap: .65rem; font-size: .72rem; line-height: 1.55; }
.footer > div > span { margin-bottom: .55rem; font-size: .56rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; opacity: .58; }
.footer p { margin: 0; }
.footer a { border-bottom: 1px solid rgba(45,86,69,.22); }
.footer-bottom { grid-column: 1 / -1; display: flex; justify-content: space-between; margin-top: 2rem !important; padding-top: 1.5rem; border-top: 1px solid var(--line); font-size: .62rem; }
.footer-bottom small { opacity: .55; }
.mobile-cta { display: none; }

/* Bestillingsdialog */
.order-dialog { width: min(980px, 100%); max-width: none; height: min(850px, calc(100dvh - 2rem)); max-height: none; padding: 0; border: 0; color: var(--ink); background: var(--cream-2); box-shadow: 0 30px 120px rgba(0,0,0,.35); }
.order-dialog::backdrop { background: rgba(11,28,21,.78); backdrop-filter: blur(7px); }
.order-shell { display: flex; flex-direction: column; min-height: 100%; }
.order-header { display: flex; align-items: center; justify-content: space-between; min-height: 76px; padding: .7rem 1.5rem; border-bottom: 1px solid var(--line); }
.order-brand { display: flex; align-items: center; gap: .7rem; }
.order-brand img { border-radius: 50%; }
.order-brand span { display: flex; flex-direction: column; }
.order-brand strong { color: var(--forest); font-family: var(--serif); font-size: 1.2rem; font-weight: 400; }
.order-brand small { margin-top: .15rem; color: var(--muted); font-size: .56rem; }
.dialog-close { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; color: var(--forest); background: transparent; font-size: 1.3rem; cursor: pointer; }
.order-progress { display: flex; align-items: center; justify-content: center; gap: .65rem; padding: 1rem 1.5rem; border-bottom: 1px solid var(--line); background: var(--cream); }
.order-progress span { display: flex; align-items: center; gap: .4rem; color: #8c948e; font-size: .6rem; font-weight: 700; }
.order-progress span b { display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid var(--line); border-radius: 50%; font-size: .58rem; }
.order-progress span.is-active { color: var(--forest); }
.order-progress span.is-active b { color: #fff; border-color: var(--forest); background: var(--forest); }
.order-progress i { width: 36px; height: 1px; background: var(--line); }
.order-form { display: flex; flex: 1; flex-direction: column; min-height: 0; }
.order-step { display: none; flex: 1; overflow-y: auto; padding: 1.8rem clamp(1.25rem, 6vw, 5.5rem) 2.5rem; }
.order-step.is-active { display: block; }
.order-step-heading { margin-bottom: 1.8rem; text-align: center; }
.order-step-heading > p { margin-bottom: .4rem; color: var(--forest-soft); font-size: .58rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.order-step-heading h2 { font-size: clamp(2.3rem, 4.6vw, 3.8rem); }
.order-step-heading > span { display: block; margin-top: .65rem; color: var(--muted); font-size: .7rem; }
.order-step fieldset { margin-top: 1.25rem; }
.select-wrap { position: relative; display: block; }
.select-wrap::after { content: "⌄"; position: absolute; right: 1rem; top: 50%; translate: 0 -50%; pointer-events: none; }
.select-wrap select { width: 100%; height: 50px; padding: 0 1rem; border: 1px solid var(--line); border-radius: 0; color: var(--forest); background: #fff; appearance: none; }
.order-cards { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.order-cards label, .fulfilment-cards label, .subscription-cards label { cursor: pointer; }
.order-cards input, .fulfilment-cards input, .subscription-cards input, .order-people input { position: absolute; opacity: 0; }
.order-cards label > span { display: grid; grid-template-columns: 1fr auto; padding: 1rem; border: 1px solid var(--line); background: #fff; }
.order-cards label > span b { color: var(--forest); }
.order-cards label > span small { grid-row: 2; margin-top: .25rem; color: var(--muted); font-size: .6rem; }
.order-cards label > span strong { grid-column: 2; grid-row: 1 / 3; align-self: center; color: var(--forest); font-family: var(--serif); font-size: 1.2rem; font-weight: 400; }
.order-cards input:checked + span, .fulfilment-cards input:checked + span, .subscription-cards input:checked + span { outline: 2px solid var(--forest); outline-offset: -2px; background: #edf2e9; }
.order-people { display: grid; grid-template-columns: repeat(5, 1fr); gap: .5rem; }
.order-people span { display: grid; place-items: center; height: 48px; border: 1px solid var(--line); background: #fff; cursor: pointer; }
.order-people input:checked + span { color: #fff; border-color: var(--forest); background: var(--forest); }
.add-on, .check-row { display: flex; align-items: center; gap: .75rem; margin-top: 1.3rem; padding: .9rem 1rem; border: 1px solid var(--line); background: #fff; cursor: pointer; }
.add-on input, .check-row input, .binding-consent input { width: 18px; height: 18px; accent-color: var(--forest); }
.add-on > span, .check-row > span { display: flex; flex: 1; flex-direction: column; }
.add-on b, .check-row b { color: var(--forest); font-size: .72rem; }
.add-on small, .check-row small { margin-top: .2rem; color: var(--muted); font-size: .56rem; }
.add-on > strong { color: var(--forest); font-family: var(--serif); font-weight: 400; }
.fulfilment-cards { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.fulfilment-cards label > span { display: grid; grid-template-columns: 44px 1fr auto; min-height: 92px; padding: .9rem; border: 1px solid var(--line); background: #fff; }
.fulfilment-cards i { grid-row: 1 / 3; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: #fff; background: var(--forest); font-style: normal; }
.fulfilment-cards b { color: var(--forest); font-size: .72rem; }
.fulfilment-cards small { grid-column: 2; color: var(--muted); font-size: .56rem; }
.fulfilment-cards strong { grid-column: 3; grid-row: 1 / 3; align-self: center; color: var(--forest); font-family: var(--serif); font-weight: 400; }
.subscription-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.subscription-cards label > span { display: flex; min-height: 70px; flex-direction: column; justify-content: center; padding: .8rem; border: 1px solid var(--line); background: #fff; }
.subscription-cards b { color: var(--forest); font-size: .7rem; }
.subscription-cards small { margin-top: .25rem; color: var(--muted); font-size: .55rem; line-height: 1.35; }
.subscription-terms, .demo-payment-note { margin-top: 1rem; padding: .9rem 1rem; border-left: 3px solid var(--gold); background: #f2ead9; }
.subscription-terms strong, .demo-payment-note strong { color: var(--forest); font-size: .7rem; }
.subscription-terms p, .demo-payment-note p { margin: .35rem 0 0; color: #6f6a60; font-size: .61rem; line-height: 1.5; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.form-grid label { display: flex; flex-direction: column; gap: .4rem; }
.form-grid label > span { color: var(--forest); font-size: .62rem; font-weight: 700; }
.form-grid label > span small { color: var(--muted); font-weight: 400; }
.form-grid input, .form-grid textarea { width: 100%; border: 1px solid var(--line); color: var(--ink); background: #fff; outline: 0; }
.form-grid input { height: 46px; padding: 0 .8rem; }
.form-grid textarea { padding: .75rem .8rem; resize: vertical; }
.form-grid input:focus, .form-grid textarea:focus { border-color: var(--forest); }
.form-full { grid-column: 1 / -1; }
.order-review { border: 1px solid var(--line); background: #fff; }
.review-row { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 1rem; border-bottom: 1px solid var(--line); font-size: .68rem; }
.review-row:last-child { border: 0; }
.review-row span { color: var(--muted); }
.review-row strong { color: var(--forest); text-align: right; }
.payment-methods { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: 1rem; }
.payment-methods label { cursor: pointer; }
.payment-methods input { position: absolute; opacity: 0; }
.payment-methods label > span { display: flex; flex-direction: column; padding: .8rem 1rem; border: 1px solid var(--line); background: #fff; }
.payment-methods input:checked + span { outline: 2px solid var(--forest); outline-offset: -2px; background: #edf2e9; }
.payment-methods b { color: var(--forest); }
.payment-methods small { color: var(--muted); font-size: .56rem; }
.binding-consent { display: flex; align-items: flex-start; gap: .7rem; margin-top: 1rem; color: #59645c; font-size: .63rem; line-height: 1.5; cursor: pointer; }
.binding-consent input { flex: 0 0 auto; margin-top: .1rem; }
.order-footer { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 1rem; min-height: 86px; padding: .8rem 1.5rem; border-top: 1px solid var(--line); background: #fff; box-shadow: 0 -8px 28px rgba(45,86,69,.06); }
.order-back { justify-self: start; border: 0; color: var(--forest); background: transparent; font-size: .7rem; font-weight: 700; cursor: pointer; }
.order-total { display: flex; flex-direction: column; align-items: flex-end; min-width: 90px; }
.order-total span { color: var(--muted); font-size: .52rem; letter-spacing: .1em; text-transform: uppercase; }
.order-total strong { color: var(--forest); font-family: var(--serif); font-size: 1.45rem; font-weight: 400; }
.order-total b { font-weight: 400; }
.order-footer .button { min-width: 150px; }
.order-success { display: grid; flex: 1; place-content: center; max-width: 620px; margin: auto; padding: 3rem 1.5rem; text-align: center; }
.success-icon { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 1.6rem; border-radius: 50%; color: #fff; background: var(--forest); font-size: 2rem; }
.order-success .eyebrow { justify-content: center; }
.order-success h2 { font-size: clamp(3rem, 6vw, 5rem); }
.order-success > p:not(.eyebrow) { margin: 1.5rem auto; color: var(--muted); line-height: 1.65; }
.success-summary { padding: 1rem; border: 1px solid var(--line); color: var(--forest); background: #fff; font-size: .72rem; }
.success-actions { display: flex; align-items: center; justify-content: center; gap: 1.5rem; margin-top: 1.5rem; }

@media (max-width: 1080px) {
  .site-header { grid-template-columns: 1fr auto; }
  .desktop-nav, .header-cta { display: none; }
  .menu-toggle { display: grid; gap: 6px; width: 44px; height: 44px; place-content: center; justify-self: end; border: 1px solid rgba(45,86,69,.18); border-radius: 50%; color: var(--forest); background: rgba(255,255,255,.3); cursor: pointer; }
  .menu-toggle span { width: 20px; height: 1px; background: currentColor; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .mobile-menu { position: absolute; top: 76px; left: 1rem; right: 1rem; display: flex; flex-direction: column; gap: .9rem; padding: 1.3rem; color: var(--forest); background: var(--cream-2); box-shadow: var(--shadow); font-family: var(--serif); font-size: 1.35rem; }
  .is-sticky .mobile-menu { top: 64px; }
  .mobile-menu[hidden] { display: none; }
  .mobile-menu .button { font-family: var(--sans); font-size: .78rem; }
  .hero { grid-template-columns: .95fr 1.05fr; }
  .dish-grid { grid-template-columns: repeat(4, 1fr); }
  .dish-card { grid-column: span 2; }
  .dish-card:last-child { grid-column: 2 / span 2; }
  .producers { grid-template-columns: 1fr 1fr; }
  .producer-list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); }
  .producer-list article { padding: 1.3rem; border: 1px solid rgba(255,255,255,.18); }
  .producer-list article + article { border-left: 0; }
  .footer { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .deadline-strip { min-height: 44px; gap: .45rem; padding: .45rem .6rem; font-size: .55rem; text-align: center; }
  .deadline-divider { display: none; }
  .site-header { top: 44px; height: 70px; padding: 0 1rem; }
  .site-header.is-sticky { height: 64px; }
  .brand img { width: 46px; height: 46px; }
  .brand strong { font-size: 1.2rem; }
  .brand small { font-size: .43rem; }
  .mobile-menu { top: 64px; }
  .hero { display: flex; min-height: auto; flex-direction: column; padding: 8.2rem 1.15rem 4.5rem; }
  .hero-copy { padding: 1.5rem 0 2rem; }
  .hero-copy .eyebrow { margin-bottom: 1rem; }
  h1 { font-size: clamp(3.45rem, 16vw, 5rem); }
  .hero-lead { margin-top: 1.3rem; font-size: .88rem; line-height: 1.6; }
  .hero-actions { align-items: stretch; flex-direction: column; gap: .8rem; margin-top: 1.4rem; }
  .hero-actions .text-link { align-self: center; }
  .hero-facts { justify-content: space-between; margin-top: 2rem; }
  .hero-facts li { min-width: auto; padding: 0 .8rem; }
  .hero-facts strong { font-size: 1.35rem; }
  .hero-gallery { min-height: 460px; margin: 0; }
  .gallery-slide:first-child img { object-position: 46% center; }
  .gallery-slide figcaption { left: 1rem; bottom: 1.1rem; }
  .gallery-slide figcaption strong { font-size: 1.5rem; }
  .gallery-controls { right: .8rem; bottom: .8rem; }
  .section { padding: 5rem 1.15rem; }
  h2 { font-size: clamp(3.2rem, 14vw, 4.6rem); }
  .section-kicker { display: block; margin-bottom: 1.2rem; }
  .section-kicker h2 { font-size: clamp(3.35rem, 14vw, 4.7rem); }
  .week-meta { align-items: flex-start; margin-top: 1.7rem; padding: 1rem 0 1rem 1rem; text-align: left; }
  .week-meta strong { font-size: 1.35rem; }
  .prototype-note { margin-bottom: 1.5rem; }
  .dish-grid { display: flex; gap: .8rem; margin: 0 -1.15rem; padding: 0 1.15rem 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .dish-grid::-webkit-scrollbar { display: none; }
  .dish-card, .dish-card-large, .dish-card:last-child { flex: 0 0 82vw; grid-column: auto; scroll-snap-align: start; }
  .dish-photo { height: 245px; }
  .dish-copy p { min-height: auto; }
  .menu-order-bar { align-items: stretch; flex-direction: column; gap: 1rem; margin-top: .3rem; }
  .menu-order-bar .button { width: 100%; }
  .section-heading { margin-bottom: 2.5rem; text-align: left; }
  .section-heading .eyebrow { justify-content: flex-start; }
  .steps { grid-template-columns: 1fr; }
  .step { min-height: auto; padding: 1.4rem; }
  .step-icon { margin: 1.2rem 0; }
  .build-box { grid-template-columns: 1fr; gap: 2rem; }
  .build-copy { padding: 0; }
  .calculator { padding: 1.15rem; }
  .calc-top span { font-size: 1.6rem; }
  .calc-top small { font-size: .44rem; }
  .meal-options { grid-template-columns: 1fr; }
  .about { grid-template-columns: 1fr; gap: 3.5rem; }
  .about-photo { order: 2; }
  .about-copy h2 { font-size: clamp(3.2rem, 14vw, 4.6rem); }
  .producers { grid-template-columns: 1fr; }
  .producer-photo img { height: 390px; }
  .producer-list { grid-column: auto; grid-template-columns: 1fr; }
  .producer-list article + article { border-left: 1px solid rgba(255,255,255,.18); border-top: 0; }
  .testimonials { grid-template-columns: 1fr; gap: 2.5rem; }
  .testimonial-slider { min-height: 430px; padding: 2.2rem 1.4rem 5rem; }
  .testimonial blockquote { font-size: 2.25rem; }
  .testimonial-controls { left: 1.4rem; right: 1.4rem; }
  .final-cta { min-height: 620px; }
  .footer { grid-template-columns: 1fr; padding-bottom: 7rem; }
  .footer-bottom { display: block; }
  .footer-bottom small { display: block; margin-top: .5rem; }
  .mobile-cta { position: fixed; z-index: 45; left: .7rem; right: .7rem; bottom: .65rem; display: block; transition: translate .3s; }
  .mobile-cta.is-hidden { translate: 0 140%; }
  .mobile-cta button { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 58px; padding: .7rem .85rem .7rem 1.15rem; border: 0; border-radius: 999px; color: #fff; background: var(--forest); box-shadow: 0 14px 38px rgba(27,56,44,.3); }
  .mobile-cta button > span { display: flex; flex-direction: column; align-items: flex-start; }
  .mobile-cta small { color: rgba(255,255,255,.6); font-size: .49rem; letter-spacing: .1em; text-transform: uppercase; }
  .mobile-cta strong { font-size: .82rem; }
  .mobile-cta b { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: var(--forest); background: var(--coral); }

  .order-dialog { width: 100%; height: 100dvh; margin: 0; }
  .order-header { min-height: 66px; padding: .55rem .85rem; }
  .order-progress { gap: .25rem; padding: .65rem .75rem; }
  .order-progress span { font-size: 0; }
  .order-progress span b { font-size: .56rem; }
  .order-progress i { flex: 1; width: auto; }
  .order-step { padding: 1.3rem 1rem 2rem; }
  .order-step-heading { margin-bottom: 1.3rem; }
  .order-step-heading h2 { font-size: 2.5rem; }
  .order-cards, .fulfilment-cards, .payment-methods { grid-template-columns: 1fr; }
  .subscription-cards { grid-template-columns: 1fr; }
  .subscription-cards label > span { min-height: 58px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-full { grid-column: auto; }
  .order-footer { grid-template-columns: auto 1fr auto; min-height: 76px; gap: .6rem; padding: .6rem .75rem; }
  .order-total { min-width: auto; }
  .order-total strong { font-size: 1.2rem; }
  .order-footer .button { min-width: 120px; min-height: 50px; padding: .7rem .9rem; }
  .success-actions { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; translate: 0; }
}

@media print {
  .deadline-strip, .site-header, .mobile-cta, .footer, .order-dialog { display: none !important; }
}
/* Helgekos tillegg */
.weekend-box { display:grid; grid-template-columns:.9fr 1.1fr; align-items:stretch; gap:clamp(2rem,6vw,7rem); max-width:1420px; margin-inline:auto; padding:0; overflow:hidden; background:var(--cream-2); }
.weekend-photo { min-height:380px; background:var(--forest); }
.weekend-photo img { width:100%; height:100%; min-height:380px; object-fit:cover; }
.weekend-copy { align-self:center; padding:clamp(2rem,5vw,5rem) clamp(1.4rem,5vw,5rem) clamp(2rem,5vw,5rem) 0; }
.weekend-copy h2 { max-width:620px; margin:.5rem 0 1rem; color:var(--forest); font-family:var(--serif); font-size:clamp(2.8rem,5vw,5.5rem); font-weight:400; line-height:.92; }
.weekend-copy h2 em { color:var(--forest-soft); }
.weekend-copy > p:not(.eyebrow) { max-width:520px; color:var(--muted); font-size:.8rem; line-height:1.75; }
.weekend-meta { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem 1.2rem; margin:1.5rem 0; color:var(--forest); font-size:.6rem; font-weight:700; }
.weekend-meta span { padding:.45rem .65rem; border:1px solid var(--line); background:#fff; }
.weekend-meta strong { margin-left:auto; font-family:var(--serif); font-size:1.5rem; font-weight:400; }
.helgekos-fieldset { margin-top:1rem; }
.helgekos-order-card { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem; border:1px solid #dec9ae; background:#fff7ed; }
.helgekos-order-card > div { display:flex; flex-direction:column; }
.helgekos-order-card b { color:var(--forest); font-family:var(--serif); font-size:1.2rem; font-weight:400; }
.helgekos-order-card small { margin-top:.2rem; color:var(--muted); font-size:.58rem; }
.helgekos-order-card em { margin-top:.45rem; color:var(--forest-soft); font-size:.52rem; font-style:normal; }
.helgekos-order-card em.is-unavailable { color:var(--muted); }
.helgekos-order-card label { display:flex; flex-direction:column; gap:.25rem; color:var(--muted); font-size:.52rem; font-weight:700; text-transform:uppercase; }
.helgekos-order-card input { width:72px; height:40px; padding:0 .5rem; border:1px solid var(--line); color:var(--forest); background:#fff; font-size:.8rem; text-align:center; }
.helgekos-order-card input:disabled { color:var(--muted); background:#eee; }

@media(max-width:760px) {
  .weekend-box { grid-template-columns:1fr; }
  .weekend-photo, .weekend-photo img { min-height:250px; }
  .weekend-copy { padding:2rem 1.2rem 2.4rem; }
  .weekend-meta strong { margin-left:0; }
  .helgekos-order-card { align-items:flex-start; }
}

/* ===== Flersidig struktur (Claudias ønske 13. aug 2026) ===== */
.desktop-nav a.is-current::after { right: 0; }
.mobile-menu a.is-current { color: var(--forest-soft); }

/* Slide øverst på forsiden */
.hero-slider { position: relative; min-height: min(880px, calc(100svh - 38px)); overflow: hidden; background: var(--forest); }
.hero-slider .gallery-track { position: absolute; inset: 0; }
/* Bildene skal rullere fritt uten tekst oppå (Claudias ønske 19. aug) —
   kun en svak mørkning nederst så pilene/telleren er lesbare. */
.hero-slider .gallery-slide::after { background: linear-gradient(180deg, rgba(14,34,25,.55), rgba(14,34,25,0) 26%), linear-gradient(0deg, rgba(14,34,25,.45), rgba(14,34,25,0) 38%); }
.hero-slider .gallery-controls { bottom: clamp(1.4rem, 3vw, 2.4rem); right: clamp(1.25rem, 5vw, 5rem); }

/* Velkomstteksten som før lå oppå slideren — nå egen seksjon rett under den */
.hero-intro { padding: clamp(3.2rem, 6vw, 5rem) clamp(1.25rem, 6vw, 7rem) .5rem; background: var(--cream); }
.hero-intro h1 { max-width: 1000px; font-size: clamp(3.6rem, 6.4vw, 7rem); }
.hero-intro .hero-lead { max-width: 570px; }
.hero-intro .hero-actions { margin-top: 2.1rem; }
/* Rettens navn på hvert slide-bilde (Kirstis ønske 19. aug) — chip øverst til høyre,
   under headeren, så den ikke kolliderer med overskriften nederst. */
.hero-slider .gallery-slide .slide-caption { position: absolute; z-index: 2; top: 148px; right: clamp(1.25rem, 5vw, 5rem); left: auto; bottom: auto; display: block; padding: .4rem 1.2rem .55rem; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; color: #fff; background: rgba(14,34,25,.5); backdrop-filter: blur(8px); font-family: var(--script); font-size: 1.45rem; font-weight: 600; line-height: 1.25; text-shadow: 0 1px 10px rgba(14,34,25,.55); }

/* Ukens rett — bilderamme som styres av data/ukens-rett.json (byttes uten kodeendring) */
.ukens-rett { padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 6vw, 7rem) 0; }
.ukens-rett[hidden] { display: none; }
.ukens-rett-ramme { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; gap: clamp(1.6rem, 4vw, 3.5rem); max-width: 1420px; margin: 0 auto; padding: clamp(1rem, 2.5vw, 1.6rem) clamp(1rem, 2.5vw, 2.6rem) clamp(1rem, 2.5vw, 1.6rem) clamp(1rem, 2.5vw, 1.6rem); border: 1px solid var(--line); background: #fffdf4; box-shadow: var(--shadow); }
.ukens-rett-photo { overflow: hidden; aspect-ratio: 3 / 2; background: var(--cream); }
.ukens-rett-photo img { width: 100%; height: 100%; object-fit: cover; }
.ukens-rett-ramme figcaption h2 { margin: 0; font-size: clamp(2.6rem, 4.4vw, 4.4rem); }
.ukens-rett-uke { margin: .9rem 0 0; color: var(--forest-soft); font-size: .64rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ukens-rett-ramme .text-link { margin-top: 1.4rem; }
.hero-strip { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 2rem clamp(1.25rem, 6vw, 7rem); background: var(--cream); }
.hero-strip .hero-facts { margin: 0; }
.hero-strip > p { max-width: 460px; margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.7; }

/* Sidetopp på undersider */
.page-hero { padding: 11rem clamp(1.25rem, 6vw, 7rem) 4.5rem; background: var(--cream); }
.page-hero h1 { max-width: 1000px; font-size: clamp(3.6rem, 6.4vw, 7rem); }
.page-hero .hero-lead { margin-top: 1.6rem; }

/* Teasere på forsiden */
.section-link-bar { display: flex; justify-content: center; margin-top: 2.6rem; }
.recipe-teaser { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(2rem, 5vw, 5rem); max-width: 1420px; margin-inline: auto; padding: clamp(2rem, 4vw, 3.5rem); border: 1px solid var(--line); background: #fffdf4; }
.recipe-teaser-icon { display: grid; place-items: center; width: 92px; height: 92px; border-radius: 50%; color: var(--cream-2); background: var(--forest); font-size: 2.3rem; }
.recipe-teaser h2 { font-size: clamp(2.6rem, 4.4vw, 4.4rem); }
.recipe-teaser p { max-width: 640px; margin: 1rem 0 0; color: var(--muted); font-size: .8rem; line-height: 1.7; }
.recipe-teaser .button { white-space: nowrap; }

/* Oppskriftssiden */
.recipes-section { background: var(--cream-2); }
.recipe-gate { max-width: 620px; margin: 0 auto; padding: clamp(2rem, 5vw, 3.5rem); border: 1px solid var(--line); background: #fffdf4; box-shadow: var(--shadow); text-align: center; }
.recipe-gate-lock { display: grid; place-items: center; width: 76px; height: 76px; margin: 0 auto 1.5rem; border-radius: 50%; color: var(--cream-2); background: var(--forest); font-size: 1.9rem; }
.recipe-gate h2 { font-size: clamp(2.6rem, 5vw, 3.8rem); }
.recipe-gate > p { margin: 1.2rem auto 0; max-width: 460px; color: var(--muted); font-size: .78rem; line-height: 1.7; }
.recipe-gate form { display: flex; gap: .6rem; max-width: 420px; margin: 1.8rem auto 0; }
.recipe-gate input { flex: 1; min-width: 0; height: 56px; padding: 0 1.1rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: #fff; text-align: center; letter-spacing: .08em; }
.recipe-gate input:focus { border-color: var(--forest); outline: 0; }
.recipe-gate-error { margin-top: 1rem; color: #a53c25; font-size: .7rem; font-weight: 700; }
.recipe-gate-hint { margin-top: 1.6rem; padding-top: 1.4rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .64rem; line-height: 1.65; }
.recipes-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; max-width: 1420px; margin: 0 auto 2.4rem; }
.recipes-head .lock-note { display: inline-flex; align-items: center; gap: .5rem; padding: .55rem .9rem; border: 1px solid var(--line); border-radius: 999px; color: var(--forest); background: #fff; font-size: .6rem; font-weight: 700; }
.recipe-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; max-width: 1420px; margin: auto; }
.recipe-card { padding: clamp(1.5rem, 3vw, 2.4rem); border: 1px solid var(--line); background: #fffdf8; }
.recipe-card > small { color: var(--forest-soft); font-size: .58rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.recipe-card h3 { margin: .5rem 0 .3rem; color: var(--forest); font-family: var(--serif); font-size: 1.9rem; font-weight: 400; }
.recipe-card .recipe-time { color: var(--muted); font-size: .62rem; }
.recipe-card .recipe-intro { margin: .9rem 0 0; color: var(--muted); font-size: .76rem; line-height: 1.65; }
.recipe-columns { display: grid; grid-template-columns: .8fr 1.2fr; gap: 1.6rem; margin-top: 1.4rem; padding-top: 1.4rem; border-top: 1px solid var(--line); }
.recipe-columns h4 { margin: 0 0 .7rem; color: var(--forest); font-size: .64rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.recipe-card ul, .recipe-card ol { margin: 0; padding-left: 1.1rem; color: var(--muted); font-size: .72rem; line-height: 1.7; }
.recipe-card li { margin-bottom: .35rem; }
.recipe-tip { display: flex; gap: .7rem; margin-top: 1.3rem; padding: .8rem 1rem; border-left: 3px solid var(--gold); background: #f6efdb; color: #6a6450; font-size: .66rem; line-height: 1.55; }
.recipe-tip strong { color: var(--forest); }
.recipes-info { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2rem; max-width: 1420px; margin: 2.5rem auto 0; padding: clamp(1.5rem, 3vw, 2.4rem); color: #fff; background: var(--forest); }
.recipes-info h3 { margin: 0 0 .6rem; font-family: var(--serif); font-size: 1.7rem; font-weight: 400; }
.recipes-info p { margin: 0; max-width: 720px; color: rgba(255,255,255,.72); font-size: .72rem; line-height: 1.65; }
.recipes-info img { width: 140px; height: 140px; padding: 10px; background: #fff; }

@media (max-width: 1080px) {
  .recipe-grid { grid-template-columns: 1fr; }
  .recipe-teaser { grid-template-columns: 1fr; text-align: left; }
  .recipe-teaser-icon { display: none; }
}
@media (max-width: 760px) {
  .hero-slider { min-height: 78svh; }
  .hero-slider .gallery-controls { right: .8rem; bottom: .9rem; }
  .hero-intro { padding: 1.9rem 1.15rem .2rem; }
  .hero-intro h1 { font-size: clamp(2.2rem, 9.5vw, 3rem); }
  .hero-intro .hero-lead { margin-top: .9rem; }
  .hero-intro .hero-actions { margin-top: 1.2rem; }
  .hero-slider .gallery-slide .slide-caption { top: 126px; right: .8rem; padding: .3rem 1rem .45rem; font-size: 1.2rem; }
  .ukens-rett { padding: 2.6rem 1.15rem 0; }
  .ukens-rett-ramme { grid-template-columns: 1fr; gap: 1.3rem; padding: .85rem .85rem 1.6rem; }
  .ukens-rett-ramme figcaption { padding: 0 .5rem; }
  .hero-strip { flex-direction: column; align-items: flex-start; gap: 1.4rem; padding: 2rem 1.15rem; }
  .page-hero { padding: 9rem 1.15rem 3.2rem; }
  .recipe-gate form { flex-direction: column; }
  .recipe-columns { grid-template-columns: 1fr; }
  .recipes-head { display: block; }
  .recipes-head .lock-note { margin-top: 1.2rem; }
  .recipes-info { grid-template-columns: 1fr; }
  .mobile-cta a { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 58px; padding: .7rem .85rem .7rem 1.15rem; border: 0; border-radius: 999px; color: #fff; background: var(--forest); box-shadow: 0 14px 38px rgba(27,56,44,.3); }
  .mobile-cta a > span { display: flex; flex-direction: column; align-items: flex-start; }
}
.site-header.is-on-dark:not(.is-sticky) { color: #fff; }
.site-header.is-on-dark:not(.is-sticky) .menu-toggle { border-color: rgba(255,255,255,.45); color: #fff; background: rgba(14,34,25,.25); }

/* Forside som ren landingsside: klikkekort til undersidene (Claudias ønske 19. aug) */
.page-cards { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; max-width: 1420px; margin: auto; }
.page-card { position: relative; grid-column: span 2; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); background: #fffdf8; transition: translate .25s, box-shadow .25s; }
.page-card-large { grid-column: span 3; }
.page-card:hover { translate: 0 -4px; box-shadow: 0 18px 40px rgba(45,86,69,.12); }
.page-card-photo { position: relative; height: 230px; overflow: hidden; background: var(--forest); }
.page-card-large .page-card-photo { height: 300px; }
.page-card-photo img { width: 100%; height: 100%; object-fit: cover; transition: scale .4s ease; }
.page-card:hover .page-card-photo img { scale: 1.04; }
.page-card-copy { position: relative; flex: 1; padding: 1.3rem 3.4rem 1.5rem 1.4rem; }
.page-card-copy small { color: var(--forest-soft); font-size: .57rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.page-card-copy h3 { margin: .5rem 0 .55rem; color: var(--forest); font-family: var(--serif); font-size: 1.75rem; font-weight: 400; }
.page-card-copy p { margin: 0; color: var(--muted); font-size: .74rem; line-height: 1.6; }
.page-card-arrow { position: absolute; right: 1.2rem; top: 50%; translate: 0 -50%; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; color: var(--forest); background: #fff; transition: background .2s, color .2s; }
.page-card:hover .page-card-arrow { color: #fff; border-color: var(--forest); background: var(--forest); }

@media (max-width: 1080px) {
  .page-cards { grid-template-columns: 1fr 1fr; }
  .page-card, .page-card-large { grid-column: span 1; }
  .page-card-large .page-card-photo { height: 230px; }
}
@media (max-width: 760px) {
  .page-cards { grid-template-columns: 1fr; }
  .page-card-photo, .page-card-large .page-card-photo { height: 190px; }
}

/* Claudias skjermbilde-runde 19. aug: praktisk info på forsiden skal være STØRRE */
.hero-strip > p { max-width: 560px; margin: 0; color: var(--ink); font-size: clamp(1rem, 1.4vw, 1.2rem); line-height: 1.7; }
/* 14. sep: Claudia vil ha praktisk info som korte linjer med luft — hentested først, så leveringsvalgene. */
.hero-strip > p.fulfilment-lines { display: grid; gap: .25rem; line-height: 1.55; }
.hero-strip .fulfilment-lead { margin-bottom: .75rem; font-weight: 600; }

/* Helgekos-teaser på forsiden (Claudias ønske 19. aug): kompakt bånd mellom
   hero-intro og hero-strip. Kort card på kremfarget bakgrunn — kun eksisterende
   farger/variabler. Pris/tilgjengelighet fylles av script.js via
   data-helgekos-public-*-attributtene (samme datastrøm som meny.html). */
.helgekos-teaser { padding: .6rem clamp(1.25rem, 6vw, 7rem) 1.6rem; background: var(--cream); }
.helgekos-teaser-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.5rem 3rem; max-width: 1420px; margin-inline: auto; padding: clamp(1.6rem, 3vw, 2.4rem) clamp(1.3rem, 2.6vw, 2.6rem); border: 1px solid var(--line); background: var(--cream-2); }
.helgekos-teaser-copy { max-width: 560px; }
.helgekos-teaser-copy .eyebrow { margin-bottom: .8rem; }
.helgekos-teaser-copy h2 { margin: 0 0 .6rem; font-size: clamp(2.3rem, 4vw, 3.4rem); }
.helgekos-teaser-copy p:not(.eyebrow) { margin: 0; max-width: 520px; color: var(--muted); font-size: .8rem; line-height: 1.7; }
.helgekos-teaser-side { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; }
.helgekos-teaser-price { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem 1rem; margin: 0; color: var(--forest); font-size: .6rem; font-weight: 700; }
.helgekos-teaser-price span { padding: .45rem .65rem; border: 1px solid var(--line); background: #fff; }
.helgekos-teaser-price strong { font-family: var(--serif); font-size: 1.6rem; font-weight: 400; }
@media (max-width: 760px) {
  .helgekos-teaser { padding: .4rem 1.15rem 1.5rem; }
  .helgekos-teaser-inner { padding: 1.5rem 1.2rem 1.7rem; }
}

/* Launch extension: retain Claudia's palette and lettering, improve readability and task states. */
@font-face{font-family:Arimo;src:url('/fonts/arimo-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Arimo;src:url('/fonts/arimo-700.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:'Dancing Script';src:url('/fonts/dancing-script-700.ttf') format('truetype');font-weight:600 700;font-display:swap}
::selection{background:#dce8d7;color:var(--forest-dark)}
:focus-visible{outline:3px solid var(--forest-soft);outline-offset:4px}
input,textarea{caret-color:var(--forest)}
button:disabled{opacity:.55;cursor:not-allowed}
a{text-underline-offset:.2em}
.reveal{opacity:1;transform:none;translate:none}
.hero-slider{min-height:570px;height:68svh;max-height:800px}
.hero-intro h1,.page-hero h1{font-size:clamp(2.8rem,5.4vw,6rem)}
.hero-slider .gallery-slide .slide-caption{font-size:1.3rem}
.gallery-controls button{min-width:44px;min-height:44px}
.gallery-controls button:last-child{width:auto;padding-inline:1rem;font-size:.875rem}
.test-notice,.site-notice{position:relative;margin:0;padding:.65rem 1rem;background:var(--forest-dark);color:white;text-align:center;font-size:.875rem;line-height:1.5;z-index:101}
.test-notice~.site-header{top:76px}
.deadline-strip{font-size:.875rem;line-height:1.4;min-height:38px;height:auto;padding:.6rem 1rem;text-align:center}
.footer a,.footer p{font-size:1rem;overflow-wrap:anywhere}
.footer-bottom small{font-size:.875rem}
.footer-bottom small a{font-size:inherit}
.footer a:hover,.field-help a,.check-row a{text-decoration:underline}
.footer>div>span{font-size:.875rem}
.compact-hero{padding-bottom:2.5rem}
.compact-hero>p{max-width:44rem;font-size:1.125rem;line-height:1.65}
.checkout-wrap{max-width:1060px;margin:0 auto;padding:2rem 1.25rem 5rem}
.live-order-form{border:1px solid var(--line);background:var(--cream-2);scroll-margin-top:130px}
.checkout-progress{display:flex;gap:1rem;list-style:none;padding:1.3rem 2rem;margin:0;border-bottom:1px solid var(--line);background:var(--cream)}
.checkout-progress li{flex:1;font-size:.9375rem;line-height:1.5;color:var(--muted)}
.checkout-progress li.is-active{font-weight:700;color:var(--forest)}
.checkout-body{padding:2rem clamp(1rem,5vw,4rem)}
.checkout-body h2{font-size:clamp(2rem,4vw,2.75rem);margin:0 0 1.5rem}
.field{display:flex;flex-direction:column;gap:.5rem;font-size:1rem;line-height:1.5;margin:0 0 1.2rem;font-weight:700;min-width:0}
.field input,.field select,.field textarea,.recipe-gate input{width:100%;min-width:0;padding:.85rem 1rem;border:1px solid #9da38f;border-radius:4px;background:white;color:var(--ink);font-size:1rem;font-weight:400;line-height:1.45}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--forest)}
.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.field-help{color:var(--muted);font-size:.9375rem;line-height:1.6}
.checkout-body fieldset{margin:1.2rem 0 1.5rem}
.checkout-body legend{font-size:1rem;margin-bottom:.8rem}
.dish-picker{display:grid;gap:.6rem}
.dish-option{border:1px solid var(--line);background:white;border-radius:6px;padding:1rem}
.dish-option:has(input:checked){border-color:var(--forest);background:#eef1e4}
.dish-option>label{display:flex;align-items:flex-start;gap:.8rem;cursor:pointer}
.dish-option strong{font-size:1.0625rem}
.dish-option small{display:block;font-size:.9375rem;line-height:1.5;color:var(--muted);margin-top:.35rem}
.dish-option details{margin:.75rem 0 0 2rem}
input[type=checkbox],input[type=radio]{accent-color:var(--forest);width:20px;height:20px;flex-shrink:0;margin:.15rem 0 0}
.check-row{display:flex;align-items:flex-start;gap:.8rem;margin:1rem 0;font-size:1rem;line-height:1.6;cursor:pointer}
.check-row small{display:block;font-size:.9375rem;color:var(--muted);line-height:1.5}
.check-row span{min-width:0}
.check-row input{width:20px;height:20px}
.weekend-order{padding:1.5rem;background:var(--cream);margin-top:1.5rem}
.weekend-order h3{font-size:1.5rem;margin:0 0 .75rem}
.weekend-order p{font-size:1rem;line-height:1.6}
.weekend-order .weekend-note{margin:.25rem 0}
/* Helgekos-produkter i bestillingen: én rad per variant med antallsvelger (Claudias ønske 14.09: bare 2-pakke, velg antall). */
.weekend-products{display:grid;gap:.75rem;margin-top:1rem}
.weekend-product{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--line);background:#fff;border-radius:6px}
.weekend-product.is-selected{border-color:var(--forest);background:#eef1e4}
.weekend-product-copy{display:flex;flex:1;flex-direction:column;gap:.25rem;min-width:0}
.weekend-product-copy strong{font-size:1.0625rem}
.weekend-product-copy small{font-size:.9375rem;line-height:1.5;color:var(--muted)}
.weekend-product-copy details{margin-top:.25rem}
.weekend-product-price{color:var(--forest);font-weight:700;font-size:1rem}
.qty-stepper{display:flex;align-items:center;flex-shrink:0;border:1px solid var(--forest);border-radius:6px;overflow:hidden;background:#fff}
.qty-stepper button{width:44px;height:44px;border:0;background:var(--forest);color:#fff;font-size:1.4rem;line-height:1;cursor:pointer}
.qty-stepper button:disabled{opacity:.35;cursor:default}
.qty-stepper input{width:56px;height:44px;border:0;border-radius:0;padding:0;text-align:center;font-size:1.1rem;font-weight:700;color:var(--forest);-moz-appearance:textfield;appearance:textfield}
.qty-stepper input::-webkit-outer-spin-button,.qty-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.weekend-products-public{display:grid;gap:1rem;margin:1.5rem 0}
/* Abonnement: regler i bestillingen og Min side */
.subscription-rules{font-size:1rem;line-height:1.6;background:var(--cream);padding:1rem;margin:1rem 0}
.order-frequency{margin-top:1rem}
.subscription-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin:1rem 0 2rem}
.subscription-form{margin:1rem 0 2rem}
.account-content h2{font-size:1.6rem;margin:2rem 0 .5rem}
.text-button{border:0;background:none;padding:0;color:var(--forest);text-decoration:underline;font:inherit;cursor:pointer}
.review-row .form-error{display:inline;padding:0;margin:0;background:none}

.weekend-product-public{padding:1.25rem;background:#fff;border:1px solid var(--line);border-radius:6px}
.weekend-product-public h3{margin:0 0 .35rem;font-size:1.35rem}
.weekend-product-public p{margin:.25rem 0}
.delivery-options{padding:1rem 1.5rem;border:1px solid var(--line)}
.optional-preferences{padding:1rem 0;border-block:1px solid var(--line);margin:1.5rem 0}
summary{cursor:pointer;line-height:1.6;font-size:1rem;color:var(--forest);padding-block:.3rem}
details p{font-size:1rem;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}
.checkout-footer{display:flex;align-items:center;gap:1rem;padding:1.4rem 2rem;border-top:1px solid var(--line);background:var(--cream);flex-wrap:wrap}
.checkout-footer>div{display:flex;flex-direction:column;margin-left:auto;font-variant-numeric:tabular-nums}
.checkout-footer small{font-size:.875rem;color:var(--muted)}
.checkout-footer strong{font-size:1.65rem;color:var(--forest)}
.checkout-footer .button{font-size:1rem;min-height:48px}
.button-quiet{background:transparent;border:1px solid var(--forest);color:var(--forest)}
.review-row{padding:1rem 0;display:grid;grid-template-columns:150px 1fr;gap:1rem;line-height:1.6;border-bottom:1px solid var(--line)}
.review-row span,.review-row strong{font-size:1rem;overflow-wrap:anywhere}
.review-row strong{text-align:right;font-weight:700}
.inline-field{display:flex;gap:.5rem}.inline-field button{padding:.75rem 1rem;border:1px solid var(--forest);background:var(--forest);color:white;white-space:nowrap;font-size:1rem}
.form-error{color:#8b251b;background:#f9e8de;padding:1rem;margin:0 1rem 1rem;font-size:1rem;line-height:1.5}
.live-menu{padding-top:2.5rem}
.menu-week-select{max-width:1420px;margin:0 auto 2rem;display:flex;align-items:center;gap:2rem;justify-content:space-between}
.menu-week-select .field{flex-basis:450px}
.menu-week-select p{max-width:40ch;line-height:1.6}
.dish-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.dish-card,.dish-card-large{grid-column:auto}
.dish-copy small{font-size:.875rem;letter-spacing:0;text-transform:none}
.dish-copy h3{font-size:1.8rem;line-height:1.2}
.dish-copy p{font-size:1rem;line-height:1.65}
.dish-copy .allergens{color:var(--forest-soft);font-size:.9375rem}
.menu-dish-image{width:100%;height:220px;object-fit:cover;margin-bottom:1.4rem;border-radius:4px}
.menu-order-bar span{font-size:1rem;color:#e6e9de}
.weekend-live{background:var(--cream);max-width:100%;padding-top:3rem;padding-bottom:3rem}
.weekend-live p,.recipe-teaser p{font-size:1rem;line-height:1.6;max-width:65ch}
.newsletter-section{display:grid;grid-template-columns:1fr 1fr;gap:4rem;padding:4rem clamp(1.25rem,6vw,7rem);background:var(--cream)}
.newsletter-section h2{font-size:clamp(2.3rem,4vw,3.5rem);margin:0 0 1rem}
.newsletter-section p{font-size:1rem;line-height:1.6;max-width:45ch}
.newsletter-section form>label:first-child{display:grid;gap:.6rem;font-size:1rem;font-weight:700}
.newsletter-section input[type=email]{padding:.9rem 1rem;font-size:1rem;background:var(--cream-2);border:1px solid #9da38f;border-radius:4px}
.newsletter-section .button{font-size:1rem}
.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.account-content{max-width:760px;padding:2.5rem 1.25rem 5rem;margin:auto;line-height:1.75;font-size:1rem}
.account-content h2{font-family:var(--sans);font-size:1.5rem;margin:2.5rem 0 .8rem}
.account-content form{max-width:500px}
.account-content .button{font-size:1rem;margin-block:.8rem}
.account-content a:not(.button){text-decoration:underline}
.account-content .action-row{display:flex;flex-wrap:wrap;gap:1rem}
.account-content [data-order-status]{padding:1.5rem;background:var(--cream);font-size:1.125rem}
.recipe-card .recipe-body{padding:1.5rem;font-size:1rem;line-height:1.7}
.recipe-card li{margin-bottom:.6rem}
.recipe-card header small,.recipe-card header p{font-size:1rem}
.recipe-gate p{font-size:1rem}
.landing-newsletter{width:min(650px,100%);margin-top:2rem}
.landing-newsletter .newsletter-section{display:block;padding:1.5rem;background:transparent;text-align:left}
.landing-newsletter h2{font-size:2rem}
@media(max-width:760px){
 .hero-slider{min-height:380px;height:54svh}.hero-intro{padding-bottom:1.4rem}
 .hero-intro h1{font-size:clamp(2.25rem,9vw,3.2rem)}
 .hero-intro .hero-lead{font-size:1rem}.hero-strip p{font-size:1rem}
 .test-notice{font-size:.8rem}.test-notice~.site-header{top:96px}
 .compact-hero{padding-top:10rem}.compact-hero h1{font-size:2.8rem}
 .compact-hero>p{font-size:1rem}.checkout-wrap{padding:.5rem .65rem 3rem}
 .checkout-progress{padding:1rem;gap:.6rem}.checkout-progress li{font-size:.875rem}
 .field-pair{grid-template-columns:1fr;gap:0}
 .checkout-footer{padding:1rem;gap:.75rem}.checkout-footer>div{margin-left:0;flex:1}
 .checkout-footer button[data-order-pay]{width:100%;order:3}
 .checkout-footer strong{font-size:1.4rem}.checkout-footer .button{padding:.85rem 1rem}
 .review-row{grid-template-columns:100px 1fr;gap:.8rem}.review-row strong,.review-row span{font-size:.9375rem}
 .dish-grid{grid-template-columns:1fr}.menu-week-select{display:block}
 .newsletter-section{grid-template-columns:1fr;gap:1.5rem;padding-block:3rem}
 .menu-order-bar{align-items:stretch;flex-direction:column;padding:1.2rem;gap:1rem}
 .menu-order-bar .button{text-align:center;justify-content:center}
 .recipe-teaser{display:block}.recipe-teaser .button{margin-top:1rem}
 .footer{padding-bottom:7rem}
 .account-content{padding-bottom:3rem}
 .dish-option{padding:.8rem}.dish-option details{margin-left:0}
 .weekend-product{flex-wrap:wrap}.weekend-product .qty-stepper{margin-left:auto}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Keep navigation in the document flow so notices, zoom and long deadlines cannot cover it. */
.site-header,.site-header.is-sticky,.test-notice~.site-header{position:sticky;top:0;height:86px;background:var(--cream-2);color:var(--forest);box-shadow:none;backdrop-filter:none;transition:none}
.site-header.is-on-dark:not(.is-sticky){color:var(--forest)}
.site-header.is-on-dark:not(.is-sticky) .menu-toggle{color:var(--forest);background:transparent;border-color:var(--line)}
.compact-hero,.page-hero{padding-top:3rem}
.hero-slider .gallery-slide .slide-caption{top:1.2rem}
.skip-link{top:-100px;translate:none}.skip-link:focus{top:1rem;translate:none}
.button{font-size:1rem;color:var(--forest-dark)}.button-dark{color:white}
.button-coral{color:#07170e}
.page-card-copy p,.page-card-copy small,.text-link{font-size:1rem;line-height:1.6}
.testimonial>p{font-size:.875rem;letter-spacing:0;text-transform:none;color:#e5d6b3}
.footer p,.footer a,.footer-bottom,.footer-bottom small{color:var(--forest-soft)}
.section{padding-block:clamp(3rem,6vw,6rem)}
@media(max-width:760px){
 .site-header,.site-header.is-sticky,.test-notice~.site-header{height:72px;top:0}
 .hero-slider{height:40svh;min-height:270px}.hero-slider .gallery-slide .slide-caption{top:1rem}
 .compact-hero,.page-hero{padding-top:2.5rem}
 .mobile-cta small{font-size:.75rem;letter-spacing:0;text-transform:none;color:#e0e8d9}
 .mobile-cta strong{font-size:1rem}.mobile-cta{bottom:calc(.65rem + env(safe-area-inset-bottom))}
 .testimonial-slider{min-height:340px}.testimonial blockquote{font-size:1.75rem;line-height:1.25}
 .testimonial-head h2{font-size:3rem}
}

/* 2026-09-08: kunden velger ikke retter – Claudia bestemmer 3-middagers kassen i admin */
.dish-option.is-included{border-color:var(--forest);background:#eef1e4}
.dish-option-head{display:flex;align-items:flex-start;gap:.8rem}
.dish-included-mark{flex:0 0 1.6rem;height:1.6rem;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--forest);color:#fff;font-size:.9rem;font-weight:700}
.dish-badge{display:inline-block;margin-bottom:.6rem;padding:.2rem .7rem;border-radius:999px;background:var(--forest);color:#fff;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase}
.order-type{margin-bottom:1.2rem}.order-type legend{font-weight:700;margin-bottom:.4rem}

/* Oppskrifter: kunden velger kassestørrelse, mengdene regnes om fra «per person». */
.recipe-people { display: grid; gap: .8rem; max-width: 1420px; margin: 0 auto 1.4rem; padding: 1.2rem 1.4rem; border: 1px solid var(--line); background: #fffdf8; }
.recipe-people p { margin: 0; color: var(--forest); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.recipe-people .choice-row { max-width: 440px; }
.recipe-people .choice { font-weight: 700; }
.recipe-people .choice:focus-visible { outline: 2px solid var(--forest); outline-offset: 2px; }
.recipe-people small { color: var(--muted); font-size: .66rem; line-height: 1.6; }
.recipe-note { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.6; }
.recipe-tip span { display: block; }
.recipes-section select[data-recipe-week-select] { display: block; max-width: 1420px; margin: 0 auto 1rem; padding: .7rem 1rem; border: 1px solid var(--line); background: #fff; color: var(--ink); }

/* Gavekort (27.09): kjøpssiden med kortet som fylles ut mens kunden skriver, og kortsiden som skrives ut i A6.
   Kortet er papir: kraftpapirtonen fra logoen, sydd kant som på etiketten i kassen, hilsenen i håndskrift. */
.gk-buy { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; max-width: 1180px; margin: 0 auto; padding: clamp(2rem, 5vw, 3.5rem) clamp(1.25rem, 5vw, 3rem) 5rem; }
.gk-status { grid-column: 1 / -1; }
.gk-preview { order: -1; }
@media (min-width: 960px) {
  .gk-buy { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: start; }
  .gk-preview { order: 2; position: sticky; top: 6.5rem; }
}
.gk-group { margin: 0 0 2rem; padding: 0; border: 0; min-width: 0; }
.gk-group legend { margin-bottom: .8rem; padding: 0; color: var(--forest); font-family: var(--script); font-size: 1.9rem; line-height: 1.2; }
.gk-kinds { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1.4rem; }
@media (max-width: 560px) { .gk-kinds { grid-template-columns: 1fr; } }
.gk-kind { position: relative; cursor: pointer; }
.gk-kind input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.gk-kind span { display: flex; flex-direction: column; gap: .2rem; height: 100%; padding: 1rem 1.1rem; border: 1.5px solid var(--line); border-radius: 4px; background: #fffdf8; transition: border-color .15s ease, background-color .15s ease; }
.gk-kind strong { color: var(--forest-dark); font-size: 1.05rem; }
.gk-kind small { color: var(--muted); font-size: .9rem; }
.gk-kind input:checked + span { border-color: var(--forest); background: var(--cream); box-shadow: inset 0 0 0 1px var(--forest); }
.gk-kind input:focus-visible + span { outline: 2px solid var(--coral); outline-offset: 2px; }
.gk-form textarea { resize: vertical; }
.gk-terms { margin: .5rem 0 1rem; color: var(--muted); font-size: .95rem; line-height: 1.65; }
.gk-terms summary { cursor: pointer; color: var(--forest); font-weight: 700; }
.gk-terms p { margin: .6rem 0 0; }
.gk-error { margin: 0 0 .5rem; color: #9b2c1c; font-weight: 700; line-height: 1.5; }
.gk-pay { width: 100%; }
.gk-pay:disabled { opacity: .55; cursor: not-allowed; }

.gk-card { position: relative; container-type: inline-size; display: grid; grid-template-rows: auto 1fr auto auto; gap: .5rem; width: 100%; max-width: 560px; aspect-ratio: 148 / 105; margin: 0 auto; padding: clamp(1.1rem, 4vw, 1.9rem);
  background-color: #efe3c6; background-image: radial-gradient(rgba(120, 88, 40, .07) 1px, transparent 1px); background-size: 5px 5px; color: var(--forest-dark);
  box-shadow: 0 1px 0 rgba(27, 56, 44, .08), 0 24px 60px rgba(27, 56, 44, .18); }
.gk-card::before { content: ""; position: absolute; inset: 9px; border: 1.5px dashed rgba(45, 86, 69, .45); pointer-events: none; }
.gk-card p { margin: 0; }
.gk-card-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.gk-card-logo { width: clamp(42px, 13cqi, 72px); height: auto; border-radius: 50%; }
.gk-card-title { color: var(--forest); font-family: var(--script); font-size: clamp(2rem, 12cqi, 3.8rem); line-height: 1; }
.gk-card-note { align-self: center; min-height: 0; font-family: var(--script); font-size: clamp(1.05rem, 5cqi, 1.7rem); line-height: 1.22; }
.gk-card-note.is-medium { font-size: clamp(.95rem, 4cqi, 1.35rem); }
.gk-card-note.is-long { font-size: clamp(.85rem, 3.3cqi, 1.1rem); }
.gk-card-to { color: var(--forest); }
.gk-card-message { margin: .15rem 0 !important; color: var(--ink); overflow-wrap: anywhere; }
.gk-card-from { color: var(--forest); text-align: right; }
.gk-card-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; padding-top: .6rem; border-top: 1.5px solid rgba(45, 86, 69, .3); }
.gk-card-value { display: flex; flex-direction: column; gap: .15rem; }
.gk-card-value strong { font-size: clamp(1.35rem, 7.5cqi, 2.4rem); line-height: 1; }
.gk-card-value span { color: var(--forest-soft); font-size: clamp(.7rem, 2.6cqi, .92rem); }
.gk-card-code { display: flex; flex-direction: column; align-items: flex-end; gap: .2rem; }
.gk-card-code span { color: var(--forest-soft); font-size: clamp(.65rem, 2.3cqi, .82rem); }
.gk-card-code strong { padding: .25rem .55rem; border: 1.5px solid var(--coral); background: #fbf5e6; font-size: clamp(.9rem, 4.3cqi, 1.4rem); letter-spacing: .12em; white-space: nowrap; }
.gk-card-foot { color: var(--forest-soft); font-size: clamp(.6rem, 2.2cqi, .8rem); line-height: 1.4; }

.gk-show { max-width: 760px; margin: 0 auto; padding: clamp(2rem, 5vw, 3.5rem) clamp(1.25rem, 5vw, 3rem) 5rem; }
[data-giftcard-note] { font-weight: 400; }
.gk-show .gk-card { max-width: 680px; }
.gk-muted .gk-card { filter: grayscale(.7); opacity: .7; }
.gk-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin: 2rem 0 1rem; }
.gk-howto { max-width: 560px; margin: 2.5rem auto 0; line-height: 1.7; }
.gk-howto h2 { margin-bottom: .6rem; color: var(--forest); font-family: var(--script); font-size: 2rem; }
.gk-howto ol { padding-left: 1.3rem; }
@media (prefers-reduced-motion: reduce) { .gk-kind span { transition: none; } }
@media print {
  @page { size: A4 portrait; margin: 15mm; }
  body { background: #fff; }
  .skip-link, .deadline-strip, .site-header, .footer, .mobile-cta, .site-notice, .test-notice, .gk-hero, .gk-actions, .gk-howto { display: none !important; }
  .gk-show { padding: 0; }
  .gk-show .gk-card { width: 148mm; height: 105mm; max-width: none; aspect-ratio: auto; margin: 12mm auto; overflow: hidden; box-shadow: none; outline: .2mm dashed #888; outline-offset: 5mm; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
.gk-help { margin: -.7rem 0 1.2rem; }
