/* ==========================================================
   Sustainability reporting for Lilleakerbyen
   Colours taken from the XD design (2026-05-20).
   The fonts must be licensed for web use and placed in /fonts.
========================================================== */
@font-face { font-family: "Domaine Sans Text"; src: url("../fonts/DomaineSansText-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Domaine Sans Text"; src: url("../fonts/DomaineSansText-Medium.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Post Grotesk"; src: url("../fonts/PostGrotesk-Book.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Post Grotesk"; src: url("../fonts/PostGrotesk-Medium.woff2") format("woff2"); font-weight: 500; font-display: swap; }

:root {
  --lb-forest: #062916;     /* sidebar, darkest bar */
  --lb-pine: #144623;
  --lb-evergreen: #206c4c;
  --lb-sage: #699e71;
  --lb-mint: #e9f1ea;       /* strategy cards */
  --lb-panel: #f6f6f6;      /* chart background */
  --lb-line: #dcdcdc;
  --lb-ink: #111;
  --lb-muted: #6b6b6b;
  --lb-white: #fff;

  --font-display: "Domaine Sans Text", "Helvetica Neue", Arial, sans-serif;
  --font-body: "Post Grotesk", "Helvetica Neue", Arial, sans-serif;

  --radius: 6px;
  --radius-btn: 4px; /* buttons as on lilleakerbyen.no */
  --sidebar-w: 336px;
  --gutter: clamp(24px, 12vw, 232px);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--lb-white); color: var(--lb-ink); font: 400 19px/1.55 var(--font-body); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 400; letter-spacing: .01em; margin: 0; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }

/* ---------- Sidebar ---------- */
.sidebar {
  position: fixed; inset: 0 auto 0 0; width: var(--sidebar-w); z-index: 20;
  background: var(--lb-forest); color: var(--lb-white);
  display: flex; flex-direction: column; padding: 52px 48px 30px; overflow-y: auto;
}
.sidebar__logo { display: block; width: 136px; margin: 0 auto 64px; }
.sidebar__title { display: block; font-size: 15px; letter-spacing: .04em; text-transform: uppercase; text-decoration: none; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.35); margin-bottom: 36px; }
.nav, .nav ul { list-style: none; margin: 0; padding: 0; }
.nav a { text-decoration: none; }
.nav__report { display: flex; flex-direction: column; gap: 2px; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.25); }
.nav__top { font-size: 15px; color: rgba(255,255,255,.8); padding: 4px 0; }
.nav__top:hover, .nav__top[aria-current] { color: var(--lb-white); }
.nav__heading { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.5); margin-bottom: 8px; }
.nav__strategy-link { display: grid; grid-template-columns: 24px 1fr; font-family: var(--font-display); font-size: 16px; letter-spacing: .02em; padding: 7px 0; color: rgba(255,255,255,.75); }
.nav__strategy-link:hover { color: var(--lb-white); }
.nav__num { opacity: .6; }
.nav__strategy.is-active > .nav__strategy-link { color: var(--lb-white); font-weight: 500; }
.nav__strategy.is-active > .nav__strategy-link .nav__num { opacity: 1; }
.nav__sub { margin: 4px 0 14px 16px !important; padding-left: 0 !important; }
.nav__section { display: block; font-size: 14px; line-height: 1.35; color: rgba(255,255,255,.7); padding: 5px 8px; margin-left: -8px; border-radius: 6px; }
.nav__section:hover { color: var(--lb-white); }
.nav__section[aria-current] { color: var(--lb-forest); background: var(--lb-mint); }
.sidebar__footer { margin-top: auto; padding-top: 40px; font-size: 15px; }

/* ---------- Main content ---------- */
.main { margin-left: var(--sidebar-w); }
.hero { position: relative; height: 64vh; min-height: 440px; max-height: 760px; display: grid; place-items: center; overflow: hidden; background: var(--lb-pine); }
.hero img, .hero .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.18); }
.hero--low { align-items: end; padding-bottom: 14vh; }
.hero--low::after { background: linear-gradient(to top, rgba(6,41,22,.8), rgba(6,41,22,0) 55%); }
.hero h1 { position: relative; z-index: 1; text-shadow: 0 2px 28px rgba(0,0,0,.45); color: var(--lb-white); text-align: center; font-size: clamp(30px, 4.4vw, 84px); hyphens: auto; line-height: 1.12; padding: 0 24px; }

.strip { height: 104px; position: relative; overflow: hidden; background: var(--lb-pine); }
.strip img, .strip .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.caption { max-width: 260px; margin: 18px 12px 0 auto; text-align: right; font-size: 11px; line-height: 1.3; color: var(--lb-muted); }
.caption strong { display: block; font-weight: 400; text-transform: uppercase; }

