/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}

:root {
  --breakpoint-mobile: 767; /* keep in sync with --mobile custom media */
  --space-xxs: 0.5rem; /* tight internal gaps (below golden-ratio scale) */
  --space-xs: 1rem;
  --space-s: 1.5rem;
  --space-m: 2.5rem;
  --space-l: 4rem;
  --space-xl: 6.5rem;

  --radius-small: 2px;
  --radius-medium: 4px;
  --radius-large: 8px;
  --radius-x-large: 16px;
  --radius-pill: 9999px;

  --logo-height: 62px;

  /* Sticky header shell — logo + .site-header__bar vertical padding */
  --site-header-height: calc(var(--logo-height) + var(--space-xs)*2);
  --header-bg-opacity: 96%;
}

:root {
  --ease-standard: cubic-bezier(0.25, 0.1, 0.25, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-enter: cubic-bezier(0, 0, 0.2, 1);
  --ease-exit: cubic-bezier(0.4, 0, 1, 1);

  --dur-micro: 150ms;
  --dur-standard: 250ms;
  --dur-layout: 350ms;
  --dur-header-scroll: 350ms;
  --ease-header-scroll: cubic-bezier(0.4, 0, 0.2, 1);

  --scale-hover: 1.03;
  --scale-active: 0.97;
  --lift-hover: translate3d(0, -2px, 0);

  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    scroll-behavior: auto;
  }

  .site-header {
    transition: none;
  }

  .nav__dropdown::details-content {
    transform: none;
    transition:
      opacity 150ms cubic-bezier(0.25, 0.1, 0.25, 1), display 150ms allow-discrete;
    transition:
      opacity var(--dur-micro) var(--ease-standard), display var(--dur-micro) allow-discrete;
    transition-behavior: allow-discrete;
  }

  @starting-style {
    .nav__dropdown[open]::details-content {
      transform: none;
    }
  }

  .site-nav-mobile,
  .site-nav-mobile--closing {
    animation: none;
  }

  .card__indicator {
    transition: none;
  }

  .btn--primary:hover,
  .btn--primary:focus-visible,
  .btn--secondary:hover,
  .btn--secondary:focus-visible,
  a.btn--primary:hover,
  a.btn--primary:focus-visible,
  a.btn--secondary:hover,
  a.btn--secondary:focus-visible,
  .btn-wrap:hover > .btn,
  .btn-wrap:focus-within > .btn {
    transform: none;
  }
}

:root {
  /* Primitives — reference via semantic tokens in components */
  --papir: #fdfbf1;

  --barnal: #3f5c4f;
  --barnal-dark: #31483e;
  --mose: #96a78c;

  --lav: #ddebcc;
  --morell: #88303b;
  --morell-dark: #7b2b35;
  --lyng: #deabb5;

  --magnolia: #f2d6da;
  --natt: #51597f;
  --natt-dark: #3b415f;
  --hav: #6e8ab7;

  --himmel: #d2e1ea;
  --korall: #ee9988;
  --fersken: #fdd2be;
  --okra: #c59650;
  --solgul: #feebad;

  /* Semantic tokens — theme 1A (default) */
  --color-bg-page: var(--papir);
  --color-bg-header: var(--magnolia);
  --color-bg-hero: var(--magnolia);
  --color-bg-footer: var(--lav);
  --color-bg-subtle: color-mix(
    in srgb,
    var(--color-text-secondary) 8%,
    var(--color-bg-page)
  );

  --color-text-primary: var(--barnal-dark);
  --color-text-secondary: var(--barnal);
  --color-text-on-primary: var(--papir);

  --color-button-primary-bg: var(--barnal-dark);
  --color-button-primary-bg-hover: var(--barnal);
  --color-button-primary-text: var(--papir);
  --color-button-secondary-bg: var(--barnal);
  --color-button-secondary-text: var(--papir);

  --color-link-default: var(--barnal-dark);
  --color-link-hover: var(--barnal);

  --color-border-solid: var(--barnal);

  --color-hero-logo-symbol: var(--papir);
}

/* Theme 1B — papir header, magnolia footer */

[data-theme="1b"] {
  --color-bg-header: var(--papir);
  --color-bg-hero: var(--papir);
  --color-bg-footer: var(--magnolia);
}

/* Theme 2A — fersken header, himmel footer */

[data-theme="2a"] {
  --color-bg-header: var(--fersken);
  --color-bg-hero: var(--fersken);
  --color-bg-footer: var(--himmel);

  --color-text-primary: var(--natt-dark);
  --color-text-secondary: var(--natt);

  --color-button-primary-bg: var(--natt-dark);
  --color-button-primary-bg-hover: var(--natt);
  --color-button-secondary-bg: var(--natt);

  --color-link-default: var(--natt-dark);
  --color-link-hover: var(--natt);

  --color-border-solid: var(--natt);
}

/* Theme 2B — papir header, fersken footer */

[data-theme="2b"] {
  --color-bg-header: var(--papir);
  --color-bg-hero: var(--papir);
  --color-bg-footer: var(--fersken);

  --color-text-primary: var(--natt-dark);
  --color-text-secondary: var(--natt);

  --color-button-primary-bg: var(--natt-dark);
  --color-button-primary-bg-hover: var(--natt);
  --color-button-secondary-bg: var(--natt);

  --color-link-default: var(--natt-dark);
  --color-link-hover: var(--natt);

  --color-border-solid: var(--natt);
}

/* Theme 3A — himmel header, fersken footer */

[data-theme="3a"] {
  --color-bg-header: var(--himmel);
  --color-bg-hero: var(--himmel);
  --color-bg-footer: var(--fersken);

  --color-text-primary: var(--morell-dark);
  --color-text-secondary: var(--morell);

  --color-button-primary-bg: var(--morell-dark);
  --color-button-primary-bg-hover: var(--morell);
  --color-button-secondary-bg: var(--morell);

  --color-link-default: var(--morell-dark);
  --color-link-hover: var(--morell);

  --color-border-solid: var(--morell);
}

/* Theme 3B — papir header, himmel footer */

[data-theme="3b"] {
  --color-bg-header: var(--papir);
  --color-bg-hero: var(--papir);
  --color-bg-footer: var(--himmel);

  --color-text-primary: var(--morell-dark);
  --color-text-secondary: var(--morell);

  --color-button-primary-bg: var(--morell-dark);
  --color-button-primary-bg-hover: var(--morell);
  --color-button-secondary-bg: var(--morell);

  --color-link-default: var(--morell-dark);
  --color-link-hover: var(--morell);

  --color-border-solid: var(--morell);
}

body {
  background: #fdfbf1;
  background: var(--color-bg-page);
  color: #31483e;
  color: var(--color-text-primary);
}

a,
a:visited {
  color: #31483e;
  color: var(--color-link-default);
}

/* Crimson Pro — variable upright (wght 200–900) */

@font-face {
  font-family: "Crimson Pro";
  src: url("/assets/crimson-pro-variable-0cc8fe16.woff2") format("woff2");
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
}

/* Crimson Pro — variable italic (wght 200–900) */

@font-face {
  font-family: "Crimson Pro";
  src: url("/assets/crimson-pro-variable-italic-ae974f96.woff2") format("woff2");
  font-weight: 200 900;
  font-style: italic;
  font-display: swap;
}

/* Synonym Variable — variable (wght 200–700) */

@font-face {
  font-family: "Synonym Variable";
  src: url("/assets/synonym-variable-462d9db6.woff2") format("woff2");
  font-weight: 200 700;
  font-style: normal;
  font-display: swap;
}

:root {
  --columns: 12;
  --gutter: 2rem;
  --outer-padding: 4rem;
}

@media screen and (max-width: 1100px) {

:root {
    /* --columns: 9; */
    --gutter: 1.5rem;
    --outer-padding: 2rem;
}
  }

@media screen and (max-width: 767px) {

:root {
    --columns: 4;
    --outer-padding: 1rem;
}
  }

@media print {

:root {
    --outer-padding: 0;
}
  }

@media screen and (min-width: 1728px) {

:root {
    --grid-limit: calc(1728px - var(--outer-padding)*2);
}
  }

.grid-overlay {
  display: none;
}

.grid-overlay--active {
  --grid-overlay-width: var(
    --grid-limit,
    calc(100% - var(--outer-padding)*2)
  );
  display: block;
  position: fixed;
  z-index: 9000;
  top: 0;
  width: calc(100% - 8rem);
  width: var(--grid-overlay-width);
  left: 50%;
  margin-left: calc(-50% - -4rem);
  margin-left: calc(var(--grid-overlay-width)/2*-1);
  height: 100%;
  pointer-events: none;
  background: linear-gradient(
    to right,
    transparent 2rem,
    rgba(255, 0, 255, 0.05) 2rem
  );
  background: linear-gradient(
    to right,
    var(--grid-overlay-gutter, transparent) var(--gutter),
    var(--grid-overlay-column, rgba(255, 0, 255, 0.05)) var(--gutter)
  );
  background-size: calc(8.3333333333% + 0.1666666667rem) 100%;
  background-size: calc((100% + var(--gutter))/var(--columns, 12)) 100%;
  background-position: top 0 left -2rem;
  background-position: top 0 left calc(var(--gutter)*-1);
}

/* ---- Print (chrome) ------------------------------------------------------ */

