:root {
  --bg: #0a0a0b; --bg2: #141416; --sf: #1e1e21; --sf2: #2a2a2e;
  --t1: #f3f3f3; --t2: #dddddd; --ac: #d01020; --ac2: #ff3040; --ad: #d0102022;
  --gr: #ffffff08; --bd: #ffffff14;
}
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; cursor: none !important; }
html { scroll-behavior: smooth; }
body { font-family: 'DM Sans', sans-serif; background: var(--bg); color: var(--t1); line-height: 1.65; overflow-x: hidden; font-size: 1rem; }
body::before {
  content: ''; position: fixed; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  pointer-events: none; z-index: 1000;
}
.gbg { position: fixed; inset: 0; background-image: linear-gradient(var(--gr) 1px, transparent 1px), linear-gradient(90deg, var(--gr) 1px, transparent 1px); background-size: 60px 60px; pointer-events: none; z-index: 0; }
.cur { position: fixed; width: 20px; height: 20px; border: 1px solid var(--ac); border-radius: 50%; pointer-events: none; z-index: 9999; transform: translate(-50%,-50%); transition: width .3s, height .3s, background .3s; }
.cur.hv { width: 56px; height: 56px; background: var(--ad); }
nav.topnav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; padding: 1.5rem 3rem; display: flex; justify-content: space-between; align-items: center; mix-blend-mode: difference; }
.logo { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.25rem; letter-spacing: -.02em; text-transform: uppercase; color: var(--t1); text-decoration: none; }
.logo span { color: var(--ac); }
.logo-red { color: var(--ac); }
.hero-subtitle { font-family: 'Syne', sans-serif; font-weight: 800; font-size: clamp(1.5rem,4vw,3rem); color: var(--ac); letter-spacing: 0.05em; margin-top: 0.5rem; margin-bottom: 1.5rem; }
.nav-links { display: flex; gap: 2.5rem; list-style: none; }
.nav-links a { color: var(--t1); text-decoration: none; font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; position: relative; transition: color .3s; }
.nav-links a::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 1px; background: var(--ac); transition: width .3s; }
.nav-links a:hover::after { width: 100%; }
.nav-num { color: var(--ac); font-family: 'Syne', sans-serif; font-weight: 800; letter-spacing: .05em; }
.nav-links a.active { color: var(--ac); }
.nav-links a.active::after { width: 100%; }
.nav-text { display: inline; }
@media (max-width: 1750px) {
  .nav-text { display: none; }
  .nav-links { gap: 1.5rem; }
}
.dnav { position: fixed; right: 1.25rem; top: 50%; transform: translateY(-50%); z-index: 200; display: flex; flex-direction: column; gap: .75rem; align-items: center; }
.dnav a { display: block; width: 5px; height: 5px; border-radius: 50%; background: var(--t2); transition: background .3s, transform .3s; text-decoration: none; }
.dnav a.on, .dnav a:hover { background: var(--ac); transform: scale(1.8); }
.slide-nav-btn { background: transparent; border: 1px solid var(--bd); padding: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--t2); width: 28px; height: 28px; transition: border-color .25s, color .25s, background .25s; align-self: center; }
#navUp { margin-bottom: .75rem; }
#navDown { margin-top: .75rem; }
.slide-nav-btn:hover { border-color: var(--ac); color: var(--ac); background: var(--ad); }
.slide-nav-btn:active { background: var(--ac); color: var(--t1); border-color: var(--ac); }
.slide-nav-btn.disabled { opacity: 0.18; pointer-events: none; }
.slide-nav-btn svg { width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.slide { min-height: 100vh; padding: 8rem 8vw 6rem; position: relative; display: flex; flex-direction: column; justify-content: center; border-top: 1px solid var(--bd); overflow: hidden; z-index: 1; }
.ghost { position: absolute; font-family: 'Syne', sans-serif; font-size: clamp(6rem,13vw,11rem); font-weight: 800; color: var(--gr); right: 3vw; bottom: -1rem; pointer-events: none; user-select: none; line-height: 1; }
.sh { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 3.5rem; }
.slabel { font-size: .75rem; text-transform: uppercase; letter-spacing: .2em; color: var(--ac); }
.stitle { font-family: 'Syne', sans-serif; font-weight: 800; font-size: clamp(1.5rem,3vw,2.25rem); line-height: 1.1; letter-spacing: -.025em; text-transform: uppercase; margin-top: .5rem; }
.sidx { display: none; }
@keyframes fu { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ru { from { transform: translateY(100%); } to { transform: translateY(0); } }
.rev { opacity: 0; transform: translateY(30px); transition: opacity .7s ease, transform .7s ease; }
.rev.on { opacity: 1; transform: translateY(0); }

/* S0: Hero */
#s0 { border-top: none; padding-top: 0; }
.hlabel { font-size: .8125rem; text-transform: uppercase; letter-spacing: .25em; color: var(--ac); margin-bottom: 2rem; opacity: 0; animation: fu .8s ease .2s forwards; }
.htitle { font-family: 'Syne', sans-serif; font-weight: 800; font-size: clamp(2.75rem,7vw,6.5rem); line-height: 1; letter-spacing: -.03em; text-transform: uppercase; }
.htitle .ln { display: block; overflow: hidden; }
.htitle .ln span { display: inline-block; transform: translateY(100%); animation: ru 1s cubic-bezier(.16,1,.3,1) forwards; }
.htitle .ln span:nth-child(1) { animation-delay: .3s; }
.htitle .ln:nth-child(2) span { animation-delay: .45s; color: var(--ac); }
.hero-line-sub { font-size: clamp(1.35rem, 3.5vw, 2.6rem); line-height: 1.15; margin-top: .2rem; }
.hsub { font-size: clamp(1.35rem, 3.5vw, 2.6rem); color: var(--t2); max-width: 480px; margin-top: 1.25rem; opacity: 0; animation: fu .8s ease .9s forwards; line-height: 1.35; font-weight: 300; }
.shint { position: absolute; bottom: 3rem; left: 8vw; display: flex; align-items: center; gap: 1rem; font-size: .625rem; text-transform: uppercase; letter-spacing: .2em; color: var(--t2); opacity: 0; animation: fu .6s ease 1.5s forwards; }
.shint::before { content: ''; display: block; width: 36px; height: 1px; background: var(--ac); }

/* S1: KPI / Sammendrag */
#s1 { background: var(--bg2); }
.sintro { font-size: 1rem; color: var(--t2); line-height: 1.7; max-width: 680px; margin-bottom: 2.5rem; font-weight: 300; }
.kgrid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--bd); }
.kcard { background: var(--bg2); padding: 2.5rem 2rem; position: relative; overflow: hidden; transition: background .3s; }
.kcard:hover { background: var(--sf); }
.kcard::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--ac); transform: scaleX(0); transform-origin: left; transition: transform .4s; }
.kcard:hover::before { transform: scaleX(1); }
.kval { font-family: 'Syne', sans-serif; font-weight: 800; font-size: clamp(1.0rem,2.3vw,3.5rem); color: var(--ac); line-height: 1; letter-spacing: -.03em; margin-bottom: .5rem; }
.klbl { font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; color: var(--t2); margin-bottom: 1.25rem; }
.kdesc { font-size: .875rem; color: var(--t2); line-height: 1.7; border-top: 1px solid var(--bd); padding-top: 1rem; }
.mbar { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--bd); margin-top: 1px; }
.mstep { background: var(--bg2); padding: 1.5rem 2rem; display: flex; align-items: center; gap: 1.25rem; transition: background .3s; position: relative; }
.mstep:hover { background: var(--sf); }
.myear { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.375rem; color: var(--ac); white-space: nowrap; }
.mtext { font-size: 1rem; color: var(--t2); line-height: 1.6; }

