    :root {
      --plaster: #eee8de;
      --paper: #fffaf2;
      --ink: #211c18;
      --chalk: #9d3f2c;
      --blueprint: #202321;
      --blueprint-deep: #151817;
      --steel: #5d382f;
      --line: rgba(23, 24, 22, 0.22);
      --line-light: rgba(251, 250, 245, 0.24);
      --mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;
      --sans: "Arial Narrow", "Avenir Next Condensed", "Helvetica Neue", Arial, sans-serif;
      --body: "Avenir Next", "Helvetica Neue", Arial, sans-serif;
      --gutter: clamp(1.15rem, 3.4vw, 4.5rem);
      --max: 112rem;
      --header-h: 4.75rem;
      --ease: cubic-bezier(.2, .8, .2, 1);
    }

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

    html {
      scroll-behavior: smooth;
      scroll-padding-top: calc(var(--header-h) + 1.25rem);
      background: var(--plaster);
    }

    body {
      margin: 0;
      color: var(--ink);
      background: var(--plaster);
      font-family: var(--body);
      font-size: clamp(1rem, .92vw, 1.15rem);
      line-height: 1.5;
      text-rendering: optimizeLegibility;
      -webkit-font-smoothing: antialiased;
      overflow-x: clip;
    }

    body.menu-open { overflow: hidden; }

    a { color: inherit; }
    button, input, textarea { font: inherit; }
    button { color: inherit; }
    img, svg, video { display: block; max-width: 100%; }

    ::selection {
      color: var(--paper);
      background: var(--chalk);
    }

    :focus-visible {
      outline: 3px solid var(--chalk);
      outline-offset: 4px;
    }

    .skip-link {
      position: fixed;
      z-index: 1000;
      top: .75rem;
      left: .75rem;
      padding: .7rem 1rem;
      color: var(--paper);
      background: var(--ink);
      transform: translateY(-180%);
      transition: transform .2s ease;
    }

    .skip-link:focus { transform: translateY(0); }

    .shell {
      width: min(100%, var(--max));
      margin-inline: auto;
      padding-inline: var(--gutter);
    }

    .eyebrow,
    .section-code,
    .measure-label,
    .project-meta,
    .fact-grid dt,
    .contact-label,
    .micro,
    .nav-links,
    .menu-toggle,
    .button,
    .service-number,
    .step-number {
      font-family: var(--mono);
      font-size: .72rem;
      font-weight: 700;
      line-height: 1.25;
      letter-spacing: .12em;
      text-transform: uppercase;
    }

    .eyebrow {
      display: flex;
      align-items: center;
      gap: .65rem;
      margin: 0 0 1.35rem;
    }

    .eyebrow::before {
      width: .55rem;
      height: .55rem;
      content: "";
      border-radius: 50%;
      background: var(--chalk);
      box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--chalk) 18%, transparent);
    }

    .section-heading {
      margin: 0;
      max-width: 13ch;
      font-family: var(--sans);
      font-size: clamp(3.1rem, 7.4vw, 8.7rem);
      font-weight: 800;
      line-height: .86;
      letter-spacing: -.065em;
      text-transform: uppercase;
    }

    .section-intro {
      max-width: 37rem;
      margin: 1.5rem 0 0;
      font-size: clamp(1.08rem, 1.55vw, 1.5rem);
      line-height: 1.4;
      letter-spacing: -.018em;
    }

    .button {
      position: relative;
      display: inline-flex;
      min-height: 3.35rem;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      padding: .72rem .72rem .72rem 1rem;
      border: 1.5px solid var(--ink);
      background: transparent;
      text-decoration: none;
      box-shadow: none;
      font-size: .78rem;
      font-weight: 800;
      letter-spacing: .1em;
      transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s var(--ease);
    }

    .button::after {
      display: grid;
      width: 1.95rem;
      height: 1.95rem;
      flex: 0 0 1.95rem;
      place-items: center;
      content: "→";
      border-left: 1px solid currentColor;
      font-size: 1rem;
      line-height: 1;
      transition: transform .2s var(--ease);
    }

    .button:hover {
      color: var(--paper);
      background: var(--ink);
      transform: translateY(-1px);
    }

    .button:hover::after { transform: translateX(.18rem); }

    .button--solid {
      color: var(--paper);
      border-color: var(--chalk);
      background: var(--chalk);
    }

    .button--solid:hover {
      color: var(--paper);
      border-color: var(--ink);
      background: var(--ink);
    }

    .hero .button--solid:hover,
    .contact .button--solid:hover {
      color: var(--ink);
      border-color: var(--paper);
      background: var(--paper);
    }

    .button--light {
      color: var(--paper);
      border-color: rgba(251,250,245,.75);
    }

    .button--light:hover {
      color: var(--ink);
      background: var(--paper);
    }

    .site-header {
      position: sticky;
      z-index: 100;
      top: 0;
      height: var(--header-h);
      border-bottom: 1px solid var(--line);
      background: color-mix(in srgb, var(--plaster) 96%, transparent);
    }

    .header-inner {
      display: grid;
      height: 100%;
      grid-template-columns: minmax(9rem, 1fr) auto minmax(9rem, 1fr);
      align-items: center;
      gap: 1rem;
    }

    .brand {
      display: inline-flex;
      width: max-content;
      align-items: center;
      gap: .6rem;
      font-family: var(--sans);
      font-size: 1.45rem;
      font-weight: 900;
      line-height: 1;
      letter-spacing: -.075em;
      text-decoration: none;
      -webkit-text-stroke: .35px currentColor;
    }

    .brand-logo {
      display: block;
      width: auto;
      height: 3.3rem;
    }

    .header-note {
      margin: 0;
      font-family: var(--mono);
      font-size: .67rem;
      font-weight: 600;
      letter-spacing: .08em;
      text-align: right;
      text-transform: uppercase;
    }

    .header-phone {
      width: max-content;
      justify-self: end;
      padding: .7rem .8rem;
      color: var(--paper);
      border: 1px solid var(--ink);
      background: var(--ink);
      font-family: var(--mono);
      font-size: .66rem;
      font-weight: 800;
      letter-spacing: .07em;
      text-decoration: none;
      text-transform: uppercase;
      transition: color .2s ease, background-color .2s ease;
    }

    .header-phone:hover { color: var(--paper); background: var(--chalk); }
    .nav-phone { display: none; }

    .header-tools {
      display: flex;
      align-items: center;
      justify-self: end;
      gap: .65rem;
    }

    .language-switch {
      display: inline-flex;
      padding: .2rem;
      border: 1px solid color-mix(in srgb, var(--ink) 28%, transparent);
      background: color-mix(in srgb, var(--paper) 55%, transparent);
    }

    .language-switch button {
      min-width: 2.15rem;
      min-height: 2rem;
      padding: .35rem .45rem;
      color: color-mix(in srgb, var(--ink) 62%, transparent);
      border: 0;
      background: transparent;
      font-family: var(--mono);
      font-size: .6rem;
      font-weight: 800;
      letter-spacing: .07em;
      cursor: pointer;
      transition: color .2s ease, background-color .2s ease;
    }

    .language-switch button:hover { color: var(--ink); }
    html[lang="en"] .language-switch [data-language="en"],
    html[lang="da"] .language-switch [data-language="da"] { color: var(--paper); background: var(--ink); }

    .nav-links {
      display: flex;
      align-items: center;
      gap: clamp(1.1rem, 2.2vw, 2.8rem);
    }

    .nav-links a {
      position: relative;
      padding-block: .65rem;
      text-decoration: none;
    }

    .nav-links a::after {
      position: absolute;
      right: 0;
      bottom: .35rem;
      left: 0;
      height: 2px;
      content: "";
      background: var(--chalk);
      transform: scaleX(0);
      transform-origin: right;
      transition: transform .25s var(--ease);
    }

    .nav-links a:hover::after,
    .nav-links a:focus-visible::after {
      transform: scaleX(1);
      transform-origin: left;
    }

    .menu-toggle {
      display: none;
      min-width: 3rem;
      min-height: 3rem;
      align-items: center;
      justify-content: center;
      border: 1px solid var(--ink);
      background: transparent;
      cursor: pointer;
    }

    .hero {
      position: relative;
      min-height: calc(100vh - var(--header-h));
      min-height: calc(100svh - var(--header-h));
      border-bottom: 1px solid var(--line);
      isolation: isolate;
    }

    .hero::before {
      position: absolute;
      z-index: -2;
      inset: 0;
      content: "";
      opacity: .36;
      background-image:
        linear-gradient(to right, var(--line) 1px, transparent 1px),
        linear-gradient(to bottom, var(--line) 1px, transparent 1px);
      background-size: clamp(3.5rem, 7.25vw, 8.75rem) clamp(3.5rem, 7.25vw, 8.75rem);
      mask-image: linear-gradient(to bottom, black 0 76%, transparent 100%);
    }

    .hero-inner {
      display: grid;
      min-height: inherit;
      grid-template-columns: minmax(0, 1.36fr) minmax(18rem, .64fr);
      grid-template-rows: auto 1fr auto;
      column-gap: clamp(2rem, 5vw, 7rem);
      padding-top: clamp(2.5rem, 6vh, 5.5rem);
      padding-bottom: clamp(2rem, 4vh, 3.75rem);
    }

    .hero-kicker { grid-column: 1 / -1; }

    .hero-title-wrap {
      position: relative;
      z-index: 2;
      grid-column: 1 / -1;
      align-self: center;
      padding-block: clamp(2rem, 6vh, 5rem);
    }

    .hero h1 {
      max-width: none;
      margin: 0;
      font-family: var(--sans);
      font-size: clamp(4.4rem, 10.7vw, 12.5rem);
      font-weight: 900;
      line-height: .78;
      letter-spacing: -.082em;
      text-transform: uppercase;
    }

    .title-line {
      display: block;
      overflow: hidden;
    }

    .title-line > span {
      display: block;
      transform: translateY(0);
    }

    .hero-copy {
      display: flex;
      max-width: 36rem;
      grid-column: 1;
      align-self: end;
      flex-direction: column;
      gap: 1.45rem;
      padding-bottom: .2rem;
    }

    .hero-copy p {
      margin: 0;
      font-size: clamp(1.12rem, 1.72vw, 1.65rem);
      line-height: 1.38;
      letter-spacing: -.025em;
    }

    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: .75rem;
    }

    .hero-proof {
      position: relative;
      display: flex;
      min-height: 22rem;
      grid-column: 2;
      grid-row: 3;
      align-self: center;
      align-items: flex-end;
      justify-content: flex-end;
      padding: 2rem 0 2rem 2rem;
    }

    .proof-card {
      position: relative;
      width: min(100%, 25rem);
      padding: 1.4rem;
      border: 1px solid var(--ink);
      background: color-mix(in srgb, var(--paper) 62%, transparent);
    }

    .proof-card::before,
    .proof-card::after {
      position: absolute;
      width: .85rem;
      height: .85rem;
      content: "";
      border-color: var(--chalk);
    }

    .proof-card::before {
      top: -.25rem;
      left: -.25rem;
      border-top: 2px solid var(--chalk);
      border-left: 2px solid var(--chalk);
    }

    .proof-card::after {
      right: -.25rem;
      bottom: -.25rem;
      border-right: 2px solid var(--chalk);
      border-bottom: 2px solid var(--chalk);
    }

    .proof-card p {
      margin: 0;
      font-family: var(--sans);
      font-size: clamp(1.65rem, 3vw, 3.15rem);
      font-weight: 800;
      line-height: .94;
      letter-spacing: -.05em;
      text-transform: uppercase;
    }

    .proof-list {
      display: grid;
      gap: .45rem;
      margin: 1.4rem 0 0;
      padding: 0;
      list-style: none;
      font-family: var(--mono);
      font-size: .7rem;
      font-weight: 650;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .proof-list li {
      display: grid;
      grid-template-columns: 1.3rem 1fr;
      gap: .4rem;
      padding-top: .45rem;
      border-top: 1px solid var(--line);
    }

    .proof-list li::before {
      color: var(--chalk);
      content: "●";
    }

    .chalk-line {
      position: absolute;
      z-index: 1;
      top: 47%;
      right: 0;
      left: 0;
      width: 100%;
      height: clamp(8rem, 15vw, 13rem);
      overflow: visible;
      pointer-events: none;
    }

    .chalk-line .slack,
    .chalk-line .taut {
      fill: none;
      stroke: var(--chalk);
      stroke-linecap: round;
      vector-effect: non-scaling-stroke;
    }

    .chalk-line .slack {
      opacity: 0;
      stroke-width: 2;
    }

    .chalk-line .taut {
      opacity: 1;
      stroke-width: 3;
    }

    .chalk-line .ghost {
      fill: none;
      opacity: .42;
      stroke: var(--chalk);
      stroke-dasharray: 2 8;
      stroke-width: 1;
      vector-effect: non-scaling-stroke;
    }

    .chalk-line .anchor { fill: var(--ink); }
    .chalk-line .dust { opacity: 0; stroke: var(--chalk); stroke-width: 2; }

    .load-mark {
      position: fixed;
      z-index: 250;
      right: .85rem;
      bottom: .85rem;
      display: grid;
      width: 3.25rem;
      height: 3.25rem;
      place-items: center;
      color: var(--paper);
      background: var(--chalk);
      font-family: var(--mono);
      font-size: .55rem;
      font-weight: 800;
      letter-spacing: .05em;
      text-align: center;
      text-transform: uppercase;
      opacity: 0;
      pointer-events: none;
      transform: rotate(-8deg) scale(.65);
    }

    .js .chalk-line .slack {
      opacity: 1;
      stroke-dasharray: 1;
      stroke-dashoffset: 1;
    }

    .js .chalk-line .taut { opacity: 0; }
    .js .title-line > span { transform: translateY(115%); }
    .js .hero-copy, .js .proof-card, .js .hero-kicker { opacity: 0; transform: translateY(1rem); }

    .js.is-loaded .chalk-line .slack {
      animation: slack-in .55s var(--ease) .05s forwards, slack-out .12s linear .76s forwards;
    }

    .js.is-loaded .chalk-line .taut {
      animation: taut-snap .2s var(--ease) .76s forwards;
    }

    .js.is-loaded .chalk-line .dust {
      animation: dust .48s ease-out .78s forwards;
    }

    .js.is-loaded .title-line > span {
      transition: transform .72s var(--ease);
      transform: translateY(0);
    }

    .js.is-loaded .title-line:nth-child(2) > span { transition-delay: .08s; }
    .js.is-loaded .title-line:nth-child(3) > span { transition-delay: .16s; }

    .js.is-loaded .hero-copy,
    .js.is-loaded .proof-card,
    .js.is-loaded .hero-kicker {
      opacity: 1;
      transform: translateY(0);
      transition: opacity .55s ease, transform .7s var(--ease);
    }

    .js.is-loaded .hero-kicker { transition-delay: .16s; }
    .js.is-loaded .hero-copy { transition-delay: .82s; }
    .js.is-loaded .proof-card { transition-delay: .95s; }

    .js.is-loaded .load-mark {
      animation: mark .7s var(--ease) .85s both, mark-away .3s ease 1.7s forwards;
    }

    @keyframes slack-in { to { stroke-dashoffset: 0; } }
    @keyframes slack-out { to { opacity: 0; } }
    @keyframes taut-snap { from { opacity: 0; } to { opacity: 1; } }
    @keyframes dust { 0% { opacity: 0; transform: scale(.4); } 25% { opacity: .85; } 100% { opacity: 0; transform: scale(1.55); } }
    @keyframes mark { from { opacity: 0; transform: rotate(-8deg) scale(1.5); } to { opacity: 1; transform: rotate(-8deg) scale(1); } }
    @keyframes mark-away { to { opacity: 0; transform: rotate(-8deg) scale(.9); } }

    /* Hero: a blueprint becoming a building. Pointer variables are set in JS. */
    .hero {
      --pointer-x: 0;
      --pointer-y: 0;
      min-height: calc(100svh - var(--header-h));
      color: var(--paper);
      border-bottom: 0;
      background: var(--blueprint);
      overflow: hidden;
    }

    .hero::before {
      z-index: -3;
      opacity: .23;
      background-image:
        linear-gradient(to right, rgba(255,253,245,.34) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(255,253,245,.34) 1px, transparent 1px);
      background-size: clamp(3.5rem, 6vw, 7.5rem) clamp(3.5rem, 6vw, 7.5rem);
      mask-image: none;
    }

    .hero-plan {
      position: absolute;
      z-index: -2;
      inset: -8%;
      width: 116%;
      height: 116%;
      color: rgba(255,253,245,.36);
      pointer-events: none;
      transform: translate3d(calc(var(--pointer-x) * -1.1rem), calc(var(--pointer-y) * -1.1rem), 0);
      transition: transform .18s ease-out;
    }

    .hero-plan .plan-heavy { stroke: currentColor; stroke-width: 2; fill: none; }
    .hero-plan .plan-fine { stroke: currentColor; stroke-width: .75; fill: none; stroke-dasharray: 4 7; }
    .hero-plan .plan-dimension { fill: currentColor; font-family: var(--mono); font-size: 12px; letter-spacing: .08em; }

    .hero-plan-secondary {
      position: absolute;
      z-index: -1;
      top: 10%;
      right: 1%;
      width: min(32vw, 31rem);
      aspect-ratio: 1;
      border: 1px solid rgba(255,253,245,.24);
      border-radius: 50%;
      pointer-events: none;
      transform: translate3d(calc(var(--pointer-x) * 1.65rem), calc(var(--pointer-y) * 1.65rem), 0);
      transition: transform .22s ease-out;
    }

    .hero-plan-secondary::before,
    .hero-plan-secondary::after {
      position: absolute;
      content: "";
      background: rgba(255,253,245,.26);
    }

    .hero-plan-secondary::before { top: 50%; right: -12%; left: -12%; height: 1px; }
    .hero-plan-secondary::after { top: -12%; bottom: -12%; left: 50%; width: 1px; }

    .hero-inner {
      display: grid;
      min-height: inherit;
      grid-template-columns: minmax(0, 1.04fr) minmax(24rem, .78fr);
      grid-template-rows: 1fr auto;
      column-gap: clamp(2.5rem, 6vw, 8rem);
      padding-top: clamp(2.5rem, 6vh, 5rem);
      padding-bottom: clamp(2rem, 4vh, 3rem);
    }

    .hero-content {
      z-index: 3;
      align-self: center;
      padding-block: clamp(1.5rem, 5vh, 4.5rem);
    }

    .hero-kicker { color: rgba(255,253,245,.8); }
    .hero-kicker::before { box-shadow: 0 0 0 .3rem rgba(215,56,31,.3); }

    .hero-title-wrap {
      grid-column: auto;
      padding-block: 0;
    }

    .hero h1 {
      max-width: 9ch;
      color: var(--paper);
      font-size: clamp(4rem, 8.3vw, 10.2rem);
      line-height: .82;
      letter-spacing: -.075em;
    }

    .hero h1 .title-accent { color: #d99072; }

    .hero-copy {
      max-width: 39rem;
      grid-column: auto;
      margin-top: clamp(1.8rem, 4vh, 3.2rem);
      padding: 0;
    }

    .hero-copy p { max-width: 34rem; font-size: clamp(1.08rem, 1.45vw, 1.42rem); }
    .hero .button:not(.button--solid) { color: var(--paper); border-color: rgba(255,254,250,.88); }
    .hero .button:not(.button--solid):hover { color: var(--blueprint-deep); background: var(--paper); }
    .hero .button--solid { box-shadow: none; }

    .hero-trust {
      display: grid;
      max-width: 43rem;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      margin: 2.2rem 0 0;
      padding: 0;
      border-top: 1px solid rgba(255,253,245,.42);
      list-style: none;
    }

    .hero-trust li {
      min-height: 4.7rem;
      padding: .85rem .75rem .6rem 0;
      border-right: 1px solid rgba(255,253,245,.32);
      font-family: var(--mono);
      font-size: .64rem;
      font-weight: 750;
      line-height: 1.4;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .hero-trust li + li { padding-left: .75rem; }
    .hero-trust li:last-child { border-right: 0; }
    .hero-trust strong { display: block; margin-bottom: .3rem; color: #afc0ff; font-size: .58rem; }

    .hero-visual {
      position: relative;
      z-index: 2;
      align-self: center;
      min-height: clamp(31rem, 67vh, 48rem);
      margin: 0;
      border: 1px solid rgba(255,253,245,.75);
      background: var(--blueprint-deep);
      box-shadow: 1.2rem 1.2rem 0 rgba(8,10,9,.17);
      transform: translate3d(calc(var(--pointer-x) * .55rem), calc(var(--pointer-y) * .55rem), 0);
      transition: transform .2s ease-out;
      overflow: hidden;
    }

    .hero-visual img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      filter: saturate(.55) contrast(1.12);
      opacity: .92;
      transition: filter .45s ease, transform .8s var(--ease);
    }

    .hero-visual:hover img { filter: saturate(.82) contrast(1.08); transform: scale(1.025); }

    .hero-visual.media-unavailable {
      background-image:
        linear-gradient(rgba(255,253,245,.1) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,253,245,.1) 1px, transparent 1px);
      background-size: 3rem 3rem;
    }

    .hero-visual::after {
      position: absolute;
      inset: 0;
      content: "";
      pointer-events: none;
      background: linear-gradient(180deg, rgba(13,41,64,.05) 35%, rgba(13,41,64,.8) 100%);
    }

    .hero-drawing {
      position: absolute;
      z-index: 2;
      inset: 7%;
      width: 86%;
      height: 86%;
      color: rgba(255,253,245,.74);
      pointer-events: none;
      mix-blend-mode: screen;
    }

    .hero-drawing path,
    .hero-drawing rect,
    .hero-drawing circle { fill: none; stroke: currentColor; vector-effect: non-scaling-stroke; }
    .hero-drawing .dash { stroke-dasharray: 5 7; opacity: .7; }

    .hero-visual figcaption {
      position: absolute;
      z-index: 3;
      right: 3rem;
      bottom: 1rem;
      left: 1rem;
      display: flex;
      justify-content: space-between;
      gap: 1rem;
      padding-top: .75rem;
      border-top: 1px solid rgba(255,253,245,.72);
      font-family: var(--mono);
      font-size: .59rem;
      font-weight: 750;
      letter-spacing: .07em;
      text-transform: uppercase;
    }

    .hero-visual figcaption span:last-child { color: rgba(255,253,245,.7); text-align: right; }

    .hero .chalk-line {
      z-index: 4;
      top: auto;
      bottom: 17%;
      height: 7rem;
    }

    .hero .chalk-line .anchor { fill: var(--paper); }

    .js .hero-visual { opacity: 0; transform: translate3d(2rem, 0, 0); }
    .js.is-loaded .hero-visual {
      opacity: 1;
      transform: translate3d(calc(var(--pointer-x) * .55rem), calc(var(--pointer-y) * .55rem), 0);
      transition: opacity .8s ease .45s, transform .24s ease-out;
    }

    .positioning {
      position: relative;
      padding-block: clamp(6rem, 13vw, 13rem);
      background: var(--paper);
    }

    .position-grid {
      display: grid;
      grid-template-columns: minmax(13rem, .55fr) minmax(0, 1.45fr);
      gap: clamp(2.5rem, 7vw, 9rem);
    }

    .position-copy h2 {
      max-width: 13ch;
      margin: 0;
      font-family: var(--sans);
      font-size: clamp(3.2rem, 7.7vw, 9.25rem);
      font-weight: 800;
      line-height: .89;
      letter-spacing: -.068em;
      text-transform: uppercase;
    }

    .position-copy h2 em {
      color: var(--chalk);
      font-style: normal;
    }

    .position-copy > p {
      max-width: 47rem;
      margin: 2.2rem 0 0;
      font-size: clamp(1.1rem, 1.65vw, 1.55rem);
      line-height: 1.48;
    }

    .certainty-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      margin: clamp(3rem, 7vw, 7rem) 0 0;
      border-top: 1px solid var(--ink);
      border-left: 1px solid var(--ink);
    }

    .certainty-grid div {
      position: relative;
      min-height: 14rem;
      padding: 1.75rem;
      border-right: 1px solid var(--ink);
      border-bottom: 1px solid var(--ink);
      border-left: 3px solid transparent;
      transition: background-color .35s ease, border-left-color .35s ease, border-left-width .35s var(--ease);
    }

    .js .certainty-grid > div {
      opacity: 0;
      transform: translateY(0.75rem);
      transition: opacity .6s ease, transform .75s var(--ease), background-color .35s ease, border-left-color .35s ease, border-left-width .35s var(--ease);
    }

    .js .certainty-grid.is-visible > div {
      opacity: 1;
      transform: translateY(0);
    }

    .js .certainty-grid.is-visible > div:nth-child(1) {
      transition-delay: 0ms;
    }

    .js .certainty-grid.is-visible > div:nth-child(2) {
      transition-delay: 100ms;
    }

    .js .certainty-grid.is-visible > div:nth-child(3) {
      transition-delay: 200ms;
    }

    .js .certainty-grid.is-visible > div:nth-child(4) {
      transition-delay: 300ms;
    }

    .certainty-grid div:hover {
      background-color: rgba(157, 63, 44, .04);
      border-left-color: var(--chalk);
    }

    .certainty-grid div:focus-within {
      background-color: rgba(157, 63, 44, .04);
      border-left-color: var(--chalk);
    }

    .certainty-grid dt {
      margin: 0 0 2.75rem;
      color: var(--chalk);
      font-family: var(--mono);
      font-size: .75rem;
      font-weight: 800;
      letter-spacing: .11em;
      text-transform: uppercase;
    }

    .certainty-grid dd {
      margin: 0;
      font-family: var(--sans);
      font-size: clamp(1.45rem, 2.35vw, 2.6rem);
      font-weight: 750;
      line-height: 1.18;
      letter-spacing: -.04em;
      text-transform: uppercase;
    }

    .services {
      padding-block: clamp(5.5rem, 10vw, 10rem);
      color: var(--paper);
      background: var(--steel);
    }

    .services-head {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(16rem, .52fr);
      align-items: end;
      gap: 2rem;
      margin-bottom: clamp(4rem, 8vw, 8rem);
    }

    .services .eyebrow::before { box-shadow: 0 0 0 .25rem rgba(157,63,44,.3); }
    .services .section-intro { justify-self: end; }

    .service-list {
      margin: 0;
      padding: 0;
      border-top: 1px solid var(--line-light);
      list-style: none;
    }

    .service-item {
      position: relative;
      display: grid;
      grid-template-columns: 5rem minmax(15rem, .78fr) minmax(16rem, 1fr);
      gap: clamp(1.25rem, 3.5vw, 5rem);
      align-items: start;
      padding: clamp(1.8rem, 3.4vw, 3.4rem) 0;
      border-bottom: 1px solid var(--line-light);
      overflow: hidden;
    }

    .service-item::before {
      position: absolute;
      top: -1px;
      bottom: -1px;
      left: 0;
      width: 3px;
      content: "";
      background: var(--chalk);
      transform: scaleY(0);
      transform-origin: bottom;
      transition: transform .32s var(--ease);
    }

    .service-item:hover::before { transform: scaleY(1); transform-origin: top; }

    .service-number { color: color-mix(in srgb, var(--paper) 78%, transparent); }

    .service-item h3 {
      margin: -.08em 0 0;
      font-family: var(--sans);
      font-size: clamp(2rem, 4vw, 4.7rem);
      font-weight: 800;
      line-height: .95;
      letter-spacing: -.052em;
      text-transform: uppercase;
    }

    .service-item p {
      max-width: 37rem;
      margin: 0;
      font-size: clamp(1.02rem, 1.35vw, 1.3rem);
      line-height: 1.5;
    }

    .site-window {
      color: var(--paper);
      background: var(--steel);
      padding: 0 var(--gutter) clamp(5rem, 10vw, 10rem);
    }

    .site-window-inner {
      position: relative;
      width: min(100%, calc(var(--max) - var(--gutter) * 2));
      min-height: min(75vw, 49rem);
      margin-inline: auto;
      overflow: hidden;
      background: #0b1713;
      isolation: isolate;
    }

    .site-window video {
      width: 100%;
      min-height: min(75vw, 49rem);
      object-fit: cover;
      filter: saturate(.72) contrast(1.08);
    }

    .site-window-inner::after {
      position: absolute;
      inset: 0;
      z-index: 1;
      content: "";
      pointer-events: none;
      background: linear-gradient(180deg, rgba(8,10,9,.04) 35%, rgba(8,10,9,.84) 100%);
    }

    .site-window-copy {
      position: absolute;
      z-index: 2;
      right: clamp(1rem, 4vw, 4rem);
      bottom: clamp(1rem, 4vw, 4rem);
      left: clamp(1rem, 4vw, 4rem);
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 2rem;
      align-items: end;
    }

    .site-window-copy h3 {
      max-width: 16ch;
      margin: 0;
      font-family: var(--sans);
      font-size: clamp(2.4rem, 6.7vw, 8rem);
      font-weight: 850;
      line-height: .86;
      letter-spacing: -.06em;
      text-transform: uppercase;
    }

    .media-note {
      max-width: 22rem;
      margin: 1rem 0 0;
      color: rgba(255,253,245,.75);
      font-family: var(--mono);
      font-size: .64rem;
      line-height: 1.5;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .video-toggle {
      min-width: 7.5rem;
      min-height: 3.25rem;
      padding: .75rem 1rem;
      color: var(--paper);
      border: 1px solid var(--paper);
      background: rgba(8,10,9,.55);
      font-family: var(--mono);
      font-size: .67rem;
      font-weight: 800;
      letter-spacing: .1em;
      text-transform: uppercase;
      cursor: pointer;
      backdrop-filter: blur(8px);
    }

    .video-toggle:hover { color: var(--ink); background: var(--paper); }

    .process {
      position: relative;
      padding-block: clamp(6rem, 12vw, 12rem);
      background: var(--plaster);
    }

    .process-layout {
      display: grid;
      grid-template-columns: minmax(17rem, .7fr) minmax(0, 1.3fr);
      gap: clamp(3rem, 8vw, 10rem);
      align-items: start;
    }

    .process-head {
      position: sticky;
      top: calc(var(--header-h) + 2rem);
    }

    .process-head .section-heading { max-width: 8ch; }

    .process-list {
      position: relative;
      margin: 0;
      padding: 0 0 0 2.5rem;
      list-style: none;
      counter-reset: process;
    }

    .process-list::before {
      position: absolute;
      top: .7rem;
      bottom: .7rem;
      left: .35rem;
      width: 2px;
      content: "";
      background: var(--chalk);
    }

    .process-step {
      position: relative;
      display: grid;
      min-height: 11rem;
      grid-template-columns: 5rem minmax(10rem, .7fr) minmax(14rem, 1fr);
      gap: clamp(1rem, 2.6vw, 3rem);
      align-items: start;
      padding: 1.2rem 0 3rem;
      border-top: 1px solid var(--ink);
      counter-increment: process;
    }

    .process-step::before {
      position: absolute;
      top: .45rem;
      left: -2.55rem;
      width: .8rem;
      height: .8rem;
      content: "";
      border: 2px solid var(--chalk);
      border-radius: 50%;
      background: var(--plaster);
    }

    .step-number::before { content: "0" counter(process); }

    .process-step h3 {
      margin: -.15em 0 0;
      font-family: var(--sans);
      font-size: clamp(1.8rem, 3vw, 3.35rem);
      font-weight: 800;
      line-height: 1;
      letter-spacing: -.045em;
      text-transform: uppercase;
    }

    .process-step p { margin: 0; line-height: 1.55; }

    .process-note {
      margin: 2rem 0 0;
      padding: 1.25rem;
      border-left: 4px solid var(--chalk);
      background: var(--paper);
      font-size: .95rem;
    }

    .projects {
      padding-block: clamp(5.5rem, 10vw, 10rem);
      color: var(--paper);
      background: var(--ink);
    }

    .projects-head {
      display: grid;
      grid-template-columns: minmax(0, 1.15fr) minmax(16rem, .55fr);
      align-items: end;
      gap: 2rem;
      margin-bottom: clamp(3.5rem, 7vw, 7rem);
    }

    .projects .section-intro { justify-self: end; }

    .project-grid {
      display: grid;
      grid-template-columns: 1.5fr .75fr;
      grid-template-rows: repeat(2, minmax(16rem, 1fr));
      gap: 1rem;
    }

    .project {
      position: relative;
      min-height: 19rem;
      margin: 0;
      border: 1px solid var(--line-light);
      overflow: hidden;
      background: #17211d;
    }

    .project--large { grid-row: 1 / 3; min-height: 42rem; }

    .project img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      filter: saturate(.68) contrast(1.08);
      transition: transform .8s var(--ease), filter .5s ease;
    }

    .project:hover img,
    .project:focus-within img { transform: scale(1.035); filter: saturate(.9) contrast(1.05); }

    .project.media-unavailable {
      background-image:
        linear-gradient(rgba(255,253,245,.09) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,253,245,.09) 1px, transparent 1px);
      background-size: 2.5rem 2.5rem;
    }

    .project-frame {
      position: absolute;
      inset: 1rem;
      border: 1px solid rgba(157,63,44,.92);
    }

    .project-frame::before,
    .project-frame::after {
      position: absolute;
      content: "";
      background: var(--chalk);
    }

    .project-frame::before { top: 1rem; left: -1rem; width: 2rem; height: 1px; }
    .project-frame::after { top: -1rem; left: 1rem; width: 1px; height: 2rem; }

    .project-placeholder {
      position: absolute;
      z-index: 2;
      top: 50%;
      left: 50%;
      width: max-content;
      max-width: calc(100% - 3rem);
      padding: .8rem 1rem;
      color: var(--paper);
      border: 1px solid var(--paper);
      background: var(--ink);
      font-family: var(--mono);
      font-size: .66rem;
      font-weight: 700;
      letter-spacing: .1em;
      text-align: center;
      text-transform: uppercase;
      transform: translate(-50%, -50%);
    }

    .project figcaption {
      position: absolute;
      z-index: 3;
      right: 1rem;
      bottom: 1rem;
      left: 1rem;
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 1.25rem;
      padding-top: .8rem;
      border-top: 1px solid var(--paper);
      padding: .85rem;
      border: 0;
      background: rgba(8,10,9,.82);
      backdrop-filter: blur(10px);
    }

    .project-meta {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: .5rem 1rem;
    }

    .project-meta span { color: color-mix(in srgb, var(--paper) 68%, transparent); }

    .trust {
      position: relative;
      padding-block: clamp(6rem, 12vw, 12rem) 0;
      background: var(--paper);
    }

    .trust-intro {
      display: grid;
      grid-template-columns: minmax(0, 1.1fr) minmax(16rem, .5fr);
      align-items: end;
      gap: 2rem;
      margin-bottom: clamp(4rem, 8vw, 8rem);
    }

    .trust-intro .section-intro { justify-self: end; }

    .clauses {
      margin: 0;
      border-top: 2px solid var(--ink);
    }

    .clause {
      display: grid;
      grid-template-columns: 4rem minmax(12rem, .7fr) minmax(18rem, 1fr);
      gap: clamp(1rem, 3.5vw, 4rem);
      padding: clamp(1.5rem, 3vw, 2.8rem) 0;
      border-bottom: 1px solid var(--ink);
    }

    .clause dt {
      font-family: var(--mono);
      font-size: .72rem;
      font-weight: 800;
      letter-spacing: .1em;
    }

    .clause dt::before { color: var(--chalk); content: "● "; }

    .clause dd { margin: 0; }

    .clause-title {
      font-family: var(--sans);
      font-size: clamp(1.65rem, 3vw, 3.3rem);
      font-weight: 800;
      line-height: 1;
      letter-spacing: -.045em;
      text-transform: uppercase;
    }

    .clause-copy { max-width: 40rem; line-height: 1.55; }

    .fact-band {
      position: relative;
      margin-top: clamp(5rem, 10vw, 10rem);
      color: var(--paper);
      background: var(--chalk);
      overflow: hidden;
    }

    .fact-band::after {
      position: absolute;
      right: -3rem;
      bottom: -4rem;
      width: 18rem;
      height: 18rem;
      content: "AFTALT";
      display: grid;
      place-items: center;
      border: 2px solid rgba(251,250,245,.35);
      border-radius: 50%;
      font-family: var(--mono);
      font-size: 1.1rem;
      font-weight: 900;
      letter-spacing: .18em;
      opacity: .65;
      transform: rotate(-12deg);
    }

    .fact-band-inner {
      position: relative;
      z-index: 1;
      padding-block: clamp(3rem, 6vw, 6rem);
    }

    .fact-band h3 {
      max-width: 18ch;
      margin: 0 0 2.5rem;
      font-family: var(--sans);
      font-size: clamp(2.4rem, 5vw, 5.5rem);
      font-weight: 850;
      line-height: .9;
      letter-spacing: -.055em;
      text-transform: uppercase;
    }

    .fact-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      margin: 0;
      border-top: 1px solid rgba(251,250,245,.75);
      border-left: 1px solid rgba(251,250,245,.75);
    }

    .fact-grid div {
      min-height: 9.5rem;
      padding: 1rem;
      border-right: 1px solid rgba(251,250,245,.75);
      border-bottom: 1px solid rgba(251,250,245,.75);
    }

    .fact-grid dt { margin: 0 0 2.25rem; }

    .fact-grid dd {
      margin: 0;
      font-family: var(--sans);
      font-size: clamp(1.35rem, 2.1vw, 2.2rem);
      font-weight: 800;
      line-height: 1.05;
      letter-spacing: -.035em;
      text-transform: uppercase;
    }

    .fact-source {
      display: inline-block;
      margin-top: 1.25rem;
      font-family: var(--mono);
      font-size: .68rem;
      font-weight: 700;
      letter-spacing: .09em;
      text-underline-offset: .25em;
      text-transform: uppercase;
    }

    .contact {
      color: var(--paper);
      background: var(--ink);
    }

    .contact-inner { padding-block: clamp(6rem, 12vw, 12rem) clamp(3rem, 6vw, 6rem); }

    .contact-grid {
      display: grid;
      grid-template-columns: minmax(0, 1.08fr) minmax(20rem, .72fr);
      gap: clamp(3rem, 9vw, 11rem);
      align-items: start;
    }

    .contact h2 {
      max-width: 8.7ch;
      margin: 0;
      font-family: var(--sans);
      font-size: clamp(4rem, 9vw, 10.75rem);
      font-weight: 900;
      line-height: .8;
      letter-spacing: -.072em;
      text-transform: uppercase;
    }

    .contact-lead {
      max-width: 42rem;
      margin: 2rem 0 0;
      font-size: clamp(1.08rem, 1.55vw, 1.45rem);
    }

    .contact-details {
      display: grid;
      gap: 1.1rem;
      margin-top: 3rem;
      font-style: normal;
    }

    .contact-detail {
      padding: 1rem 0;
      border-top: 1px solid var(--line-light);
    }

    .contact-label { display: block; margin-bottom: .55rem; color: color-mix(in srgb, var(--paper) 62%, transparent); }

    .contact-value--link {
      color: inherit;
      text-decoration: none;
    }

    .contact-value--link:hover,
    .contact-value--link:focus-visible {
      text-decoration: underline;
      text-underline-offset: .2em;
    }

    .contact-value {
      font-family: var(--sans);
      font-size: clamp(1.35rem, 2.2vw, 2.4rem);
      font-weight: 750;
      line-height: 1.05;
      letter-spacing: -.035em;
      text-transform: uppercase;
    }

    .placeholder-value { color: color-mix(in srgb, var(--paper) 48%, transparent); }

    .contact-form {
      position: relative;
      padding: clamp(1.25rem, 3vw, 2.3rem);
      border: 1px solid var(--line-light);
    }

    .phone-panel {
      position: relative;
      padding: clamp(1.5rem, 3vw, 2.7rem);
      color: var(--ink);
      border: 1px solid rgba(255,250,242,.72);
      background:
        linear-gradient(rgba(33,28,24,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(33,28,24,.055) 1px, transparent 1px),
        var(--paper);
      background-size: 2.25rem 2.25rem;
      box-shadow: .7rem .7rem 0 var(--chalk);
    }

    .phone-panel::before {
      position: absolute;
      top: 0;
      right: 0;
      width: 4.5rem;
      height: .65rem;
      content: "";
      background: var(--chalk);
    }

    .phone-kicker {
      margin: 0 0 2.8rem;
      color: var(--chalk);
      font-family: var(--mono);
      font-size: .66rem;
      font-weight: 800;
      letter-spacing: .1em;
      text-transform: uppercase;
    }

    .phone-panel h3 {
      max-width: 10ch;
      margin: 0;
      font-family: var(--sans);
      font-size: clamp(2.5rem, 4.2vw, 5rem);
      font-weight: 800;
      line-height: .94;
      letter-spacing: -.045em;
    }

    .phone-cta {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: .35rem 1rem;
      align-items: center;
      margin-top: 2.4rem;
      padding: 1rem;
      color: var(--paper);
      border: 1px solid var(--chalk);
      background: var(--chalk);
      text-decoration: none;
      transition: color .2s ease, background-color .2s ease, transform .2s var(--ease);
    }

    .phone-cta span { font-family: var(--mono); font-size: .64rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
    .phone-cta strong { font-family: var(--sans); font-size: clamp(1.5rem, 2.6vw, 2.8rem); line-height: 1; letter-spacing: -.03em; }
    .phone-cta i { grid-column: 2; grid-row: 1 / 3; font-size: 1.5rem; font-style: normal; }
    .phone-cta:hover { color: var(--paper); background: var(--ink); transform: translateY(-2px); }

    .phone-note {
      margin: 1.2rem 0 0;
      color: rgba(33,28,24,.68);
      font-size: .86rem;
      line-height: 1.55;
    }

    .service-map {
      position: relative;
      display: grid;
      grid-template-columns: minmax(18rem, .62fr) minmax(0, 1.38fr);
      align-items: stretch;
      margin-top: clamp(6rem, 12vw, 12rem);
      border: 1px solid var(--line-light);
      overflow: hidden;
      isolation: isolate;
    }

    .map-copy {
      position: relative;
      z-index: 2;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      padding: clamp(1.5rem, 4vw, 4rem);
      border-right: 1px solid var(--line-light);
      background: color-mix(in srgb, var(--ink) 92%, transparent);
    }

    .map-copy h3 {
      max-width: 8ch;
      margin: 0;
      font-family: var(--sans);
      font-size: clamp(3.2rem, 6.5vw, 7.5rem);
      font-weight: 850;
      line-height: .82;
      letter-spacing: -.065em;
      text-transform: uppercase;
    }

    .map-copy > div > p:last-child {
      max-width: 29rem;
      margin: 1.5rem 0 0;
      color: color-mix(in srgb, var(--paper) 72%, transparent);
      font-size: clamp(1rem, 1.25vw, 1.2rem);
    }

    .map-route-note {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: .75rem 1.25rem;
      align-items: center;
      margin-top: 3rem;
      padding-top: 1.25rem;
      border-top: 1px solid var(--line-light);
      font-family: var(--mono);
      font-size: .65rem;
      font-weight: 800;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .map-route-note::before {
      width: .7rem;
      height: .7rem;
      content: "";
      border: 2px solid var(--paper);
      border-radius: 50%;
      box-shadow: 0 0 0 .3rem color-mix(in srgb, var(--chalk) 38%, transparent);
      background: var(--chalk);
    }

    .denmark-map {
      position: relative;
      aspect-ratio: 1536 / 1024;
      background: #0b0e11 center center / cover no-repeat;
    }

    .denmark-map.map-bg-loaded {
      background-image: url('ostjylland-map.webp');
    }

    .js .denmark-map {
      opacity: 0;
    }

    .js .map-pin {
      opacity: 0;
    }

    .js .map-coordinate {
      opacity: 0;
    }

    .denmark-map::after {
      position: absolute;
      z-index: 1;
      inset: 0;
      content: "";
      pointer-events: none;
      box-shadow: inset 0 0 0 1px rgba(255,250,242,.12);
    }

    .map-route-overlay {
      position: absolute;
      z-index: 2;
      inset: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
    }

    .map-route-overlay path {
      fill: none;
      stroke: var(--chalk);
      stroke-width: 2.5;
      stroke-dasharray: 8 9;
      vector-effect: non-scaling-stroke;
      filter: drop-shadow(0 1px 2px rgba(0,0,0,.65));
    }

    .map-pin {
      position: absolute;
      z-index: 3;
      display: grid;
      grid-template-columns: auto auto;
      gap: 0 .65rem;
      align-items: center;
      pointer-events: none;
      transform: translate(-.55rem, -50%);
    }

    .js .map-pin {
      opacity: 0;
      transform: translate(-.55rem, -50%) scale(0);
    }

    .js .service-map.is-visible .map-pin--aarhus {
      animation: marker-reveal .3s cubic-bezier(.2, .8, .2, 1) .64s forwards;
    }

    .js .service-map.is-visible .map-pin--horsens {
      animation: marker-reveal .3s cubic-bezier(.2, .8, .2, 1) .76s forwards;
    }

    .map-pin--aarhus { top: 37.2%; left: 56.8%; }
    .map-pin--horsens { top: 67%; left: 41.2%; }

    .map-pin-dot {
      position: relative;
      display: block;
      width: 1.05rem;
      height: 1.05rem;
      grid-row: 1 / 3;
      border: 3px solid var(--paper);
      border-radius: 50%;
      background: var(--chalk);
      box-shadow: 0 0 0 2px color-mix(in srgb, var(--chalk) 85%, transparent), 0 .2rem .8rem rgba(0,0,0,.5);
    }

    .map-pin-dot::before {
      position: absolute;
      inset: -1.6rem;
      content: "";
      border-radius: 50%;
      background: radial-gradient(circle, rgba(157,63,44,.16), transparent 62%);
    }

    .map-pin-dot::after {
      position: absolute;
      inset: -.7rem;
      content: "";
      border: 1px solid rgba(255,250,242,.85);
      border-radius: 50%;
      animation: mapPulse 3.6s ease-out infinite;
    }

    .map-pin--horsens .map-pin-dot::after { animation-delay: .9s; }

    .map-google-link {
      position: absolute;
      z-index: 4;
      top: 1rem;
      right: 1rem;
      padding: .7rem .8rem;
      color: var(--ink);
      background: var(--paper);
      font-family: var(--mono);
      font-size: .6rem;
      font-weight: 800;
      letter-spacing: .07em;
      text-decoration: none;
      text-transform: uppercase;
      box-shadow: .25rem .25rem 0 var(--chalk);
    }

    .map-coordinate {
      position: absolute;
      z-index: 3;
      left: 1rem;
      bottom: 1rem;
      padding: .25rem .38rem;
      color: color-mix(in srgb, var(--paper) 72%, transparent);
      background: rgba(21,24,23,.78);
      font-family: var(--mono);
      font-size: .58rem;
      letter-spacing: .12em;
    }

    .map-distance {
      position: absolute;
      z-index: 3;
      top: 58%;
      left: 45.9%;
      transform: translate(-50%, -50%);
      padding: .28rem .5rem;
      color: color-mix(in srgb, var(--paper) 82%, transparent);
      background: rgba(11,14,17,.82);
      font-family: var(--mono);
      font-size: .55rem;
      font-weight: 700;
      letter-spacing: .1em;
      text-transform: uppercase;
      white-space: nowrap;
      pointer-events: none;
      box-shadow: 0 0 0 1px rgba(255,250,242,.12);
    }

    .js .map-distance { opacity: 0; }

    .js .service-map.is-visible .map-distance {
      animation: coord-fade-in .24s cubic-bezier(.2, .8, .2, 1) .82s forwards;
    }

    .js .map-coordinate {
      opacity: 0;
    }

    .js .service-map.is-visible .map-coordinate {
      animation: coord-fade-in .19s ease-out .7s forwards;
    }

    .js .service-map.is-visible .denmark-map {
      animation: grid-sweep-in .32s cubic-bezier(.2, .8, .2, 1) forwards;
    }

    @keyframes grid-sweep-in {
      from { opacity: 1; clip-path: inset(0 100% 0 0); }
      to { opacity: 1; clip-path: inset(0 0 0 0); }
    }

    @keyframes map-wipe-in {
      from { clip-path: inset(0 100% 0 0); }
      to { clip-path: inset(0 0 0 0); }
    }

    @keyframes marker-reveal {
      0% {
        opacity: 0;
        transform: translate(-.55rem, -50%) scale(0);
      }
      70% {
        opacity: 1;
        transform: translate(-.55rem, -50%) scale(1.12);
      }
      100% {
        opacity: 1;
        transform: translate(-.55rem, -50%) scale(1);
      }
    }

    @keyframes coord-fade-in {
      from { opacity: 0; }
      to { opacity: 1; }
    }

    @keyframes mapPulse {
      0% { opacity: .75; transform: scale(.55); transform-origin: center; }
      72%, 100% { opacity: 0; transform: scale(1.65); transform-origin: center; }
    }

    .contact-form::before {
      position: absolute;
      top: -.3rem;
      left: 1.5rem;
      width: 4rem;
      height: .6rem;
      content: "";
      background: var(--chalk);
    }

    .form-note {
      margin: 0 0 2rem;
      color: color-mix(in srgb, var(--paper) 68%, transparent);
      font-family: var(--mono);
      font-size: .68rem;
      line-height: 1.55;
      letter-spacing: .06em;
      text-transform: uppercase;
    }

    .field { margin-bottom: 1.35rem; }

    .project-stage {
      margin: 0 0 1.6rem;
      padding: 0;
      border: 0;
    }

    .project-stage legend {
      margin-bottom: .65rem;
      font-family: var(--mono);
      font-size: .67rem;
      font-weight: 700;
      letter-spacing: .1em;
      text-transform: uppercase;
    }

    .stage-options { display: flex; flex-wrap: wrap; gap: .5rem; }
    .stage-options label { position: relative; cursor: pointer; }
    .stage-options input { position: absolute; opacity: 0; }
    .stage-options span {
      display: inline-flex;
      min-height: 2.65rem;
      align-items: center;
      padding: .6rem .75rem;
      border: 1px solid rgba(255,253,245,.58);
      font-family: var(--mono);
      font-size: .62rem;
      font-weight: 800;
      letter-spacing: .07em;
      text-transform: uppercase;
      transition: color .2s ease, background .2s ease, border-color .2s ease;
    }

    .stage-options input:checked + span { color: var(--ink); border-color: var(--paper); background: var(--paper); }
    .stage-options input:focus-visible + span { outline: 3px solid var(--chalk); outline-offset: 3px; }

    .form-checklist {
      display: grid;
      gap: .45rem;
      margin: 0 0 1.5rem;
      padding: 1rem;
      color: rgba(255,253,245,.76);
      border-left: 3px solid var(--chalk);
      background: rgba(255,253,245,.06);
      font-family: var(--mono);
      font-size: .63rem;
      letter-spacing: .05em;
      text-transform: uppercase;
    }

    .form-checklist strong { color: var(--paper); }

    .field label {
      display: block;
      margin-bottom: .45rem;
      font-family: var(--mono);
      font-size: .67rem;
      font-weight: 700;
      letter-spacing: .1em;
      text-transform: uppercase;
    }

    .field input,
    .field textarea {
      width: 100%;
      min-height: 3.2rem;
      padding: .7rem 0;
      color: var(--paper);
      border: 0;
      border-bottom: 1px solid rgba(251,250,245,.6);
      border-radius: 0;
      background: transparent;
      caret-color: var(--chalk);
    }

    .field textarea { min-height: 7.5rem; resize: vertical; }
    .field input::placeholder, .field textarea::placeholder { color: rgba(251,250,245,.58); }
    .field input:focus, .field textarea:focus { border-bottom-color: var(--chalk); outline: none; }
    .field input:focus-visible, .field textarea:focus-visible { box-shadow: 0 2px 0 var(--chalk); }

    .contact-form button { width: 100%; cursor: pointer; }
    .contact-form button::after { content: "→"; }

    .form-status {
      min-height: 1.5rem;
      margin: 1rem 0 0;
      color: var(--paper);
      font-family: var(--mono);
      font-size: .68rem;
      line-height: 1.45;
      letter-spacing: .05em;
      text-transform: uppercase;
    }

    .site-footer {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      gap: 1rem;
      align-items: end;
      padding-top: 2rem;
      margin-top: clamp(4rem, 8vw, 8rem);
      border-top: 1px solid var(--line-light);
      font-family: var(--mono);
      font-size: .65rem;
      font-weight: 650;
      letter-spacing: .07em;
      text-transform: uppercase;
    }

    .site-footer p { margin: 0; }
    .site-footer p:last-child { text-align: right; }

    .media-credits {
      grid-column: 1 / -1;
      color: rgba(255,253,245,.58);
      line-height: 1.6;
      text-align: left !important;
    }

    .media-credits a { text-underline-offset: .25em; }

    .back-top {
      min-width: 2.8rem;
      min-height: 2.8rem;
      display: inline-grid;
      place-items: center;
      border: 1px solid var(--line-light);
      text-decoration: none;
    }

    .scroll-meter {
      position: fixed;
      z-index: 110;
      right: 0;
      bottom: 0;
      left: 0;
      height: 3px;
      pointer-events: none;
      background: transparent;
    }

    .scroll-meter span {
      display: block;
      width: 100%;
      height: 100%;
      background: var(--chalk);
      transform: scaleX(0);
      transform-origin: left;
    }

    .reveal { opacity: 1; transform: none; }
    .js .reveal { opacity: 0; transform: translateY(1rem); }
    .js .reveal.is-visible {
      opacity: 1;
      transform: translateY(0);
      transition: opacity .6s ease, transform .75s var(--ease);
    }

    /* Selectable service samples. */
    .service-item {
      cursor: pointer;
      transition: color .35s ease, background-color .35s ease, padding .35s var(--ease), opacity .3s ease;
    }

    .service-list.has-selection .service-item:not(.is-active) { opacity: .58; }
    .service-list.has-selection .service-item:not(.is-active):hover,
    .service-list.has-selection .service-item:not(.is-active):focus-visible { opacity: .82; }

    .service-item.is-active {
      padding-right: 1.25rem;
      padding-left: 1.25rem;
      color: var(--ink);
      background: var(--paper);
    }

    .service-item.is-active::before { transform: scaleY(1); }
    .service-item.is-active .service-number { color: var(--chalk); }
    .service-item.is-active h3 { transform: translateX(.35rem); }
    .service-item h3 { transition: transform .35s var(--ease); }

    .service-item::after {
      position: absolute;
      top: .7rem;
      right: .8rem;
      content: var(--selected-label, "Valgt");
      color: var(--chalk);
      font-family: var(--mono);
      font-size: .55rem;
      font-weight: 800;
      letter-spacing: .08em;
      text-transform: uppercase;
      opacity: 0;
      transform: translateY(-.35rem);
      transition: opacity .25s ease, transform .3s var(--ease);
    }

    .service-item.is-active::after { opacity: 1; transform: translateY(0); }

    /* Scroll-aware process sequence. */
    .process-live {
      display: grid;
      gap: .3rem;
      margin-top: 1.5rem;
      padding: .9rem 1rem;
      color: var(--paper);
      border-left: 4px solid var(--chalk);
      background: var(--ink);
    }

    .process-live span { font-family: var(--mono); font-size: .57rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
    .process-live strong { font-family: var(--sans); font-size: 1.15rem; letter-spacing: -.02em; }

    .process-list::before { background: color-mix(in srgb, var(--ink) 18%, transparent); }

    .process-list::after {
      position: absolute;
      top: .7rem;
      left: .35rem;
      width: 2px;
      height: calc((100% - 1.4rem) * var(--process-progress, .1667));
      content: "";
      background: var(--chalk);
      transition: height .55s var(--ease);
    }

    .process-step {
      z-index: 1;
      cursor: pointer;
      opacity: .48;
      transition: opacity .35s ease, padding-left .35s var(--ease), background-color .35s ease, box-shadow .35s ease;
    }

    .process-step:hover,
    .process-step:focus-visible {
      opacity: .82;
      background: linear-gradient(90deg, rgba(157, 63, 44, .04), transparent 72%);
      box-shadow: inset 3px 0 0 var(--chalk);
    }

    .process-step.is-active {
      padding-left: 1rem;
      opacity: 1;
      background: linear-gradient(90deg, color-mix(in srgb, var(--chalk) 10%, transparent), transparent 72%);
    }

    .process-step.is-active::before { background: var(--chalk); box-shadow: 0 0 0 .3rem color-mix(in srgb, var(--chalk) 16%, transparent); }
    .process-step:focus-visible { outline-offset: .2rem; }

    .step-stamp {
      position: absolute;
      z-index: 2;
      top: .5rem;
      left: -.65rem;
      display: grid;
      place-items: center;
      width: 2.3rem;
      height: 2.3rem;
      border: 2px solid var(--chalk);
      border-radius: 50%;
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--chalk) 18%, transparent);
      color: var(--chalk);
      font-family: var(--mono);
      font-size: .9rem;
      font-weight: 800;
      opacity: 0;
      transform: rotate(-8deg);
      pointer-events: none;
    }

    .process-step.is-stamped .step-stamp {
      animation: mark .32s var(--ease) forwards;
    }

    .process-marker {
      position: absolute;
      z-index: 2;
      top: .7rem;
      left: calc(.35rem + 1px);
      width: .95rem;
      height: .95rem;
      border: 2px solid var(--chalk);
      background: var(--plaster);
      transform: translate(-50%, -50%) rotate(45deg);
      transition: top .55s var(--ease);
      pointer-events: none;
    }

    /* Hero v3: modular construction blocks, no architectural illustration. */
    .hero.hero--blocks {
      min-height: calc(100svh - var(--header-h));
      color: var(--paper);
      background:
        radial-gradient(circle at 70% 20%, rgba(157,63,44,.2), transparent 28rem),
        var(--blueprint);
    }

    .hero.hero--blocks::before {
      opacity: .08;
      background-image: linear-gradient(105deg, transparent 0 48%, rgba(255,255,255,.22) 48% 48.1%, transparent 48.1%);
      background-size: 100% 100%;
    }

    .hero-squares {
      position: absolute;
      z-index: -1;
      inset: 0;
      display: grid;
      grid-template-columns: repeat(12, minmax(0, 1fr));
      grid-template-rows: repeat(8, minmax(0, 1fr));
      pointer-events: none;
      overflow: hidden;
    }

    .hero-square {
      min-width: 0;
      min-height: 0;
      border-right: 1px solid rgba(255,255,255,.1);
      border-bottom: 1px solid rgba(255,255,255,.1);
      background: rgba(157,63,44,calc(var(--heat, 0) + var(--wave-heat, 0)));
      transform: translate3d(calc(var(--square-x, 0px) + var(--wave-x, 0px)), calc(var(--square-y, 0px) + var(--wave-y, 0px)), 0) scale(calc(var(--square-scale, 1) + var(--wave-pop, 0)));
      transition: transform .38s var(--ease), background-color .38s ease, border-color .38s ease;
      will-change: transform;
    }

    .hero-square.is-shocked {
      transition-duration: .18s, .12s, .12s;
    }

    .hero.hero--blocks .hero-inner {
      display: grid;
      min-height: inherit;
      grid-template-columns: minmax(0, 1.15fr) minmax(22rem, .52fr);
      grid-template-rows: 1fr;
      gap: clamp(3rem, 7vw, 9rem);
      align-items: center;
      padding-block: clamp(4rem, 8vh, 7rem);
    }

    .hero.hero--blocks .hero-content { padding: 0; }
    .hero.hero--blocks .hero-kicker { margin-bottom: clamp(2rem, 4vh, 3.5rem); }
    .hero.hero--blocks h1 { max-width: 16ch; font-size: clamp(4rem, 6.2vw, 7.8rem); line-height: .84; }
    .hero.hero--blocks .hero-copy { max-width: 46rem; margin-top: clamp(2rem, 4vh, 3rem); }
    .hero.hero--blocks .hero-copy p { max-width: 40rem; }
    .hero.hero--blocks .hero .button { border-color: var(--paper); }

    .hero-actions { align-items: center; gap: .7rem; }
    .hero-actions .button { min-height: 3.15rem; padding: .55rem .55rem .55rem .85rem; font-size: .8rem; }
    .hero-actions .button::after { width: 1.8rem; height: 1.8rem; flex-basis: 1.8rem; }
    .hero-actions .button:not(.button--solid) {
      padding-left: .25rem;
      color: rgba(255,254,250,.84);
      border: 0;
      border-bottom: 1px solid rgba(255,254,250,.55);
      background: transparent;
    }
    .hero-actions .button:not(.button--solid):hover {
      color: #e2a084;
      border-bottom-color: #e2a084;
      background: transparent;
      transform: none;
    }

    .hero-microproof {
      display: flex;
      flex-wrap: wrap;
      gap: .65rem 1.4rem;
      margin-top: 1.3rem;
      color: rgba(255,253,245,.72);
      font-family: var(--mono);
      font-size: .62rem;
      font-weight: 750;
      letter-spacing: .07em;
      text-transform: uppercase;
    }

    .hero-microproof span::before { margin-right: .5rem; color: #d99072; content: "■"; }

    .hero-offer {
      position: relative;
      z-index: 2;
      padding: clamp(1.4rem, 2.8vw, 2.6rem);
      color: var(--ink);
      border: 1px solid rgba(255,253,245,.8);
      background: var(--paper);
      box-shadow: .65rem .65rem 0 var(--chalk);
    }

    .hero-offer::before {
      position: absolute;
      top: 0;
      right: 0;
      width: 4.5rem;
      height: 4.5rem;
      content: "";
      background: linear-gradient(135deg, transparent 49%, var(--chalk) 50%);
    }

    .offer-index { margin: 0 0 3rem; color: var(--chalk); font-family: var(--mono); font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

    .hero-offer h2 {
      max-width: 9ch;
      margin: 0;
      font-family: var(--sans);
      font-size: clamp(2.4rem, 4.1vw, 4.9rem);
      font-weight: 850;
      line-height: .88;
      letter-spacing: -.055em;
      text-transform: uppercase;
    }

    .offer-list {
      display: grid;
      gap: 0;
      margin: 2rem 0;
      padding: 0;
      border-top: 1px solid var(--ink);
      list-style: none;
      counter-reset: offer;
    }

    .offer-list li {
      display: grid;
      grid-template-columns: 2rem 1fr;
      gap: .5rem;
      padding: .72rem 0;
      border-bottom: 1px solid rgba(8,10,9,.3);
      font-family: var(--mono);
      font-size: .67rem;
      font-weight: 750;
      letter-spacing: .06em;
      text-transform: uppercase;
      counter-increment: offer;
    }

    .offer-list li::before { color: var(--chalk); content: "0" counter(offer); }
    .hero-offer .button { width: 100%; box-shadow: none; }
    .hero-offer .button--solid:hover { color: var(--paper); border-color: var(--ink); background: var(--ink); }
    .offer-foot { margin: 1rem 0 0; color: rgba(8,10,9,.62); font-family: var(--mono); font-size: .58rem; line-height: 1.5; letter-spacing: .06em; text-transform: uppercase; }

    /* Calmer editorial typography: sentence case, less compression, more air. */
    .hero.hero--blocks h1 {
      font-weight: 800;
      letter-spacing: -.055em;
      text-transform: none;
    }

    .section-heading {
      font-size: clamp(2.9rem, 6vw, 7rem);
      line-height: .94;
      letter-spacing: -.05em;
      text-transform: none;
    }

    .position-copy h2 {
      font-size: clamp(3rem, 6.4vw, 7.6rem);
      line-height: .95;
      letter-spacing: -.05em;
      text-transform: none;
    }

    .hero-offer h2 {
      max-width: 12ch;
      font-size: clamp(2.15rem, 3.35vw, 3.9rem);
      line-height: .96;
      letter-spacing: -.04em;
      text-transform: none;
    }

    .service-item h3,
    .process-step h3,
    .clause-title,
    .fact-band h3 {
      line-height: 1;
      letter-spacing: -.035em;
      text-transform: none;
    }

    .contact h2 {
      font-size: clamp(3.2rem, 7vw, 8.2rem);
      line-height: .88;
      letter-spacing: -.055em;
      text-transform: none;
    }

    .page-ruler {
      --ruler-bg: #202321;
      --ruler-tick: rgba(255,255,255,.36);
      --ruler-major: rgba(255,255,255,.72);
      --ruler-text: #e2a084;
      position: fixed;
      z-index: 120;
      top: var(--header-h);
      right: 0;
      bottom: 0;
      width: 1rem;
      color: var(--ruler-text);
      border-left: 1px solid var(--ruler-tick);
      background-color: var(--ruler-bg);
      background-image:
        repeating-linear-gradient(to bottom, transparent 0 11px, var(--ruler-tick) 11px 12px),
        repeating-linear-gradient(to bottom, transparent 0 59px, var(--ruler-major) 59px 61px);
      pointer-events: none;
      transition: background-color .35s ease, border-color .35s ease, color .35s ease;
    }

    .page-ruler[data-tone="light"] {
      --ruler-bg: #fffaf2;
      --ruler-tick: rgba(8,10,9,.28);
      --ruler-major: rgba(8,10,9,.68);
      --ruler-text: #9d3f2c;
    }

    .page-ruler[data-tone="blue"] {
      --ruler-bg: #5d382f;
      --ruler-tick: rgba(255,255,255,.34);
      --ruler-major: rgba(255,255,255,.78);
      --ruler-text: #fffdf5;
    }

    .ruler-readout {
      position: absolute;
      top: .55rem;
      right: 1.15rem;
      width: max-content;
      padding: .25rem .38rem;
      border: 1px solid var(--ruler-tick);
      background: var(--ruler-bg);
      font-family: var(--mono);
      font-size: .52rem;
      font-weight: 800;
      letter-spacing: .03em;
      white-space: nowrap;
    }

    .ruler-cursor {
      position: absolute;
      top: 0;
      right: 0;
      width: 100%;
      height: 2px;
      background: var(--chalk);
      transform: translateY(var(--ruler-y, 0));
      transition: background-color .25s ease;
    }

    .ruler-cursor::before {
      position: absolute;
      top: -4px;
      left: -1px;
      width: 0;
      height: 0;
      content: "";
      border-top: 5px solid transparent;
      border-bottom: 5px solid transparent;
      border-left: 6px solid var(--chalk);
    }

    .scroll-meter { display: none; }

    @media (max-width: 980px) {
      .header-inner { grid-template-columns: 1fr auto; }
      .header-note, .header-phone { display: none; }
      .nav-phone { display: block; }
      .menu-toggle { display: inline-flex; }

      .nav-links {
        position: fixed;
        z-index: 90;
        top: var(--header-h);
        right: 0;
        bottom: 0;
        left: 0;
        display: grid;
        align-content: start;
        gap: 0;
        padding: 2rem var(--gutter);
        color: var(--paper);
        background: var(--ink);
        visibility: hidden;
        opacity: 0;
        transform: translateY(-1rem);
        overflow-y: auto;
        overscroll-behavior: contain;
        transition: opacity .22s ease, transform .28s var(--ease), visibility 0s linear .28s;
      }

      .nav-links.is-open {
        visibility: visible;
        opacity: 1;
        transform: translateY(0);
        transition-delay: 0s;
      }

      .nav-links a {
        padding: 1.25rem 0;
        border-bottom: 1px solid var(--line-light);
        font-family: var(--sans);
        font-size: clamp(2rem, 8vw, 4.5rem);
        font-weight: 800;
        letter-spacing: -.04em;
      }

      .hero-inner {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        gap: 2.5rem;
        min-height: auto;
        padding-block: clamp(3rem, 7vw, 5rem);
      }

      .hero-title-wrap { padding-bottom: 0; }
      .hero-copy { grid-column: 1; }
      .hero h1 { max-width: 9ch; font-size: clamp(4.4rem, 12vw, 7.2rem); }
      .hero-copy { max-width: 40rem; align-self: start; }
      .hero-visual { width: min(100%, 43rem); min-height: clamp(30rem, 74vw, 42rem); justify-self: end; }
      .hero .chalk-line { top: 47%; bottom: auto; }
      .hero-plan-secondary { width: 50vw; }

      .hero.hero--blocks .hero-inner {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        gap: 3.5rem;
        padding-block: 4.5rem;
      }
      .hero.hero--blocks h1 { max-width: 16ch; font-size: clamp(4.2rem, 10vw, 7.2rem); }
      .hero-offer { width: min(100%, 42rem); justify-self: end; }

      .position-grid,
      .process-layout,
      .contact-grid { grid-template-columns: 1fr; }

      .position-grid { gap: 3rem; }
      .position-aside { display: flex; justify-content: space-between; gap: 1rem; }
      .process-head { position: static; }
      .process-head .section-heading { max-width: 12ch; }

      .services-head,
      .projects-head,
      .trust-intro { grid-template-columns: 1fr; align-items: start; }

      .services .section-intro,
      .projects .section-intro,
      .trust-intro .section-intro { justify-self: start; }

      .site-window-copy { grid-template-columns: 1fr; }
      .video-toggle { width: max-content; }

      .service-item { grid-template-columns: 4rem minmax(13rem, .85fr) minmax(14rem, 1fr); }
      .fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .contact-grid { gap: 5rem; }
      .service-map { grid-template-columns: minmax(16rem, .72fr) minmax(0, 1.28fr); }
    }

    @media (max-width: 700px) {
      :root { --header-h: 4.15rem; }

      .site-header { height: var(--header-h); }
      .hero-inner { gap: 2rem; padding-top: 2.5rem; }
      .hero-content { padding-block: 0; }
      .hero h1 { max-width: 8ch; font-size: clamp(3.7rem, 16.5vw, 5.6rem); }
      .hero-copy p { font-size: 1.08rem; }
      .hero-actions { display: grid; }
      .hero-actions .button { width: 100%; }
      .hero-trust { grid-template-columns: 1fr; }
      .hero-trust li { min-height: 0; padding: .7rem 0; border-right: 0; border-bottom: 1px solid rgba(255,253,245,.3); }
      .hero-trust li + li { padding-left: 0; }
      .hero-visual { min-height: 27rem; box-shadow: .65rem .65rem 0 rgba(8,10,9,.17); }
      .hero-visual figcaption { display: grid; }
      .hero-visual figcaption span:last-child { text-align: left; }
      .hero .chalk-line { top: 51%; bottom: auto; height: 7rem; }
      .hero-plan { inset: -2% -45%; width: 190%; }
      .hero-plan-secondary { display: none; }
      .hero.hero--blocks .hero-inner { gap: 3rem; padding-block: 3.5rem; }
      .hero.hero--blocks h1 { max-width: 11ch; font-size: clamp(3.15rem, 13.5vw, 4.8rem); }
      .hero-offer { box-shadow: .55rem .55rem 0 var(--chalk); }
      .hero-offer h2 { font-size: clamp(2.55rem, 12vw, 4rem); }
      .hero-squares { grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: repeat(16, minmax(0, 1fr)); }
      .page-ruler { width: .72rem; }
      .ruler-readout { display: none; }

      .position-aside { display: block; }
      .certainty-grid { grid-template-columns: 1fr; }
      .certainty-grid div { min-height: 10rem; }
      .certainty-grid dt { margin-bottom: 1.75rem; }

      .service-item {
        grid-template-columns: 3.2rem 1fr;
        gap: 1rem;
      }

      .service-item p { grid-column: 2; }

      .process-list { padding-left: 2rem; }
      .process-step {
        min-height: 0;
        grid-template-columns: 3rem 1fr;
        padding-bottom: 2.5rem;
      }
      .process-step p { grid-column: 2; }
      .process-step::before { left: -2.05rem; }

      .project-grid {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
      }
      .project, .project--large { min-height: 28rem; grid-row: auto; }
      .project figcaption { grid-template-columns: 1fr; gap: .55rem; }

      .site-window { padding-inline: 0; }
      .site-window-inner, .site-window video { min-height: 33rem; }
      .site-window-copy h3 { font-size: clamp(2.8rem, 14vw, 5rem); }

      .clause { grid-template-columns: 2.8rem 1fr; }
      .clause-copy { grid-column: 2; }
      .fact-grid { grid-template-columns: 1fr; }
      .fact-grid div { min-height: 8rem; }
      .fact-grid dt { margin-bottom: 1.35rem; }
      .fact-band::after { right: -7rem; opacity: .35; }

      .header-tools { gap: .4rem; }
      .language-switch button { min-width: 1.9rem; min-height: 1.85rem; padding: .25rem; }

      .service-map { grid-template-columns: 1fr; min-height: 0; }
      .map-copy { min-height: 25rem; border-right: 0; border-bottom: 1px solid var(--line-light); }
      .map-copy h3 { font-size: clamp(3.6rem, 18vw, 6rem); }
      .map-google-link { top: .75rem; right: .75rem; }

      .site-footer { grid-template-columns: 1fr auto; align-items: center; }
      .site-footer p:last-child { grid-column: 1 / -1; text-align: left; }

    }

    @media (max-width: 360px) {
      .brand-logo { height: 2.7rem; }
      .section-heading, .position-copy h2 { font-size: 2.75rem; }
      .project, .project--large { min-height: 24rem; }
      .project-meta { grid-template-columns: 1fr; }
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .001ms !important;
        animation-delay: 0s !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
      }
      .js .chalk-line .slack, .chalk-line .slack, .chalk-line .dust, .load-mark { display: none; }
      .js .chalk-line .taut { opacity: 1; }
      .js .title-line > span,
      .js .hero-copy,
      .js .proof-card,
      .js .hero-kicker,
      .js .hero-visual,
      .js .reveal,
      .js .certainty-grid > div,
      .js .denmark-map,
      .js .map-route-overlay,
      .js .map-pin,
      .js .map-coordinate,
      .js .map-distance {
        opacity: 1;
      }
      .js .denmark-map {
        clip-path: none;
      }
      .hero-plan, .hero-plan-secondary, .hero-visual { transform: none !important; }
      .site-window video { display: none; }
      .site-window-inner {
        background: linear-gradient(rgba(8,10,9,.25), rgba(8,10,9,.75)), url('https://images.pexels.com/photos/29299826/pexels-photo-29299826.jpeg?auto=compress&cs=tinysrgb&w=1600') center/cover;
      }
    }

    @media print {
      .site-header, .scroll-meter, .page-ruler, .load-mark, .contact-form, .back-top { display: none !important; }
      body { color: #000; background: #fff; }
      .hero { min-height: auto; }
      .hero-inner { min-height: auto; padding-block: 3rem; }
      .process-head { position: static; }
      .services, .projects, .contact, .fact-band { color: #000; background: #fff; }
      .project { min-height: 20rem; border-color: #000; }
      .project-placeholder, .project figcaption { color: #000; background: #fff; }
      section { break-inside: avoid; }
    }

    .service-link {
      display: inline-block;
      margin-top: .7rem;
      color: var(--chalk);
      font-family: var(--mono);
      font-size: .78rem;
      font-weight: 800;
      letter-spacing: .05em;
      text-transform: uppercase;
      text-decoration: none;
      border-bottom: 2px solid currentColor;
      padding-bottom: .12rem;
      transition: color .25s ease;
    }
    .service-link:hover, .service-link:focus-visible { color: color-mix(in srgb, var(--chalk) 55%, var(--paper)); }