@media print {
  /* Beat component display rules so chrome stays hidden in print */
  .site-header,
  .site-footer,
  .grid-overlay {
    display: none !important;
  }

  body {
    background: #fff;
    color: #000;
  }

  .hub-section-link {
    display: none;
  }
}

/* ---- Mixins ------------------------------------------------------------- */

/* CMS rich text — links always underlined (not hover-reveal) */

/* CMS body lists (* / # in editor → ul/ol in HTML) */

/* ---- Tokens ------------------------------------------------------------- */

:root {
  --measure: 55ch;
  --list-marker-gap: 0.65em;
  --list-marker-width-ordered: 1.25em;
  --list-indent: calc(1ch + var(--list-marker-gap));
  --list-indent-ordered: calc(var(--list-marker-width-ordered) + var(--list-marker-gap));
  --font-serif: "Crimson Pro", serif;
  --font-sans: "Synonym Variable", sans-serif;

  --font-larger: 550 3.125rem/1 var(--font-serif);
  --font-medium: 550 2.0625rem/1.1 var(--font-serif);
  --font-normal: 550 1.6875rem/1.1 var(--font-serif);
  --font-small: 400 1.375rem/1.2 var(--font-serif);
  --font-smaller: 400 1.1875rem/1.2 var(--font-serif);
  --font-utility: 500 0.875rem/1.2 var(--font-sans);
  /* Label weight only — uppercase via utility-caps mixins */
  --font-utility-label: 540 0.875rem/1.2 var(--font-sans);
  --font-utility-large: 500 1rem/1.2 var(--font-sans);
  --font-utility-large-label: 540 1rem/1.2 var(--font-sans);
  --letter-spacing: 0.04em;
}

/* ---- Fluid root scale (rem tokens + spacing scale together) -------------- */

html {
  --font-scale-coeff: calc((var(--font-scale-to) - var(--font-scale-from))/(var(--font-scale-end) - var(--font-scale-start)));
  font-size: 1rem;
  font-size: calc((var(--font-scale-from) - var(--font-scale-start)*var(--font-scale-coeff))/16*1rem + var(--font-scale-coeff)*1vw);
  --font-scale-from: 16;
  --font-scale-to: 16;
  --font-scale-start: 14.4;
  --font-scale-end: 19.2;
}

@media screen and (max-width: 1440px) {

html {
    --font-scale-from: 14;
    --font-scale-to: 16;
    --font-scale-start: calc(var(--breakpoint-mobile)/100);
    --font-scale-end: 14.4;
}
  }

@media screen and (max-width: 767px) {

html {
    --font-scale-from: 12;
    --font-scale-to: 16;
    --font-scale-start: 0.01;
    --font-scale-end: calc(var(--breakpoint-mobile)/100);
}
  }

body {
  font-family: "Crimson Pro", serif;
  font-family: var(--font-serif);
  font: 400 1.1875rem/1.2 "Crimson Pro", serif;
  font: var(--font-smaller);
  font-size: 100%;
}

main {
  font: 400 1.1875rem/1.2 "Crimson Pro", serif;
  font: var(--font-smaller);
}

a {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 0.15em;
  transition:
    color 150ms cubic-bezier(0.25, 0.1, 0.25, 1), text-decoration-color 150ms cubic-bezier(0.25, 0.1, 0.25, 1);
  transition:
    color var(--dur-micro) var(--ease-standard), text-decoration-color var(--dur-micro) var(--ease-standard);
}

a:hover,
a:focus-visible {
  color: #3f5c4f;
  color: var(--color-link-hover);
  text-decoration-color: currentColor;
}

.page-layout__body ul,.page-layout__body ol {
    list-style: none;
    padding-left: 0;
  }

.page-layout__body ul > li,.page-layout__body ol > li {
    position: relative;
    padding-left: calc(1ch + 0.65em);
    padding-left: var(--list-indent);
  }

.page-layout__body ul > li::before {
    position: absolute;
    left: 0;
    top: 0;
  }

.page-layout__body ol > li::before {
    position: absolute;
    left: 0;
    top: 0;
  }

.page-layout__body ul > li::before {
    content: "\2022";
  }

.page-layout__body ol {
    counter-reset: prose-ol;
  }

.page-layout__body ol > li {
    padding-left: 1.9em;
    padding-left: var(--list-indent-ordered);
  }

.page-layout__body ol > li::before {
    counter-increment: prose-ol;
    content: counter(prose-ol) ".";
    width: 1.25em;
    width: var(--list-marker-width-ordered);
    font-feature-settings: "tnum";
    font-variant-numeric: tabular-nums;
    text-align: right;
  }

.page-layout__body li > ul,.page-layout__body li > ol {
    margin-top: 0.5rem;
  }

.page-layout__body:not(.does-not-exist) a,.standfirst:not(.does-not-exist) a,.home-hero__standfirst:not(.does-not-exist) a,.employee-card__bio:not(.does-not-exist) a,.calendar-event .card__excerpt a {
    -webkit-text-decoration: underline;
    text-decoration: underline;
    text-decoration-color: currentColor;
  }

/* ---- Rules -------------------------------------------------------------- */

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol {
  margin: 1rem 0;
}

h1:first-child {
    margin-top: 0;
  }

h4:first-child {
    margin-top: 0;
  }

h5:first-child {
    margin-top: 0;
  }

h6:first-child {
    margin-top: 0;
  }

p:first-child {
    margin-top: 0;
  }

h1:last-child {
    margin-bottom: 0;
  }

h4:last-child {
    margin-bottom: 0;
  }

h5:last-child {
    margin-bottom: 0;
  }

h6:last-child {
    margin-bottom: 0;
  }

p:last-child {
    margin-bottom: 0;
  }

ul,
ol,
blockquote {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

ul:first-child {
    margin-top: 0;
  }

ol:first-child {
    margin-top: 0;
  }

ul:last-child {
    margin-bottom: 0;
  }

ol:last-child {
    margin-bottom: 0;
  }

.h1-display {
  font: 550 3.125rem/1 "Crimson Pro", serif;
  font: var(--font-larger);
  margin: 1rem 0;
}

.h1-display:first-child {
    margin-top: 0;
  }

.h1-display:last-child {
    margin-bottom: 0;
  }

h1 {
  font: 550 2.0625rem/1.1 "Crimson Pro", serif;
  font: var(--font-medium);
  margin-bottom: 2rem;
}

h2 {
  font: 550 2.0625rem/1.1 "Crimson Pro", serif;
  font: var(--font-medium);
  margin-top: 3rem;
  margin-bottom: 2rem;
}

h2:first-child {
    margin-top: 0;
  }

h2:last-child {
    margin-bottom: 0;
  }

h3 {
  font: 550 1.6875rem/1.1 "Crimson Pro", serif;
  font: var(--font-normal);
  margin-top: 2rem;
  margin-bottom: 1rem;
}

h3:first-child {
    margin-top: 0;
  }

h3:last-child {
    margin-bottom: 0;
  }

h4 {
  font: 400 1.375rem/1.2 "Crimson Pro", serif;
  font: var(--font-small);
}

h5 {
  font: 400 1.1875rem/1.2 "Crimson Pro", serif;
  font: var(--font-smaller);
}

h6 {
  font: 500 0.875rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility);
}

.standfirst {
  font: 400 1.375rem/1.2 "Crimson Pro", serif;
  font: var(--font-small);
  font-weight: 550;
  max-width: 55ch;
  max-width: var(--measure);
}

.utility-heading {
  font: 540 0.875rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility-label);
  letter-spacing: 0.04em;
  letter-spacing: var(--letter-spacing);
  text-transform: uppercase;
  color: #31483e;
  color: var(--color-text-primary);
  margin: 0.5rem 0;
  max-width: none;
}

.utility-heading:first-child {
    margin-top: 0;
  }

.utility-heading:last-child {
    margin-bottom: 0;
  }

.caption {
  font: 400 1.1875rem/1.2 "Crimson Pro", serif;
  font: var(--font-smaller);
  color: #31483e;
  color: var(--color-text-primary);
}

blockquote {
  font-size: inherit;
  padding-left: 2.5rem;
  padding-left: var(--space-m);
  margin: 2rem 0;
}

blockquote:first-child {
    margin-top: 0;
  }

blockquote:last-child {
    margin-bottom: 0;
  }

figcaption {
  margin-top: 0.5rem;
  margin-top: var(--space-xxs);
  font: 400 1.1875rem/1.2 "Crimson Pro", serif;
  font: var(--font-smaller);
  color: #31483e;
  color: var(--color-text-primary);
}

*,
*:before,
*:after {
  box-sizing: border-box;
}

.responsive-embed,
figure.image {
  margin: 2rem 0;
}

.responsive-embed:not(does-not-exist):first-child {
    margin-top: 0;
  }

figure.image:first-child {
    margin-top: 0;
  }

.responsive-embed:not(does-not-exist):last-child {
    margin-bottom: 0;
  }

figure.image:last-child {
    margin-bottom: 0;
  }

figure.image {
  width: 100%;
  padding: 0;
  background-color: #fdfbf1;
  background-color: var(--color-bg-page);
  isolation: isolate;
}

figure.image img {
    display: block;
    width: 100%;
    height: auto;
    mix-blend-mode: multiply;
  }

img {
  display: block;
}

/* ---- Images on papir (multiply) ------------------------------------------ */