/* S2: Problem & Løsning */
.tcol { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-bottom: 2.5rem; }
.pcol, .scol { background: var(--sf); padding: 2.5rem 2rem; position: relative; }
.pcol { border-left: 3px solid var(--bd); }
.scol { border-left: 3px solid var(--ac); }
.ctitle { font-family: 'Syne', sans-serif; font-weight: 700; font-size: .9375rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 1.25rem; }
.blist { list-style: none; display: flex; flex-direction: column; gap: .75rem; }
.blist li { font-size: 1.05rem; color: var(--t2); padding-left: 1.5rem; position: relative; line-height: 1.7; }
.blist li::before { content: '—'; position: absolute; left: 0; color: var(--ac); }
.ugrid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--bd); }
.ucard { background: var(--bg); padding: 2rem 1.75rem; transition: background .3s; }
.ucard:hover { background: var(--sf); }
.unum { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.5rem; color: var(--ac); margin-bottom: .875rem; transition: color .3s; }
.ucard:hover .unum { color: var(--ac); }
.ucard h4 { font-family: 'Syne', sans-serif; font-weight: 700; font-size: .875rem; text-transform: uppercase; letter-spacing: .06em; margin-bottom: .625rem; }
.ucard p { font-size: 1rem; color: var(--t2); line-height: 1.7; }

