/* Stabburet lokk – mobil først. Populaire er skriften Stabburet bruker i overskrifter. */
@font-face {
    font-family: 'Populaire';
    src: url('../fonts/Populaire.woff') format('woff');
    font-weight: normal; /* fet (700) lages av nettleseren, slik stabburetleverpostei.no gjør */
    font-style: normal;
    font-display: swap;
}
/* Skriften i selve lokket (LEVERPOSTEI-buen) */
@font-face {
    font-family: 'Fairplex Wide';
    src: url('../fonts/FairplexWideOT-Med.woff') format('woff'), url('../fonts/FairplexWideOT-Med.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

:root {
    --gul: #ffd61f;
    --gul-lys: #ffe55c;
    --gul-mork: #f5c400;
    --marine: #0c2d6b;
    --bla: #0a4ea8;
    --rod: #d8171a;
    --rod-mork: #b40f12;
    --tekst: #14213d;
    --dempet: #586479;
    --flate: #ffffff;
    --kant: #e4e8ee;
    --vipps: #ff5b24;
    --radius: 22px;
    --skygge: 0 10px 30px rgba(12, 45, 107, .14), 0 2px 6px rgba(12, 45, 107, .08);
    --overskrift: 'Populaire', 'Arial Narrow', 'Helvetica Neue', Arial, sans-serif;
    --bunnlinje: 84px;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
    font-size: 17px;
    line-height: 1.5;
    color: var(--tekst);
    background: var(--gul);
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
}
/* Lys «sol» bak innholdet, ligger fast så den ikke flytter seg ved rulling */
body::before {
    content: '';
    position: fixed; inset: 0; z-index: -1;
    background: radial-gradient(120vmax 80vmax at 50% 18%, var(--gul-lys) 0%, var(--gul) 45%, var(--gul-mork) 100%);
}
main { flex: 1; width: 100%; max-width: 1040px; margin: 0 auto; padding: 14px 16px 36px; }
a { color: var(--bla); }
img { max-width: 100%; height: auto; }
p { margin: 0 0 1em; }

h1, h2, .overskrift {
    font-family: var(--overskrift);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .035em;
    line-height: 1;
    margin: 0 0 .45em;
}
h1 { font-size: clamp(2.9rem, 13vw, 4.6rem); color: var(--rod); }
h2 { font-size: 2.1rem; color: var(--marine); }

/* ---------- Topp og bunn ---------- */
.topp {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    width: 100%; max-width: 1040px; margin: 0 auto;
    padding: 10px 16px 4px;
}
.topp a { color: var(--marine); text-decoration: none; }
.topp .merke { font-family: var(--overskrift); font-weight: 700; font-size: 1.8rem; letter-spacing: .05em; text-transform: uppercase; line-height: 1; }
.topp .merke span { color: var(--rod); }
.topp nav { display: flex; align-items: center; gap: 16px; font-size: .95rem; font-weight: 600; }
.topp button { background: none; border: 0; color: var(--marine); font: inherit; padding: 10px 0; cursor: pointer; opacity: .75; }
.bunn { text-align: center; font-size: .88rem; padding: 14px 16px 28px; color: var(--marine); }
.bunn a { color: var(--marine); margin: 0 8px; font-weight: 600; }

/* ---------- Flater og knapper ---------- */
.kort { background: var(--flate); border-radius: var(--radius); padding: 22px 20px; box-shadow: var(--skygge); }
.kort + .kort { margin-top: 16px; }

.knapp {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    min-height: 56px; padding: 10px 26px;
    border: 0; border-radius: 999px;
    background: var(--marine); color: #fff;
    font-family: var(--overskrift); font-size: 1.75rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; line-height: 1;
    text-decoration: none; cursor: pointer; white-space: nowrap;
    box-shadow: 0 4px 0 rgba(0, 0, 0, .18);
    transition: transform .08s, box-shadow .08s;
    -webkit-tap-highlight-color: transparent;
}
.knapp:active { transform: translateY(3px); box-shadow: 0 1px 0 rgba(0, 0, 0, .18); }
.knapp[disabled] { opacity: .6; cursor: default; }
.knapp.sekundar { background: #fff; color: var(--marine); box-shadow: inset 0 0 0 2px var(--marine), 0 4px 0 rgba(12, 45, 107, .18); }
.knapp.rod { background: var(--rod); box-shadow: 0 4px 0 var(--rod-mork); }
.knapp.vipps { background: var(--vipps); box-shadow: 0 4px 0 #d9440f; }
.knapp.liten { min-height: 48px; padding: 8px 18px; font-size: 1.4rem; }
.knapp.full { width: 100%; }
.knapp svg { width: 26px; height: 26px; flex: none; }
:focus-visible { outline: 3px solid var(--bla); outline-offset: 3px; }

.varsel { border-radius: 14px; padding: 12px 16px; margin: 0 0 14px; background: #fff; border-left: 6px solid var(--bla); box-shadow: var(--skygge); }
.varsel.feil { border-left-color: var(--rod); }
.varsel.ok { border-left-color: #1c9a4b; }
.liten-tekst { font-size: .9rem; color: var(--dempet); }

/* ---------- Forside ---------- */
.helt { display: grid; gap: 8px; text-align: center; padding-top: 4px; }
.helt .lokkbilde { position: relative; width: min(74vw, 340px); margin: 0 auto 6px; }
.helt .lokkbilde img { display: block; width: 100%; border-radius: 50%; filter: drop-shadow(0 16px 22px rgba(120, 80, 0, .35)); transform: rotate(-6deg); }
.helt .ingress { font-size: 1.08rem; max-width: 30em; margin-inline: auto; }
.helt .gratis {
    position: absolute; right: -6px; top: 4px;
    width: 92px; height: 92px; border-radius: 50%;
    display: grid; place-items: center;
    background: var(--rod); color: #fff;
    font-family: var(--overskrift); font-size: 1.75rem; letter-spacing: .05em; text-transform: uppercase; line-height: .9;
    transform: rotate(12deg); box-shadow: 0 6px 14px rgba(0, 0, 0, .22);
}
.trinn { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; counter-reset: trinn; }
.trinn li { counter-increment: trinn; display: grid; grid-template-columns: 46px 1fr; gap: 14px; align-items: center; }
.trinn li::before {
    content: counter(trinn); width: 46px; height: 46px; border-radius: 50%;
    background: var(--gul); color: var(--marine);
    font-family: var(--overskrift); font-size: 1.8rem; line-height: 1;
    display: grid; place-items: center;
}
.trinn strong { display: block; }
.trinn span { color: var(--dempet); font-size: .95rem; }

/* ---------- Designer ---------- */
.designer { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; padding-bottom: calc(var(--bunnlinje) + 8px); }
.designer > *, .sider > * { min-width: 0; }

.framdrift { list-style: none; display: flex; gap: 6px; padding: 0; margin: 0; }
.framdrift li {
    flex: 1; text-align: center;
    font-family: var(--overskrift); font-size: 1.25rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; line-height: 1;
    color: rgba(12, 45, 107, .55);
    padding-top: 9px; border-top: 6px solid rgba(12, 45, 107, .16); border-radius: 3px 3px 0 0;
}
.framdrift li.er-aktiv { color: var(--rod); border-top-color: var(--rod); }
.framdrift li.er-ferdig { color: var(--marine); border-top-color: var(--marine); }

/* Scenen: lokket på gul bakgrunn. Dekker hele bredden og er ugjennomsiktig,
   slik at kortene under aldri synes gjennom eller bak lokket når den står fast. */
.scene {
    margin: 0 -16px; padding: 6px 16px 14px;
    display: grid; place-items: center;
    background: var(--gul);
    z-index: 5;
}
body[data-steg="2"] .scene, body[data-steg="3"] .scene {
    position: sticky; top: 0;
    box-shadow: 0 10px 14px -12px rgba(120, 80, 0, .55);
}
.lerret {
    position: relative;
    width: min(66vw, 30dvh, 400px);
    aspect-ratio: 1; border-radius: 50%;
    background: #fff;
    box-shadow: 0 14px 26px rgba(120, 80, 0, .35), 0 2px 5px rgba(0, 0, 0, .15);
    transition: width .2s ease;
}
body[data-steg="2"] .lerret { width: min(86vw, 44dvh, 440px); }
body[data-steg="3"] .lerret { width: min(62vw, 27dvh, 440px); }
body[data-steg="4"] .lerret { width: min(46vw, 24dvh, 200px); }
.lerret canvas { display: block; width: 100%; height: 100%; border-radius: 50%; touch-action: none; user-select: none; -webkit-user-select: none; cursor: pointer; }
body[data-steg="2"].har-bilde .lerret canvas { cursor: grab; }
.hint {
    margin: 10px 0 0; text-align: center;
    font-size: .9rem; font-weight: 600; color: var(--marine);
}
body:not([data-steg="2"]) .hint, body:not(.har-bilde) .hint { display: none; }

.panel { background: var(--flate); border-radius: var(--radius); padding: 20px 18px; box-shadow: var(--skygge); }
.panel h2 { margin-bottom: .5em; }
.panel h2 + .liten-tekst { margin-top: -.5em; }
.panel h2:not(:first-child) { margin-top: 1em; }

/* Motiver: én rad som kan sveipes sidelengs */
.maler {
    display: flex; gap: 10px;
    margin: 0 -18px; padding: 4px 18px 12px;
    overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.maler::-webkit-scrollbar { display: none; }
.mal {
    flex: 0 0 96px; scroll-snap-align: start;
    background: #fff; border: 0; border-radius: 16px; padding: 6px 4px 8px;
    display: grid; gap: 4px; justify-items: center; cursor: pointer;
    font: inherit; font-size: .78rem; font-weight: 600; color: var(--dempet);
    box-shadow: inset 0 0 0 2px var(--kant);
}
.mal img { width: 78px; height: 78px; object-fit: contain; }
.mal.er-valgt { color: var(--marine); box-shadow: inset 0 0 0 3px var(--marine); background: #f2f6fd; }

/* Størrelse: to store valg side om side */
.valg { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.valg label {
    position: relative; display: grid; gap: 2px; justify-items: center; text-align: center;
    padding: 12px 8px; border-radius: 16px; cursor: pointer;
    box-shadow: inset 0 0 0 2px var(--kant);
}
.valg input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.valg strong { font-family: var(--overskrift); font-size: 1.65rem; letter-spacing: .05em; text-transform: uppercase; line-height: 1; color: var(--marine); }
.valg span { font-size: .85rem; color: var(--dempet); }
.valg label:has(input:checked) { box-shadow: inset 0 0 0 3px var(--marine); background: #f2f6fd; }
.valg label:has(input:focus-visible) { outline: 3px solid var(--bla); outline-offset: 3px; }

/* Bilde */
.filknapp { position: relative; overflow: hidden; }
.filknapp input { position: absolute; inset: 0; opacity: 0; font-size: 100px; cursor: pointer; }
.har-bilde .filknapp { background: #fff; color: var(--marine); box-shadow: inset 0 0 0 2px var(--marine), 0 4px 0 rgba(12, 45, 107, .18); min-height: 48px; font-size: 1.4rem; }
.bildeverktoy { display: none; margin-bottom: 16px; }
.har-bilde .bildeverktoy { display: block; }
.zoomrad { display: grid; grid-template-columns: 24px 1fr 30px; gap: 12px; align-items: center; color: var(--marine); margin-bottom: 14px; }
.zoomrad svg { width: 100%; height: auto; }
.zoomrad input[type="range"] { width: 100%; height: 44px; margin: 0; accent-color: var(--marine); background: transparent; }
.toknapper { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* ---------- Skjema ---------- */
.felt { display: grid; gap: 6px; margin-bottom: 16px; }
.felt:last-child { margin-bottom: 0; }
.felt label { font-weight: 700; font-size: .95rem; color: var(--marine); display: flex; justify-content: space-between; align-items: baseline; }
.felt label small { font-weight: 600; color: var(--dempet); font-variant-numeric: tabular-nums; }
.felt input[type="text"], .felt input[type="tel"], .felt input[type="email"] {
    width: 100%; min-height: 56px; padding: 10px 16px;
    font: inherit; font-size: 18px; /* 16px+ hindrer zoom i iOS */
    border: 2px solid #c8d1dd; border-radius: 14px; background: #fff; color: var(--tekst);
}
.felt input:focus { border-color: var(--marine); outline: none; box-shadow: 0 0 0 4px rgba(10, 78, 168, .18); }
.felt input.er-feil { border-color: var(--rod); box-shadow: 0 0 0 4px rgba(216, 23, 26, .14); }
.felt .hjelp { font-size: .85rem; color: var(--dempet); }
#navn { text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
#aar { letter-spacing: .12em; font-weight: 700; max-width: 9em; }
.rad { display: grid; grid-template-columns: 120px 1fr; gap: 10px; }
.feilmelding, #tekst-status.er-feil { color: var(--rod); font-size: .9rem; font-weight: 600; }
.feilmelding:empty, #tekst-status:empty { display: none; }
.samtykke { display: grid; grid-template-columns: 30px 1fr; gap: 10px; align-items: start; font-size: .95rem; cursor: pointer; }
.samtykke input { width: 26px; height: 26px; margin: 1px 0 0; accent-color: var(--marine); }
.oppsummering { list-style: none; padding: 0; margin: 0 0 14px; }
.oppsummering li { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--kant); }
.oppsummering span { color: var(--dempet); }
.oppsummering strong { text-align: right; overflow-wrap: anywhere; }
.oppsummering .gratis-linje strong { color: #14803c; }

/* Fast linje nederst med Tilbake/Neste. Innholdet får like mye luft under seg (se .designer). */
.bunnlinje {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 20;
    display: flex; gap: 10px;
    padding: 12px 16px calc(14px + env(safe-area-inset-bottom));
    background: linear-gradient(to top, var(--gul) 70%, rgba(255, 214, 31, 0));
}
.bunnlinje .knapp { flex: 1; }
.bunnlinje #tilbake { flex: 0 0 auto; padding-inline: 20px; }

#toast {
    position: fixed; left: 16px; right: 16px; bottom: calc(var(--bunnlinje) + 12px + env(safe-area-inset-bottom)); z-index: 30;
    max-width: 480px; margin: 0 auto;
    background: var(--marine); color: #fff; border-radius: 14px; padding: 13px 16px; text-align: center; font-weight: 600;
    box-shadow: var(--skygge);
    opacity: 0; transform: translateY(8px); pointer-events: none; transition: opacity .2s, transform .2s;
}
#toast.er-synlig { opacity: 1; transform: none; }

/* ---------- Mine lokk ---------- */
.ordre { display: grid; grid-template-columns: 96px 1fr; gap: 16px; align-items: center; }
.ordre img { width: 96px; height: 96px; border-radius: 50%; background: #eef2f6; object-fit: cover; box-shadow: 0 4px 10px rgba(0, 0, 0, .15); }
.ordre h2 { margin: 0 0 6px; font-size: 1.5rem; }
.merkelapp { display: inline-block; padding: 3px 12px; border-radius: 999px; font-size: .82rem; font-weight: 700; background: #eef2f6; color: var(--marine); }
.merkelapp.til_godkjenning, .merkelapp.kladd { background: #fff3c4; color: #7a5b00; }
.merkelapp.godkjent, .merkelapp.produsert { background: #dbeafe; color: var(--bla); }
.merkelapp.sendt { background: #d8f3e2; color: #146c38; }
.merkelapp.avvist { background: #fde0de; color: #a8120c; }
.lenkeknapp { background: none; border: 0; padding: 8px 0; font: inherit; color: var(--rod); text-decoration: underline; cursor: pointer; }
.innhold h1 { font-size: clamp(2.4rem, 10vw, 3.4rem); }
.innhold h2 { margin-top: 1.2em; font-size: 1.6rem; }
.innhold ul { padding-left: 1.2em; }

/* ---------- Nettbrett og PC: lokket til venstre, valgene til høyre ---------- */
@media (min-width: 860px) {
    main { padding: 24px 24px 56px; }
    .topp { padding: 18px 24px 4px; }
    .helt { grid-template-columns: 1fr 1fr; align-items: center; text-align: left; gap: 32px; padding: 24px 0; }
    .helt .ingress { margin-inline: 0; }
    .helt .lokkbilde { width: min(38vw, 430px); }
    .helt .gratis { width: 120px; height: 120px; font-size: 2.3rem; }
    .trinn { grid-template-columns: repeat(4, 1fr); gap: 20px; }
    .trinn li { grid-template-columns: 1fr; align-content: start; }

    .designer { grid-template-columns: minmax(0, 1fr) minmax(0, 440px); grid-template-areas: 'steg steg' 'scene sider'; align-items: start; gap: 20px 40px; padding-bottom: 0; }
    .framdrift { grid-area: steg; max-width: 560px; margin: 0 auto 8px; width: 100%; }
    .scene, body[data-steg="2"] .scene, body[data-steg="3"] .scene {
        grid-area: scene; position: sticky; top: 24px; margin: 0; padding: 8px 0 0; background: none; box-shadow: none;
    }
    .lerret, body[data-steg="2"] .lerret, body[data-steg="3"] .lerret, body[data-steg="4"] .lerret { width: min(100%, 62dvh, 480px); }
    .sider { grid-area: sider; }
    .panel { padding: 26px 24px; }
    .maler { flex-wrap: wrap; margin: 0; padding: 4px 0 12px; overflow: visible; }
    .mal { flex: 0 0 calc((100% - 20px) / 3); }
    .bunnlinje { position: static; background: none; padding: 18px 0 0; }
    #toast { bottom: 28px; }
}

@media (prefers-reduced-motion: reduce) {
    * { transition: none !important; scroll-behavior: auto !important; }
}