.card__media,
.employee-card__media,
.page-layout__figure {
  background-color: #fdfbf1;
  background-color: var(--color-bg-page);
  isolation: isolate;
}

.card__image,
.employee-card__image,
.page-layout__figure img {
  mix-blend-mode: multiply;
}

.media-placeholder {
  background-color: rgb(238, 238, 228);
  background-color: var(--color-bg-subtle);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ---- Shared buttons ------------------------------------------------------ */

.btn {
  font: 540 0.875rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility-label);
  letter-spacing: 0.04em;
  letter-spacing: var(--letter-spacing);
  text-transform: uppercase;
  color: #31483e;
  color: var(--color-text-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  gap: var(--space-xxs);
  min-height: 3rem;
  padding: 0 1.5rem;
  padding: 0 var(--space-s);
  border: 0;
  border-radius: 4px;
  border-radius: var(--radius-medium);
  -webkit-text-decoration: none;
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color 150ms cubic-bezier(0.25, 0.1, 0.25, 1), color 150ms cubic-bezier(0.25, 0.1, 0.25, 1), border-color 150ms cubic-bezier(0.25, 0.1, 0.25, 1), transform 250ms cubic-bezier(0.25, 0.1, 0.25, 1);
  transition:
    background-color var(--dur-micro) var(--ease-standard), color var(--dur-micro) var(--ease-standard), border-color var(--dur-micro) var(--ease-standard), transform var(--dur-standard) var(--ease-standard);
}

.btn:hover,
.btn:focus-visible {
  outline: none;
}

/* Inline wrapper — stable hover target; motion applied to .btn inside via CSS */

.btn-wrap {
  display: inline-block;
  padding-bottom: 6px;
  vertical-align: top;
}

.site-nav-mobile__ctas .btn-wrap {
  display: block;
  width: 100%;
}

@media (hover: hover) and (pointer: fine) {
  .btn-wrap:hover,
  .btn-wrap:focus-within {
    position: relative;
    z-index: 1;
  }

  .btn-wrap:hover > .btn,
  .btn-wrap:focus-within > .btn {
    transform: translate3d(0, -2px, 0);
    transform: var(--lift-hover);
    backface-visibility: hidden;
  }

  .btn-wrap:active > .btn {
    transform: translate3d(0, 0, 0);
  }
}

.btn--primary,
a.btn--primary,
a.btn--primary:visited {
  background: #31483e;
  background: var(--color-button-primary-bg);
  color: #fdfbf1;
  color: var(--color-button-primary-text);
  -webkit-text-fill-color: #fdfbf1;
  -webkit-text-fill-color: var(--color-button-primary-text);
}

.btn--primary:hover,
.btn--primary:focus-visible,
a.btn--primary:hover,
a.btn--primary:focus-visible {
  background: #3f5c4f;
  background: var(--color-button-primary-bg-hover);
  color: #fdfbf1;
  color: var(--color-button-primary-text);
  -webkit-text-fill-color: #fdfbf1;
  -webkit-text-fill-color: var(--color-button-primary-text);
  -webkit-text-decoration: none;
  text-decoration: none;
}

.btn--secondary,
a.btn--secondary,
a.btn--secondary:visited {
  border: 1px solid #3f5c4f;
  border: 1px solid var(--color-border-solid);
  background: transparent;
  color: #31483e;
  color: var(--color-text-primary);
}

.btn--secondary:hover,
.btn--secondary:focus-visible,
a.btn--secondary:hover,
a.btn--secondary:focus-visible {
  background: #3f5c4f;
  background: var(--color-button-secondary-bg);
  color: #fdfbf1;
  color: var(--color-button-secondary-text);
  -webkit-text-decoration: none;
  text-decoration: none;
}

.btn--link {
  display: inline-flex;
  align-items: center;
  min-height: auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: #31483e;
  color: var(--color-link-default);
  font: 500 0.875rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility);
  letter-spacing: normal;
  text-transform: none;
}

.btn--link:hover,
.btn--link:focus-visible {
  color: #3f5c4f;
  color: var(--color-link-hover);
  -webkit-text-decoration: none;
  text-decoration: none;
}

/* Always-underlined links (hub back-links, print control) — overrides .btn--link hover */

.link-underlined,
.hub-section-link a {
  color: #31483e;
  color: var(--color-link-default);
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: currentColor;
  text-underline-offset: 0.15em;
}

.btn--link.link-underlined,
.btn--link.link-underlined:hover,
.btn--link.link-underlined:focus-visible {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: currentColor;
}

.link-underlined:hover,
.link-underlined:focus-visible,
.hub-section-link a:hover,
.hub-section-link a:focus-visible {
  color: #3f5c4f;
  color: var(--color-link-hover);
  text-decoration-color: currentColor;
}

/* ---- Hub listing --------------------------------------------------------- */

.calendar-month__label {
  margin: 0 0 1.5rem;
  margin: 0 0 var(--space-s);
  font: 550 2.0625rem/1.1 "Crimson Pro", serif;
  font: var(--font-medium);
  max-width: none;
}

.calendar-month__divider {
  height: 1px;
  margin: 0 0 1rem;
  margin: 0 0 var(--space-xs);
  background: #3f5c4f;
  background: var(--color-border-solid);
  border: 0;
}

.calendar-events {
  list-style: none;
  margin: 0;
  padding: 0;
}

.calendar-events .calendar-event {
  padding-top: 1rem;
  padding-top: var(--space-xs);
  padding-bottom: 1.5rem;
  padding-bottom: var(--space-s);
  border-bottom: 1px solid #3f5c4f;
  border-bottom: 1px solid var(--color-border-solid);
}

.calendar-events > li:first-child .calendar-event {
  padding-top: 0;
}

.calendar-print-btn {
  margin-top: 1.5rem;
  margin-top: var(--space-s);
  margin-bottom: 1.5rem;
  margin-bottom: var(--space-s);
}

/* ---- Event detail -------------------------------------------------------- */

.calendar-article-lead {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  gap: var(--space-s);
  margin: 0;
}

.calendar-article-lead > h2 {
  margin: 0;
  font: 550 2.0625rem/1.1 "Crimson Pro", serif;
  font: var(--font-medium);
  max-width: none;
}

@media screen and (max-width: 1100px) {
  .calendar-article-page .page-layout__aside + .page-layout__main {
    margin-top: 4rem;
    margin-top: var(--space-l);
  }
}

/* ---- Employee card (contact person grid) --------------------------------- */

.employee-card {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  gap: var(--space-s);
  color: #31483e;
  color: var(--color-text-primary);
}

.employee-card__media {
  margin: 0;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  border-radius: 2px;
  border-radius: var(--radius-small);
}

.employee-card__media figure,
.employee-card__media .image {
  margin: 0;
}