/* S3: Team */
#s3 { background: var(--bg2); }
.tgrid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; margin-bottom: 2.5rem; }
.tcard { background: var(--sf); padding: 2.5rem 2rem; position: relative; overflow: hidden; }
.tcard::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--ac); transform: scaleX(0); transform-origin: left; transition: transform .4s; }
.tcard:hover::before { transform: scaleX(1); }
.tavatar { width: 60px; height: 60px; border-radius: 50%; background: var(--sf2); border: 1px solid var(--bd); margin-bottom: 1.25rem; display: flex; align-items: center; justify-content: center; font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.125rem; color: var(--ac); }
.tname { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.5rem; letter-spacing: -.02em; margin-bottom: .35rem; }
.trole { font-size: .875rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ac); margin-bottom: 1.5rem; }
.tskills { list-style: none; display: flex; flex-direction: column; gap: .5rem; border-top: 1px solid var(--bd); padding-top: 1rem; }
.tskills li { font-size: .875rem; color: var(--t2); padding-left: 1.25rem; position: relative; }
.tskills li::before { content: '›'; position: absolute; left: 0; color: var(--ac); }

/* Visjon - redesigned */
.vbox { background: linear-gradient(135deg, var(--sf) 0%, var(--bg2) 100%); padding: 3rem; display: flex; flex-direction: column; gap: 1.5rem; border-left: 4px solid var(--ac); position: relative; overflow: hidden; }
.vbox::before { content: ''; position: absolute; top: -50%; right: -20%; width: 400px; height: 400px; background: radial-gradient(circle, var(--ad) 0%, transparent 70%); pointer-events: none; }
.vlabel { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.25rem; text-transform: uppercase; color: var(--ac); letter-spacing: .1em; position: relative; }
.vcontent { position: relative; }
.vcontent > p { font-size: 1.35rem; color: var(--t1); line-height: 1.6; margin-bottom: 1.5rem; font-weight: 500; max-width: 800px; }
.vtags { display: flex; flex-wrap: wrap; gap: .75rem; list-style: none; }
.vtags li { font-size: .875rem; text-transform: uppercase; letter-spacing: .08em; padding: .5rem 1rem; background: var(--bg); border: 1px solid var(--bd); color: var(--t2); transition: all .3s; cursor: default; border-radius: 2px; }
.vtags li:hover { border-color: var(--ac); color: var(--t1); background: var(--sf); transform: translateY(-2px); }