.content { max-width: 1090px; margin: 0 clamp(24px, 4vw, 96px) 0 var(--gutter); padding: 40px 0 80px; }
.page-title { font-size: clamp(28px, 3.2vw, 54px); hyphens: auto; line-height: 1.12; margin-bottom: 52px; }
.prose { max-width: 650px; }
.prose p { margin: 0 0 1.55em; }
.intro-grid { display: grid; grid-template-columns: minmax(0, 650px) 330px; justify-content: space-between; gap: 48px; }
.goals { font-size: 16px; line-height: 1.35; color: #444; }
.goals dt { font-weight: 500; }
.goals dd { margin: 0 0 24px; padding-bottom: 24px; border-bottom: 1px solid #555; }
.goals dd:last-child { border: 0; }

.wide-img { margin: 80px 0; border-radius: 4px; overflow: hidden; aspect-ratio: 1120 / 320; }
.wide-img img { width: 100%; height: 100%; object-fit: cover; }

.section-title { font-size: clamp(28px, 2vw, 36px); margin: 120px 0 18px; }
.lede { max-width: 650px; margin-bottom: 52px; }

.cards { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.card { display: flex; flex-direction: column; justify-content: space-between; min-height: 260px; padding: 36px 24px 24px; background: var(--lb-mint); text-decoration: none; transition: background .2s; }
.card:hover { background: #dbe8dd; }
.card h3 { font-size: 26px; line-height: 1.2; }
.card span { font-size: 14px; text-transform: uppercase; letter-spacing: .02em; }

/* ---------- Indicators ---------- */
.indicator { padding: 90px 0 40px; border-top: 1px solid var(--lb-line); scroll-margin-top: 20px; }
.indicator:first-of-type { border-top: 0; }
.indicator h3 { font-size: clamp(24px, 1.7vw, 30px); line-height: 1.2; margin-bottom: 24px; }
.indicator h4 { font-size: 22px; line-height: 1.3; margin-bottom: 36px; }
.indicator .text p { margin: 0 0 1.5em; }

.panel { background: var(--lb-panel); border-radius: 4px; padding: 48px; margin: 48px 0 24px; display: grid; grid-template-columns: 1fr; gap: 40px; }
.panel--side { grid-template-columns: 1fr 280px; }
.panel h5 { margin: 0 0 28px; font: 400 19px/1.3 var(--font-body); }
.legend { display: flex; flex-wrap: wrap; gap: 8px 28px; list-style: none; margin: 0 0 36px; padding: 0; font-size: 15px; }
.legend li { display: flex; align-items: center; gap: 10px; }
.legend i { width: 18px; height: 18px; border-radius: 50%; }
.chart svg { width: 100%; height: auto; overflow: visible; font-family: var(--font-body); }
.note { font-size: 13px; margin: 16px 0 0; }
.side-list { font-size: 13px; line-height: 1.5; }
.side-list p { margin: 0 0 18px; }
.year-acc { border: 0; margin: 0 0 6px; }
.year-acc summary { list-style: none; display: flex; justify-content: space-between; cursor: pointer; padding: 3px 0; }
.year-acc summary::-webkit-details-marker { display: none; }
.year-acc summary::after { content: ""; width: 7px; height: 7px; border: solid currentColor; border-width: 0 1px 1px 0; transform: rotate(45deg); margin: 4px 4px 0 0; }
.year-acc[open] summary::after { transform: rotate(-135deg); margin-top: 8px; }
.year-acc div { padding: 4px 0 14px; }

.tabs { display: flex; gap: 22px; margin-bottom: 36px; }
.tabs button { font-size: 16px; letter-spacing: .04em; padding-bottom: 4px; border-bottom: 2px solid transparent; }
.tabs button[aria-selected="true"] { font-weight: 500; border-color: var(--lb-ink); }

.qual { margin-bottom: 40px; }
.qual summary { list-style: none; display: inline-flex; align-items: center; gap: 12px; font-size: 15px; cursor: pointer; }
.qual summary::-webkit-details-marker { display: none; }
.qual summary::after { content: ""; width: 7px; height: 7px; border: solid currentColor; border-width: 0 1px 1px 0; transform: rotate(45deg); margin-top: -4px; }
.qual[open] summary::after { transform: rotate(-135deg); margin-top: 4px; }
.qual > div { max-width: 650px; padding-top: 16px; font-size: 17px; }

/* ---------- Evaluering ---------- */
.evaluation { background: none !important; padding: 0 !important; margin-top: 40px !important; }
.evaluation > h3 { margin-bottom: 8px; }
.eval-block { margin-top: 40px; }
.eval-block h4 { font: 500 14px/1.3 var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--lb-muted); margin: 0 0 16px; }
.eval-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 900px) { .eval-cards { grid-template-columns: 1fr; } }
.eval-card { display: flex; gap: 14px; background: var(--lb-mint); padding: 24px; }
.eval-card__icon { width: 28px; height: 28px; color: var(--lb-evergreen); margin-top: 2px; }
.eval-card h5 { font: 400 20px/1.3 var(--font-display); margin: 0 0 8px; }
.evaluation .eval-card p, .evaluation .eval-steps p { margin: 0 0 6px; font-size: 16px; line-height: 1.5; white-space: normal; }
.eval-card .more summary, .eval-steps .more summary { font-size: 14px; margin: 0; }
.eval-card .more, .eval-steps .more { margin: 0; }
.eval-block--actions { background: var(--lb-forest); color: var(--lb-white); padding: 32px; }
.eval-block--actions h4 { color: rgba(255,255,255,.7); }
.eval-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.eval-steps li { display: grid; grid-template-columns: 40px 1fr; gap: 12px; align-items: start; }
.eval-step__num { width: 32px; height: 32px; border-radius: 50%; background: var(--lb-mint); color: var(--lb-forest); display: grid; place-items: center; font-weight: 500; font-size: 15px; }
.eval-block--actions .more summary { color: #a6c3a3; }

/* ---------- Stories on the front page ---------- */
.stories { margin-top: 96px; scroll-margin-top: 20px; }
.stories__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.stories__head .section-title { margin: 0; }
.stories__arrows { display: flex; gap: 8px; }
.stories__arrows button { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--lb-line); background: var(--lb-white); font-size: 20px; }
.stories__arrows button:hover { border-color: var(--lb-forest); }
.stories__arrows button:disabled { opacity: .35; cursor: default; }
.stories__row { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, calc((100% - 48px) / 3)); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.stories__row::-webkit-scrollbar { display: none; }
.story-card { scroll-snap-align: start; display: flex; flex-direction: column; background: var(--lb-panel); text-decoration: none; border-radius: var(--radius); overflow: hidden; transition: background .2s; }
.story-card:hover { background: var(--lb-mint); }
.story-card img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.story-card__meta { font-size: 13px; letter-spacing: .04em; color: var(--lb-muted); padding: 20px 24px 0; }
.story-card__title { font-family: var(--font-display); font-size: 22px; line-height: 1.25; padding: 8px 24px 28px; }
@media (max-width: 900px) { .stories__row { grid-auto-columns: 78%; gap: 12px; } .stories__arrows { display: none; } }
.older-stories { margin-top: 64px; }

.sidebar__footer p { margin: 0; }
.sidebar__ext { display: inline-block; font-size: 15px; text-decoration: none; padding: 10px 14px; margin-bottom: 20px; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; }
.sidebar__ext:hover { background: rgba(255,255,255,.1); border-color: var(--lb-white); }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

address { font-style: normal; }
.sidebar__contact { display: flex; flex-direction: column; gap: 2px; font-size: 14px; margin-bottom: 18px; color: rgba(255,255,255,.8); }
.sidebar__contact strong { font-weight: 500; color: var(--lb-white); margin-bottom: 2px; }
.sidebar__contact a { text-decoration: none; }
.sidebar__contact a:hover { text-decoration: underline; color: var(--lb-white); }
.page-footer { max-width: 1090px; margin: 0 clamp(24px, 4vw, 96px) 0 var(--gutter); padding: 32px 0 48px; border-top: 1px solid var(--lb-line); display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; font-size: 15px; color: var(--lb-muted); }
.page-footer p { margin: 0; }
.page-footer__contact { display: flex; flex-wrap: wrap; gap: 6px 24px; align-items: baseline; color: var(--lb-ink); }
.page-footer__contact strong { font-weight: 500; flex-basis: 100%; }
.page-footer__contact a { color: var(--lb-evergreen); }
@media (max-width: 900px) { .page-footer { margin: 64px 16px 0; } }

/* ---------- Icons ---------- */
.icon { width: 24px; height: 24px; flex: none; }
.card__icon { width: 40px; height: 40px; color: var(--lb-evergreen); margin-bottom: 20px; }
.card { justify-content: flex-start; }
.card span { margin-top: auto; }
.highlight { position: relative; }
.hero__title { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.hero__icon { width: 56px; height: 56px; color: var(--lb-white); filter: drop-shadow(0 2px 12px rgba(0,0,0,.4)); }
.goaltabs button { display: inline-flex; align-items: center; gap: 8px; }
.goaltabs .icon { width: 20px; height: 20px; }
.goal-head { display: flex; gap: 24px; align-items: flex-start; }
.goal-head__icon { width: 48px; height: 48px; color: var(--lb-moss, #a6c3a3); margin-top: 4px; }
.section-title--first { margin-top: 72px; }
#strategier { scroll-margin-top: 20px; }

/* ---------- Tabs ---------- */
.tabbar { position: sticky; top: 0; z-index: 15; background: var(--lb-white); margin: 48px 0 0; border-bottom: 1px solid var(--lb-line); }
.tabbar__inner { display: flex; gap: 4px; overflow-x: auto; }
.tabbar button { font-size: 17px; padding: 18px 20px 16px; border-bottom: 3px solid transparent; white-space: nowrap; color: var(--lb-muted); }
.tabbar button:hover { color: var(--lb-ink); }
.tabbar button[aria-selected="true"] { color: var(--lb-forest); border-color: var(--lb-forest); font-weight: 500; }
.tab-panel { padding-top: 8px; }
.tab-panel .feature:first-child { padding-top: 48px; }
.results-intro { margin: 24px 0 8px; max-width: 680px; }
.goaltabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 8px; }
.goaltabs button { font-size: 15px; padding: 10px 16px; border: 1px solid var(--lb-line); border-radius: 999px; background: var(--lb-white); }
.goaltabs button:hover { border-color: var(--lb-forest); }
.goaltabs button[aria-selected="true"] { background: var(--lb-forest); border-color: var(--lb-forest); color: var(--lb-white); }
.goal-panel .goal-head { margin-top: 24px; }
.goal-hint { margin: 16px 0 8px; color: var(--lb-muted); }
.goal-panel .feature { padding-top: 32px; }

/* Indicator as a collapsed row */
.ind-card { border-bottom: 1px solid var(--lb-line); scroll-margin-top: 72px; }
.ind-card > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 48px minmax(0, 1fr) minmax(0, 300px) 20px; gap: 16px; align-items: center; padding: 20px 0; }
.ind-card > summary::-webkit-details-marker { display: none; }
.ind-card > summary::after { content: ""; width: 9px; height: 9px; border: solid var(--lb-ink); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); margin-top: -6px; transition: transform .2s; }
.ind-card[open] > summary::after { transform: rotate(-135deg); margin-top: 4px; }
.ind-card > summary:hover .ind-card__title { text-decoration: underline; text-underline-offset: 4px; }
.ind-card__id { color: var(--lb-muted); font-size: 15px; }
.ind-card__title { font-family: var(--font-display); font-size: 20px; line-height: 1.3; }
.ind-card__title .badge { margin: 0 0 0 10px; vertical-align: middle; font-size: 11px; padding: 2px 8px; }
.ind-card__value { text-align: right; line-height: 1.25; }
.ind-card__value b { font-family: var(--font-display); font-weight: 400; font-size: 26px; color: var(--lb-forest); }
.ind-card__value--text { font-size: 15px; color: var(--lb-muted); }
.ind-card__series { display: block; font-size: 13px; color: var(--lb-muted); }
.ind-card__change { display: block; font-size: 13px; color: var(--lb-muted); }
.ind-card__body { padding: 0 0 32px 64px; }
.ind-card__body .panel { margin-top: 16px; }

/* ---------- Headline figures and Kort fortalt ---------- */
.section-label { font: 500 14px/1.3 var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--lb-muted); margin: 0 0 28px; }
#intro { margin-top: 96px; scroll-margin-top: 20px; }
.goals dt a { text-decoration: none; }
.goals dt a:hover { text-decoration: underline; }
.highlights { margin: 32px 0 0; scroll-margin-top: 20px; }
#kort-fortalt { margin-top: 96px; }
#kort-fortalt + .photo { margin-top: 96px; }
.highlights > h3 { font: 500 14px/1.3 var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--lb-muted); margin-bottom: 20px; }
.highlights__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px; }
.highlight { text-decoration: none; display: block; background: var(--lb-mint); transition: background .2s; }
.highlight:hover { background: #dbe8dd; }
.stat { display: flex; flex-direction: column; gap: 4px; }
.stat--card { padding: 24px 24px 28px; height: 100%; }
.stat__label { font-size: 15px; line-height: 1.35; }
.stat__value { font-family: var(--font-display); font-size: clamp(30px, 2.4vw, 42px); line-height: 1.1; color: var(--lb-forest); }
.stat__unit { font-family: var(--font-body); font-size: 17px; color: var(--lb-ink); }
.stat--card .stat__value { font-size: clamp(26px, 1.9vw, 34px); }
.stat__change { font-size: 14px; color: var(--lb-muted); }
.stats { display: flex; flex-wrap: wrap; gap: 16px 56px; align-items: flex-end; margin: 8px 0 32px; padding: 20px 0; border-top: 1px solid var(--lb-line); border-bottom: 1px solid var(--lb-line); }
.stats__year { flex-basis: 100%; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--lb-muted); }
.indicator__official { font-size: 14px; color: var(--lb-muted); margin: -12px 0 24px; max-width: 760px; }