.employee-card__image {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.employee-card__content {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  gap: var(--space-xs);
  width: 100%;
}

.employee-card__heading {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.employee-card__name {
  margin: 0;
  font: 400 1.375rem/1.2 "Crimson Pro", serif;
  font: var(--font-small);
  font-weight: 550;
  color: #31483e;
  color: var(--color-text-primary);
}

.employee-card__title {
  margin: 0;
  font: 400 1.1875rem/1.2 "Crimson Pro", serif;
  font: var(--font-smaller);
  font-style: italic;
  color: #31483e;
  color: var(--color-text-primary);
}

.employee-card__bio,
.employee-card__phone {
  margin: 0;
  font: 400 1.1875rem/1.2 "Crimson Pro", serif;
  font: var(--font-smaller);
  color: #31483e;
  color: var(--color-text-primary);
}

.employee-card__bio p {
  margin: 0;
}

.employee-card__email {
  margin: 0;
  font: 400 1.1875rem/1.2 "Crimson Pro", serif;
  font: var(--font-smaller);
}

.employee-card__email a {
  color: #31483e;
  color: var(--color-text-primary);
  text-decoration-color: currentColor;
}

.employee-card__email a:hover,
.employee-card__email a:focus-visible {
  color: #3f5c4f;
  color: var(--color-link-hover);
  outline: none;
}

.employee-card__phone a {
  color: #31483e;
  color: var(--color-text-primary);
}

.employee-card__phone a:hover,
.employee-card__phone a:focus-visible {
  outline: none;
}

.employee-cards {
  display: grid;
  grid-gap: 2rem;
  grid-gap: var(--gutter);
  gap: 2rem;
  gap: var(--gutter);
  list-style: none;
  margin: 0;
  padding: 0;
}

/* ---- Link cards (article, pillar, feature) -------------------------------- */

.card {
  width: 100%;
  color: #31483e;
  color: var(--color-text-primary);
  -webkit-text-decoration: none;
  text-decoration: none;
}

.article-card,
.pillar-card {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  gap: var(--space-xs);
}

.pillar-card .card__title {
  font: 550 1.6875rem/1.1 "Crimson Pro", serif;
  font: var(--font-normal);
}

.card:focus-visible {
  outline: 2px solid #3f5c4f;
  outline: 2px solid var(--color-link-hover);
  outline-offset: 3px;
  border-radius: 2px;
  border-radius: var(--radius-small);
}

.card:hover .card__title,
.card:focus-visible .card__title {
  color: #3f5c4f;
  color: var(--color-link-hover);
}

.card__title {
  margin: 0;
  font: 550 1.6875rem/1.1 "Crimson Pro", serif;
  font: var(--font-normal);
  color: #31483e;
  color: var(--color-text-primary);
  transition: color 150ms cubic-bezier(0.25, 0.1, 0.25, 1);
  transition: color var(--dur-micro) var(--ease-standard);
}

.card__excerpt {
  font: 400 1.1875rem/1.2 "Crimson Pro", serif;
  font: var(--font-smaller);
}

.card__excerpt p {
  margin: 0;
}

.article-card .date-label {
  margin: 0;
}

.card__media {
  margin: 0;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: 2px;
  border-radius: var(--radius-small);
}

.card__image {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/* ---- Feature card (image left, text right) -------------------------------- */

.feature-card {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-columns: repeat(var(--columns), 1fr);
  grid-gap: 2rem;
  grid-gap: var(--gutter);
  gap: 2rem;
  gap: var(--gutter);
  align-items: start;
}

.feature-card .card__media {
  grid-column: 1 / span 8;
}

.feature-card__content {
  grid-column: 9 / span 4;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  gap: var(--space-xs);
  min-width: 0;
}

.feature-card .card__title {
  font: 550 2.0625rem/1.1 "Crimson Pro", serif;
  font: var(--font-medium);
}

.feature-card .card__excerpt {
  font: 400 1.375rem/1.2 "Crimson Pro", serif;
  font: var(--font-small);
}

.card__indicator {
  --card-indicator-stroke: 2px;
  --card-indicator-push: 0.75rem;
  --card-indicator-width: 1.75rem;
  --card-indicator-height: 1rem;

  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  height: 1rem;
  height: var(--card-indicator-height);
  vertical-align: middle;
  color: #31483e;
  color: var(--color-text-primary);
  transition: transform 150ms cubic-bezier(0.25, 0.1, 0.25, 1);
  transition: transform var(--dur-micro) var(--ease-standard);
}

.card__indicator__arrow,
.card__indicator__arrow path {
  stroke-width: var(--card-indicator-stroke);
}

.card__indicator__arrow path {
  vector-effect: non-scaling-stroke;
}

.card__indicator__arrow {
  flex-shrink: 0;
  display: block;
  width: var(--card-indicator-width);
  height: var(--card-indicator-height);
}

.card:hover .card__indicator,
.card:focus-visible .card__indicator {
  transform: translateX(var(--card-indicator-push));
}

@media screen and (max-width: 1100px) {
  .feature-card .card__media,
  .feature-card__content {
    grid-column: 1 / -1;
  }
}

/* ---- Contact hub --------------------------------------------------------- */

.contact-page .employee-cards {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media screen and (max-width: 1100px) {
  .contact-page .employee-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 767px) {
  .contact-page .employee-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ---- Contact person detail (CMS / preview only; public UI uses employee cards) */

.contact-person-page .page-layout__aside .contact-person-page__role {
  margin: 1rem 0 0;
  margin: var(--space-xs) 0 0;
  font: 400 1.1875rem/1.2 "Crimson Pro", serif;
  font: var(--font-smaller);
  color: #31483e;
  color: var(--color-text-primary);
}

.contact-person-page__contact {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font: 400 1.1875rem/1.2 "Crimson Pro", serif;
  font: var(--font-smaller);
}

.contact-person-page__contact p {
  margin: 0;
}

.contact-person-page__contact a {
  color: #31483e;
  color: var(--color-link-default);
}

.contact-person-page__contact a:hover,
.contact-person-page__contact a:focus-visible {
  outline: none;
}

/* ---- Site footer --------------------------------------------------------- */

.site-footer {
  background: #ddebcc;
  background: var(--color-bg-footer);
  margin-top: auto;
  font: 500 0.875rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility);
  color: #31483e;
  color: var(--color-text-primary);
}

.site-footer a {
  color: #31483e;
  color: var(--color-text-primary);
}

.site-footer a:not(.footer__logo-link) {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: currentColor;
}

.site-footer a:not(.footer__logo-link):hover,
.site-footer a:not(.footer__logo-link):focus-visible {
  outline: none;
}

/* ---- Upper block --------------------------------------------------------- */

.footer__main {
  padding-top: 4rem;
  padding-top: var(--space-l);
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  gap: var(--space-m);
}

.footer__logo-link {
  display: inline-flex;
  flex-shrink: 0;
  -webkit-text-decoration: none;
  text-decoration: none;
}

.footer__logo {
  display: block;
  height: 62px;
  height: var(--logo-height);
  width: auto;
  color: #31483e;
  color: var(--color-text-primary);
}

.footer__content {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-columns: repeat(var(--columns), 1fr);
  grid-column-gap: 2rem;
  grid-column-gap: var(--gutter);
  -moz-column-gap: 2rem;
       column-gap: 2rem;
  -moz-column-gap: var(--gutter);
       column-gap: var(--gutter);
  grid-row-gap: 2.5rem;
  grid-row-gap: var(--space-m);
  row-gap: 2.5rem;
  row-gap: var(--space-m);
  width: 100%;
}

.footer__column {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  gap: var(--space-xs);
  min-width: 0;
}

.footer__column p {
  margin: 0;
}

.footer__column--1 {
  grid-column: 1 / span 4;
}

.footer__column--2 {
  grid-column: 5 / span 4;
}

.footer__column--3 {
  grid-column: 9 / span 4;
}

/* ---- Divider ------------------------------------------------------------- */

.footer__divider {
  height: 1px;
  background: #3f5c4f;
  background: var(--color-border-solid);
  width: 100%;
  margin-top: 4rem;
  margin-top: var(--space-l);
}

/* ---- Legal row ----------------------------------------------------------- */

.footer__legal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 1.5rem;
  padding-top: var(--space-s);
  padding-bottom: 2.5rem;
  padding-bottom: var(--space-m);
  gap: 1rem;
  gap: var(--space-xs);
}

.footer__legal-links {
  display: flex;
  gap: 1rem;
  gap: var(--space-xs);
  align-items: center;
}

.footer__colophon {
  margin: 0;
  white-space: nowrap;
}

/* ---- Medium / mobile ----------------------------------------------------- */

@media screen and (max-width: 1100px) {
  .footer__column--1,
  .footer__column--2,
  .footer__column--3 {
    grid-column: 1 / -1;
  }

  .footer__column--empty {
    display: none;
  }

  .footer__legal {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
    gap: var(--space-s);
  }

  .footer__colophon {
    white-space: normal;
  }
}

/* ---- Home page (forsida) -------------------------------------------------- */

/* Full-viewport hero — break out of main horizontal padding */

.home-page .home-hero {
  margin-left: -4rem;
  margin-left: calc(var(--outer-padding)*-1);
  margin-right: -4rem;
  margin-right: calc(var(--outer-padding)*-1);
  width: calc(100% + 8rem);
  width: calc(100% + var(--outer-padding)*2);
  max-width: none;
  margin-top: calc(-62px + -2rem);
  margin-top: calc(var(--site-header-height)*-1);
  min-height: 100svh;
  min-height: 100dvh;
  min-height: 100vh;
  padding: 0;
  background: transparent;
}

.home-page .home-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  gap: var(--space-xs);
  align-items: flex-start;
}

.home-page .home-hero__image-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: inherit;
  overflow: hidden;
  background-color: #31483e;
  background-color: var(--color-text-primary);
}

.home-page .home-hero__image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

.home-page .home-hero__overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-columns: repeat(var(--columns), 1fr);
  grid-column-gap: 2rem;
  grid-column-gap: var(--gutter);
  -moz-column-gap: 2rem;
       column-gap: 2rem;
  -moz-column-gap: var(--gutter);
       column-gap: var(--gutter);
  grid-row-gap: 2.5rem;
  grid-row-gap: var(--space-m);
  row-gap: 2.5rem;
  row-gap: var(--space-m);
  align-content: center;
  width: 100%;
  max-width: 100%;
  max-width: var(--grid-limit, 100%);
  margin: 0 auto;
  padding: 4rem 4rem;
  padding: var(--space-l) var(--outer-padding);
  padding-top: calc(62px + 4.5rem);
  padding-top: calc(var(--site-header-height) + var(--space-m));
  pointer-events: none;
  text-align: center;
}