/* S4: Pilot - redesigned for readability */
.pgrid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.25rem; margin-bottom: 2rem; }
.pcard { background: linear-gradient(145deg, var(--sf) 0%, var(--bg2) 100%); padding: 1.75rem 1.75rem; border-left: 3px solid var(--ac); position: relative; transition: transform .3s, box-shadow .3s; }
.pcard:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(0,0,0,0.3); }
.pcard::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: var(--ac); transform: scaleX(0); transform-origin: left; transition: transform .4s; }
.pcard:hover::before { transform: scaleX(1); }
.pnum { font-size: .875rem; letter-spacing: .12em; color: var(--ac); text-transform: uppercase; margin-bottom: 1rem; font-weight: 500; }
.pname { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.35rem; text-transform: uppercase; margin-bottom: .5rem; letter-spacing: -.01em; }
.pinfo { font-size: 1rem; color: var(--t2); letter-spacing: .02em; margin-bottom: 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--bd); }
.pbenefits { list-style: none; display: flex; flex-direction: column; gap: .625rem; }
.pbenefits li { font-size: .9375rem; color: var(--t2); padding-left: 1.5rem; position: relative; line-height: 1.6; }
.pbenefits li::before { content: '→'; position: absolute; left: 0; color: var(--ac); font-weight: bold; }
.pbenefits li strong { color: var(--t1); font-weight: 600; }
.sgrid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--bd); }
.scard { background: var(--bg); padding: 1.5rem 1.75rem; transition: background .3s; }
.scard:hover { background: var(--sf); }
.scard h4 { font-family: 'Syne', sans-serif; font-weight: 700; font-size: .9375rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ac); margin-bottom: .875rem; display: flex; align-items: center; gap: .75rem; }
.scard h4::before { content: ''; display: inline-block; width: 8px; height: 8px; background: var(--ac); border-radius: 50%; }
.scard ul { list-style: none; display: flex; flex-direction: column; gap: .5rem; }
.scard ul li { font-size: .9375rem; color: var(--t2); line-height: 1.6; padding-left: 1.5rem; position: relative; }
.scard ul li::before { content: '›'; position: absolute; left: 0; color: var(--ac); font-size: 1.2rem; line-height: 1; }