/* ---------- Images ---------- */
.photo { margin: 40px 0; }
.photo img { width: 100%; height: auto; display: block; }
.photo--wide img { aspect-ratio: 16 / 9; object-fit: cover; }
.photo--inline { max-width: 650px; }
.photo figcaption { font-size: 14px; line-height: 1.45; color: var(--lb-muted); margin-top: 10px; max-width: 650px; }
.photo figcaption strong { font-weight: 500; color: var(--lb-ink); letter-spacing: .04em; text-transform: uppercase; font-size: 12px; margin-right: 4px; }
.photo-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 40px 0; }
.photo-pair .photo { margin: 0; }
.photo-pair img { aspect-ratio: 4 / 5; object-fit: cover; }
.gallery { margin-top: 80px; scroll-margin-top: 20px; }
.gallery__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; margin-top: 20px; }
.gallery .photo { margin: 0; }
.gallery img { aspect-ratio: 4 / 3; object-fit: cover; }

/* Before/after */
.compare__frame { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--lb-panel); }
.compare__frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .4s; }
.compare__frame img.is-shown { opacity: 1; }
.compare__btns { position: absolute; left: 16px; bottom: 16px; display: flex; background: rgba(255,255,255,.92); border-radius: 999px; padding: 4px; box-shadow: 0 2px 12px rgba(0,0,0,.15); }
.compare__btns button { font-size: 15px; padding: 8px 16px; border-radius: 999px; }
.compare__btns button[aria-pressed="true"] { background: var(--lb-forest); color: var(--lb-white); }