.home-page .home-hero__symbol {
  grid-column: 6 / span 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.home-page .home-hero__symbol-img {
  display: block;
  width: 100%;
  height: auto;
  color: #fdfbf1;
  color: var(--color-hero-logo-symbol);
}

.home-page .home-hero__title {
  grid-column: 4 / span 6;
  margin: 0;
  max-width: none;
  width: 100%;
  color: #fdfbf1;
  color: var(--color-hero-logo-symbol);
}

@media screen and (max-width: 767px) {

.home-page .home-hero__title {
    font: 500 2.25rem/1.05 "Crimson Pro", serif;
    font: 500 2.25rem/1.05 var(--font-serif);
}
  }

/* Descendants only — do not include .home-hero__title (inherit would override papir) */

.home-page .home-hero__title :where(*) {
  color: inherit;
}

.home-hero__below {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-columns: repeat(var(--columns), 1fr);
  grid-gap: 2rem;
  grid-gap: var(--gutter);
  gap: 2rem;
  gap: var(--gutter);
  grid-row-gap: 2.5rem;
  grid-row-gap: var(--space-m);
  row-gap: 2.5rem;
  row-gap: var(--space-m);
  width: 100%;
  max-width: 100%;
  max-width: var(--grid-limit, 100%);
  margin: 0 auto;
  padding: 4rem 4rem;
  padding: var(--space-l) var(--outer-padding);
  padding-left: 0;
  padding-right: 0;
}

.home-hero__below .home-hero__standfirst {
  grid-column: 1 / span 8;
  font: 550 2.0625rem/1.1 "Crimson Pro", serif;
  font: var(--font-medium);
  font-weight: 500;
  color: #31483e;
  color: var(--color-text-primary);
  max-width: none;
}

.home-hero__below .home-hero__standfirst p {
  margin: 0;
  max-width: none;
}

.home-hero__below .home-hero__ctas {
  grid-column: 1 / -1;
}

/* ---- Pillar / feature sections --------------------------------------------- */

.home-pillars,
.home-features {
  padding-top: 4rem;
  padding-top: var(--space-l);
  padding-bottom: 4rem;
  padding-bottom: var(--space-l);
}

.pillar-cards {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-gap: 2rem;
  grid-gap: var(--gutter);
  gap: 2rem;
  gap: var(--gutter);
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: none;
  width: 100%;
}

.home-features__grid {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  gap: 4rem;
  gap: var(--space-l);
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: none;
  width: 100%;
}

.pillar-cards > li,
.home-features__grid > li {
  min-width: 0;
  max-width: none;
}

@media screen and (max-width: 1100px) {
  /* With burger nav (≤1100px): stacked hero overlay */
  .home-page .home-hero__overlay {
    gap: 2.5rem;
    gap: var(--space-m);
  }

  .home-page .home-hero__title {
    grid-column: 1 / -1;
  }

  .home-hero__below .home-hero__standfirst {
    grid-column: 1 / -1;
  }

  .pillar-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 767px) {
  .home-page .home-hero__symbol {
    grid-column: 2 / span 2;
  }

  .pillar-cards {
    grid-template-columns: 1fr;
  }
}

/* ---- Page shell ---------------------------------------------------------- */

/* Grid row shells and page headers: full width; prose uses --measure on wrappers. */

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.site-header,
main,
footer {
  padding-left: 4rem;
  padding-left: var(--outer-padding);
  padding-right: 4rem;
  padding-right: var(--outer-padding);
}

.site-header .inner,
footer .inner {
  max-width: 100%;
  max-width: var(--grid-limit, 100%);
  margin: 0 auto;
  width: 100%;
}

main .inner {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-columns: repeat(var(--columns), 1fr);
  grid-column-gap: 2rem;
  grid-column-gap: var(--gutter);
  max-width: 100%;
  max-width: var(--grid-limit, 100%);
  margin: 0 auto;
}

main .inner > * {
  max-width: none;
  min-width: 0;
}

main .inner > header h1, main .inner > header h2, main .inner > header h3 {
  max-width: none;
}

/* Only classed lists (e.g. .news-cards), not prose ul/ol */

main .inner > ul[class], main .inner > ol[class] {
  max-width: none;
}

/* ---- Site header --------------------------------------------------------- */

.site-header {
  background-color: rgba(242, 214, 218, 0.96);
  position: sticky;
  top: 0;
  z-index: 100;
  transition:
    transform 350ms cubic-bezier(0.4, 0, 0.2, 1), background-color 350ms cubic-bezier(0.4, 0, 0.2, 1);
  transition:
    transform var(--dur-header-scroll) var(--ease-header-scroll), background-color var(--dur-header-scroll) var(--ease-header-scroll);
}

@supports (color: color-mix(in lch, red, blue)) {
.site-header {
  background-color: color-mix(
    in srgb,
    var(--color-bg-header) var(--header-bg-opacity),
    transparent
  );
}
}

.site-header.site-header--hidden {
  transform: translateY(-100%);
}

body.is-nav-open {
  overflow: hidden;
}

.site-header__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  gap: var(--gutter);
  width: 100%;
  padding-top: 1rem;
  padding-top: var(--space-xs);
  padding-bottom: 1rem;
  padding-bottom: var(--space-xs);
}

.site-nav--desktop {
  margin-left: auto;
}

.site-nav-mobile {
  display: none;
}

.site-header__logo-link {
  display: flex;
  flex-shrink: 0;
  -webkit-text-decoration: none;
  text-decoration: none;
}

.site-header__logo {
  display: block;
  height: 62px;
  height: var(--logo-height);
  width: auto;
  color: #31483e;
  color: var(--color-text-primary);
  transition: color 350ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: color var(--dur-header-scroll) var(--ease-header-scroll);
}

/* ---- Nav list ------------------------------------------------------------ */

.site-nav__list,
.nav__popout-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-nav__list {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  gap: var(--space-s);
  flex-wrap: nowrap;
}

.site-nav__item {
  position: relative;
  flex-shrink: 0;
}

.site-nav__link,
.nav__trigger,
.site-nav-mobile__link--l1,
.site-nav-mobile__parent {
  font: 540 0.875rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility-label);
  letter-spacing: 0.04em;
  letter-spacing: var(--letter-spacing);
  text-transform: uppercase;
  color: #31483e;
  color: var(--color-text-primary);
  white-space: nowrap;
}

.site-nav__link,
.site-nav__toggle {
  transition: color 350ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: color var(--dur-header-scroll) var(--ease-header-scroll);
}

.site-nav__link--active {
  color: #3f5c4f;
  color: var(--color-link-hover);
  text-decoration-color: currentColor;
}

.site-nav__link:hover,
.site-nav__link:focus-visible,
.nav__trigger:hover,
.nav__trigger:focus-visible,
.nav__popout-link:hover,
.nav__popout-link:focus-visible,
.site-nav-mobile__link:hover,
.site-nav-mobile__link:focus-visible {
  outline: none;
}

/* ---- Dropdown trigger ---------------------------------------------------- */

/* <details>/<summary>: hide default disclosure marker */

.nav__trigger {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 0.5em;
  transition:
    color 150ms cubic-bezier(0.25, 0.1, 0.25, 1), text-decoration-color 150ms cubic-bezier(0.25, 0.1, 0.25, 1);
  transition:
    color var(--dur-micro) var(--ease-standard), text-decoration-color var(--dur-micro) var(--ease-standard);
}

.nav__trigger:hover,
.nav__trigger:focus-visible,
details[open] > .nav__trigger,
.nav__trigger[aria-current="true"] {
  color: #3f5c4f;
  color: var(--color-link-hover);
  text-decoration-color: currentColor;
}

.nav__trigger::-webkit-details-marker {
  display: none;
}

.nav__trigger::after {
  content: "";
  display: inline-block;
  width: 0.45em;
  height: 0.45em;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-0.1em);
  transition: transform 150ms cubic-bezier(0.25, 0.1, 0.25, 1);
  transition: transform var(--dur-micro) var(--ease-standard);
  flex-shrink: 0;
}

details[open] > .nav__trigger::after {
  transform: rotate(-135deg) translateY(-0.1em);
}

/* ---- Popout panel -------------------------------------------------------- */

.nav__popout {
  background: #fdfbf1;
  background: var(--color-bg-page);
  border-radius: 4px;
  border-radius: var(--radius-medium);
  box-shadow:
    0 4px 8px rgba(0, 0, 0, 0.08),
    0 4px 3px rgba(0, 0, 0, 0.03);
  padding: 1.5rem 1rem;
  padding: var(--space-s) var(--space-xs);
  min-width: 14rem;
  z-index: 2;

  position: absolute;
  top: 100%;
  left: 50%;
  translate: -50% 0;
  margin-top: 1.5rem;
  margin-top: var(--space-s);

  /* CSS Anchor Positioning — progressive enhancement */
  top: anchor(bottom);
  left: anchor(center);
}

/* @supports fallback for browsers without Anchor Positioning */

@supports not (anchor-name: --x) {
  .site-nav__item--has-dropdown {
    position: relative;
  }

  .nav__popout {
    position: absolute;
    top: 100%;
    left: 50%;
    translate: -50% 0;
    margin-top: 1.5rem;
    margin-top: var(--space-s);
  }
}

.nav__popout::before {
  content: "";
  position: absolute;
  top: -0.4rem;
  left: 50%;
  translate: -50% 0;
  width: 0.75rem;
  height: 0.75rem;
  background: #fdfbf1;
  background: var(--color-bg-page);
  transform: rotate(45deg);
}

.nav__popout-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  gap: var(--space-xs);
  max-width: none;
}

.nav__popout-link,
.site-nav-mobile__link--sub {
  font: 500 0.875rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility);
  color: #31483e;
  color: var(--color-text-primary);
  letter-spacing: normal;
}

.nav__popout-link {
  white-space: nowrap;
  display: block;
  -webkit-text-decoration: none;
  text-decoration: none;
  border-radius: 2px;
  border-radius: var(--radius-small);
  transition: background-color 150ms cubic-bezier(0.25, 0.1, 0.25, 1);
  transition: background-color var(--dur-micro) var(--ease-standard);
}

.nav__popout-link:hover,
.nav__popout-link:focus-visible {
  background: rgb(238, 238, 228);
  background: var(--color-bg-subtle);
  outline: none;
}