/* S5: Marked & Skallering - redesigned */
#s5 { background: var(--bg2); }
.market-layout { display: flex; flex-direction: column; gap: 1.75rem; }
.market-top { width: 100%; }
.market-bottom { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.market-bottom > .info-card { display: flex; flex-direction: column; }
.market-bottom > .info-card .geo-timeline { flex: 1; }
.market-right-stack { display: flex; flex-direction: column; gap: 1rem; }
.market-right-stack .info-card { flex: 1; display: flex; flex-direction: column; }

/* ARR Graph - full width */
.arr-section { margin-bottom: 0; }
.arr-title { font-family: 'Syne', sans-serif; font-weight: 700; font-size: .8125rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: .875rem; color: var(--t2); display: flex; align-items: center; gap: .75rem; }
.arr-title::before { content: ''; display: block; width: 24px; height: 1px; background: var(--ac); }
.arr-table { display: flex; flex-direction: column; gap: 0; background: var(--bg); border: 1px solid var(--bd); padding: .75rem 1.5rem; }
.arr-row { display: grid; grid-template-columns: 52px 1fr 120px; gap: 1.25rem; align-items: center; padding: .6rem 0; border-bottom: 1px solid var(--bd); }
.arr-row:last-child { border-bottom: none; }
.arr-year { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.25rem; color: var(--t1); }
.arr-bar-wrap { height: 8px; background: var(--sf2); position: relative; border-radius: 4px; overflow: hidden; margin-left: 2rem; }
.arr-bar { height: 100%; background: linear-gradient(90deg, var(--ac) 0%, var(--ac2) 100%); transition: width 1.2s ease; width: 0; border-radius: 4px; }
.arr-val { font-size: .875rem; color: var(--t1); text-align: right; font-weight: 500; letter-spacing: -.01em; font-family: 'Syne', sans-serif; }

/* Info cards - no icons */
.info-card { background: var(--bg); padding: 1.25rem 1.5rem; border-left: 3px solid var(--ac); transition: background .3s; }
.info-card:hover { background: var(--sf); }
.info-title { font-family: 'Syne', sans-serif; font-weight: 700; font-size: .8125rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: .625rem; color: var(--t1); }
.info-content { font-size: .875rem; color: var(--t2); line-height: 1.6; }
.info-content ul { list-style: none; display: flex; flex-direction: column; gap: .375rem; margin-top: .5rem; }
.info-content li { padding-left: 1.25rem; position: relative; }
.info-content li::before { content: '—'; position: absolute; left: 0; color: var(--ac); }

/* Geo timeline */
.geo-timeline { display: flex; flex-direction: column; gap: 0; position: relative; flex: 1; justify-content: space-around; }
.geo-timeline::before { content: ''; position: absolute; left: 18px; top: 0; bottom: 0; width: 1px; background: var(--bd); }
.geo-item { display: flex; align-items: flex-start; gap: 1rem; padding: .5rem 0; position: relative; }
.geo-item:first-child { padding-top: 0; }
.geo-item:last-child { padding-bottom: 0; }
.geo-dot { width: 12px; height: 12px; background: var(--ac); border-radius: 50%; flex-shrink: 0; margin-top: 3px; position: relative; z-index: 1; box-shadow: 0 0 0 3px var(--bg); }
.geo-year { font-family: 'Syne', sans-serif; font-weight: 700; font-size: .75rem; color: var(--ac); text-transform: uppercase; letter-spacing: .05em; margin-bottom: .125rem; }
.geo-desc { font-size: .875rem; color: var(--t2); line-height: 1.5; }

/* S6: Forretningsmodell - redesigned with graphics */
.table-wrapper { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (min-width: 768px) { .table-wrapper { overflow-x: visible; } }
/* Custom scrollbar styling */
.table-wrapper::-webkit-scrollbar { height: 8px; width: 8px; }
.table-wrapper::-webkit-scrollbar-track { background: var(--bg2); border-radius: 4px; }
.table-wrapper::-webkit-scrollbar-thumb { background: var(--ac); border-radius: 4px; }
.table-wrapper::-webkit-scrollbar-thumb:hover { background: var(--ac2); }
/* Firefox scrollbar */
.table-wrapper { scrollbar-width: thin; scrollbar-color: var(--ac) var(--bg2); }
.price-table { width: 100%; border-collapse: collapse; background: var(--bg); border: 1px solid var(--bd); min-width: 850px; }
.price-table th { font-size: .875rem; text-transform: uppercase; letter-spacing: .1em; color: var(--t1); padding: 1rem 1.25rem; text-align: left; border-bottom: 3px solid var(--ac); background: var(--sf); font-weight: 600; white-space: nowrap; }
.price-table td { font-size: 1rem; padding: 1.1rem 1.25rem; border-bottom: 1px solid var(--bd); vertical-align: top; white-space: nowrap; }
.price-table tr:hover td { background: var(--sf); }
.price-table td:first-child { font-family: 'Syne', sans-serif; font-weight: 700; color: var(--t1); font-size: 1.125rem; }
.price-table td:not(:first-child) { color: var(--t2); }
.price-table td strong { color: var(--ac); font-style: normal; font-size: 1.25rem; }
.price-note { font-size: .9375rem; color: var(--t2); margin-top: 1.25rem; line-height: 1.7; border-left: 3px solid var(--ac); padding: 1rem 1.5rem 1rem 1.5rem; background: var(--sf); }
#s6 .tcol { margin-bottom: 1.1rem !important; }
#s6 .pcol, #s6 .scol { padding: 1.6rem 1.5rem; }
#s6 .ctitle { margin-bottom: .85rem; }
#s6 .blist { gap: .55rem; }
#s6 .blist li { font-size: .98rem; line-height: 1.55; }
#s6 .price-table th { padding: .72rem .95rem; font-size: .74rem; }
#s6 .price-table td { padding: .72rem .95rem; font-size: .92rem; }
#s6 .price-table td strong { font-size: 1.05rem; }
#s6 .price-table + .ctitle { margin-top: .9rem; }
#s6 .price-note { margin-top: .8rem; padding: .75rem 1rem; line-height: 1.55; font-size: .875rem; }

/* S6: Addon / tilleggstjenester */
.addons-grid { display: grid; grid-template-columns: 1fr; gap: 1px; }
.addon-card { background: linear-gradient(145deg, var(--sf) 0%, var(--bg2) 100%); border-left: 3px solid var(--ac); padding: 1.5rem 2rem; position: relative; overflow: hidden; transition: background .3s; }
.addon-card:hover { background: var(--sf); }
.addon-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--ac); transform: scaleX(0); transform-origin: left; transition: transform .4s; }
.addon-card:hover::before { transform: scaleX(1); }
.addon-header { display: flex; align-items: center; gap: 1.25rem; margin-bottom: .875rem; }
.addon-tag { font-size: .75rem; text-transform: uppercase; letter-spacing: .15em; color: var(--ac); padding: .35rem .875rem; background: var(--ad); border: 1px solid var(--ac); border-radius: 2px; }
.addon-price { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.375rem; color: var(--t1); letter-spacing: -.02em; }
.addon-body { display: grid; grid-template-columns: 1fr auto; gap: 2.5rem; align-items: start; }
.addon-main { min-width: 0; }
.addon-title { font-family: 'Syne', sans-serif; font-weight: 700; font-size: .9375rem; text-transform: uppercase; letter-spacing: .06em; margin-bottom: .625rem; }
.addon-desc { font-size: .9375rem; color: var(--t2); line-height: 1.7; max-width: 860px; }
.addon-features { list-style: none; display: flex; flex-direction: column; gap: .625rem; min-width: 280px; }
.addon-features li { font-size: .875rem; color: var(--t2); padding-left: 1.25rem; position: relative; }
.addon-features li::before { content: '→'; position: absolute; left: 0; color: var(--ac); font-weight: bold; }