/* ---------- Articles ---------- */
.feature { padding: 96px 0 24px; scroll-margin-top: 20px; }
.story { max-width: 680px; font-size: 20px; line-height: 1.7; }
.story p { margin: 0 0 1.4em; }
.story .photo, .story .photo-pair { margin: 48px 0; }
.story .factbox { margin: 40px 0; font-size: 16px; }
.story h4 { font-size: 24px; text-transform: none; letter-spacing: .01em; margin: 56px 0 16px; }
.section-label { display: block; }
.feature__head { font-size: clamp(32px, 3vw, 52px); line-height: 1.12; margin-bottom: 36px; max-width: 860px; }
.feature__body { display: grid; grid-template-columns: minmax(0, 650px) 330px; justify-content: space-between; gap: 48px; }
.feature h4 { font-size: 20px; text-transform: uppercase; letter-spacing: .04em; margin: 40px 0 12px; }
.pullquote { margin: 0 0 32px; font-family: var(--font-display); font-size: clamp(22px, 1.6vw, 28px); line-height: 1.3; color: var(--lb-evergreen); }
.factbox { background: var(--lb-mint); padding: 28px; font-size: 16px; line-height: 1.45; align-self: start; }
.factbox ul { margin: 0; padding-left: 18px; }
.factbox li + li { margin-top: 12px; }