@supports selector(::details-content) {
  /* No transform here — transform on ::details-content would make it a
     containing block for .nav__popout, breaking left: 50% centering. */
  .nav__dropdown::details-content {
    opacity: 0;
    transition:
      opacity 150ms cubic-bezier(0.4, 0, 1, 1), display 150ms allow-discrete;
    transition:
      opacity var(--dur-micro) var(--ease-exit), display var(--dur-micro) allow-discrete;
    transition-behavior: allow-discrete;
  }

  @starting-style {
    .nav__dropdown[open]::details-content {
      opacity: 0;
    }
  }

  .nav__dropdown[open]::details-content {
    opacity: 1;
    transition:
      opacity 250ms cubic-bezier(0, 0, 0.2, 1), display 250ms allow-discrete;
    transition:
      opacity var(--dur-standard) var(--ease-enter), display var(--dur-standard) allow-discrete;
  }

  /* Slide the popout in directly — safe because its own transform
     does not affect its own containing-block resolution. */
  .nav__dropdown[open] .nav__popout {
    animation: nav-popout-enter 250ms cubic-bezier(0, 0, 0.2, 1) both;
    animation: nav-popout-enter var(--dur-standard) var(--ease-enter) both;
  }
}

@keyframes nav-popout-enter {
  from {
    translate: -50% 6px;
  }
}

/* ---- Desktop — wrap nav below logo when items do not fit one row ----------- */

@media screen and (max-width: 1100px) {

@media not (max-color:2147477350) {
  .site-header__bar {
    flex-wrap: wrap;
    row-gap: 1rem;
    row-gap: var(--space-xs);
  }

  .site-nav--desktop {
    flex: 1 1 auto;
    margin-left: auto;
    min-width: min(100%, -moz-max-content);
    min-width: min(100%, max-content);
    max-width: 100%;
  }

  .site-nav__list {
    flex-wrap: wrap;
    justify-content: flex-end;
    row-gap: 0.75rem;
  }
}
}

@media not screen,not all and (max-width: 1100px) {

@media not (color:2147477350) {
  .site-header__bar {
    flex-wrap: wrap;
    row-gap: 1rem;
    row-gap: var(--space-xs);
  }

  .site-nav--desktop {
    flex: 1 1 auto;
    margin-left: auto;
    min-width: min(100%, -moz-max-content);
    min-width: min(100%, max-content);
    max-width: 100%;
  }

  .site-nav__list {
    flex-wrap: wrap;
    justify-content: flex-end;
    row-gap: 0.75rem;
  }
}
}

/* ---- Menu toggle (medium / mobile) --------------------------------------- */

.site-nav__toggle {
  display: none;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  margin-left: auto;
  border: 0;
  background: transparent;
  color: #31483e;
  color: var(--color-text-primary);
  cursor: pointer;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
}

.site-nav__toggle-icon {
  display: block;
  width: 1.25rem;
  height: 2px;
  background: currentColor;
  position: relative;
  transition: background-color 150ms cubic-bezier(0.25, 0.1, 0.25, 1);
  transition: background-color var(--dur-micro) var(--ease-standard);
}

.site-nav__toggle-icon::before,
.site-nav__toggle-icon::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background: currentColor;
  transition: transform 150ms cubic-bezier(0.25, 0.1, 0.25, 1);
  transition: transform var(--dur-micro) var(--ease-standard);
}

.site-nav__toggle-icon::before {
  top: -0.4375rem;
}

.site-nav__toggle-icon::after {
  bottom: -0.4375rem;
}

.site-header.is-nav-open .site-nav__toggle-icon {
  background: transparent;
}

.site-header.is-nav-open .site-nav__toggle-icon::before {
  top: 0;
  transform: rotate(45deg);
}

.site-header.is-nav-open .site-nav__toggle-icon::after {
  bottom: 0;
  transform: rotate(-45deg);
}

/* ---- Medium / mobile — header expands to fullscreen overlay when open ---- */

@media screen and (max-width: 1100px) {
  .site-nav__toggle {
    display: flex;
  }

  .site-nav--desktop {
    display: none;
  }

  .site-header .inner {
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  .site-header.is-nav-open {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    min-height: 100dvh;
    overflow: hidden;
  }

  /* Fixed header leaves the flow; pad main so page content (e.g. home hero) does not jump. */
  body.is-nav-open main {
    padding-top: calc(62px + 2rem);
    padding-top: var(--site-header-height);
  }

  .site-header.is-nav-open .inner {
    flex: 1;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
  }

  .site-nav-mobile {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
    animation: site-nav-mobile-enter 250ms cubic-bezier(0, 0, 0.2, 1)
      forwards;
    animation: site-nav-mobile-enter var(--dur-standard) var(--ease-enter)
      forwards;
  }

  .site-nav-mobile--closing {
    animation: site-nav-mobile-exit 150ms cubic-bezier(0.4, 0, 1, 1) forwards;
    animation: site-nav-mobile-exit var(--dur-micro) var(--ease-exit) forwards;
  }

  .site-nav-mobile[hidden] {
    display: none;
  }

  @keyframes site-nav-mobile-enter {
    from {
      opacity: 0;
      transform: translateY(6px);
    }

    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @keyframes site-nav-mobile-exit {
    from {
      opacity: 1;
      transform: translateY(0);
    }

    to {
      opacity: 0;
      transform: translateY(6px);
    }
  }

  .site-nav-mobile__scroll {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: 1.5rem;
    padding-bottom: var(--space-s);
  }

  .site-nav-mobile__list,
  .site-nav-mobile__sublist {
    list-style: none;
    margin: 0;
    max-width: none;
  }

  .site-nav-mobile__list {
    padding: 0;
    border-top: 1px solid #3f5c4f;
    border-top: 1px solid var(--color-border-solid);
  }

  .site-nav-mobile__item {
    border-bottom: 1px solid #3f5c4f;
    border-bottom: 1px solid var(--color-border-solid);
  }

  .site-nav-mobile__parent {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    gap: var(--space-s);
    width: 100%;
    min-height: 3rem;
    padding-right: 0.25rem;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: color 150ms cubic-bezier(0.25, 0.1, 0.25, 1);
    transition: color var(--dur-micro) var(--ease-standard);
  }

  .site-nav-mobile__parent:hover,
  .site-nav-mobile__parent:focus-visible {
    color: #3f5c4f;
    color: var(--color-link-hover);
    outline: none;
  }

  .site-nav-mobile__chevron {
    flex-shrink: 0;
    width: 0.5em;
    height: 0.5em;
    margin-right: 0.125rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(-45deg);
    transition: transform 150ms cubic-bezier(0.25, 0.1, 0.25, 1);
    transition: transform var(--dur-micro) var(--ease-standard);
  }

  .site-nav-mobile__parent[aria-expanded="true"] .site-nav-mobile__chevron {
    transform: rotate(45deg);
  }

  .site-nav-mobile__sublist {
    padding: 0 0 1rem 1.5rem;
    padding: 0 0 var(--space-xs) var(--space-s);
  }

  .site-nav-mobile__sublist[hidden] {
    display: none;
  }

  .site-nav-mobile__link {
    display: flex;
    align-items: center;
    min-height: 3rem;
    padding-right: 0.25rem;
  }

  .site-nav-mobile__link--sub {
    min-height: 2.75rem;
  }

  .site-nav-mobile__link--active {
    color: #3f5c4f;
    color: var(--color-link-hover);
  }

  .site-nav-mobile__ctas {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    gap: var(--space-xs);
    padding: 1.5rem 0;
    padding: var(--space-s) 0;
    border-top: 1px solid #3f5c4f;
    border-top: 1px solid var(--color-border-solid);
    background: #f2d6da;
    background: var(--color-bg-header);
  }

  .site-nav-mobile__cta {
    width: 100%;
    text-align: center;
  }
}

/* ---- Home — inverse header over full-bleed hero (until first scroll) -------- */

body.is-header-over-hero:not(.is-nav-open) .site-header {
  background-color: transparent;
  /* No background transition while over hero (avoids load flash); scroll-off uses .site-header default. */
  transition-property: transform;
  transition-duration: 350ms;
  transition-duration: var(--dur-header-scroll);
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-timing-function: var(--ease-header-scroll);
}

body.is-header-over-hero:not(.is-nav-open) .site-header__logo,
body.is-header-over-hero:not(.is-nav-open) .site-nav__link,
body.is-header-over-hero:not(.is-nav-open) .nav__trigger,
body.is-header-over-hero:not(.is-nav-open) .site-nav__toggle {
  color: #fdfbf1;
  color: var(--papir);
}

body.is-header-over-hero:not(.is-nav-open) .site-nav__link:hover,
body.is-header-over-hero:not(.is-nav-open) .site-nav__link:focus-visible,
body.is-header-over-hero:not(.is-nav-open) .nav__trigger:hover,
body.is-header-over-hero:not(.is-nav-open) .nav__trigger:focus-visible,
body.is-header-over-hero:not(.is-nav-open) .site-nav__toggle:hover,
body.is-header-over-hero:not(.is-nav-open) .site-nav__toggle:focus-visible {
  color: #fdfbf1;
  color: var(--papir);
}

body.is-header-over-hero:not(.is-nav-open) .nav__trigger::after {
  border-color: currentColor;
}

/* ---- Date label (news cards + article aside) ----------------------------- */

.date-label {
  font: 540 0.875rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility-label);
  letter-spacing: 0.04em;
  letter-spacing: var(--letter-spacing);
  text-transform: uppercase;
  color: #31483e;
  color: var(--color-text-primary);
  margin: 0;
}

.date-label--large {
  font: 540 1rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility-large-label);
  letter-spacing: 0.04em;
  letter-spacing: var(--letter-spacing);
  text-transform: uppercase;
  color: #31483e;
  color: var(--color-text-primary);
}