/* Pricing cards for visual impact */
.pricing-visual { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; margin-bottom: 3rem; }
.price-card { background: linear-gradient(145deg, var(--sf) 0%, var(--bg2) 100%); border: 1px solid var(--bd); padding: 2.5rem; position: relative; overflow: hidden; }
.price-card.featured { border-color: var(--ac); border-width: 2px; }
.price-card.featured::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--ac); }
.price-badge { display: inline-block; font-size: .75rem; text-transform: uppercase; letter-spacing: .15em; color: var(--ac); padding: .5rem 1rem; background: var(--ad); border-radius: 2px; margin-bottom: 1.5rem; }
.price-amount { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 3rem; color: var(--t1); line-height: 1; margin-bottom: .5rem; }
.price-period { font-size: 1rem; color: var(--t2); margin-bottom: 2rem; }
.price-features { list-style: none; display: flex; flex-direction: column; gap: 1rem; }
.price-features li { font-size: 1rem; color: var(--t2); padding-left: 1.75rem; position: relative; line-height: 1.6; }
.price-features li::before { content: '✓'; position: absolute; left: 0; color: var(--ac); font-weight: bold; font-size: 1.125rem; }

/* S7: Budsjett & Finansiering - horizontal timeline */
#s7 { background: var(--bg2); }
.budget-timeline { display: flex; flex-direction: row; gap: 1.5rem; position: relative; margin-bottom: 2rem; }
.budget-timeline::before { content: ''; position: absolute; left: 0; right: 0; top: 24px; height: 3px; background: linear-gradient(90deg, var(--ac) 0%, var(--sf2) 100%); }
.budget-phase { display: flex; flex-direction: column; align-items: center; flex: 1; padding: 0; position: relative; text-align: center; }
.phase-marker { width: 50px; height: 50px; background: var(--bg); border: 3px solid var(--ac); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.125rem; color: var(--ac); position: relative; z-index: 1; box-shadow: 0 0 0 6px var(--bg2); margin-bottom: 1.25rem; }
.phase-content { width: 100%; background: var(--sf); padding: 1.25rem; border-top: 3px solid var(--ac); }
.phase-header { display: flex; flex-direction: column; align-items: center; margin-bottom: 1rem; gap: .5rem; }
.phase-title { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.125rem; color: var(--t1); margin-bottom: .25rem; }
.phase-period { font-size: .875rem; color: var(--ac); text-transform: uppercase; letter-spacing: .08em; }
.phase-budget { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.25rem; color: var(--ac); margin-top: .375rem; }
.phase-desc { font-size: .875rem; color: var(--t2); line-height: 1.55; }

