@font-face { font-family: "Schibsted Grotesk"; src: url("fonts/sg-latin.woff2") format("woff2"); font-weight: 400 900; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "Schibsted Grotesk"; src: url("fonts/sg-latin-ext.woff2") format("woff2"); font-weight: 400 900; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0; }

/* Client brand through tokens. Navy and green sampled from the WSE logo. */
[data-profile="service"] {
  --primary: #100860;
  --primary-foreground: #ffffff;
  --ring: #100860;
  --wse-navy: #100860;
  --wse-green: #1f7a0a;
  --wse-line: #28a60c;
  --wse-mist: #f3f4f8;
  --wse-rule: #d9dbe6;
  --wse-muted: #4b4f63;
  --wse-todo-bg: #fff6dc;
  --wse-todo-ink: #5c4300;
  --wse-todo-rule: #a07a10;
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: #fff; }

.site { font-size: 1rem; line-height: 1.5rem; min-height: 100dvh; display: flex; flex-direction: column; }
.site a:not([data-slot="button"]) { color: var(--wse-navy); font-weight: 600; text-decoration: none; text-underline-offset: 2px; }
.site a:not([data-slot="button"]):hover { text-decoration: underline; }
.site :focus-visible { outline: 3px solid var(--wse-navy); outline-offset: 2px; }
#main { flex: 1; outline: none; }

.frame { width: 100%; max-width: 72rem; margin-inline: auto; padding-inline: 1.5rem; box-sizing: border-box; }
.measure { max-width: 44rem; }

.skip { position: absolute; left: -999px; top: .5rem; background: #fff; color: var(--wse-navy); padding: .75rem 1rem; z-index: 10; font-weight: 600; }
.skip:focus { left: .5rem; }

/* Header */
.head { background: #fff; border-bottom: 3px solid var(--wse-line); }
.head-row { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: .75rem; position: relative; }
.brand { display: block; flex: none; }
.brand img { display: block; height: 72px; width: auto; }
.nav ul { display: flex; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.site .nav a { display: block; padding: .625rem .75rem; color: var(--wse-navy); text-decoration: none; font-weight: 500; border-bottom: 3px solid transparent; }
.site .nav a:hover { border-bottom-color: var(--wse-rule); text-decoration: none; }
.site .nav a[aria-current="page"] { font-weight: 700; border-bottom-color: var(--wse-navy); }
.head-end { display: flex; align-items: center; gap: 1rem; }
.site .member-link:not([data-slot="button"]) { display: inline-flex; align-items: center; min-height: 44px; padding: 0 1rem; border-radius: 6px; background: var(--wse-navy); color: #fff; font-weight: 600; text-decoration: none; white-space: nowrap; }
.site .member-link:not([data-slot="button"]):hover { background: #1d1480; text-decoration: none; }
.menu-toggle { display: none; min-height: 44px; padding: 0 1rem; border: 1px solid var(--wse-navy); border-radius: 6px; background: #fff; color: var(--wse-navy); font: inherit; font-weight: 600; cursor: pointer; }

@media (max-width: 860px) {
  .menu-toggle { display: block; }
  .brand img { height: 64px; }
  .nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 3px solid var(--wse-line); z-index: 5; padding: .5rem 1.5rem; margin-top: 3px; box-sizing: border-box; }
  .nav.open { display: block; }
  .nav ul { flex-direction: column; }
  .site .nav a { padding-block: .75rem; border-bottom: 0; border-left: 3px solid transparent; }
  .site .nav a[aria-current="page"] { border-bottom: 0; border-left-color: var(--wse-navy); }
}

@media (max-width: 480px) {
  .head-row { flex-wrap: wrap; gap: .75rem; }
  .head-end { display: contents; }
  .site .member-link:not([data-slot="button"]) { order: 3; width: 100%; justify-content: center; }
}

/* Page */
.page { padding-block: 2.5rem 3.5rem; }
h1, h2, h3 { color: var(--wse-navy); margin: 0; letter-spacing: -.01em; font-family: "Schibsted Grotesk", var(--font-sans, sans-serif); }
h1 { font-size: 2.75rem; line-height: 3.25rem; font-weight: 700; }
h2 { font-size: 1.5rem; line-height: 2rem; font-weight: 700; }
h3 { font-size: 1.125rem; line-height: 1.625rem; font-weight: 600; }
p { margin: 0 0 1rem; }
.lead { font-size: 1.1875rem; line-height: 1.75rem; color: var(--wse-muted); margin-top: .75rem; }
.section { margin-top: 2.5rem; }
.section > h2 { margin-bottom: .75rem; }
.crumb { font-size: 1rem; margin-bottom: 1rem; }
.meta { color: var(--wse-muted); }
.prose ul { margin: 0 0 1rem; padding-left: 1.25rem; }
.prose li { margin-bottom: .375rem; }

@media (max-width: 640px) {
  h1 { font-size: 1.75rem; line-height: 2.25rem; }
  .page { padding-block: 1.75rem 2.5rem; }
}

/* To be supplied by the client */
.todo { display: inline; background: var(--wse-todo-bg); color: var(--wse-todo-ink); border-bottom: 1px dashed var(--wse-todo-rule); padding: 0 .25rem; box-decoration-break: clone; -webkit-box-decoration-break: clone; }

/* Posts */
.posts { list-style: none; margin: 0; padding: 0; }
.posts > li { display: grid; grid-template-columns: 11rem minmax(0, 1fr); grid-template-rows: auto auto; gap: .25rem 2.5rem; padding-block: 1.5rem; border-top: 1px solid var(--wse-rule); }
.posts > li:first-child { border-top: 2px solid var(--wse-navy); }
.post-date { grid-row: 1 / span 2; color: var(--wse-muted); font-size: .9375rem; line-height: 1.5rem; }
.post-date time { display: block; color: var(--wse-navy); font-weight: 600; }
.post-cat { display: block; }
.site .post-title:not([data-slot="button"]) { color: var(--wse-navy); text-decoration: none; font-weight: 600; font-size: 1.125rem; line-height: 1.625rem; }
.site .post-title:not([data-slot="button"]):hover { text-decoration: underline; }
.posts p { grid-column: 2; margin: 0; max-width: 46rem; }
.posts .post-title { grid-column: 2; }
@media (max-width: 640px) {
  .posts > li { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
  .post-date { grid-row: auto; }
  .post-date time, .post-cat { display: inline; }
  .post-cat::before { content: ", "; }
  .posts p, .posts .post-title { grid-column: 1; }
}
.post-photo { display: block; width: 100%; max-width: 44rem; aspect-ratio: 16 / 9; object-fit: cover; margin-block: 1.25rem; background: var(--wse-mist); }

/* Shared facts */
.facts { margin: 0 0 .75rem; }
.facts div { display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: 1rem; padding-block: .625rem; border-top: 1px solid var(--wse-rule); }
.facts div:first-child { border-top: 0; }
.facts dt { color: var(--wse-muted); }
.facts dd { margin: 0; font-weight: 500; min-width: 0; font-variant-numeric: tabular-nums; }
.source { color: var(--wse-muted); }
@media (max-width: 480px) { .facts div { grid-template-columns: minmax(0, 1fr); gap: 0; } }

/* Photos */
.photo { position: relative; margin: 0; overflow: hidden; background: var(--wse-mist); }
.photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.photo figcaption, .hero-note { position: absolute; right: .75rem; bottom: .75rem; padding: .125rem .5rem; background: rgba(16, 8, 96, .78); color: #fff; font-size: .75rem; line-height: 1.125rem; }
.with-photo { display: grid; grid-template-columns: minmax(0, 1fr) 21rem; gap: 4rem; align-items: start; }
.with-photo .photo { position: sticky; top: 1.5rem; aspect-ratio: 4 / 5; }
@media (max-width: 960px) {
  .with-photo { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .with-photo .photo { position: relative; top: 0; aspect-ratio: 16 / 9; order: -1; }
}

/* Home */
.hero { position: relative; overflow: hidden; background: var(--wse-navy); color: #fff; }
.hero-side { position: absolute; inset: 0 0 0 46%; clip-path: polygon(16% 0, 100% 0, 100% 100%, 0 100%); }
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 40% 40%; }
.hero-fx { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-text { position: relative; padding-block: 5rem 13rem; min-height: clamp(36rem, 82vh, 48rem); display: flex; flex-direction: column; justify-content: center; }
.hero h1 { color: #fff; font-size: clamp(2.75rem, 4.8vw, 4.25rem); line-height: 1.04; font-weight: 700; letter-spacing: -.03em; max-width: 12ch; }
.hero-text p { font-size: 1.25rem; line-height: 1.875rem; max-width: 24rem; margin: 1.25rem 0 2rem; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; }
.hero [data-slot="button"], .join [data-slot="button"] { background: #fff; color: var(--wse-navy); height: 3rem; padding-inline: 1.5rem; font-size: 1rem; font-weight: 600; }
.hero [data-slot="button"]:hover, .join [data-slot="button"]:hover { background: #e8e8f3; }
.site .hero-link:not([data-slot="button"]) { color: #fff; font-weight: 600; }
.site .hero :focus-visible, .site .join :focus-visible { outline-color: #fff; }
.hero-note { top: .75rem; bottom: auto; }

.stats { position: absolute; left: 50%; bottom: 1.5rem; width: min(calc(100% - 3rem), 69rem); transform: translateX(-50%); padding: 1.125rem 1.75rem .75rem; background: rgba(16, 8, 96, .62); border: 1px solid rgba(255, 255, 255, .28); border-radius: 12px; -webkit-backdrop-filter: blur(14px) saturate(1.3); backdrop-filter: blur(14px) saturate(1.3); }
.stats dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.stats dl div { display: flex; flex-direction: column-reverse; justify-content: flex-end; padding-inline: 2rem; border-left: 1px solid rgba(255, 255, 255, .28); }
.stats dl div:first-child { padding-left: 0; border-left: 0; }
.stats dt { font-size: .9375rem; }
.stats dd { margin: 0; font-family: "Schibsted Grotesk", sans-serif; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; font-weight: 700; letter-spacing: -.02em; white-space: nowrap; }
.stats p { margin: .5rem 0 0; color: #d5d6e8; font-size: .8125rem; line-height: 1.125rem; }

.band { padding-block: 5rem; }
.band-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 2rem; margin-bottom: 2rem; }
.band h2, .about h2, .join h2 { font-size: clamp(2rem, 3.6vw, 2.75rem); line-height: 1.12; font-weight: 700; letter-spacing: -.02em; }
.site 
.about { background: var(--wse-mist); }
.about-row { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 4.5rem; align-items: center; padding-block: 5rem; }
.about .photo { aspect-ratio: 5 / 4; }
.about h2 { margin-bottom: 1rem; }
.about p { font-size: 1.125rem; line-height: 1.75rem; }
.history { margin: 1.5rem 0; }
.history div { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1rem; padding-block: .75rem; border-top: 1px solid var(--wse-rule); }
.history dt { color: var(--wse-navy); font-family: "Schibsted Grotesk", sans-serif; font-weight: 700; font-size: 1.125rem; font-variant-numeric: tabular-nums; }
.history dd { margin: 0; }

.join { background: var(--wse-navy); color: #fff; }
.join-row { padding-block: 5rem; }
.join h2 { color: #fff; }
.join p { font-size: 1.125rem; line-height: 1.75rem; margin: .75rem 0 1.5rem; }

@media (max-width: 860px) {
  .join-row { padding-block: 3rem; }
  .hero { display: flex; flex-direction: column; }
  .hero-side { position: relative; inset: auto; order: -1; height: 15rem; clip-path: polygon(0 0, 100% 0, 100% 84%, 0 100%); }
  .hero-text { min-height: 0; padding-block: 1.75rem 1.75rem; }
  .hero-note { top: .75rem; }
  .stats { position: static; width: auto; margin: 0 1.5rem 1.5rem; transform: none; padding: .5rem 1.25rem .75rem; }
  .stats dl { grid-template-columns: minmax(0, 1fr); }
  .stats dl div, .stats dl div:first-child { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .5rem 0; border-left: 0; border-top: 1px solid rgba(255, 255, 255, .28); }
  .stats dl div:first-child { border-top: 0; }
  .stats dd { font-size: 1.75rem; }
  .band { padding-block: 3rem; }
        .about-row { grid-template-columns: minmax(0, 1fr); gap: 2rem; padding-block: 3rem; }
}
.sample { display: block; color: var(--wse-muted); font-size: .875rem; }
.filter-search { margin-bottom: 1rem; }
.filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.filter { min-height: 44px; padding: 0 1rem; border: 1px solid var(--wse-navy); border-radius: 22px; background: #fff; color: var(--wse-navy); font: inherit; font-weight: 500; cursor: pointer; }
.filter:hover { background: var(--wse-mist); }
.filter[aria-pressed="true"] { background: var(--wse-navy); color: #fff; font-weight: 600; }
.link { background: none; border: 0; padding: 0; font: inherit; font-weight: 600; color: var(--wse-navy); cursor: pointer; }
.link:hover { text-decoration: underline; }
.short-select { max-width: 16rem; }
@media (max-width: 640px) {
  h1 { font-size: 2.125rem; line-height: 2.625rem; }
}

/* Page band */
.page-band { position: relative; overflow: hidden; background: var(--wse-navy); color: #fff; }
.band-photo { position: absolute; inset: 0 0 0 58%; background: url("assets/hero-farma.jpg") 40% 40% / cover no-repeat; clip-path: polygon(16% 0, 100% 0, 100% 100%, 0 100%); }
.band-row { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; min-height: 13rem; padding-block: 2.5rem; }
.page-band h1 { color: #fff; max-width: 19ch; font-size: clamp(2.25rem, 4.2vw, 3.5rem); line-height: 1.08; letter-spacing: -.02em; }
.page-band .crumb { margin-bottom: .5rem; }
.page-band .lead { color: #fff; max-width: 34rem; }
.site .page-band a:not([data-slot="button"]):not(.bip-logo) { color: #fff; }
.site .page-band :focus-visible { outline-color: #fff; }
.page-band h1:focus { outline: none; }
@media (max-width: 860px) {
  .band-photo { display: none; }
  .band-row { min-height: 0; padding-block: 2rem; }
}
@media (max-width: 480px) { .band-row { flex-wrap: wrap; } }

/* News list */
.news-tools { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .75rem 2.5rem; padding: 1.25rem; margin-bottom: 1rem; background: var(--wse-mist); }
.news-tools .filter-search { flex: 1 1 18rem; max-width: 26rem; margin-bottom: 0; }
.news-tools .filters { margin-bottom: 0; }
.news-tools .filter { background: #fff; }
.news-tools .filter[aria-pressed="true"] { background: var(--wse-navy); }

/* BIP */
.bip-logo { flex: none; display: block; padding: .5rem .75rem; background: #fff; border-radius: 8px; }
.bip-logo img { display: block; height: 3rem; width: auto; }
.bip-search { padding: 1.25rem; background: var(--wse-mist); }
.bip-grid { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: 3.5rem; align-items: start; }
.bip-main { max-width: 44rem; min-width: 0; }
.bip-nav ul { list-style: none; margin: 0; padding: 0; }
.bip-nav li { border-bottom: 1px solid var(--wse-rule); }
.site .bip-nav a:not([data-slot="button"]) { display: block; padding: .625rem .75rem; font-weight: 500; text-decoration: none; border-left: 3px solid transparent; }
.site .bip-nav a:not([data-slot="button"]):hover { background: var(--wse-mist); text-decoration: none; }
.site .bip-nav a[aria-current="page"]:not([data-slot="button"]) { font-weight: 700; border-left-color: var(--wse-navy); background: var(--wse-mist); }
.bip-sub { margin-block: 1.5rem 1rem; }
.log { list-style: none; margin: 0; padding: 0; }
.log li { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: 1rem; padding-block: .625rem; border-top: 1px solid var(--wse-rule); }
.log li:first-child { border-top: 0; }
.log time { color: var(--wse-muted); }
@media (max-width: 860px) {
  .bip-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .log li { grid-template-columns: minmax(0, 1fr); gap: 0; }
}

/* KPO */
.kpo-marks { display: block; width: 100%; max-width: 40rem; height: auto; margin-block: 1.25rem; }
.kpo-table { margin: 0; }
.kpo-table div { padding-block: .75rem; border-top: 1px solid var(--wse-rule); display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: 1rem; }
.kpo-table dt { font-weight: 600; color: var(--wse-navy); }
.kpo-table dd { margin: 0; }
@media (max-width: 640px) { .kpo-table div { grid-template-columns: minmax(0, 1fr); gap: .125rem; } }

/* Footer */
.foot { background: var(--wse-navy); color: #e4e4f1; margin-top: auto; border-top: 1px solid #ffffff26; font-size: .9375rem; line-height: 1.5rem; }
.foot-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); gap: 2rem 3.5rem; padding-block: 3rem 2.25rem; }
.foot-title { color: #fff; font-weight: 600; margin: 0 0 .5rem; }
.foot-grid p { margin-bottom: .25rem; }
.foot ul { list-style: none; margin: 0; padding: 0; }
.foot-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 2rem; position: relative; padding-block: 1rem 1.25rem; color: #c9cae2; font-size: .8125rem; line-height: 1.25rem; }
.foot-bottom::before { content: ""; position: absolute; top: 0; left: 1.5rem; right: 1.5rem; height: 1px; background: #ffffff26; }
.site .foot a:not([data-slot="button"]) { color: inherit; font-weight: 400; }
.site .foot :focus-visible { outline-color: #fff; }
@media (max-width: 720px) { .foot-grid { grid-template-columns: minmax(0, 1fr); padding-block: 2.25rem 1.5rem; } }

.empty { background: var(--wse-mist); padding: 1.25rem; }