.date-label--boxed {
  padding-top: 1rem;
  padding-top: var(--space-xs);
  padding-bottom: 1rem;
  padding-bottom: var(--space-xs);
  border-top: 1px solid #3f5c4f;
  border-top: 1px solid var(--color-border-solid);
  border-bottom: 1px solid #3f5c4f;
  border-bottom: 1px solid var(--color-border-solid);
}

.page-layout__aside .date-label--boxed {
  margin-top: 1.5rem;
  margin-top: var(--space-s);
  margin-bottom: 1.5rem;
  margin-bottom: var(--space-s);
}

/* ---- News listing --------------------------------------------------------- */

.news-page > .inner {
  padding-top: 4rem;
  padding-top: var(--space-l);
  padding-bottom: 6.5rem;
  padding-bottom: var(--space-xl);
}

.news-page__intro {
  grid-column: 1 / -1;
  margin-bottom: 4rem;
  margin-bottom: var(--space-l);
}

.news-cards {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-gap: 2rem;
  grid-gap: var(--gutter);
  gap: 2rem;
  gap: var(--gutter);
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: none;
  width: 100%;
}

.news-cards > li {
  min-width: 0;
  max-width: none;
}

@media screen and (max-width: 1100px) {
  .news-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 767px) {
  .news-cards {
    grid-template-columns: 1fr;
  }
}

/* ---- Aside + main (4 + 8 columns) ---------------------------------------- */

.page-layout > .inner {
  padding-top: 4rem;
  padding-top: var(--space-l);
  padding-bottom: 6.5rem;
  padding-bottom: var(--space-xl);
}

.page-layout__aside {
  grid-column: 1 / span 4;
  align-self: start;
}

.page-layout__aside h1 {
  max-width: none;
}

.hub-section-link {
  margin: 0 0 1.5rem;
  margin: 0 0 var(--space-s);
}

.page-layout__main {
  grid-column: 6 / span 7;
  display: flex;
  flex-direction: column;
  gap: 4rem;
  gap: var(--space-l);
  min-width: 0;
}

.page-layout__main > * {
  max-width: none;
}

.page-layout__main > .page-layout__figure {
  margin: 0;
}

.page-layout__main > .page-layout__figure img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 2px;
  border-radius: var(--radius-small);
  overflow: hidden;
}

.page-layout__body figure.image {
  aspect-ratio: auto;
  overflow: visible;
  border-radius: 0;
}

.page-layout__body figure.image img,
.page-layout__body figure.image picture {
  width: 100%;
  height: auto;
  -o-object-fit: initial;
     object-fit: initial;
  border-radius: 2px;
  border-radius: var(--radius-small);
}

.page-layout__body figure.image:not(.portrait) {
  width: 100%;
  max-width: none;
  clear: both;
  float: none;
}

.page-layout__body figure.image.portrait {
  float: right;
  width: 42.8571428571%;
  max-width: none;
  margin-top: 0;
  margin-left: 3rem;
  margin-left: calc(var(--gutter) + var(--space-xs));
  margin-right: 0;
  margin-bottom: 1.5rem;
  margin-bottom: var(--space-s);
  clear: none;
}

.page-layout__main > .page-layout__body {
  font: 400 1.375rem/1.2 "Crimson Pro", serif;
  font: var(--font-small);
  width: 100%;
  max-width: none;
}

.page-layout__main > .page-layout__body::after {
    content: "";
    display: table;
    clear: both;
  }

.page-layout__main > .page-layout__body > :not(figure.image) {
    max-width: 55ch;
    max-width: var(--measure);
  }

@media screen and (max-width: 1100px) {
  .page-layout__aside,
  .page-layout__main {
    grid-column: 1 / -1;
  }

  .page-layout__aside:has(.standfirst) + .page-layout__main {
    margin-top: 4rem;
    margin-top: var(--space-l);
  }

  .page-layout__body figure.image.portrait {
    width: 33.3333333333%;
  }
}

@media screen and (max-width: 767px) {
  .page-layout__aside:has(.standfirst) + .page-layout__main {
    margin-top: 6.5rem;
    margin-top: var(--space-xl);
  }

  .page-layout__body figure.image.portrait {
    float: right;
    clear: none;
    width: 16.6666666667%;
    width: calc(2/var(--columns)*100%);
  }
}

/* ---- Pagination ---------------------------------------------------------- */

.pagination-nav {
  grid-column: 1 / -1;
  margin-top: 4rem;
  margin-top: var(--space-l);
}

.pagination-nav .pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  gap: var(--space-s);
  width: 100%;
  margin: 0;
  padding: 0;
}

.pagination-nav .previous_page::before {
  content: "←";
  margin-right: 0.375rem;
}

.pagination-nav .next_page::after {
  content: "→";
  margin-left: 0.375rem;
}

.pagination-nav .previous_page.disabled,
.pagination-nav .next_page.disabled {
  opacity: 0.45;
  cursor: default;
  pointer-events: none;
}

.pagination-nav .pagination__pages {
  display: flex;
  flex: 1;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  font: 500 0.875rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility);
  font-style: normal;
}

.pagination-nav .pagination__pages a,
.pagination-nav .pagination__pages em,
.pagination-nav .pagination__pages .gap {
  display: inline;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: #31483e;
  color: var(--color-text-primary);
  font: inherit;
  font-weight: inherit;
  font-style: normal;
  -webkit-text-decoration: none;
  text-decoration: none;
}

.pagination-nav .pagination__pages em.current {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: currentColor;
  text-underline-offset: 0.15em;
}

.pagination-nav .pagination__pages a:hover,
.pagination-nav .pagination__pages a:focus-visible {
  color: #3f5c4f;
  color: var(--color-link-hover);
  -webkit-text-decoration: none;
  text-decoration: none;
  outline: none;
}

.pagination-nav .pagination__pages .gap {
  color: #31483e;
  color: var(--color-text-primary);
}

/* ---- Print (calendar) ---------------------------------------------------- */

@media print {
  .calendar-page,
  .calendar-article-page {
    color: #000;
  }

  .calendar-page.page-layout > .inner,
  .calendar-article-page.page-layout > .inner {
    padding-top: 1rem;
    padding-top: var(--space-xs);
    padding-bottom: 1rem;
    padding-bottom: var(--space-xs);
  }

  .calendar-page.page-layout .page-layout__aside,
  .calendar-page.page-layout .page-layout__main,
  .calendar-article-page.page-layout .page-layout__aside,
  .calendar-article-page.page-layout .page-layout__main {
    grid-column: 1 / -1;
    position: static;
    width: 100%;
    max-width: none;
  }

  .calendar-page.page-layout .page-layout__aside,
  .calendar-article-page.page-layout .page-layout__aside {
    margin-bottom: 1.5rem;
    margin-bottom: var(--space-s);
  }

  .calendar-page.page-layout
    .page-layout__aside:has(.standfirst)
    + .page-layout__main {
    margin-top: 0;
  }

  .calendar-page.page-layout .page-layout__aside h1,
  .calendar-article-page.page-layout .page-layout__aside h1,
  .calendar-article-lead > h2 {
    font: 550 2.0625rem/1.1 "Crimson Pro", serif;
    font: var(--font-medium);
  }

  .calendar-month {
    page-break-inside: avoid;
    -moz-column-break-inside: avoid;
         break-inside: avoid;
  }

  .calendar-event {
    page-break-inside: avoid;
    -moz-column-break-inside: avoid;
         break-inside: avoid;
    border-bottom-color: #000;
  }

  .calendar-event .card__indicator {
    display: none;
  }

  .calendar-month__divider {
    background: #000;
  }

  .calendar-event .card__title {
    font: 550 1.6875rem/1.1 "Crimson Pro", serif;
    font: var(--font-normal);
  }

  .calendar-print-btn {
    display: none;
  }
}

/* ---- Schools hub (full-width listing, like news-page) -------------------- */

.schools-page > .inner {
  padding-top: 4rem;
  padding-top: var(--space-l);
  padding-bottom: 6.5rem;
  padding-bottom: var(--space-xl);
}

.schools-page__intro {
  grid-column: 1 / -1;
  margin-bottom: 4rem;
  margin-bottom: var(--space-l);
}

.schools-directory {
  grid-column: 1 / -1;
  width: 100%;
  max-width: none;
  margin: 0;
  border-collapse: collapse;
  table-layout: fixed;
}

.schools-directory__col--sted {
  width: 11%;
}

.schools-directory__col--skole {
  width: 19%;
}

.schools-directory__col--tilbud {
  width: 12%;
}

.schools-directory__col--adresse {
  width: 22%;
}

.schools-directory__col--kontakt {
  width: 20%;
}

.schools-directory__col--nettside {
  width: 16%;
}

.schools-directory__heading {
  padding: 0 1.5rem 1rem 0;
  padding: 0 var(--space-s) var(--space-xs) 0;
  font: 540 0.875rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility-label);
  letter-spacing: 0.04em;
  letter-spacing: var(--letter-spacing);
  text-transform: uppercase;
  color: #31483e;
  color: var(--color-text-primary);
  text-align: left;
  vertical-align: bottom;
  border-bottom: 1px solid #3f5c4f;
  border-bottom: 1px solid var(--color-border-solid);
}