/* Funding summary cards */
.funding-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--bd); margin-bottom: 1.5rem; }
.funding-card { background: var(--bg); padding: 1.25rem; text-align: center; transition: background .3s; }
.funding-card:hover { background: var(--sf); }
.funding-name { font-size: .875rem; color: var(--t2); text-transform: uppercase; letter-spacing: .08em; margin-bottom: .75rem; }
.funding-amount { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.5rem; color: var(--t1); margin-bottom: .25rem; }
.funding-total { font-size: .875rem; color: var(--ac); }

.budget-summary { font-size: 1rem; color: var(--t2); line-height: 1.75; padding: 1.25rem 1.5rem; background: linear-gradient(135deg, var(--sf) 0%, var(--bg2) 100%); border-left: 4px solid var(--ac); }

/* S8: Konkurranse & Risiko - larger text */
.comp-table { width: 100%; border-collapse: collapse; margin-bottom: 2rem; background: var(--bg); border: 1px solid var(--bd); min-width: 750px; }
.comp-table th { font-size: .9375rem; text-transform: uppercase; letter-spacing: .1em; color: var(--t1); padding: 1rem 1.25rem; text-align: left; border-bottom: 3px solid var(--ac); background: var(--sf); font-weight: 600; white-space: nowrap; }
.comp-table td { font-size: 1rem; padding: 1.1rem 1.25rem; border-bottom: 1px solid var(--bd); color: var(--t2); vertical-align: top; line-height: 1.65; white-space: nowrap; }
.comp-table tr:hover td { background: var(--sf); }
.comp-table td:first-child { font-family: 'Syne', sans-serif; font-weight: 700; color: var(--t1); font-size: 1.125rem; }
.comp-table td:last-child { color: var(--ac); font-weight: 500; }

.risk-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.25rem; }
.risk-card { background: linear-gradient(145deg, var(--sf) 0%, var(--bg2) 100%); padding: 1.75rem; border-left: 3px solid var(--ac); transition: transform .3s; }
.risk-card:hover { transform: translateX(8px); }
.risk-card h4 { font-family: 'Syne', sans-serif; font-weight: 700; font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; margin-bottom: .75rem; color: var(--t1); display: flex; align-items: center; gap: .75rem; }
.risk-card h4::before { content: '⚠'; color: var(--ac); font-size: 1.125rem; }
.risk-card p { font-size: .9375rem; color: var(--t2); line-height: 1.65; }

.risk-note { font-size: 1rem; color: var(--t2); line-height: 1.7; padding: 1.25rem 1.5rem; background: var(--sf); border-left: 3px solid var(--ac); margin-bottom: 1.5rem; }

/* S9: Konklusjon - with more PUNCH */
#s9 { background: var(--bg2); }
#s11 { background: var(--bg2); }
.win-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; margin-bottom: 3rem; }
.win-card { background: linear-gradient(145deg, var(--sf) 0%, var(--bg2) 100%); padding: 3rem 2rem; position: relative; overflow: hidden; border: 1px solid var(--bd); transition: transform .3s, box-shadow .3s; }
.win-card:hover { transform: translateY(-8px); box-shadow: 0 30px 60px rgba(0,0,0,0.4); }
.win-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--ac); }
.win-card::after { content: ''; position: absolute; top: -50%; right: -30%; width: 200px; height: 200px; background: radial-gradient(circle, var(--ad) 0%, transparent 70%); pointer-events: none; }
.win-num { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 4rem; color: var(--sf2); line-height: 1; margin-bottom: 1.5rem; transition: color .3s; }
.win-card:hover .win-num { color: var(--ac); }
.win-card h3 { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.25rem; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 1.25rem; }
.win-card p { font-size: 1.0625rem; color: var(--t2); line-height: 1.8; }