/* ---------- Goals and indicators ---------- */
.goal-head { margin: 140px 0 0; padding: 36px 40px; background: var(--lb-forest); color: var(--lb-white); scroll-margin-top: 20px; }
.goal-head span { display: block; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; opacity: .75; margin-bottom: 8px; }
.goal-head h3 { font-size: clamp(22px, 1.6vw, 28px); line-height: 1.3; }
.goal-head__note { font-size: 13px; line-height: 1.45; opacity: .75; margin: 14px 0 0; max-width: 820px; }
.goals dd { font-size: 14px; color: var(--lb-muted); padding-bottom: 14px !important; margin-bottom: 14px !important; }
.goals dt a { font-size: 17px; color: var(--lb-forest); }
.goal-head + .indicator { border-top: 0; padding-top: 70px; }
.badge { display: inline-block; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; background: var(--lb-mint); padding: 4px 10px; margin-bottom: 16px; }
.years-wrap { overflow-x: auto; margin: 36px 0 24px; }
.years { display: grid; grid-template-columns: repeat(var(--n, 5), minmax(170px, 1fr)); gap: 2px; margin: 36px 0 24px; font-size: 15px; line-height: 1.4; }
.years-wrap .years { margin: 0; }
.years > div { background: var(--lb-panel); padding: 16px 16px 20px; }
.years dt { font-weight: 500; margin-bottom: 8px; }
.years dd { margin: 0; overflow-wrap: anywhere; }
.years dd strong { font-weight: 500; display: inline-block; margin-top: 6px; }
.years .is-current { background: var(--lb-mint); }
.years .is-empty dd { color: var(--lb-muted); }
.years--single { grid-template-columns: minmax(0, 1fr); max-width: 650px; }
.footnote { font-size: 13px; color: var(--lb-muted); margin: -8px 0 24px; }
.qual > div p { margin: 0 0 1em; white-space: pre-line; }
.qual--archive { margin: 8px 0 0; }
.qual--table { margin: -8px 0 16px; }
.qual--table .years-wrap, .qual--table .years { margin-top: 16px; }
.qual--archive h6 { font: 500 14px/1.3 var(--font-body); letter-spacing: .06em; margin: 16px 0 6px; }
.evaluation .qual--archive { margin-top: 32px; }

/* ---------- Les mer and compact list ---------- */
.more summary { cursor: pointer; display: inline-flex; gap: 10px; align-items: center; font-size: 16px; font-weight: 500; color: var(--lb-evergreen); margin-bottom: 1em; list-style: none; }
.more summary::-webkit-details-marker { display: none; }
.more summary::after { content: ""; width: 7px; height: 7px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); margin-top: -4px; }
.more[open] summary { display: none; }
.more__close { display: inline-flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 500; color: var(--lb-evergreen); margin: 0 0 1em; cursor: pointer; }
.more__close::after { content: ""; width: 7px; height: 7px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(-135deg); margin-top: 4px; }
.eval-card .more__close, .eval-steps .more__close { font-size: 14px; margin: 0; }
.eval-block--actions .more__close { color: #a6c3a3; }
.compact-list { margin: 56px 0 24px; padding-top: 32px; border-top: 1px solid var(--lb-line); }
.compact-list h4 { font: 500 14px/1.3 var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--lb-muted); margin: 0 0 4px; }
.compact-list > .note { margin: 0 0 16px; color: var(--lb-muted); }
.compact { border-bottom: 1px solid var(--lb-line); scroll-margin-top: 20px; }
.compact summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 44px 1fr auto; gap: 12px; align-items: baseline; padding: 14px 0; font-size: 17px; }
.compact summary::-webkit-details-marker { display: none; }
.compact__id { color: var(--lb-muted); font-size: 15px; }
.compact__status { font-size: 14px; color: var(--lb-muted); text-align: right; }
.compact > div { padding: 0 0 24px 56px; }
.compact h6 { font: 500 14px/1.3 var(--font-body); margin: 20px 0 6px; }
@media (max-width: 900px) { .compact summary { grid-template-columns: 36px 1fr; } .compact__status { grid-column: 2; text-align: left; } .compact > div { padding-left: 0; } }