.schools-directory__heading:first-child {
  padding-left: 0;
}

.schools-directory__heading:last-child {
  padding-right: 0;
}

.school-directory-row__cell {
  padding: 1rem 1rem 1rem 0;
  padding: var(--space-xs) var(--space-xs) var(--space-xs) 0;
  font: 500 0.875rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility);
  color: #31483e;
  color: var(--color-text-primary);
  text-align: left;
  vertical-align: top;
  word-wrap: anywhere;
  border-bottom: 1px solid #3f5c4f;
  border-bottom: 1px solid var(--color-border-solid);
}

.school-directory-row__cell:first-child {
  padding-left: 0;
}

.school-directory-row__cell:last-child {
  padding-right: 0;
}

.school-directory-row__school-link {
  font: inherit;
  text-transform: uppercase;
}

.school-directory-row__value > :first-child {
  margin-top: 0;
}

.school-directory-row__value p {
  margin: 0;
}

.school-contact__email,
.school-contact__phone {
  margin: 0;
}

.school-contact__phone + .school-contact__email,
.school-contact__email + .school-contact__phone {
  margin-top: 0.5rem;
  margin-top: var(--space-xxs);
}

/* ---- School meta (aside) ------------------------------------------------- */

.school-meta {
  margin-top: 1.5rem;
  margin-top: var(--space-s);
}

.school-meta__divider {
  height: 1px;
  margin: 0;
  border: 0;
  background: #3f5c4f;
  background: var(--color-border-solid);
}

.school-meta__divider:first-child {
  margin-bottom: 1.5rem;
  margin-bottom: var(--space-s);
}

.school-meta__divider:last-child {
  margin-top: 1.5rem;
  margin-top: var(--space-s);
}

.school-meta__item {
  margin-top: 1.5rem;
  margin-top: var(--space-s);
}

.school-meta__item:first-of-type {
  margin-top: 0;
}

.school-meta__value {
  margin-top: 0.5rem;
  margin-top: var(--space-xxs);
}

.school-meta__value > :first-child {
  margin-top: 0;
}

@media screen and (max-width: 767px) {
  .schools-directory {
    display: block;
  }

  .schools-directory colgroup,
  .schools-directory thead {
    display: none;
  }

  .schools-directory tbody,
  .school-directory-row,
  .school-directory-row__cell {
    display: block;
  }

  .school-directory-row {
    padding: 1.5rem 0;
    padding: var(--space-s) 0;
    border-top: 1px solid #3f5c4f;
    border-top: 1px solid var(--color-border-solid);
  }

  .school-directory-row:last-child {
    border-bottom: 1px solid #3f5c4f;
    border-bottom: 1px solid var(--color-border-solid);
  }

  .school-directory-row__cell {
    padding: 0 0 1rem;
    padding: 0 0 var(--space-xs);
    border-bottom: 0;
  }

  .school-directory-row__cell:last-child {
    padding-bottom: 0;
  }

  .school-directory-row__cell--empty {
    display: none;
  }
}

@media screen and (max-width: 1100px) {
  .school-page .page-layout__aside + .page-layout__main {
    margin-top: 4rem;
    margin-top: var(--space-l);
  }
}

/* ---- Search page --------------------------------------------------------- */

.search-form {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  gap: var(--space-xs);
  margin-top: 1.5rem;
  margin-top: var(--space-s);
}

.search-form__label {
  flex: 0 0 100%;
  font: 400 1.375rem/1.2 "Crimson Pro", serif;
  font: var(--font-small);
}

.search-form__input {
  flex: 1 1 12rem;
  min-width: 0;
  padding: 0.625rem 1rem;
  border: 1px solid #3f5c4f;
  border: 1px solid var(--color-border-solid);
  border-radius: 2px;
  border-radius: var(--radius-small);
  font: 400 1.375rem/1.2 "Crimson Pro", serif;
  font: var(--font-small);
  color: #31483e;
  color: var(--color-text-primary);
  background: #fdfbf1;
  background: var(--color-bg-page);
}

.search-form__submit {
  flex: 0 0 auto;
}

.search-page__no-results {
  margin: 0;
  font: 400 1.375rem/1.2 "Crimson Pro", serif;
  font: var(--font-small);
}

.search-page__results-heading {
  margin: 0 0 1.5rem;
  margin: 0 0 var(--space-s);
  font: 550 2.0625rem/1.1 "Crimson Pro", serif;
  font: var(--font-medium);
  max-width: none;
}

.search-results {
  list-style: none;
  margin: 0;
  padding: 0;
}

.search-results > li {
  border-bottom: 1px solid #3f5c4f;
  border-bottom: 1px solid var(--color-border-solid);
}

.search-results > li:first-child .search-result {
  padding-top: 0;
}

.search-result {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  gap: var(--space-xs);
  padding-top: 1rem;
  padding-top: var(--space-xs);
  padding-bottom: 1.5rem;
  padding-bottom: var(--space-s);
  -webkit-text-decoration: none;
  text-decoration: none;
  color: #31483e;
  color: var(--color-text-primary);
}

.search-result__title {
  margin: 0;
  font: 550 2.0625rem/1.1 "Crimson Pro", serif;
  font: var(--font-medium);
  max-width: none;
}

.search-result__path {
  margin: 0;
  font: 400 1.375rem/1.2 "Crimson Pro", serif;
  font: var(--font-small);
  color: #3f5c4f;
  color: var(--color-text-secondary);
}

.search-result__snippet {
  margin: 0;
  font: 400 1.375rem/1.2 "Crimson Pro", serif;
  font: var(--font-small);
}

.search-result .card__excerpt {
  font: 400 1.375rem/1.2 "Crimson Pro", serif;
  font: var(--font-small);
}

.search-result:hover .search-result__title,
.search-result:focus-visible .search-result__title {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  color: #3f5c4f;
  color: var(--color-link-hover);
}

@media screen and (max-width: 1100px) {
  .search-page .page-layout__aside + .page-layout__main {
    margin-top: 4rem;
    margin-top: var(--space-l);
  }
}

/* ---- File download table (index / article attachments) ------------------- */

.file-table {
  margin: 2.5rem 0;
  margin: var(--space-m) 0;
}

.file-table__title {
  margin: 0;
  padding: 1.5rem 0 1rem;
  padding: var(--space-s) 0 var(--space-xs);
  font: 550 1.6875rem/1.1 "Crimson Pro", serif;
  font: var(--font-normal);
  color: #31483e;
  color: var(--color-text-primary);
}

.file-table__table {
  width: 100%;
  border-collapse: collapse;
}

.file-table__row:first-child .file-table__cell {
  border-top: 1px solid #3f5c4f;
  border-top: 1px solid var(--color-border-solid);
}

.file-table__cell {
  padding: 1rem 0;
  padding: var(--space-xs) 0;
  font: 500 1rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility-large);
  color: #31483e;
  color: var(--color-text-primary);
  text-align: left;
  vertical-align: middle;
  border-bottom: 1px solid #3f5c4f;
  border-bottom: 1px solid var(--color-border-solid);
}

.file-table__cell--action {
  text-align: right;
  white-space: nowrap;
}

.file-table__name {
  display: block;
}

.file-table__description {
  display: block;
  font: 500 1rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility-large);
  color: #3f5c4f;
  color: var(--color-text-secondary);
  margin-top: 0.125rem;
}

.file-table__row:hover .file-table__download {
  -webkit-text-decoration: underline;
  text-decoration: underline;
}

.file-table__download {
  /* Composes with .btn.btn--link in markup */
  font: 500 1rem/1.2 "Synonym Variable", sans-serif;
  font: var(--font-utility-large);
  justify-content: flex-end;
}

.file-table__download:hover,
.file-table__download:focus-visible {
  -webkit-text-decoration: underline;
  text-decoration: underline;
}

/* ---- Hub listing --------------------------------------------------------- */

.vacancies-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.vacancies-list .vacancy-card {
  padding-top: 1rem;
  padding-top: var(--space-xs);
  padding-bottom: 1.5rem;
  padding-bottom: var(--space-s);
  border-bottom: 1px solid #3f5c4f;
  border-bottom: 1px solid var(--color-border-solid);
}

.vacancies-list > li:first-child .vacancy-card {
  padding-top: 0;
}

/* ---- Vacancy meta (aside) ------------------------------------------------ */

.vacancy-meta {
  margin-top: 1.5rem;
  margin-top: var(--space-s);
}

.vacancy-meta__divider {
  height: 1px;
  margin: 0;
  border: 0;
  background: #3f5c4f;
  background: var(--color-border-solid);
}

.vacancy-meta__divider:first-child {
  margin-bottom: 1.5rem;
  margin-bottom: var(--space-s);
}

.vacancy-meta__divider:last-child {
  margin-top: 1.5rem;
  margin-top: var(--space-s);
}

.vacancy-meta__item {
  margin-top: 1.5rem;
  margin-top: var(--space-s);
}

.vacancy-meta__item:first-of-type {
  margin-top: 0;
}

.vacancy-meta__value {
  margin-top: 0.5rem;
  margin-top: var(--space-xxs);
}

.vacancy-meta__value > :first-child {
  margin-top: 0;
}

@media screen and (max-width: 1100px) {
  .vacancy-page .page-layout__aside + .page-layout__main {
    margin-top: 4rem;
    margin-top: var(--space-l);
  }
}