.conclusion-cta { padding: 4rem 3rem; background: linear-gradient(180deg, var(--bg2) 0%, var(--sf) 100%); border-top: 1px solid var(--bd); border-bottom: 1px solid var(--bd); position: relative; text-align: center; }
.conclusion-cta::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 120px; height: 3px; background: var(--ac); }
.conclusion-content { max-width: 720px; margin: 0 auto; }
.conclusion-lead { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.5rem; color: var(--t1); letter-spacing: .02em; margin-bottom: 1.5rem; line-height: 1.4; }
.conclusion-body { font-size: 1.125rem; color: var(--t2); line-height: 1.8; margin-bottom: 2rem; font-weight: 400; }
.conclusion-close { font-family: 'Syne', sans-serif; font-weight: 700; font-size: .9375rem; text-transform: uppercase; letter-spacing: .15em; color: var(--ac); margin-top: 1rem; }

/* Footer */
footer { padding: 3rem 8vw; border-top: 1px solid var(--bd); display: flex; justify-content: space-between; align-items: center; font-size: .875rem; color: var(--t2); z-index: 1; position: relative; }
.footer-note { letter-spacing: .05em; }
.footer-conf { text-transform: uppercase; letter-spacing: .12em; color: var(--ac); font-size: .75rem; }

/* Responsive */
@media (max-width: 1024px) {
  .kgrid { grid-template-columns: repeat(2,1fr); }
  .tgrid, .pgrid, .win-grid { grid-template-columns: 1fr 1fr; }
  .ugrid { grid-template-columns: repeat(2,1fr); }
  .market-layout, .budget-layout { grid-template-columns: 1fr; gap: 3rem; }
  .tcol { grid-template-columns: 1fr; }
  .nav-links { display: none; }
  .mbar { grid-template-columns: 1fr; }
  .mstep { padding: 1.25rem 1.5rem; }
  .market-bottom { grid-template-columns: 1fr; }
  .pricing-visual { grid-template-columns: 1fr; }
  .funding-grid { grid-template-columns: repeat(2, 1fr); }
  .budget-phase { flex-direction: column; gap: 1rem; }
  .phase-content { width: 100%; }
  .risk-grid { background: none; gap: 1rem; }
  .sgrid { gap: 1rem; background: none; }
}
@media (max-width: 640px) {
  .kgrid, .tgrid, .pgrid, .ugrid, .sgrid, .risk-grid, .win-grid { grid-template-columns: 1fr; }
  .dnav { display: none; }
  .vbox { grid-template-columns: 1fr; }
  .mbar { grid-template-columns: 1fr; }
  .mstep { flex-direction: column; align-items: flex-start; gap: .5rem; padding: 1rem; }
  .myear { font-size: 1.1rem; }
  .mtext { font-size: .95rem; }
  .market-bottom { grid-template-columns: 1fr; }
  .info-card { padding: 1.5rem; }
  .info-icon { width: 40px; height: 40px; font-size: 1.25rem; }
  .arr-row { grid-template-columns: 50px 1fr 100px; gap: 1rem; padding: 1rem 0; }
  .arr-year { font-size: 1rem; }
  .arr-val { font-size: .875rem; }
  .price-card { padding: 1.75rem; }
  .price-amount { font-size: 2.25rem; }
  .budget-timeline { flex-direction: column; gap: 1.5rem; }
  .budget-timeline::before { left: 24px; right: auto; top: 0; bottom: 0; width: 3px; height: auto; }
  .budget-phase { flex-direction: row; align-items: flex-start; text-align: left; }
  .phase-marker { width: 40px; height: 40px; font-size: 1rem; margin-bottom: 0; margin-right: 1rem; flex-shrink: 0; }
  .phase-content { padding: 1.25rem; border-top: none; border-left: 3px solid var(--ac); }
  .phase-budget { font-size: 1.25rem; }
  .win-num { font-size: 3rem; }
  .conclusion-cta { font-size: 1.125rem; padding: 2rem; }
  .funding-grid { grid-template-columns: 1fr; }
}