/* ---------- Table (climate accounting) ---------- */
.table-wrap { overflow-x: auto; margin: 32px 0; }
.kf { border-collapse: collapse; width: 100%; font-size: 15px; }
.kf th, .kf td { text-align: right; padding: 10px 14px; border-bottom: 1px solid var(--lb-line); vertical-align: top; }
.kf th:first-child, .kf td:first-child { text-align: left; white-space: normal; }
.kf thead th { font-weight: 500; border-bottom: 2px solid var(--lb-ink); }

/* ---------- Evaluering ---------- */
.evaluation { margin-top: 140px; padding: 56px 48px; background: var(--lb-mint); scroll-margin-top: 20px; }
.evaluation > h3 { font-size: clamp(30px, 2.4vw, 42px); margin-bottom: 40px; }
.evaluation__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 56px; }
.evaluation h4 { font: 500 14px/1.3 var(--font-body); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 20px; }
.evaluation h5 { font: 400 20px/1.3 var(--font-display); margin: 0 0 8px; }
.evaluation p { margin: 0 0 28px; font-size: 17px; white-space: pre-line; }
.evaluation ul { margin: 0; padding-left: 20px; font-size: 17px; }
.evaluation li + li { margin-top: 16px; }

/* ---------- Placeholders (remove when content is ready) ---------- */
.ph { display: grid; place-items: center; background: linear-gradient(135deg, var(--lb-pine), var(--lb-evergreen)); color: rgba(255,255,255,.75); font-size: 14px; text-align: center; padding: 16px; }
.todo { background: #fff4c2; outline: 1px dashed #c9a400; padding: 2px 6px; font-size: 15px; }
p.todo, div.todo { display: block; padding: 12px 16px; }

/* ---------- Previous/next ---------- */
.page-nav { display: flex; justify-content: space-between; gap: 16px; margin-top: 120px; padding-top: 32px; border-top: 1px solid var(--lb-line); }
.page-nav a { display: flex; flex-direction: column; gap: 6px; max-width: 48%; padding: 20px 24px; text-decoration: none; font-family: var(--font-display); font-size: clamp(22px, 1.6vw, 28px); line-height: 1.2; transition: background .2s; }
.page-nav a:hover { background: var(--lb-mint); }
.page-nav span { font-family: var(--font-body); font-size: 14px; text-transform: uppercase; letter-spacing: .04em; color: var(--lb-muted); }
.page-nav__next { margin-left: auto; text-align: right; background: var(--lb-mint); }
.page-nav__next:hover { background: #dbe8dd !important; }

/* ---------- Mobile ---------- */
.menu-btn span::after { content: " · " attr(data-here); text-transform: none; letter-spacing: 0; opacity: .8; }
.menu-btn.is-open span::after { content: " · Lukk"; }
.menu-btn { display: none; }
@media (max-width: 1280px) {
  .feature__body, .evaluation__grid { grid-template-columns: 1fr; }
  .intro-grid { grid-template-columns: 1fr; }
  .cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .panel--side { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  :root { --sidebar-w: 0px; }
  body { font-size: 17px; }
  .sidebar { transform: translateX(-100%); width: min(320px, 85vw); transition: transform .25s; }
  .sidebar.is-open { transform: none; }
  body { padding-top: 56px; }
  .menu-btn { display: flex; align-items: center; position: fixed; inset: 0 0 auto 0; height: 56px; z-index: 30; background: var(--lb-forest); color: #fff; padding: 0 16px; font-size: 14px; text-transform: uppercase; letter-spacing: .04em; }
  .sidebar { top: 56px; padding-top: 32px; }
  .hero { height: 48vh; min-height: 300px; }
  .content { margin: 0 16px; padding-bottom: 120px; }
  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card { min-height: 180px; padding: 24px 16px 16px; }
  .card h3 { font-size: 21px; hyphens: auto; }
  .card span { font-size: 12px; }
  .panel { padding: 24px 16px; }
  /* Mobile: years stacked, newest first */
  .years { display: flex; flex-direction: column-reverse; }
  .years--single { display: grid; }
  .years > div { grid-column: auto !important; }
  .goal-head { padding: 24px 20px; margin-top: 90px; }
  .eval-block--actions { padding: 24px 18px; }
  .eval-card { padding: 20px 16px; }
  .feature { padding-top: 64px; }
  .story { font-size: 18px; }
  .photo-pair { grid-template-columns: 1fr; }
  .photo-pair img { aspect-ratio: 4 / 3; }
  .page-nav { margin-top: 64px; }
  .tabbar { top: 56px; margin-top: 32px; }
  .tabbar button { padding: 14px 12px 12px; font-size: 15px; }
  .ind-card > summary { grid-template-columns: 36px minmax(0, 1fr) 16px; gap: 8px 10px; }
  .ind-card__value { grid-column: 2; grid-row: 2; text-align: left; }
  .ind-card > summary::after { grid-column: 3; grid-row: 1; }
  .ind-card__body { padding-left: 0; }
  .goaltabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .goaltabs button { white-space: nowrap; }
  .goal-head { gap: 14px; }
  .goal-head__icon { width: 32px; height: 32px; }
  .hero__icon { width: 40px; height: 40px; }
  .page-nav a { padding: 16px; max-width: 100%; }
  .content { padding-bottom: 48px; }
}

/* Figure lists in the climate accounting, and table with left-aligned text */
.figure-list { background: var(--lb-panel); padding: 28px 32px; margin: 24px 0 40px; max-width: 760px; }
.figure-list h5 { font: 500 14px/1.3 var(--font-body); letter-spacing: .06em; text-transform: uppercase; margin: 0 0 14px; }
.figure-list ul { list-style: none; margin: 0; padding: 0; font-size: 16px; line-height: 1.5; }
.figure-list li + li { margin-top: 8px; }
.feature > h4 { margin-top: 48px; }
.kf--left th, .kf--left td { text-align: left; }

/* ---------- Shared corner radius ---------- */
.card, .highlight, .story-card, .factbox, .panel, .goal-head, .eval-card, .eval-block--actions,
.figure-list, .years-wrap, .years--single, .photo img, .compare__frame, .wide-img, .gallery img,
.story-card img { border-radius: var(--radius); }
.story-card img { border-radius: 0; }
.years-wrap, .compare__frame, .wide-img { overflow: hidden; }
.years > div { border-radius: 0; }
.years--single > div { border-radius: var(--radius); }

/* ---------- Buttons in the Lilleakerbyen style: slightly rounded, uppercase ---------- */
.goaltabs button, .sidebar__ext, .compare__btns, .compare__btns button, .tabbar button {
  border-radius: var(--radius-btn);
}
.goaltabs button, .sidebar__ext, .compare__btns button {
  text-transform: uppercase; letter-spacing: .08em; font-size: 13px;
}
.goaltabs button { padding: 11px 16px; }
.sidebar__ext { padding: 11px 14px; white-space: nowrap; }
.compare__btns { padding: 4px; }
.compare__btns button { padding: 8px 14px; }
.tabbar button { border-radius: var(--radius-btn) var(--radius-btn) 0 0; }
.stories__arrows button { border-radius: var(--radius-btn); }

/* Button hover: white background with green text */
.goaltabs button, .sidebar__ext, .compare__btns button, .stories__arrows button { transition: background .15s, color .15s, border-color .15s; }
.goaltabs button:hover, .goaltabs button[aria-selected="true"]:hover,
.compare__btns button:hover, .compare__btns button[aria-pressed="true"]:hover,
.stories__arrows button:not(:disabled):hover {
  background: var(--lb-white); color: var(--lb-forest); border-color: var(--lb-forest);
}
.goaltabs button:hover .icon { color: var(--lb-forest); }
.sidebar__ext:hover { background: var(--lb-white) !important; color: var(--lb-forest); border-color: var(--lb-white) !important; }

/* ---------- Goal cards below the tab bar ---------- */
.goalcards { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: 12px; margin: 32px 0 8px; }
.goalcard { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto auto; column-gap: 14px; align-items: start; text-align: left;
  padding: 20px; border: 1px solid var(--lb-line); border-radius: var(--radius); background: var(--lb-white); color: var(--lb-ink);
  transition: background .15s, color .15s, border-color .15s; }
.goalcard__icon { grid-row: 1 / 4; width: 36px; height: 36px; color: var(--lb-evergreen); }
.goalcard__num { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--lb-muted); }
.goalcard__name { font-family: var(--font-display); font-size: 20px; line-height: 1.25; margin: 2px 0 6px; }
.goalcard__meta { font-size: 14px; color: var(--lb-muted); }
.goalcard:hover { border-color: var(--lb-forest); }
.goalcard[aria-selected="true"] { background: var(--lb-forest); border-color: var(--lb-forest); color: var(--lb-white); }
.goalcard[aria-selected="true"] .goalcard__icon { color: #a6c3a3; }
.goalcard[aria-selected="true"] .goalcard__num, .goalcard[aria-selected="true"] .goalcard__meta { color: rgba(255,255,255,.75); }
.goalcard[aria-selected="true"]:hover { background: var(--lb-white); color: var(--lb-forest); }
.goalcard[aria-selected="true"]:hover .goalcard__icon { color: var(--lb-evergreen); }
.goalcard[aria-selected="true"]:hover .goalcard__num, .goalcard[aria-selected="true"]:hover .goalcard__meta { color: var(--lb-muted); }
.results-intro { margin-top: 16px; }
@media (max-width: 900px) {
  .goalcards { grid-template-columns: 1fr; gap: 8px; margin-top: 20px; }
  .goalcard { padding: 14px 16px; }
  .goalcard__icon { width: 28px; height: 28px; }
  .goalcard__name { font-size: 18px; }
}

#intro.results-intro { margin: 24px 0 8px; }
.goalcards + .goal-panel .goal-head, .goalcards ~ .goal-panel .goal-head { margin-top: 20px; }

/* ---------- Climate accounting: charts ---------- */
.climate-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 32px 0; }
.climate-card { margin: 0; padding: 28px; }
.climate-card h5 { margin-bottom: 4px; }
.climate-card__change { margin: 0 0 12px; font-size: 14px; color: var(--lb-evergreen); }
.donut { display: grid; grid-template-columns: 180px 1fr; gap: 24px; align-items: center; margin: 16px 0 8px; }
.legend--stack { flex-direction: column; gap: 10px; margin: 0; }
.legend--stack b { font-weight: 500; margin-left: 4px; }
@media (max-width: 1280px) { .climate-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .donut { grid-template-columns: 1fr; justify-items: start; gap: 16px; } .donut .chart { width: 160px; } .climate-card { padding: 20px 16px; } }
.legend--stack li { white-space: nowrap; }

/* The indicator's official definition below the short title, visible even when the card is collapsed */
.ind-card__def { display: block; font-family: var(--font-body); font-size: 14px; line-height: 1.4; color: var(--lb-muted); margin-top: 4px; max-width: 640px; }

/* The goals under "Mål og resultater" in the menu */
.nav__goals { list-style: none; margin: 2px 0 6px 12px !important; padding: 0; }
.nav__goal { display: block; font-size: 13px; line-height: 1.35; color: rgba(255,255,255,.6); padding: 4px 8px; margin-left: -8px; border-radius: 6px; text-decoration: none; }
.nav__goal:hover { color: var(--lb-white); }
.nav__goal[aria-current] { color: var(--lb-white); font-weight: 500; }

/* Mobile menu: dark backdrop behind the open menu, tapping outside closes it */
.menu-shade { display: none; }
@media (max-width: 900px) {
  .menu-shade { position: fixed; inset: 56px 0 0 0; z-index: 19; background: rgba(0,0,0,.45); }
  .menu-shade.is-open { display: block; }
  body.menu-open { overflow: hidden; }
  .menu-btn span::after { content: " · " attr(data-here); }
  .menu-btn.is-open span::after { content: ""; }
}

/* The active strategy in the menu can be collapsed and expanded */
.nav__strategy.is-active > .nav__strategy-link { grid-template-columns: 24px 1fr 14px; align-items: center; }
.nav__strategy.is-active > .nav__strategy-link::after { content: ""; width: 7px; height: 7px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(-135deg); margin-top: 4px; transition: transform .2s; }
.nav__strategy.is-active > .nav__strategy-link[aria-expanded="false"]::after { transform: rotate(45deg); margin-top: -4px; }
.nav__sub[hidden] { display: none; }

/* Years table inside "Se tallene for alle år": full width, all years visible */
.qual--table > div, .qual--table .years-wrap { max-width: none; }
.years { grid-template-columns: repeat(var(--n, 5), minmax(120px, 1fr)); }

/* Hover on indicator rows: light background and green title instead of an underline */
.ind-card > summary:hover .ind-card__title { text-decoration: none; }
.ind-card > summary, .compact summary { border-radius: var(--radius); transition: background .15s; margin: 0 -12px; padding-left: 12px; padding-right: 12px; }
.ind-card > summary:hover, .compact summary:hover { background: var(--lb-panel); }
.ind-card > summary:hover .ind-card__title, .compact summary:hover .compact__title { color: var(--lb-evergreen); }

/* Tab bar: prominent, like a row of buttons */
.tabbar { background: var(--lb-white); border-bottom: 0; padding: 12px 0; }
.tabbar__inner { gap: 8px; background: var(--lb-mint); padding: 6px; border-radius: var(--radius); }
.tabbar button { flex: 1; text-align: center; padding: 14px 16px; border: 0; border-radius: var(--radius-btn);
  font-size: 14px; letter-spacing: .08em; text-transform: uppercase; color: var(--lb-forest); font-weight: 500; }
.tabbar button:hover { background: var(--lb-white); color: var(--lb-forest); }
.tabbar button[aria-selected="true"] { background: var(--lb-forest); color: var(--lb-white); border: 0; }
.tabbar button[aria-selected="true"]:hover { background: var(--lb-white); color: var(--lb-forest); }
@media (max-width: 900px) {
  .tabbar { padding: 8px 0; }
  .tabbar__inner { gap: 4px; padding: 4px; }
  .tabbar button { padding: 12px 6px; font-size: 12px; letter-spacing: .04em; }
}
