/* Reset legacy demo chrome; the page-specific figures define their own surfaces. */
:where(.software-story) .product-screen {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
:where(.software-story) .product-screen figcaption {
  display: block;
  padding: 0;
  color: var(--muted);
}
/* Shared brand primitives; each software page authors its own composition. */
.software-story {
  --sw-space: clamp(60px, 7vw, 100px);
}
.software-story :is(h1, h2, h3, p, figure) {
  margin-top: 0;
}
.software-story :is(h1, h2, h3) {
  font-weight: 500;
  overflow-wrap: anywhere;
}
.software-story h1 {
  font-size: var(--type-1);
  letter-spacing: var(--ls-1);
  font-weight: 500;
  line-height: var(--lh-1);
  margin: 25px 0;
}
.software-story h1 em {
  font-style: normal;
}
.software-story h2 {
  font-size: var(--type-2);
  line-height: var(--lh-2);
  letter-spacing: var(--ls-2);
  font-weight: 500;
  margin: 20px 0;
}
.software-story h3 {
  font-size: var(--type-5);
  line-height: var(--lh-5);
  letter-spacing: var(--ls-5);
  font-weight: 500;
}
/* Titles inside product mock-ups look like headings but stay out of the page outline. */
.software-story .sw-figure-title {
  font-family: var(--font-display);
  font-size: var(--type-4);
  font-weight: 500;
  letter-spacing: var(--ls-4);
  line-height: var(--lh-4);
  color: inherit;
  margin: 20px 0;
}
.software-story p {
  line-height: 1.8;
  font-size: var(--type-small);
}
.software-story .sw-lead {
  font-size: var(--type-lede);
  max-width: 440px;
  margin-bottom: 30px;
}
.software-story .sw-caption {
  font-size: 0.68rem;
  line-height: 1.65;
  margin: 20px 0 0;
}
.sw-band {
  padding-block: var(--sw-space);
}
.sw-orange {
  background: var(--accent);
  color: var(--on-accent);
}
.sw-orange h1 em {
  color: var(--on-accent);
}
.software-story .sw-orange p {
  color: inherit;
}
.sw-dark {
  background: var(--panel-dark);
  color: var(--on-dark);
}
.software-story .sw-dark p {
  color: var(--muted-on-dark);
}
.sw-dark .brand-kicker {
  color: var(--accent-soft);
}
.sw-light {
  background: var(--surface);
}
/* The third chapter is a white sheet; orange is kept for the hero and the final step. */
.sw-tint {
  background: var(--surface);
  color: var(--ink);
  border-block: 1px solid var(--line);
}
.sw-heading {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  align-items: end;
  gap: 80px;
  margin-bottom: 45px;
}
.sw-heading h2 {
  margin-bottom: 0;
}
.sw-heading > p {
  max-width: 410px;
  margin: 0 0 4px;
}
.sw-link {
  display: inline-flex;
  align-items: center;
  gap: 25px;
  font-size: var(--type-small);
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding: 7px 0 10px;
}
.sw-link:hover {
  color: var(--accent-ink);
}
.sw-dark .sw-link:hover {
  color: var(--accent-soft);
}
.sw-paper-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  font-size: 0.55rem;
  letter-spacing: 0.08em;
  color: var(--muted);
}
.sw-mark {
  color: var(--accent);
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: -0.08em;
}
.sw-hero-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-block: 23px;
  font-size: 0.7rem;
  border-top: 1px solid var(--surface-half);
}
.sw-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 15px 35px;
  padding-block: 24px;
  border-bottom: 1px solid var(--line);
}
.sw-nav a {
  color: var(--ink);
  font-size: var(--type-caption);
  text-decoration: none;
}
.sw-nav a:hover {
  text-decoration: underline;
  text-underline-offset: 5px;
}
.sw-module-link {
  display: flex;
  gap: 22px;
  align-items: flex-start;
  text-decoration: none;
  color: var(--ink);
  padding: 24px 0;
  border-top: 1px solid var(--line);
}
.sw-module-link svg {
  color: var(--accent-ink);
  flex-shrink: 0;
  width: 28px;
  height: 28px;
}
.sw-module-link > span:nth-child(2) {
  flex: 1;
  min-width: 0;
}
.sw-module-link strong {
  display: block;
  font-size: var(--type-body);
  font-weight: 500;
}
.sw-module-link small {
  display: block;
  color: var(--muted);
  font-size: var(--type-caption);
  line-height: 1.8;
  margin-top: 9px;
}
.sw-module-link:hover strong {
  text-decoration: underline;
  text-underline-offset: 5px;
}
.sw-overview-opening {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 85px;
  padding-block: 85px;
  align-items: center;
}
.sw-fiscal .sw-hero {
  background: var(--accent);
}
.sw-overview-scene {
  padding: 0 15px;
}
.sw-overview-source {
  display: flex;
  align-items: center;
  gap: 15px;
  background: var(--accent);
  color: var(--on-accent);
  width: fit-content;
  padding: 15px 25px;
  font-size: var(--type-caption);
  margin: 0 0 -5px 30px;
  transform: rotate(3deg);
}
.sw-overview-dossier {
  padding: 28px 35px;
  background: var(--surface);
  color: var(--ink);
  transform: rotate(-3deg);
  box-shadow: 0 25px 45px #71331130;
  border-radius: 5px;
}
.sw-overview-dossier h2 {
  font-size: var(--type-3);
  line-height: var(--lh-3);
  letter-spacing: var(--ls-3);
  font-weight: 500;
  margin-block: 25px 30px;
}
.sw-overview-dossier > div:not(:first-child) {
  display: flex;
  gap: 18px;
  padding: 22px 0;
  border-top: 1px solid var(--line);
  font-size: var(--type-caption);
}
.sw-overview-dossier > div > span:first-child:not(.sw-mark) {
  color: var(--accent-ink);
  font-size: 0.6rem;
}
.sw-overview-dossier b {
  margin-left: auto;
  font-weight: 400;
}
.sw-overview-people {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 45px;
  color: var(--on-accent);
  font-size: 0.7rem;
}
.sw-overview-people i {
  height: 1px;
  background: currentColor;
  flex: 1;
}
.sw-overview-people strong {
  border: 1px solid currentColor;
  padding: 12px 22px;
  border-radius: 99px;
  font-weight: 500;
}
.sw-overview-flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 45px;
  list-style: none;
  padding: 25px 0 0;
  margin: 0;
}
.sw-overview-flow li {
  border-top: 1px solid var(--line-on-dark);
  padding-top: 25px;
}
.sw-overview-flow li > span {
  color: var(--accent);
  font-size: 2.8rem;
  font-weight: 300;
  letter-spacing: -0.08em;
}
.sw-overview-flow h3 {
  margin: 25px 0 12px;
  font-size: var(--type-4);
  line-height: var(--lh-4);
  letter-spacing: var(--ls-4);
  font-weight: 500;
}
.sw-overview-flow p {
  max-width: 260px;
}
.sw-module-family {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 65px;
  padding-block: 45px;
}
.sw-module-family header {
  padding-top: 25px;
  border-top: 1px solid var(--accent);
}
.sw-module-family header > span {
  color: var(--accent-ink);
  font-size: 0.65rem;
  letter-spacing: 0.07em;
}
.sw-module-family header h3 {
  margin-block: 30px 18px;
  font-size: var(--type-3);
  line-height: var(--lh-3);
  letter-spacing: var(--ls-3);
  font-weight: 500;
}
.sw-module-family header p {
  font-size: var(--type-caption);
}
.sw-module-family > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 35px;
}
.sw-overview-choice {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 100px;
  padding-block: 25px var(--sw-space);
}
.sw-overview-choice aside {
  align-self: center;
  border-left: 2px solid var(--accent);
  padding: 20px 0 20px 30px;
}
.sw-overview-choice aside p {
  margin-top: 15px;
  font-size: var(--type-caption);
}
.software-story .px-module-price {
  border-top: 1px solid var(--line);
}
@media (max-width: 1000px) {
  .sw-overview-opening {
    gap: 40px;
  }
  .sw-heading {
    gap: 40px;
  }
  .sw-module-family {
    gap: 35px;
    grid-template-columns: 1fr 2fr;
  }
  .sw-module-family > div {
    grid-template-columns: 1fr;
  }
  .sw-overview-choice {
    gap: 40px;
  }
}
@media (max-width: 760px) {
  .sw-overview-opening,
  .sw-heading,
  .sw-module-family,
  .sw-overview-choice {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-overview-opening {
    padding-block: 48px;
    gap: 45px;
  }
  .sw-heading {
    gap: 22px;
    margin-bottom: 32px;
  }
  .sw-overview-scene {
    padding-inline: 6px;
  }
  .sw-overview-dossier {
    padding: 24px;
    transform: rotate(-2deg);
  }
  .sw-overview-source {
    margin-left: 12px;
    padding: 14px;
  }
  .sw-hero-foot {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
  .sw-overview-flow {
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
  }
  .sw-overview-flow h3 {
    margin-top: 15px;
  }
  .sw-module-family {
    padding-block: 22px;
    gap: 15px;
  }
  .sw-module-family header h3 {
    margin-block: 20px 12px;
  }
  .sw-overview-choice {
    padding-top: 0;
  }
  .sw-overview-choice aside {
    padding-left: 20px;
  }
  .sw-nav {
    gap: 16px 24px;
  }
}
/* IB: two people, a shared dossier, and a subject-led intake. */
.sw-ib-hero {
  background: var(--accent);
  color: var(--on-accent);
}
.sw-ib-hero h1 em {
  color: var(--accent-ink);
}
.sw-ib-opening {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  align-items: center;
  padding-block: 75px;
}
.sw-ib-folder {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 30px;
  margin: 25px 0;
  box-shadow: 12px 15px 0 var(--accent-soft);
  transform: rotate(2deg);
}
.sw-ib-folder::before {
  content: "IB / PERSOONLIJK DOSSIER";
  position: absolute;
  top: -30px;
  left: 20px;
  border-radius: 5px 5px 0 0;
  background: var(--accent);
  padding: 10px 20px;
  color: var(--on-accent);
  font-size: 0.6rem;
}
.sw-ib-people {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 15px;
  align-items: center;
  padding-block: 28px;
}
.sw-ib-people > div {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 10px;
  padding: 20px 5px;
}
.sw-ib-people svg {
  color: var(--accent-ink);
}
.sw-ib-people strong {
  font-size: var(--type-body);
  font-weight: 500;
}
.sw-ib-people span {
  font-size: 0.7rem;
  color: var(--muted);
}
.sw-ib-shared {
  background: var(--accent);
  text-align: center;
  padding: 22px;
  color: var(--on-accent);
}
.sw-ib-shared span,
.sw-ib-request span {
  display: block;
  color: var(--muted);
  font-size: 0.65rem;
  margin-bottom: 10px;
}
.sw-ib-shared strong,
.sw-ib-request strong {
  font-size: var(--type-caption);
  font-weight: 500;
}
.sw-ib-request {
  padding: 25px 0 20px;
  border-bottom: 1px solid var(--line);
}
.sw-ib-folder figcaption {
  color: var(--muted);
  font-size: 0.6rem;
  margin-top: 20px;
}
.sw-ib .sw-hero-foot {
  border-color: var(--line-strong);
}
.sw-ib-intake {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 80px;
}
.sw-ib-intake > div:first-child > p {
  max-width: 340px;
}
.sw-ib-subjects {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--line-on-dark);
}
.sw-ib-subjects article {
  padding: 28px;
}
.sw-ib-subjects article:nth-child(even) {
  border-left: 1px solid var(--line-on-dark);
}
.sw-ib-subjects article:nth-child(n + 3) {
  border-top: 1px solid var(--line-on-dark);
}
.sw-ib-subjects article > span {
  font-size: 0.7rem;
  color: var(--accent-soft);
}
.sw-ib-subjects h3 {
  margin: 22px 0 12px;
}
.sw-ib-subjects p {
  font-size: var(--type-caption);
}
.sw-ib-subjects small {
  font-size: 0.6rem;
  color: var(--muted-on-dark);
}
.sw-ib-subjects .sw-ib-missing {
  background: var(--accent);
  color: var(--on-accent);
}
.software-story .sw-ib-missing p,
.sw-ib-missing small {
  color: var(--muted);
}
.sw-ib-subjects .sw-ib-missing > span {
  color: var(--accent-ink);
}
.sw-ib-choices,
.sw-ib-prep {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-ib-choice-line {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 20px;
  font-size: 0.7rem;
}
.sw-ib-choice-line i {
  height: 1px;
  flex: 1;
  background: var(--line-strong);
}
.sw-ib-choice-line strong {
  background: var(--accent);
  padding: 16px;
  color: var(--on-accent);
  font-weight: 500;
}
.sw-scope-details details {
  border-top: 1px solid var(--line-strong);
}
.sw-scope-details details:last-child {
  border-bottom: 1px solid var(--line-strong);
}
.sw-scope-details summary {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 0;
  cursor: pointer;
  font-size: var(--type-body);
  list-style: none;
}
.sw-scope-details summary::-webkit-details-marker {
  display: none;
}
.sw-scope-details summary > span {
  color: var(--accent-ink);
}
.sw-scope-details p {
  font-size: var(--type-small);
  padding-bottom: 12px;
}
.sw-ib-prep ul {
  list-style: none;
  padding: 0;
  margin: 20px 0;
}
.sw-ib-prep li {
  border-top: 1px solid var(--line);
  padding: 16px 0;
  font-size: var(--type-small);
}
@media (max-width: 1000px) {
  .sw-ib-opening,
  .sw-ib-intake,
  .sw-ib-choices,
  .sw-ib-prep {
    gap: 40px;
  }
  .sw-ib-intake {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 760px) {
  .sw-ib-opening,
  .sw-ib-choices,
  .sw-ib-prep {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-ib-opening {
    padding-block: 45px;
  }
  .sw-ib-folder {
    padding: 20px;
    margin-right: 12px;
    transform: none;
  }
  .sw-ib-subjects {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-ib-subjects article:nth-child(even) {
    border-left: 0;
  }
  .sw-ib-subjects article + article {
    border-top: 1px solid var(--line-on-dark);
  }
  .sw-ib-people {
    gap: 6px;
  }
  .sw-ib-people strong {
    font-size: var(--type-caption);
  }
}
/* VPB: a numerical bridge and a source-to-correction comparison. */
.sw-vpb-opening {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 85px;
  align-items: center;
  padding-block: 80px;
}
.sw-vpb-opening h1 em {
  color: var(--accent);
}
.sw-vpb-bridge {
  background: var(--surface);
  color: var(--ink);
  padding: 30px;
  margin: 0;
  border-top: 4px solid var(--accent);
}
.sw-vpb-label {
  display: block;
  color: var(--muted);
  font-size: 0.7rem;
  margin-top: 30px;
}
.sw-vpb-start {
  display: block;
  font-size: clamp(2rem, 3.5vw, 3.4rem);
  letter-spacing: -0.06em;
  font-weight: 500;
  margin: 8px 0 25px;
}
.sw-vpb-adjustments {
  border-left: 1px solid var(--line-strong);
  margin-left: 12px;
  padding-left: 24px;
}
.sw-vpb-adjustments > div {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 0;
  border-top: 1px solid var(--line);
}
.sw-vpb-adjustments > div > span {
  color: var(--accent-ink);
  font-size: 1.5rem;
}
.software-story .sw-vpb-adjustments p {
  color: var(--ink);
  margin: 0;
  flex: 1;
  font-size: var(--type-caption);
}
.sw-vpb-adjustments strong {
  display: block;
  font-size: var(--type-lede);
  font-weight: 500;
  margin-top: 8px;
}
.sw-vpb-adjustments small {
  color: var(--muted);
  font-size: 0.6rem;
}
.sw-vpb-result {
  background: var(--accent);
  padding: 24px;
  margin-top: 25px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  color: var(--on-accent);
}
.sw-vpb-result > span {
  grid-column: 1 / -1;
  font-size: 0.65rem;
}
.sw-vpb-result strong {
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: -0.06em;
}
.sw-vpb-result small {
  font-size: 0.65rem;
  color: var(--accent-ink);
}
.sw-vpb-bridge figcaption {
  font-size: 0.6rem;
  line-height: 1.7;
  color: var(--muted);
  margin-top: 20px;
}
.sw-vpb-evidence {
  display: grid;
  grid-template-columns: 1fr 70px 1fr;
  align-items: center;
}
.sw-vpb-evidence > div {
  padding: 35px;
  background: var(--surface);
  border: 1px solid var(--line);
}
.sw-vpb-evidence > div:last-child {
  background: var(--accent);
  color: var(--on-accent);
}
.sw-vpb-doc-label {
  display: block;
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  color: var(--accent-ink);
  margin-bottom: 30px;
}
.sw-vpb-evidence dl {
  margin: 25px 0;
}
.sw-vpb-evidence dl > div {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 15px 0;
  border-top: 1px solid var(--line);
  font-size: var(--type-caption);
}
.sw-vpb-evidence dd {
  margin: 0;
}
.sw-vpb-evidence small,
.sw-vpb-review-label {
  font-size: 0.68rem;
  color: var(--muted);
}
.sw-vpb-evidence-arrow {
  color: var(--accent-ink);
  font-size: 2rem;
  text-align: center;
}
.sw-vpb-scope {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-vpb-files {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 35px;
}
.sw-vpb-files li {
  border-top: 2px solid var(--accent);
  padding-top: 25px;
}
.sw-vpb-files li > span {
  font-size: 0.65rem;
  color: var(--muted);
}
.sw-vpb-files h3 {
  margin: 30px 0 18px;
}
.sw-vpb-files p {
  font-size: var(--type-caption);
}
@media (max-width: 1000px) {
  .sw-vpb-opening,
  .sw-vpb-scope {
    gap: 40px;
  }
}
@media (max-width: 760px) {
  .sw-vpb-opening,
  .sw-vpb-scope,
  .sw-vpb-files,
  .sw-vpb-evidence {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-vpb-opening {
    padding-block: 45px;
  }
  .sw-vpb-bridge {
    padding: 22px;
  }
  .sw-vpb-adjustments {
    margin: 0;
    padding-left: 14px;
  }
  .sw-vpb-adjustments > div {
    flex-wrap: wrap;
  }
  .sw-vpb-evidence > div {
    padding: 25px;
  }
  .sw-vpb-evidence-arrow {
    padding: 12px;
    transform: rotate(90deg);
  }
}
/* Btw: a quarterly rhythm, a side-by-side comparison and one open difference. */
.sw-btw-hero {
  padding-top: 70px;
  background: var(--accent);
  color: var(--on-accent);
}
.software-story .sw-btw-title :is(h1 em, .sw-lead) {
  color: var(--on-accent);
}
.sw-btw-title {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 65px;
  align-items: center;
}
.sw-btw-title h1 {
  margin-bottom: 40px;
}
.sw-btw-title .sw-lead {
  font-size: var(--type-lede);
}
.sw-btw-quarters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 30px;
  border-top: 1px solid var(--surface-half);
}
.sw-btw-quarters > * {
  padding: 23px 18px;
  font-size: 1.5rem;
  font-weight: 400;
  display: flex;
  gap: 20px;
  align-items: center;
}
.sw-btw-quarters b {
  font-size: 0.65rem;
  font-weight: 500;
}
.sw-btw-quarters > strong {
  background: var(--surface);
  color: var(--ink);
}
.sw-btw-comparison {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 35px;
  align-items: center;
  padding: 45px;
  background: var(--surface);
  color: var(--ink);
  margin: 0;
}
.sw-btw-comparison > div {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.sw-btw-comparison > div > span {
  font-size: 0.65rem;
  letter-spacing: 0.05em;
  color: var(--muted);
}
.sw-btw-comparison strong {
  font-size: clamp(2.4rem, 5vw, 4.7rem);
  letter-spacing: -0.065em;
  font-weight: 500;
}
.sw-btw-comparison small {
  font-size: var(--type-caption);
  color: var(--muted);
}
.sw-btw-comparison figcaption {
  grid-column: 1 / -1;
  border-top: 1px solid var(--line);
  padding-top: 20px;
  font-size: 0.65rem;
  color: var(--muted);
}
.sw-btw-versus {
  font-size: 4rem;
  color: var(--accent);
  padding-inline: 40px;
}
.sw-btw-investigate {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 100px;
}
.sw-btw-delta {
  padding: 35px;
  border: 1px solid var(--line);
  align-self: start;
}
.sw-btw-delta > span {
  font-size: 0.65rem;
  color: var(--accent-ink);
}
.sw-btw-delta > strong {
  display: block;
  font-size: clamp(3.5rem, 7vw, 6.5rem);
  font-weight: 400;
  letter-spacing: -0.07em;
  margin: 30px 0;
}
.sw-btw-delta p {
  font-size: var(--type-caption);
}
.sw-btw-finding {
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line-strong);
  margin-top: 28px;
}
.sw-btw-finding summary {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  cursor: pointer;
  padding: 22px 0;
  font-size: var(--type-caption);
}
.sw-btw-finding dl > div {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 20px;
  padding: 12px 0;
  font-size: var(--type-caption);
}
.sw-btw-finding dd {
  margin: 0;
}
.sw-btw-scope {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 30px;
}
.sw-btw-scope article {
  border-top: 1px solid var(--line-on-dark);
  padding-top: 22px;
}
.sw-btw-scope article > span {
  color: var(--accent-soft);
  font-size: 0.65rem;
}
.sw-btw-scope h3 {
  margin: 25px 0 15px;
}
.sw-btw-scope p {
  font-size: var(--type-caption);
}
.sw-btw-start {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-btw-start ol {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sw-btw-start li {
  display: flex;
  gap: 30px;
  border-top: 1px solid var(--line);
  padding-block: 20px;
}
.sw-btw-start li > span {
  color: var(--accent-ink);
  font-size: 0.7rem;
}
.sw-btw-start li > p {
  margin: 0;
  font-size: var(--type-small);
}
@media (max-width: 1000px) {
  .sw-btw-title,
  .sw-btw-investigate,
  .sw-btw-start {
    gap: 40px;
  }
  .sw-btw-scope {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sw-btw-versus {
    padding-inline: 0;
  }
  .sw-btw-quarters > * {
    gap: 10px;
    padding-inline: 12px;
  }
}
@media (max-width: 760px) {
  .sw-btw-hero {
    padding-top: 45px;
  }
  .sw-btw-title,
  .sw-btw-investigate,
  .sw-btw-start,
  .sw-btw-scope {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-btw-title {
    gap: 0;
  }
  .sw-btw-title h1 {
    margin-bottom: 20px;
  }
  .sw-btw-quarters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sw-btw-comparison {
    gap: 18px;
    padding: 28px 20px;
  }
  .sw-btw-comparison strong {
    font-size: clamp(1.4rem, 6vw, 2.5rem);
  }
  .sw-btw-versus {
    font-size: 2rem;
  }
  .sw-btw-comparison small {
    font-size: 0.6rem;
  }
  .sw-btw-delta {
    padding: 25px;
  }
}
/* ICP: an import report, inspectable findings and a column-oriented start. */
.sw-icp-opening {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  align-items: center;
  gap: 85px;
  padding-block: 80px;
}
.sw-icp-opening h1 em {
  color: var(--accent-ink);
}
.sw-icp-import {
  margin: 0;
  background: var(--panel-dark);
  color: var(--on-dark);
  box-shadow: 14px 14px 0 var(--accent-soft);
}
.sw-icp-file {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 25px;
  border-bottom: 1px solid var(--line-on-dark);
}
.sw-icp-file > span {
  flex: 1;
  font-size: var(--type-small);
}
.sw-icp-file small {
  display: block;
  font-size: 0.6rem;
  color: var(--muted-on-dark);
  margin-top: 8px;
}
.sw-icp-file b {
  font-size: 0.6rem;
  font-weight: 500;
  border: 1px solid var(--line-on-dark);
  padding: 8px;
}
.sw-icp-grid {
  padding: 20px 25px;
}
.sw-icp-grid > div {
  display: grid;
  grid-template-columns: 0.5fr 1.4fr 1fr;
  gap: 14px;
  align-items: center;
  padding: 20px 0;
  border-bottom: 1px solid var(--line-on-dark);
  font-size: 0.7rem;
}
.sw-icp-grid > div:first-child {
  font-size: 0.55rem;
  color: var(--muted-on-dark);
}
.sw-icp-grid strong {
  font-weight: 500;
}
.sw-icp-grid b {
  color: var(--accent-soft);
  font-weight: 500;
}
.sw-icp-import figcaption {
  display: flex;
  gap: 22px;
  align-items: center;
  padding: 25px;
  background: var(--accent);
  color: var(--on-accent);
}
.sw-icp-import figcaption strong {
  font-size: 3.5rem;
  letter-spacing: -0.07em;
  font-weight: 400;
}
.sw-icp-import figcaption span {
  font-size: var(--type-caption);
}
.sw-icp-workbench {
  display: grid;
  grid-template-columns: 1fr 2fr;
  border: 1px solid var(--line-on-dark);
}
.sw-icp-workbench aside {
  padding: 35px;
  border-right: 1px solid var(--line-on-dark);
}
.sw-icp-workbench aside > span {
  font-size: 0.6rem;
  color: var(--muted-on-dark);
  display: block;
  margin-bottom: 30px;
}
.sw-icp-workbench aside svg {
  color: var(--accent);
  width: 45px;
  height: 45px;
  margin-bottom: 25px;
}
.sw-icp-workbench aside p {
  font-size: var(--type-caption);
}
.sw-icp-workbench aside small {
  color: var(--muted-on-dark);
  font-size: 0.65rem;
  line-height: 1.7;
}
.sw-icp-workbench details {
  padding: 24px 30px;
  border-bottom: 1px solid var(--line-on-dark);
}
.sw-icp-workbench details:last-child {
  border: 0;
}
.sw-icp-workbench summary {
  display: flex;
  gap: 25px;
  align-items: center;
  cursor: pointer;
  list-style: none;
  font-size: var(--type-small);
}
.sw-icp-workbench summary b {
  color: var(--accent-soft);
  font-size: 0.7rem;
  font-weight: 500;
}
.sw-icp-workbench summary i {
  font-style: normal;
  margin-left: auto;
}
.sw-icp-workbench details p {
  padding-top: 20px;
  font-size: var(--type-caption);
  margin: 0;
}
.sw-icp-checks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-icp-statuses {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-block: 28px;
}
.sw-icp-statuses span {
  border: 1px solid var(--line-strong);
  padding: 10px 14px;
  font-size: 0.65rem;
}
.sw-icp-columns {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  background: var(--surface);
  border: 1px solid var(--line);
}
.sw-icp-columns span {
  padding: 25px;
  border-right: 1px solid var(--line);
  font-size: var(--type-small);
}
.sw-icp-columns span:last-child {
  border: 0;
}
@media (max-width: 1000px) {
  .sw-icp-opening,
  .sw-icp-checks {
    gap: 40px;
  }
  .sw-icp-workbench {
    grid-template-columns: 1fr 1.7fr;
  }
}
@media (max-width: 760px) {
  .sw-icp-opening,
  .sw-icp-checks,
  .sw-icp-workbench {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-icp-opening {
    padding-block: 45px;
  }
  .sw-icp-import {
    margin-right: 12px;
  }
  .sw-icp-grid {
    padding-inline: 18px;
  }
  .sw-icp-grid > div {
    gap: 10px;
    grid-template-columns: 0.55fr 1.3fr 1fr;
    font-size: 0.65rem;
  }
  .sw-icp-workbench aside {
    border-right: 0;
    border-bottom: 1px solid var(--line-on-dark);
    padding: 25px;
  }
  .sw-icp-workbench details {
    padding: 22px;
  }
  .sw-icp-workbench summary {
    gap: 15px;
  }
  .sw-icp-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sw-icp-columns span {
    border-bottom: 1px solid var(--line);
    padding: 20px;
  }
}
/* Suppletie: original and revised versions stay side by side. */
.sw-suppletie-hero {
  padding-block: 65px 40px;
  background: var(--accent);
  color: var(--on-accent);
}
.sw-suppletie-intro {
  text-align: center;
  max-width: 960px;
  margin: 0 auto 50px;
}
.sw-suppletie-intro h1 em {
  color: var(--accent-ink);
}
.software-story .sw-suppletie-intro .sw-lead {
  max-width: 550px;
  margin-inline: auto;
}
.sw-suppletie-versions {
  display: grid;
  grid-template-columns: 1fr 70px 1fr;
  align-items: center;
  margin: 0 0 25px;
}
.sw-suppletie-versions > div {
  padding: 30px;
  background: var(--surface);
  border-top: 3px solid var(--line-strong);
}
.sw-suppletie-versions > div:last-of-type {
  border-color: var(--accent);
  box-shadow: var(--shadow-card);
}
.sw-suppletie-versions .sw-figure-title {
  margin-top: 30px;
}
.sw-suppletie-amount {
  font-size: clamp(2.6rem, 4.4vw, 4.2rem);
  letter-spacing: -0.06em;
  display: block;
}
.sw-suppletie-versions p {
  border-top: 1px solid var(--line);
  padding-top: 20px;
  margin-top: 20px;
  font-size: var(--type-caption);
}
.sw-suppletie-versions small {
  color: var(--muted);
  font-size: 0.7rem;
}
.sw-suppletie-change {
  font-size: 2.8rem;
  text-align: center;
  color: var(--accent-ink);
}
.sw-suppletie-versions figcaption {
  grid-column: 1/-1;
  margin-top: 25px;
  font-size: 0.65rem;
  color: var(--muted);
}
.sw-suppletie-trail {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  padding: 0;
  gap: 45px;
  margin: 45px 0 0;
}
.sw-suppletie-trail li {
  border-top: 1px solid var(--line-strong);
  padding-top: 25px;
}
.sw-suppletie-trail li > span {
  display: grid;
  place-items: center;
  border: 1px solid var(--accent-ink);
  color: var(--accent-ink);
  width: 45px;
  height: 45px;
  border-radius: 50%;
  font-size: 0.7rem;
  margin-bottom: 25px;
}
.sw-suppletie-trail h3 {
  font-size: var(--type-4);
  line-height: var(--lh-4);
  letter-spacing: var(--ls-4);
  font-weight: 500;
}
.sw-suppletie-trail p {
  font-size: var(--type-small);
}
.sw-suppletie-scope,
.sw-suppletie-start {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-suppletie-scope article {
  border-top: 1px solid var(--line-on-dark);
  padding-block: 25px 10px;
}
.sw-suppletie-scope article p {
  font-size: var(--type-small);
}
.sw-suppletie-version-path {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  align-items: center;
  margin-top: 35px;
  font-size: 0.7rem;
}
.sw-suppletie-version-path strong {
  background: var(--accent);
  color: var(--on-accent);
  padding: 12px;
  font-weight: 500;
}
.sw-suppletie-version-path i {
  font-style: normal;
  color: var(--accent);
}
.sw-suppletie-start > div > p {
  display: flex;
  gap: 25px;
  border-top: 1px solid var(--line);
  padding-block: 20px;
  margin: 0;
}
.sw-suppletie-start p > span {
  color: var(--accent-ink);
  font-size: 0.7rem;
}
.sw-suppletie-start small {
  display: block;
  line-height: 1.8;
  font-size: 0.7rem;
  color: var(--muted);
  margin-top: 15px;
}
@media (max-width: 1000px) {
  .sw-suppletie-scope,
  .sw-suppletie-start {
    gap: 40px;
  }
}
@media (max-width: 760px) {
  .sw-suppletie-hero {
    padding-top: 45px;
  }
  .sw-suppletie-intro {
    text-align: left;
  }
  .sw-suppletie-versions,
  .sw-suppletie-trail,
  .sw-suppletie-scope,
  .sw-suppletie-start {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-suppletie-versions > div {
    padding: 24px;
  }
  .sw-suppletie-change {
    padding: 12px;
    transform: rotate(135deg);
  }
  .sw-suppletie-trail {
    gap: 30px;
  }
}
/* Uitstel: a three-lane office planning board and a reply-driven handoff. */
.sw-uitstel-hero {
  background: var(--accent);
  padding-block: 65px 40px;
  color: var(--on-accent);
}
.sw-uitstel-title {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  align-items: end;
  gap: 80px;
}
.sw-uitstel-title h1 em {
  color: var(--accent-ink);
}
.sw-uitstel-board {
  margin-block: 40px 25px;
  background: var(--surface);
  border: 1px solid var(--line);
}
.sw-uitstel-board figcaption {
  padding: 22px 28px;
  border-bottom: 1px solid var(--line);
  font-size: 0.65rem;
}
.sw-uitstel-board > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.sw-uitstel-board section {
  padding: 28px;
  background: var(--paper);
}
.sw-uitstel-board section + section {
  border-left: 1px solid var(--line);
}
.sw-uitstel-board section > span {
  font-size: 0.6rem;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.sw-uitstel-board article {
  background: var(--surface);
  padding: 25px 20px;
  border-top: 2px solid var(--line-strong);
  margin-top: 25px;
}
.sw-uitstel-board section:nth-child(2) article {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--on-accent);
}
.sw-uitstel-board section:nth-child(3) article {
  border-color: var(--ink);
}
.sw-uitstel-board article strong {
  font-size: var(--type-small);
  font-weight: 500;
}
.sw-uitstel-board article p {
  font-size: var(--type-caption);
  margin: 15px 0;
}
.sw-uitstel-board article small {
  font-size: 0.65rem;
  color: var(--muted);
  line-height: 1.7;
  display: block;
}
.sw-uitstel-confirm {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 100px;
  align-items: center;
}
.sw-uitstel-envelope {
  background: var(--surface);
  color: var(--ink);
  padding: 40px;
  border-bottom: 12px solid var(--accent-soft);
  transform: rotate(-3deg);
}
.sw-uitstel-envelope svg {
  color: var(--accent-ink);
  display: block;
  margin-bottom: 30px;
  width: 45px;
  height: 45px;
}
.sw-uitstel-envelope > span {
  font-size: 0.6rem;
  color: var(--muted);
}
.sw-uitstel-envelope > strong {
  display: block;
  font-size: 2rem;
  line-height: 1.2;
  letter-spacing: -0.05em;
  font-weight: 500;
  margin-block: 25px;
}
.sw-uitstel-envelope small {
  font-size: 0.65rem;
  color: var(--muted);
}
.sw-uitstel-decision {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  align-items: center;
  font-size: var(--type-caption);
  margin: 30px 0;
}
.sw-uitstel-decision strong {
  padding: 12px 15px;
  border: 1px solid var(--accent);
  font-weight: 500;
}
.sw-uitstel-decision i {
  font-style: normal;
  color: var(--accent);
}
.sw-uitstel-control {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-uitstel-ready {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 45px;
}
.sw-uitstel-ready article {
  border-top: 1px solid var(--line-strong);
  padding-top: 24px;
}
.sw-uitstel-ready article > span {
  font-size: 0.7rem;
  color: var(--accent-ink);
}
.sw-uitstel-ready h3 {
  margin-block: 25px 15px;
}
.sw-uitstel-ready p {
  font-size: var(--type-small);
}
@media (max-width: 1000px) {
  .sw-uitstel-title,
  .sw-uitstel-confirm,
  .sw-uitstel-control {
    gap: 40px;
  }
  .sw-uitstel-board section {
    padding: 20px;
  }
}
@media (max-width: 760px) {
  .sw-uitstel-hero {
    padding-top: 45px;
  }
  .sw-uitstel-title,
  .sw-uitstel-board > div,
  .sw-uitstel-confirm,
  .sw-uitstel-control,
  .sw-uitstel-ready {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-uitstel-title {
    gap: 5px;
  }
  .sw-uitstel-board section + section {
    border-left: 0;
    border-top: 1px solid var(--line);
  }
  .sw-uitstel-board article {
    margin-top: 15px;
  }
  .sw-uitstel-envelope {
    transform: none;
    padding: 30px;
  }
  .sw-uitstel-ready {
    gap: 25px;
  }
}
/* Machtigingen: a register and three deliberately separate concepts. */
.sw-authority-opening {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 85px;
  align-items: center;
  padding-block: 80px;
}
.sw-authority-opening h1 em {
  color: var(--accent-ink);
}
.sw-authority-register {
  padding: 30px;
  background: var(--accent);
  border-left: 4px solid var(--accent);
  color: var(--on-accent);
}
.sw-authority-register .sw-figure-title {
  margin-block: 30px;
}
.sw-authority-entry {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 25px 0;
  border-top: 1px solid var(--line-strong);
  font-size: var(--type-caption);
}
.sw-authority-entry small {
  display: block;
  color: var(--muted);
  font-size: 0.65rem;
  margin-top: 8px;
}
.sw-authority-entry strong {
  font-size: 0.6rem;
  font-weight: 500;
  border: 1px solid var(--line-strong);
  padding: 8px 10px;
  max-width: 125px;
}
.sw-authority-entry:nth-of-type(2) strong {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--on-accent);
}
.sw-authority-register figcaption {
  font-size: 0.65rem;
  line-height: 1.8;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.sw-authority-chain {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  align-items: center;
  gap: 35px;
}
.sw-authority-chain article {
  border-top: 1px solid var(--line-on-dark);
  padding-top: 25px;
  align-self: stretch;
}
.sw-authority-chain svg {
  color: var(--accent);
  margin-bottom: 35px;
  width: 40px;
  height: 40px;
}
.sw-authority-chain h3 {
  font-size: var(--type-4);
  line-height: var(--lh-4);
  letter-spacing: var(--ls-4);
  font-weight: 500;
}
.sw-authority-chain p {
  font-size: var(--type-small);
}
.sw-authority-chain small {
  font-size: 0.65rem;
  color: var(--muted-on-dark);
}
.sw-authority-chain > span {
  color: var(--accent);
  font-size: 2.4rem;
}
.sw-authority-follow,
.sw-authority-start {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-authority-handoff {
  display: flex;
  align-items: center;
  gap: 25px;
  padding-block: 25px;
  font-size: var(--type-caption);
}
.sw-authority-handoff i {
  font-style: normal;
  color: var(--accent-ink);
  font-size: 1.7rem;
}
.sw-authority-handoff strong {
  padding: 15px 25px;
  background: var(--accent);
  font-weight: 500;
  color: var(--on-accent);
}
.sw-authority-follow ol {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sw-authority-follow li {
  display: flex;
  gap: 25px;
  padding-bottom: 30px;
}
.sw-authority-follow li > span {
  font-size: 0.7rem;
  color: var(--accent-ink);
  border-top: 2px solid var(--accent);
  padding-top: 15px;
}
.sw-authority-follow li > div {
  padding-top: 15px;
  border-top: 1px solid var(--line);
  flex: 1;
}
.sw-authority-follow li p {
  font-size: var(--type-small);
}
.sw-authority-start dl {
  margin: 0;
}
.sw-authority-start dl > div {
  display: grid;
  grid-template-columns: 0.8fr 1fr;
  gap: 20px;
  padding: 25px 0;
  border-top: 1px solid var(--line-strong);
  font-size: var(--type-small);
}
.sw-authority-start dd {
  margin: 0;
  color: var(--muted);
}
@media (max-width: 1000px) {
  .sw-authority-opening,
  .sw-authority-follow,
  .sw-authority-start {
    gap: 40px;
  }
  .sw-authority-chain {
    gap: 20px;
  }
}
@media (max-width: 760px) {
  .sw-authority-opening,
  .sw-authority-follow,
  .sw-authority-start,
  .sw-authority-chain {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-authority-opening {
    padding-block: 45px;
  }
  .sw-authority-register {
    padding: 24px;
  }
  .sw-authority-entry {
    gap: 12px;
  }
  .sw-authority-entry strong {
    max-width: 105px;
  }
  .sw-authority-chain > span {
    text-align: center;
  }
  .sw-authority-chain svg {
    margin-bottom: 20px;
  }
}
/* Jaarwerk: traceability from the final balance back to its source. */
.sw-yearwork-opening {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
  align-items: center;
  padding-block: 85px;
}
.sw-yearwork-opening h1 em {
  color: var(--accent);
}
.sw-yearwork-sheet {
  padding: 30px;
  background: var(--surface);
  color: var(--ink);
  transform: rotate(2deg);
  box-shadow: -12px 12px 0 var(--accent);
}
.sw-yearwork-file {
  display: flex;
  gap: 20px;
  align-items: center;
  background: var(--accent);
  padding: 22px;
  margin: 25px 0;
  color: var(--on-accent);
}
.sw-yearwork-file > span {
  font-size: var(--type-small);
}
.sw-yearwork-file small {
  display: block;
  color: var(--muted);
  font-size: 0.65rem;
  margin-top: 8px;
}
.sw-yearwork-file svg {
  color: var(--accent-ink);
  flex-shrink: 0;
}
.sw-yearwork-map {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  font-size: var(--type-caption);
}
.sw-yearwork-map > * {
  border-top: 1px solid var(--line);
  padding: 18px 5px;
  font-weight: 500;
}
.sw-yearwork-map > span:nth-child(-n + 2) {
  font-size: 0.55rem;
  color: var(--muted);
}
.sw-yearwork-map > strong:last-of-type,
.sw-yearwork-map > span:last-child {
  background: var(--accent);
  color: var(--on-accent);
}
.sw-yearwork-sheet figcaption {
  font-size: 0.6rem;
  line-height: 1.7;
  margin-top: 25px;
}
.sw-yearwork-trace {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: 25px;
  align-items: center;
}
.sw-yearwork-trace article {
  border-top: 2px solid var(--accent);
  padding: 25px 0;
  align-self: stretch;
}
.sw-yearwork-trace article > span {
  font-size: 0.6rem;
  color: var(--accent-ink);
}
.sw-yearwork-trace h3 {
  font-size: var(--type-4);
  line-height: var(--lh-4);
  letter-spacing: var(--ls-4);
  font-weight: 500;
  margin: 25px 0 18px;
}
.sw-yearwork-trace p {
  font-size: var(--type-caption);
}
.sw-yearwork-trace i {
  font-style: normal;
  font-size: 2rem;
  color: var(--accent-ink);
}
.sw-yearwork-ledger article {
  display: grid;
  grid-template-columns: 60px 0.9fr 1.2fr;
  gap: 25px;
  border-top: 1px solid var(--line-strong);
  padding: 28px 0;
}
.sw-yearwork-ledger article > span {
  font-size: 0.7rem;
  color: var(--accent-ink);
}
.sw-yearwork-ledger h3 {
  margin: 0;
}
.sw-yearwork-ledger p {
  font-size: var(--type-small);
  margin: 0;
}
.sw-yearwork-start {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-yearwork-start ul {
  padding-left: 18px;
  color: var(--muted);
  line-height: 2;
  font-size: var(--type-small);
  margin-block: 25px;
}
@media (max-width: 1000px) {
  .sw-yearwork-opening,
  .sw-yearwork-start {
    gap: 45px;
  }
  .sw-yearwork-ledger article {
    grid-template-columns: 40px 0.9fr 1.1fr;
    gap: 20px;
  }
}
@media (max-width: 760px) {
  .sw-yearwork-opening,
  .sw-yearwork-start,
  .sw-yearwork-trace {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-yearwork-opening {
    padding-block: 45px;
  }
  .sw-yearwork-sheet {
    padding: 22px;
    margin-left: 12px;
    transform: none;
  }
  .sw-yearwork-file {
    padding: 18px;
    gap: 12px;
  }
  .sw-yearwork-trace {
    gap: 5px;
  }
  .sw-yearwork-trace i {
    transform: rotate(-90deg);
    text-align: center;
  }
  .sw-yearwork-ledger article {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 18px;
  }
  .sw-yearwork-ledger p {
    grid-column: 2;
  }
}
/* Deponeren: a publication route, separate from the internal annual dossier. */
.sw-deposit-hero {
  background: var(--surface);
  padding-block: 65px 40px;
}
.sw-deposit-title {
  text-align: center;
  max-width: 1000px;
  margin-inline: auto;
}
.sw-deposit-title h1 em {
  color: var(--accent-ink);
}
.software-story .sw-deposit-title .sw-lead {
  max-width: 600px;
  margin-inline: auto;
}
.sw-deposit-route {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: 25px;
  align-items: center;
  margin-block: 55px 25px;
}
.sw-deposit-route > div {
  padding: 28px;
  background: var(--paper);
  border: 1px solid var(--line);
}
.sw-deposit-route > div:nth-of-type(2) {
  background: var(--accent);
  border-top: 3px solid var(--accent);
  padding-block: 35px;
  color: var(--on-accent);
}
.sw-deposit-route > div > span {
  font-size: 0.6rem;
  color: var(--muted);
}
.sw-deposit-route svg {
  display: block;
  margin-block: 30px;
  width: 40px;
  height: 40px;
  color: var(--accent-ink);
}
.sw-deposit-route .sw-figure-title {
  margin-block: 15px;
}
.sw-deposit-route p {
  font-size: var(--type-caption);
}
.sw-deposit-route > div > strong {
  display: block;
  border-top: 1px solid var(--line-strong);
  padding-top: 20px;
  font-size: 0.65rem;
  font-weight: 500;
}
.sw-deposit-route i {
  font-style: normal;
  font-size: 2rem;
  color: var(--accent-ink);
}
.sw-deposit-route figcaption {
  grid-column: 1/-1;
  font-size: 0.65rem;
  margin-top: 15px;
}
.sw-deposit-status {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-deposit-status ol {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sw-deposit-status li {
  display: flex;
  gap: 30px;
  padding: 24px 0;
  border-top: 1px solid var(--line-on-dark);
}
.sw-deposit-status li > span {
  color: var(--accent);
  font-size: 1.5rem;
  letter-spacing: -0.06em;
}
.sw-deposit-status strong {
  font-size: var(--type-body);
  font-weight: 500;
}
.sw-deposit-status small {
  display: block;
  margin-top: 10px;
  font-size: var(--type-caption);
  color: var(--muted-on-dark);
  line-height: 1.8;
}
.sw-deposit-status li:last-child {
  border-color: var(--accent);
}
.sw-deposit-scope,
.sw-deposit-ready {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-deposit-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 30px;
  border: 1px solid var(--line-strong);
  font-size: var(--type-caption);
}
.sw-deposit-split > * {
  padding: 22px;
  font-weight: 500;
}
.sw-deposit-split strong {
  background: var(--accent);
  color: var(--on-accent);
}
.sw-deposit-ready ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sw-deposit-ready li {
  display: flex;
  align-items: center;
  gap: 25px;
  border-top: 1px solid var(--line-strong);
  padding: 25px 0;
  font-size: var(--type-small);
}
.sw-deposit-ready svg {
  color: var(--accent-ink);
  flex-shrink: 0;
}
@media (max-width: 1000px) {
  .sw-deposit-status,
  .sw-deposit-scope,
  .sw-deposit-ready {
    gap: 40px;
  }
  .sw-deposit-route {
    gap: 15px;
  }
  .sw-deposit-route > div {
    padding: 20px;
  }
}
@media (max-width: 760px) {
  .sw-deposit-hero {
    padding-top: 45px;
  }
  .sw-deposit-title {
    text-align: left;
  }
  .sw-deposit-route,
  .sw-deposit-status,
  .sw-deposit-scope,
  .sw-deposit-ready {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-deposit-route {
    margin-top: 35px;
  }
  .sw-deposit-route i {
    transform: rotate(90deg);
    text-align: center;
  }
  .sw-deposit-route > div {
    padding: 25px;
  }
  .sw-deposit-route svg {
    margin-block: 20px;
  }
}
/* OWR: a year-bound archive, with separate values, movements and income. */
.sw-owr-hero {
  background: var(--accent);
  color: var(--on-accent);
}
.sw-owr-opening {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 90px;
  align-items: center;
  padding-block: 80px;
}
.sw-owr-opening h1 em {
  color: var(--accent-ink);
}
.sw-owr-archive {
  padding: 30px;
  background: var(--surface);
  border: 1px solid var(--line);
}
.sw-owr-year {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 25px 0;
  margin: 20px 0;
  border-block: 1px solid var(--line);
}
.sw-owr-year > span {
  font-size: 0.6rem;
  letter-spacing: 0.08em;
  color: var(--accent-ink);
}
.sw-owr-year strong {
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: -0.04em;
}
.sw-owr-year small {
  font-size: 0.7rem;
  color: var(--muted);
}
.sw-owr-files {
  padding-block: 15px;
}
.sw-owr-files > div {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 8px 12px;
  padding: 18px 20px;
  background: var(--paper);
  border-top: 2px solid var(--line-strong);
}
.sw-owr-files > div + div {
  margin-top: 10px;
}
.sw-owr-files > div:nth-child(2) {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--on-accent);
}
.sw-owr-files span {
  grid-row: span 2;
  font-size: 0.65rem;
  color: var(--muted);
}
.sw-owr-files strong {
  font-size: var(--type-small);
  font-weight: 500;
}
.sw-owr-files small {
  font-size: 0.65rem;
  color: var(--muted);
}
.sw-owr-archive figcaption {
  font-size: 0.6rem;
  line-height: 1.8;
  margin-top: 18px;
}
.sw-owr-source-lines article {
  display: grid;
  grid-template-columns: 0.7fr 1fr 1.2fr;
  gap: 30px;
  align-items: center;
  padding: 30px 0;
  border-top: 1px solid var(--line-on-dark);
}
.sw-owr-source-lines article > span {
  font-size: 0.6rem;
  color: var(--accent-soft);
}
.sw-owr-source-lines h3 {
  font-size: var(--type-3);
  line-height: var(--lh-3);
  letter-spacing: var(--ls-3);
  font-weight: 500;
  margin: 0;
}
.sw-owr-source-lines p {
  font-size: var(--type-small);
  margin: 0;
}
.sw-owr-route,
.sw-owr-start {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-owr-route-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-block: 25px;
  font-size: 0.7rem;
}
.sw-owr-route-tags i {
  font-style: normal;
  color: var(--accent-ink);
}
.sw-owr-route-tags strong {
  padding: 12px;
  background: var(--accent);
  font-weight: 500;
  color: var(--on-accent);
}
.sw-owr-start ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.sw-owr-start li {
  display: flex;
  gap: 30px;
  padding: 25px 0;
  border-top: 1px solid var(--line-strong);
}
.sw-owr-start li span {
  color: var(--accent-ink);
  font-size: 0.7rem;
}
.sw-owr-start li strong {
  font-size: var(--type-body);
  font-weight: 500;
}
@media (max-width: 1000px) {
  .sw-owr-opening,
  .sw-owr-route,
  .sw-owr-start {
    gap: 40px;
  }
  .sw-owr-source-lines article {
    grid-template-columns: 0.8fr 1fr 1.1fr;
    gap: 20px;
  }
}
@media (max-width: 760px) {
  .sw-owr-opening,
  .sw-owr-route,
  .sw-owr-start {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-owr-opening {
    padding-block: 45px;
  }
  .sw-owr-archive {
    padding: 24px;
  }
  .sw-owr-source-lines article {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }
}
/* OSS: branch sales by destination, then reconnect them to the quarter. */
.sw-oss .sw-hero {
  background: var(--accent);
}
.sw-oss-opening {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 90px;
  padding-block: 85px;
}
.sw-oss-destinations {
  padding: 30px;
  background: var(--surface);
  color: var(--ink);
}
.sw-oss-origin {
  display: flex;
  gap: 20px;
  align-items: center;
  padding-bottom: 28px;
}
.sw-oss-origin svg {
  color: var(--accent-ink);
  width: 42px;
  height: 42px;
  flex-shrink: 0;
}
.sw-oss-origin > span {
  font-size: var(--type-body);
}
.sw-oss-origin small {
  display: block;
  color: var(--muted);
  font-size: 0.65rem;
  margin-top: 8px;
}
.sw-oss-branches {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  border-top: 1px solid var(--line-strong);
  padding-top: 25px;
}
.sw-oss-branches > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.sw-oss-branches b {
  display: grid;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  width: 65px;
  height: 65px;
  font-size: var(--type-lede);
  font-weight: 500;
}
.sw-oss-branches strong {
  font-size: 0.7rem;
  font-weight: 500;
}
.sw-oss-branches span {
  font-size: 0.6rem;
  color: var(--muted);
}
.sw-oss-quarter {
  background: var(--accent);
  padding: 23px;
  margin-top: 30px;
  text-align: center;
  color: var(--on-accent);
}
.sw-oss-quarter span {
  display: block;
  font-size: 0.55rem;
  color: var(--accent-ink);
  margin-bottom: 12px;
}
.sw-oss-quarter strong {
  font-size: var(--type-lede);
  font-weight: 500;
}
.sw-oss-destinations figcaption {
  margin-top: 22px;
  font-size: 0.6rem;
  line-height: 1.7;
}
.sw-oss-sort {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border: 1px solid var(--line-strong);
}
.sw-oss-sort > div {
  padding: 35px;
}
.sw-oss-sort > div + div {
  border-left: 1px solid var(--line-strong);
}
.sw-oss-sort > div:nth-child(2) {
  background: var(--accent);
  color: var(--on-accent);
}
.sw-oss-sort span {
  font-size: 0.6rem;
  color: var(--accent-ink);
}
.sw-oss-sort h3 {
  font-size: var(--type-4);
  line-height: var(--lh-4);
  letter-spacing: var(--ls-4);
  font-weight: 500;
  margin: 30px 0 15px;
}
.sw-oss-sort p {
  font-size: var(--type-small);
  margin: 0;
}
.sw-oss-correction,
.sw-oss-start {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-oss-period-link {
  display: flex;
  gap: 20px;
  align-items: center;
  font-size: var(--type-caption);
  margin-block: 30px;
}
.sw-oss-period-link strong {
  padding: 15px;
  background: var(--accent);
  color: var(--on-accent);
  font-weight: 500;
}
.sw-oss-period-link i {
  font-style: normal;
  color: var(--accent);
  font-size: 1.5rem;
}
.sw-oss-correction article {
  border-top: 1px solid var(--line-on-dark);
  padding-top: 25px;
}
.sw-oss-correction article p {
  font-size: var(--type-small);
  margin-bottom: 25px;
}
.sw-oss-export {
  background: var(--accent);
  padding: 35px;
  color: var(--on-accent);
}
.sw-oss-export svg {
  color: var(--accent-ink);
  width: 40px;
  height: 40px;
  margin-bottom: 25px;
}
.sw-oss-export ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sw-oss-export li {
  padding: 18px 0;
  border-top: 1px solid var(--line-strong);
  font-size: var(--type-caption);
}
@media (max-width: 1000px) {
  .sw-oss-opening,
  .sw-oss-correction,
  .sw-oss-start {
    gap: 40px;
  }
  .sw-oss-sort > div {
    padding: 25px;
  }
}
@media (max-width: 760px) {
  .sw-oss-opening,
  .sw-oss-sort,
  .sw-oss-correction,
  .sw-oss-start {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-oss-opening {
    padding-block: 45px;
  }
  .sw-oss-destinations {
    padding: 24px;
  }
  .sw-oss-branches {
    gap: 10px;
  }
  .sw-oss-branches b {
    width: 55px;
    height: 55px;
  }
  .sw-oss-sort > div + div {
    border-left: 0;
    border-top: 1px solid var(--line-strong);
  }
  .sw-oss-export {
    padding: 25px;
  }
}
/* Dividend: a decision document and the facts surrounding one distribution. */
.sw-dividend-hero {
  background: var(--accent);
  color: var(--on-accent);
}
.sw-dividend-opening {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
  align-items: center;
  padding-block: 80px;
}
.sw-dividend-opening h1 em {
  color: var(--accent-ink);
}
.sw-dividend-decision {
  padding: 35px;
  background: var(--surface);
  border-top: 4px solid var(--accent);
  box-shadow: 12px 12px 0 var(--accent-soft);
}
.sw-dividend-seal {
  display: grid;
  place-items: center;
  border: 1px solid var(--accent-ink);
  border-radius: 50%;
  width: 65px;
  height: 65px;
  color: var(--accent-ink);
  margin-block: 30px;
}
.sw-dividend-decision dl {
  margin: 25px 0;
}
.sw-dividend-decision dl > div {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 20px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
  font-size: var(--type-caption);
}
.sw-dividend-decision dt {
  color: var(--muted);
}
.sw-dividend-decision dd {
  margin: 0;
}
.sw-dividend-decision figcaption {
  font-size: 0.6rem;
  line-height: 1.8;
}
.sw-dividend-company {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin: auto auto 35px;
  padding: 20px;
  border: 1px solid var(--line-strong);
  width: fit-content;
}
.sw-dividend-company svg {
  color: var(--accent-ink);
}
.sw-dividend-company strong {
  font-size: var(--type-small);
  font-weight: 500;
}
.sw-dividend-records {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 35px;
  border-top: 1px solid var(--line-strong);
}
.sw-dividend-records article {
  padding-top: 28px;
}
.sw-dividend-records article > span {
  font-size: 0.6rem;
  color: var(--accent-ink);
}
.sw-dividend-records h3 {
  margin: 25px 0 15px;
  font-size: var(--type-4);
  line-height: var(--lh-4);
  letter-spacing: var(--ls-4);
  font-weight: 500;
}
.sw-dividend-records p {
  font-size: var(--type-small);
}
.sw-dividend-review,
.sw-dividend-start {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-dividend-review article {
  padding-top: 25px;
  border-top: 1px solid var(--line-on-dark);
}
.sw-dividend-review article p {
  font-size: var(--type-small);
  margin-bottom: 25px;
}
.sw-dividend-version {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 15px;
  margin-top: 30px;
  font-size: 0.7rem;
}
.sw-dividend-version i {
  font-style: normal;
  color: var(--accent);
}
.sw-dividend-version strong {
  font-weight: 500;
  padding: 14px;
  border: 1px solid var(--accent);
}
.sw-dividend-documents > div {
  display: grid;
  grid-template-columns: 32px 25px 1fr;
  gap: 20px;
  align-items: center;
  border-top: 1px solid var(--line-strong);
  padding: 25px 0;
}
.sw-dividend-documents svg {
  color: var(--accent-ink);
}
.sw-dividend-documents span {
  font-size: 0.6rem;
  color: var(--muted);
}
.sw-dividend-documents strong {
  font-size: var(--type-small);
  font-weight: 500;
}
@media (max-width: 1000px) {
  .sw-dividend-opening,
  .sw-dividend-review,
  .sw-dividend-start {
    gap: 40px;
  }
}
@media (max-width: 760px) {
  .sw-dividend-opening,
  .sw-dividend-records,
  .sw-dividend-review,
  .sw-dividend-start {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-dividend-opening {
    padding-block: 45px;
  }
  .sw-dividend-decision {
    padding: 25px;
    margin-right: 12px;
  }
  .sw-dividend-records {
    gap: 10px;
  }
  .sw-dividend-records article + article {
    border-top: 1px solid var(--line);
  }
  .sw-dividend-documents > div {
    gap: 15px;
  }
}
/* Klantportaal: the customer's view and the office's view of one request. */
.sw-portaal .sw-hero {
  background: var(--accent);
}
.sw-client-opening {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: center;
  gap: 72px;
  padding-block: 75px;
}
.sw-client-window {
  padding: 22px 27px;
  background: var(--surface);
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: var(--radius-medium);
  width: 100%;
  max-width: 520px;
  justify-self: center;
  transform: perspective(1400px) rotateY(-8deg) rotateX(3deg);
  box-shadow: 12px 16px 0 -5px #ffffff40, 24px 30px 0 -10px #ffffff26, 0 36px 60px -24px #1e202980;
}
.sw-client-household {
  display: block;
  color: var(--muted);
  font-size: 0.6rem;
  margin-top: 28px;
}
.sw-client-window .sw-figure-title {
  margin-block: 18px 28px;
}
.sw-client-task {
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: var(--accent);
  padding: 22px;
  color: var(--on-accent);
}
.sw-client-task svg {
  color: var(--accent-ink);
}
.sw-client-task strong {
  font-size: var(--type-small);
  font-weight: 500;
}
.sw-client-task > span {
  font-size: 0.65rem;
  color: var(--muted);
  line-height: 1.7;
}
.sw-client-message {
  margin-top: 22px;
  border-top: 1px solid var(--line);
  padding-top: 20px;
}
.sw-client-message > span {
  font-size: 0.6rem;
  color: var(--muted);
}
.software-story .sw-client-message p {
  font-size: var(--type-caption);
  color: var(--ink);
  margin-top: 10px;
}
.sw-client-window figcaption {
  font-size: 0.6rem;
  line-height: 1.7;
  padding-block: 12px;
}
.sw-client-exchange {
  display: grid;
  grid-template-columns: 1fr 70px 1fr;
  align-items: center;
}
.sw-client-exchange article > span {
  display: block;
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  color: var(--accent-ink);
  margin-bottom: 22px;
}
.sw-client-exchange article > small {
  display: block;
  font-size: 0.65rem;
  color: var(--muted);
  margin-top: 18px;
}
.sw-client-reply {
  background: var(--accent);
  padding: 35px;
  border-radius: 20px 20px 0 20px;
  color: var(--on-accent);
}
.sw-client-reply p {
  font-size: 1.25rem;
  color: var(--ink);
  letter-spacing: -0.025em;
}
.sw-client-reply > div {
  display: flex;
  gap: 18px;
  align-items: center;
  background: var(--surface);
  padding: 20px;
  margin-top: 28px;
}
.sw-client-reply strong {
  font-size: var(--type-caption);
  font-weight: 500;
  overflow-wrap: anywhere;
}
.sw-client-reply svg {
  flex-shrink: 0;
  color: var(--accent-ink);
}
.sw-client-transfer {
  text-align: center;
  font-size: 2rem;
  color: var(--accent-ink);
}
.sw-client-dossier {
  border: 1px solid var(--line-strong);
  padding: 35px;
}
.sw-client-dossier > div {
  border-block: 1px solid var(--line);
  padding: 20px 0;
  margin-block: 25px;
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  justify-content: space-between;
}
.sw-client-dossier strong {
  font-size: var(--type-caption);
  font-weight: 500;
}
.sw-client-dossier span {
  font-size: 0.65rem;
  color: var(--accent-ink);
}
.sw-client-dossier p {
  font-size: var(--type-caption);
}
.sw-client-agreement,
.sw-client-start {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-client-version {
  display: flex;
  flex-direction: column;
  gap: 15px;
  border: 1px solid var(--line-on-dark);
  padding: 25px;
  margin-top: 35px;
  max-width: 360px;
}
.sw-client-version > span {
  font-size: 0.6rem;
  color: var(--accent-soft);
}
.sw-client-version strong {
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: -0.05em;
}
.sw-client-version small {
  font-size: 0.65rem;
  color: var(--muted-on-dark);
}
.sw-client-agreement article {
  border-top: 1px solid var(--line-on-dark);
  padding-top: 25px;
}
.sw-client-agreement article p {
  font-size: var(--type-small);
  margin-bottom: 25px;
}
.sw-client-start ol {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sw-client-start li {
  display: flex;
  gap: 25px;
  border-top: 1px solid var(--line);
  padding-top: 25px;
}
.sw-client-start li > span {
  color: var(--accent-ink);
  font-size: 0.7rem;
}
.sw-client-start li p {
  font-size: var(--type-small);
  margin-bottom: 25px;
}
@media (max-width: 1000px) {
  .sw-client-opening,
  .sw-client-agreement,
  .sw-client-start {
    gap: 40px;
  }
  .sw-client-window {
    padding-inline: 20px;
  }
}
@media (max-width: 760px) {
  .sw-client-opening,
  .sw-client-exchange,
  .sw-client-agreement,
  .sw-client-start {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-client-opening {
    padding-block: 45px;
  }
  .sw-client-window {
    width: calc(100% - 20px);
    margin-right: 20px;
    box-shadow: 12px 15px 0 var(--surface-half);
    padding: 22px 18px;
  }
  .sw-client-transfer {
    transform: rotate(90deg);
    padding: 15px;
  }
  .sw-client-reply,
  .sw-client-dossier {
    padding: 25px;
  }
}
/* Review: a finding, its source and the conversation that resolves it. */
.sw-review-opening {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
  align-items: center;
  padding-block: 80px;
}
.sw-review-opening h1 em {
  color: var(--accent);
}
.sw-review-finding {
  padding: 30px;
  background: var(--surface);
  color: var(--ink);
  border-left: 5px solid var(--accent);
  transform: rotate(-2deg);
}
.sw-review-finding-title {
  margin: 30px 0;
}
.sw-review-finding-title > span {
  font-size: 0.6rem;
  color: var(--accent-ink);
}
.sw-review-finding-title > strong {
  display: block;
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.25;
  margin-top: 18px;
}
.sw-review-finding dl {
  margin: 0;
}
.sw-review-finding dl > div {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 20px;
  border-top: 1px solid var(--line);
  padding: 18px 0;
  font-size: var(--type-caption);
}
.sw-review-finding dt {
  color: var(--muted);
}
.sw-review-finding dd {
  margin: 0;
}
.sw-review-owner {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  background: var(--accent);
  padding: 18px;
  margin-top: 10px;
  font-size: 0.65rem;
  color: var(--on-accent);
}
.sw-review-owner strong {
  font-weight: 500;
  color: var(--accent-ink);
}
.sw-review-finding figcaption {
  font-size: 0.6rem;
  margin-top: 22px;
}
.sw-review-desk {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  border: 1px solid var(--line-strong);
}
.sw-review-source {
  padding: 35px;
  background: var(--surface);
}
.sw-review-source > span {
  font-size: 0.65rem;
  color: var(--accent-ink);
}
.sw-review-source h3 {
  font-size: var(--type-4);
  line-height: var(--lh-4);
  letter-spacing: var(--ls-4);
  font-weight: 500;
  margin: 30px 0 20px;
}
.sw-review-source p {
  font-size: var(--type-small);
}
.sw-review-source > div {
  display: flex;
  flex-direction: column;
  gap: 12px;
  border-block: 1px solid var(--line);
  padding: 22px 0;
  margin-block: 25px;
}
.sw-review-source strong {
  font-size: var(--type-small);
  font-weight: 500;
}
.sw-review-source > div > span,
.sw-review-source small {
  font-size: 0.7rem;
  color: var(--muted);
}
.sw-review-comments {
  border-left: 1px solid var(--line-strong);
  background: var(--accent);
  color: var(--on-accent);
}
.sw-review-comments details {
  padding: 25px 30px;
  border-bottom: 1px solid var(--line);
}
.sw-review-comments details:last-child {
  border: 0;
}
.sw-review-comments summary {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  font-size: var(--type-small);
  cursor: pointer;
  list-style: none;
}
.sw-review-comments summary > span {
  grid-column: 1/-1;
  color: var(--accent-ink);
  font-size: 0.6rem;
}
.sw-review-comments summary b {
  font-weight: 500;
}
.sw-review-comments p {
  margin: 20px 0 0;
  font-size: var(--type-caption);
}
.sw-review-scope,
.sw-review-start {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.sw-review-audit {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid var(--line-strong);
  margin-block: 30px;
}
.sw-review-audit > * {
  padding: 20px;
  font-size: var(--type-small);
  border-bottom: 1px solid var(--line);
  font-weight: 500;
}
.sw-review-audit > *:nth-child(even) {
  border-left: 1px solid var(--line);
}
.sw-review-audit strong {
  background: var(--surface);
}
.sw-review-start ol {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sw-review-start li {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 12px 20px;
  padding: 25px 0;
  border-top: 1px solid var(--line-strong);
}
.sw-review-start li > span {
  grid-row: span 2;
  color: var(--accent-ink);
  font-size: 0.7rem;
}
.sw-review-start strong {
  font-size: var(--type-body);
  font-weight: 500;
}
.sw-review-start small {
  font-size: var(--type-caption);
  color: var(--muted);
}
@media (max-width: 1000px) {
  .sw-review-opening,
  .sw-review-scope,
  .sw-review-start {
    gap: 40px;
  }
}
@media (max-width: 760px) {
  .sw-review-opening,
  .sw-review-desk,
  .sw-review-scope,
  .sw-review-start {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-review-opening {
    padding-block: 45px;
  }
  .sw-review-finding {
    padding: 24px;
    transform: none;
  }
  .sw-review-source {
    padding: 25px;
  }
  .sw-review-comments {
    border-left: 0;
    border-top: 1px solid var(--line-strong);
  }
  .sw-review-comments details {
    padding: 25px;
  }
  .sw-review-owner {
    flex-wrap: wrap;
  }
}
/* Shared tariff and availability information follows the individual page story. */
.software-story .sw-module-offer .px-module-price {
  border: 0;
  padding-block: 70px;
}
.software-story .sw-module-offer .px-link {
  color: var(--on-dark);
}
.software-story .sw-module-offer .px-price-ticket {
  background: transparent;
  border: 0;
  border-left: 1px solid var(--line-on-dark);
  box-shadow: none;
  padding: 10px 0 10px 45px;
}
.software-story .sw-module-offer .px-price-ticket > strong {
  font-weight: 500;
  font-size: clamp(2.4rem, 4.2vw, 4rem);
}
.software-story
  .sw-module-offer
  .px-price-ticket
  :is(p, small, span:not(.brand-kicker)) {
  color: var(--muted-on-dark);
}
.software-story .sw-module-offer .px-price-ticket a {
  color: var(--on-dark);
}
.software-story .product-availability {
  margin-top: 35px;
  background: transparent;
  border-left: 2px solid var(--accent);
  padding-block: 8px;
}
.software-story .product-availability p {
  font-size: var(--type-caption);
  margin-bottom: 0;
}
.software-story .product-availability > strong {
  font-size: var(--type-caption);
}
.software-story .px-faq {
  padding-block: 65px;
}
.software-story .px-connections {
  padding-block: 15px 55px;
}
@media (max-width: 760px) {
  .software-story .sw-module-offer .px-module-price {
    padding-block: 50px;
  }
  .software-story .sw-module-offer .px-price-ticket {
    border-left: 0;
    border-top: 1px solid var(--line-on-dark);
    padding: 30px 0 0;
  }
  .software-story .px-faq {
    padding-block: 45px;
  }
}

/* A readable opening and a dossier window, without simulated phone hardware. */
.sw-portaal .sw-client-opening h1 {
  font-size: var(--type-1);
  letter-spacing: var(--ls-1);
  font-weight: 500;
  line-height: var(--lh-1);
}
.sw-client-window .sw-paper-top {
  border-bottom: 1px solid var(--line);
  padding-bottom: 20px;
}
.sw-client-window .sw-client-task {
  border-radius: var(--radius-small);
}
@media (max-width: 760px), (prefers-reduced-motion: reduce) {
  .sw-client-window { transform: none; }
}

/* Foregrounds belong to the surface: orange uses white, paper keeps dark ink. */
.software-story :is(.sw-ib-hero, .sw-suppletie-hero, .sw-uitstel-hero, .sw-owr-hero, .sw-dividend-hero) :is(h1 em, .sw-lead),
.sw-ib-shared > span,
.software-story .sw-ib-missing :is(span, p, small),
.sw-vpb-result small,
.sw-vpb-evidence > div:last-child :is(span, p),
.sw-suppletie-hero :is(.sw-suppletie-change, .sw-suppletie-versions figcaption),
.sw-uitstel-board section:nth-child(2) article :is(p, small),
.sw-authority-register :is(.sw-paper-top span, small, figcaption),
.sw-yearwork-file :is(svg, small),
.sw-deposit-route > div:nth-of-type(2) :is(span, svg),
.sw-owr-files > div:nth-child(2) :is(strong, small),
.sw-oss-quarter span,
.sw-oss-sort > div:nth-child(2) :is(span, p),
.sw-oss-export svg,
.sw-client-task :is(svg, span),
.sw-client-reply > p,
.sw-review-owner > strong,
.sw-review-comments :is(summary > span, details > p) {
  color: var(--on-accent);
}
.sw-ib-folder,
.sw-suppletie-versions > div,
.sw-uitstel-board article,
.sw-owr-archive,
.sw-dividend-decision,
.sw-client-reply > div,
.sw-icp-columns,
.sw-review-version strong {
  color: var(--ink);
}
.sw-uitstel-board section:nth-child(2) article {
  color: var(--on-accent);
}
.sw-deposit-route > div:nth-of-type(2) p,
.sw-owr-files > div:nth-child(2) > span { color: var(--on-accent); }
.sw-review-audit strong { background: var(--accent); color: var(--on-accent); }
/* Keep the primary action distinct from an orange hero. */
.software-story :is(.sw-ib-hero, .sw-suppletie-hero, .sw-uitstel-hero, .sw-owr-hero, .sw-dividend-hero) .button {
  background: var(--surface);
  color: var(--ink);
  border-color: var(--surface);
}
.software-story h1 { text-wrap: balance; }
