/* ============================================================
   RENOVATIEPLICHT.BE — EDITORIAL / TECHNICAL-DOCUMENT LANDING
   ============================================================ */

:root {
  --paper: #ffffff;
  --paper-2: #f2f2f2;       /* slightly darker, for sectional contrast */
  --paper-3: #ededed;
  --ink: #222222;
  --ink-2: #444444;
  --ink-3: #888888;
  --rule: #222222;
  --red: #8e2420;
  --red-ink: #6a1a17;
  --ochre: #888888;

  --serif: "Georgia", "Times New Roman", serif;
  --sans:  "Inter Tight", -apple-system, system-ui, sans-serif;
  --mono:  "JetBrains Mono", ui-monospace, Menlo, monospace;

  --page-max: 1320px;
  --gutter: 40px;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

/* Prevent negative-positioned children (marginalia, stamp) from widening the page */
html { overflow-x: clip; background: var(--paper); }

/* --- subtle paper grain (SVG noise overlay) --- */
body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ==============  TYPOGRAPHY  ============== */

h1, h2, h3, h4 { font-family: var(--serif); font-weight: 400; margin: 0; letter-spacing: -0.01em; }
p { margin: 0; }
a { color: inherit; text-decoration: none; }

.mono {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 400;
}
.mono-sm { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); }

.rule { height: 1px; background: var(--rule); border: 0; margin: 0; }
.rule-soft { height: 1px; background: rgba(0,0,0,0.25); border: 0; margin: 0; }

.wrap {
  max-width: var(--page-max);
  margin: 0 auto;
  padding: 0 var(--gutter);
  position: relative;
}

/* ==============  TOP STRIP  ============== */


/* ==============  HEADER  ============== */

header.site {
  padding: 28px 0 22px;
  position: relative;
  z-index: 2;
}
header.site .wrap { display: flex; align-items: center; justify-content: space-between; }
.logo {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -0.02em;
  display: inline-flex; align-items: baseline; gap: 8px;
}
.logo .mark {
  width: 10px; height: 10px;
  background: var(--red);
  display: inline-block;
  margin-right: 4px;
  transform: translateY(-1px);
}
.logo .tld { font-weight: 300; color: var(--ink-3); }

nav.main { display: flex; align-items: center; gap: 28px; font-size: 14.5px; }
nav.main a { color: var(--ink-2); }
nav.main a:hover { color: var(--red); }
nav.main a.btn { color: var(--paper); }
nav.main a.btn:hover { color: var(--paper); }
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 11px 18px;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.005em;
  border: 0;
  cursor: pointer;
  transition: background 0.15s ease;
}
.btn:hover { background: var(--red); }
.btn .arrow { font-family: var(--mono); font-size: 13px; opacity: 0.8; }
.btn-sm { padding: 8px 14px; font-size: 13px; }

/* ==============  FLOATING CTA  ============== */

.fab-cta {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 100;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 24px;
  background: var(--red);
  color: var(--paper);
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.01em;
  border: 0;
  border-radius: 40px;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(0,0,0,0.25);
  transition: opacity 0.25s ease, transform 0.25s ease;
  text-decoration: none;
}
.fab-cta:hover { background: var(--ink); }
.fab-cta .arrow { font-family: var(--mono); font-size: 13px; }
.fab-cta.hidden {
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
}

/* ==============  HERO  ============== */

section.hero {
  padding: 40px 0 90px;
  position: relative;
  z-index: 2;
}
.hero .wrap {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 72px;
  align-items: start;
}

.hero-left { position: relative; padding-top: 14px; }
.hero-label {
  color: var(--ink-3);
  margin-bottom: 28px;
  display: flex; align-items: center; gap: 12px;
}
.hero-label .tick { width: 22px; height: 1px; background: var(--ink-3); display: inline-block; }

h1.headline {
  font-family: var(--serif);
  font-size: clamp(44px, 6.2vw, 86px);
  line-height: 0.98;
  letter-spacing: -0.025em;
  font-weight: 400;
  color: var(--ink);
  margin: 0 0 32px;
  max-width: 13ch;
}
h1.headline .tick-red {
  font-style: italic;
  color: var(--red);
  font-weight: 400;
  display: block;
  letter-spacing: -0.028em;
}

.hero-sub {
  font-size: 19px;
  line-height: 1.5;
  color: var(--ink-2);
  max-width: 44ch;
  margin-bottom: 38px;
  font-weight: 400;
}

.hero-ctas {
  display: flex; align-items: center; gap: 28px;
  margin-bottom: 22px;
}
.btn-primary {
  padding: 15px 22px;
  font-size: 15px;
}
.btn-primary .price {
  font-family: var(--mono);
  font-size: 13px;
  opacity: 0.75;
  padding-left: 10px;
  margin-left: 6px;
  border-left: 1px solid rgba(255,255,255,0.25);
}
.text-link {
  font-size: 14.5px;
  color: var(--ink);
  border-bottom: 1px solid var(--ink);
  padding-bottom: 2px;
}
.text-link:hover { color: var(--red); border-color: var(--red); }

.hero-legal {
  color: var(--ink-3);
  margin-top: 6px;
  font-size: 10.5px;
  letter-spacing: 0.14em;
}
.hero-legal span { margin: 0 10px; opacity: 0.45; }

/* marginalia on hero-left — hidden to prevent overflow */
.marginalia { display: none; }

/* ============  HERO REPORT FRAGMENT  ============ */

.hero-right { position: relative; padding-top: 30px; }

.dossier {
  position: relative;
  background: #ffffff;
  transform: rotate(-1.5deg);
  padding: 34px 36px 38px;
  box-shadow:
    0 1px 0 rgba(0,0,0,0.04),
    0 2px 4px rgba(0,0,0,0.06),
    0 18px 40px -10px rgba(0,0,0,0.22),
    0 40px 60px -20px rgba(0,0,0,0.18);
  border: 1px solid rgba(0,0,0,0.08);
  z-index: 2;
  max-width: 440px;
  margin-left: auto;
}
/* paper edge suggestion */
.dossier::before {
  content: "";
  position: absolute;
  right: -6px; top: 6px; bottom: -6px; left: 6px;
  background: #e8e8e8;
  z-index: -1;
  box-shadow: 0 2px 0 rgba(0,0,0,0.04);
}
.dossier::after {
  content: "";
  position: absolute;
  right: -12px; top: 12px; bottom: -12px; left: 12px;
  background: #dedede;
  z-index: -2;
}

/* dossier header */
.dossier-head {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ink);
  margin-bottom: 22px;
}
.dossier-head .mark-sm {
  display: flex; align-items: center; gap: 7px;
  font-family: var(--serif);
  font-weight: 500;
  font-size: 13px;
}
.dossier-head .mark-sm i {
  width: 7px; height: 7px; background: var(--red); display: inline-block;
}
.dossier-head .meta {
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
  text-align: right;
  line-height: 1.5;
}

.dossier h3 {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 400;
  margin-bottom: 10px;
}

.dossier .deadline {
  font-family: var(--mono);
  font-size: 30px;
  letter-spacing: 0.02em;
  color: var(--ink);
  line-height: 1.05;
  font-weight: 500;
}
.dossier .countdown {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--red);
  letter-spacing: 0.08em;
  margin-top: 8px;
}
.dossier .countdown .bar {
  display: inline-block; width: 26px; height: 1px;
  background: var(--red); vertical-align: 3px; margin: 0 8px;
  opacity: 0.6;
}

.dossier-sep { margin: 24px 0 18px; }

.premies { display: flex; flex-direction: column; }
.premie-row {
  display: grid;
  grid-template-columns: 22px 1fr auto;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px dotted rgba(0,0,0,0.25);
  font-size: 13px;
  align-items: baseline;
}
.premie-row:last-child { border-bottom: 0; }
.premie-row .ix {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--ink-3);
  letter-spacing: 0.1em;
}
.premie-row .name { font-family: var(--serif); font-size: 15px; font-weight: 400; }
.premie-row .name small { display: block; font-family: var(--mono); font-size: 9.5px; color: var(--ink-3); letter-spacing: 0.12em; text-transform: uppercase; margin-top: 2px; font-weight: 400; }
.premie-row .amt {
  font-family: var(--mono);
  font-weight: 500;
  font-size: 14px;
}
.premie-row .amt b { color: var(--ink); font-weight: 500; }

.dossier-foot {
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid var(--ink);
}
.dossier-foot .signature {
  font-family: var(--serif);
  font-size: 11px;
  color: var(--ink-3);
  font-style: italic;
}
.dossier-foot .page {
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: 0.14em;
  color: var(--ink-3);
  text-transform: uppercase;
}

/* CONCEPT stamp */
.stamp {
  position: absolute;
  top: 44px; right: -26px;
  transform: rotate(8deg);
  font-family: var(--serif);
  font-weight: 600;
  font-size: 30px;
  letter-spacing: 0.18em;
  color: var(--red);
  padding: 8px 16px 6px;
  border: 3px double var(--red);
  opacity: 0.78;
  background: transparent;
  pointer-events: none;
  mix-blend-mode: multiply;
  /* ink unevenness */
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='80'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 -1.5 1.8'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
          mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='80'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 -1.5 1.8'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* tape on the corner, for paper feel */
.tape {
  position: absolute;
  width: 86px; height: 20px;
  background: rgba(0,0,0,0.06);
  top: -10px; left: 30%;
  transform: rotate(-4deg);
  box-shadow: 0 2px 3px rgba(0,0,0,0.05);
  z-index: 3;
}

/* hero right marginalia — hidden to prevent overflow */
.hero-right .mg { display: none; }

/* ==============  SECTIONS — COMMON  ============== */

section { position: relative; z-index: 2; }
.section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 46px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ink);
}
.section-head .title {
  font-family: var(--serif);
  font-size: 32px;
  letter-spacing: -0.02em;
  font-weight: 400;
  font-variation-settings: "opsz" 36;
}
.section-head .meta { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); }

/* ==============  HOE HET WERKT  ============== */

section.howto { padding: 80px 0; border-top: 1px solid var(--ink); }
.steps {
  display: grid; grid-template-columns: repeat(3, 1fr);
}
.step {
  padding: 38px 32px 10px 0;
  border-right: 1px solid rgba(0,0,0,0.35);
  position: relative;
}
.step:last-child { border-right: 0; }
.step + .step { padding-left: 32px; }
.step .num {
  font-family: var(--mono);
  font-size: 64px;
  font-weight: 300;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1;
  margin-bottom: 22px;
  display: block;
}
.step .num sup { font-size: 14px; color: var(--red); vertical-align: super; margin-left: 6px; letter-spacing: 0.12em; }
.step h3 {
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 400;
  margin-bottom: 10px;
  letter-spacing: -0.015em;
}
.step p { color: var(--ink-2); max-width: 34ch; font-size: 15.5px; }

/* ==============  CHECK FORM  ============== */

section.check {
  padding: 80px 0 100px;
  background: var(--paper-2);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}

.form-intro {
  max-width: 540px;
  margin-bottom: 48px;
}
.form-intro p {
  color: var(--ink-2);
  font-size: 16px;
  margin-top: 12px;
}

.check-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 52px 64px;
  max-width: 960px;
}

.field-group h4 {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 500;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(0,0,0,0.35);
}

.field {
  margin-bottom: 18px;
}
.field label {
  display: block;
  font-family: var(--sans);
  font-size: 13.5px;
  font-weight: 500;
  color: var(--ink-2);
  margin-bottom: 6px;
}
.field input,
.field select {
  width: 100%;
  padding: 11px 14px;
  font-family: var(--sans);
  font-size: 15px;
  color: var(--ink);
  background: #f8f8f8;
  border: 1px solid rgba(0,0,0,0.25);
  outline: none;
  transition: border-color 0.15s ease;
}
.field input:focus,
.field select:focus {
  border-color: var(--ink);
}
.field input::placeholder {
  color: var(--ink-3);
  font-size: 13.5px;
}
.field .hint {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--ink-3);
  letter-spacing: 0.1em;
  margin-top: 4px;
}

.field-row {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 12px;
}
.field-row-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
}

.toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 0;
  border-bottom: 1px solid rgba(0,0,0,0.15);
  font-size: 14px;
  color: var(--ink-2);
}
.toggle-row input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--red);
}

.form-actions {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--ink);
}
.form-actions .btn {
  padding: 15px 22px;
  font-size: 15px;
}
.btn-disabled {
  opacity: 0.45;
  pointer-events: none;
}
.form-actions .or {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.preview-result {
  grid-column: 1 / -1;
  display: none;
  padding: 22px 26px;
  background: #f8f8f8;
  border: 1px solid var(--ink);
  margin-top: 6px;
}
.preview-result.visible { display: block; }
.preview-result .pr-label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 8px;
}
.preview-result .pr-deadline {
  font-family: var(--mono);
  font-size: 26px;
  font-weight: 500;
  color: var(--ink);
}
.preview-result .pr-cat {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--red);
  margin-top: 6px;
}
.preview-result.error .pr-deadline { color: var(--red); }
.preview-result.error .pr-cat { color: var(--ink-2); }

.field input:invalid:not(:placeholder-shown),
.field select:invalid {
  border-color: var(--red);
}
.field .field-error {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--red);
  letter-spacing: 0.1em;
  margin-top: 4px;
  display: none;
}
.field .field-error.visible { display: block; }

.form-error {
  grid-column: 1 / -1;
  padding: 14px 18px;
  background: rgba(142,36,32,0.06);
  border-left: 3px solid var(--red);
  font-family: var(--sans);
  font-size: 14px;
  color: var(--red-ink);
  display: none;
}
.form-error.visible { display: block; }

@media (max-width: 820px) {
  .check-form { grid-template-columns: 1fr; gap: 36px; }
  .form-actions { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* ==============  WAT JE KRIJGT — REPORT SPREAD  ============== */

section.sample {
  padding: 90px 0 110px;
  background: var(--paper-2);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.sample-wrap { position: relative; }
.sample .section-head { border-color: var(--ink); }

.spread {
  margin: 30px auto 0;
  max-width: 1120px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: #ffffff;
  box-shadow:
    0 1px 0 rgba(0,0,0,0.04),
    0 30px 60px -20px rgba(0,0,0,0.28),
    0 60px 80px -30px rgba(0,0,0,0.18);
  border: 1px solid rgba(0,0,0,0.1);
  position: relative;
}
.spread::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: 50%; width: 1px;
  background: linear-gradient(to right, rgba(0,0,0,0.12), rgba(0,0,0,0.05), rgba(0,0,0,0.12));
  transform: translateX(-0.5px);
}
.page-pdf { padding: 46px 48px 52px; position: relative; }
.page-pdf .pg-head {
  display: flex; justify-content: space-between; align-items: baseline;
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-3); padding-bottom: 14px; border-bottom: 1px solid var(--ink);
  margin-bottom: 28px;
}
.page-pdf .pg-head .l i { display: inline-block; width: 6px; height: 6px; background: var(--red); margin-right: 8px; transform: translateY(-1px); }
.page-pdf .pg-foot {
  position: absolute; left: 48px; right: 48px; bottom: 18px;
  display: flex; justify-content: space-between;
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3);
}

/* LEFT PDF PAGE — TOC + DEADLINE */
.pdf-section-label { font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 14px; }
.pdf-h { font-family: var(--serif); font-size: 36px; font-weight: 400; letter-spacing: -0.02em; line-height: 1; margin-bottom: 24px; }
.pdf-h em { font-style: italic; color: var(--red); font-weight: 400; }

.toc { list-style: none; padding: 0; margin: 0 0 34px; }
.toc li {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items: baseline;
  font-size: 14px;
  padding: 7px 0;
  border-bottom: 1px solid rgba(0,0,0,0.18);
}
.toc li .n { font-family: var(--mono); font-size: 10.5px; color: var(--ink-3); letter-spacing: 0.1em; }
.toc li .t { font-family: var(--serif); font-size: 16px; }
.toc li .p { font-family: var(--mono); font-size: 11px; color: var(--ink-3); }
.toc li.active .t { color: var(--red); }
.toc li.active .n { color: var(--red); }

.deadline-block {
  margin-top: 18px;
  border: 1px solid var(--ink);
  padding: 22px 22px 20px;
  background: #f8f8f8;
  position: relative;
}
.deadline-block .k {
  font-family: var(--mono);
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--ink-3); margin-bottom: 10px;
}
.deadline-block .d {
  font-family: var(--mono);
  font-size: 28px; font-weight: 500; letter-spacing: 0.02em;
  line-height: 1;
}
.deadline-block .sub {
  margin-top: 10px;
  font-family: var(--mono); font-size: 11px; color: var(--red);
  letter-spacing: 0.08em;
}
.deadline-block .corner {
  position: absolute; top: 8px; right: 10px;
  font-family: var(--mono); font-size: 9px; color: var(--ink-3); letter-spacing: 0.14em;
}

/* RIGHT PDF PAGE — PREMIES TABLE + TIMELINE */
.premie-table { width: 100%; border-collapse: collapse; margin-top: 4px; }
.premie-table thead th {
  text-align: left;
  font-family: var(--mono);
  font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-3); font-weight: 400;
  padding: 0 0 8px;
  border-bottom: 1px solid var(--ink);
}
.premie-table thead th.r { text-align: right; }
.premie-table tbody td {
  padding: 11px 0;
  border-bottom: 1px solid rgba(0,0,0,0.18);
  font-size: 14px;
  vertical-align: baseline;
}
.premie-table tbody td.n { font-family: var(--mono); font-size: 10px; color: var(--ink-3); letter-spacing: 0.1em; width: 26px; }
.premie-table tbody td.t { font-family: var(--serif); font-size: 15.5px; }
.premie-table tbody td.t small { display: block; font-family: var(--mono); font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-3); margin-top: 2px; }
.premie-table tbody td.d { font-family: var(--mono); font-size: 10.5px; color: var(--ink-2); letter-spacing: 0.08em; }
.premie-table tbody td.a { font-family: var(--mono); font-weight: 500; font-size: 14px; text-align: right; white-space: nowrap; }
.premie-table tfoot td {
  padding: 13px 0 0;
  border-top: 1px solid var(--ink);
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase;
}
.premie-table tfoot td.a { font-size: 15px; color: var(--red); white-space: nowrap; }

.timeline {
  margin-top: 34px;
  border-top: 1px solid var(--ink);
  padding-top: 24px;
}
.timeline h5 { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); font-weight: 400; margin-bottom: 18px; }
.tl-track {
  position: relative; height: 60px;
}
.tl-line {
  position: absolute; left: 0; right: 0; top: 26px; height: 1px; background: var(--ink);
}
.tl-dot {
  position: absolute; top: 22px;
  width: 9px; height: 9px; background: var(--paper);
  border: 1px solid var(--ink);
  transform: translate(-50%, 0);
}
.tl-dot.active { background: var(--red); border-color: var(--red); }
.tl-lbl {
  position: absolute;
  font-family: var(--mono);
  font-size: 9.5px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ink-3);
  transform: translateX(-50%);
}
.tl-lbl.top { top: 0; }
.tl-lbl.bot { bottom: 0; }
.tl-lbl.active { color: var(--red); }

/* ==============  DE 2026-REGELS  ============== */

section.rules { padding: 100px 0; }
.rules .wrap { display: grid; grid-template-columns: 200px 1fr; gap: 40px; }
.rules .mg {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-3); line-height: 1.7;
  padding-top: 14px;
}
.rules .mg .num { color: var(--red); display: block; margin-bottom: 6px; }
.rules .mg hr { border: 0; border-top: 1px solid rgba(0,0,0,0.35); margin: 14px 0; }

.rules-article h2 {
  font-family: var(--serif);
  font-size: clamp(36px, 4.2vw, 56px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  margin-bottom: 40px;
  font-weight: 400;
  max-width: 14ch;
}
.rules-article h2 em { font-style: italic; color: var(--red); }

.cols {
  column-count: 2;
  column-gap: 48px;
  column-rule: 1px solid rgba(0,0,0,0.2);
  font-family: var(--serif);
  font-size: 17.5px;
  line-height: 1.55;
  color: var(--ink);
  font-weight: 400;
  max-width: 920px;
  text-align: justify;
  hyphens: auto;
}
.cols p { margin: 0 0 14px; }
.cols p:first-child::first-letter {
  font-family: var(--serif);
  font-weight: 500;
  font-size: 74px;
  float: left;
  line-height: 0.84;
  padding: 6px 10px 0 0;
  color: var(--ink);
}
.pullquote {
  break-inside: avoid;
  color: var(--red);
  font-family: var(--serif);
  font-size: 22px;
  font-style: italic;
  line-height: 1.25;
  letter-spacing: -0.01em;
  padding: 14px 0 14px 18px;
  border-left: 2px solid var(--red);
  margin: 14px 0;
}
.cols .mono-tag {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ochre);
  display: block;
  margin-bottom: 8px;
  font-weight: 500;
}

/* ==============  PRIJS  ============== */

section.price {
  padding: 100px 0 110px;
  background: var(--paper-2);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  text-align: center;
}
.price .mg {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-3); margin-bottom: 24px;
}
.price h2 {
  font-family: var(--serif);
  font-size: clamp(40px, 5vw, 64px);
  letter-spacing: -0.025em;
  font-weight: 400;
  line-height: 1;
  margin-bottom: 50px;
}
.price h2 em { font-style: italic; color: var(--red); }
.price-card {
  max-width: 560px;
  margin: 0 auto;
  text-align: left;
}
.price-headline {
  display: flex; align-items: baseline; justify-content: center;
  gap: 18px; margin-bottom: 6px;
}
.price-headline .amt {
  font-family: var(--mono);
  font-weight: 400;
  font-size: 92px;
  letter-spacing: -0.02em;
  line-height: 1;
}
.price-headline .once {
  font-family: var(--mono);
  font-size: 14px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-3);
}
.price-sub { text-align: center; font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 40px; }

.incl { list-style: none; padding: 0; margin: 0 0 30px; border-top: 1px solid var(--ink); }
.incl li {
  display: grid; grid-template-columns: 30px 1fr auto;
  gap: 14px; align-items: baseline;
  padding: 14px 2px;
  border-bottom: 1px solid rgba(0,0,0,0.22);
  font-size: 15.5px;
}
.incl li .n { font-family: var(--mono); font-size: 10.5px; color: var(--ink-3); letter-spacing: 0.1em; }
.incl li .t { font-family: var(--serif); font-size: 17px; }
.incl li .m { font-family: var(--mono); font-size: 10.5px; color: var(--ink-3); letter-spacing: 0.12em; text-transform: uppercase; }

.price-cta { text-align: center; margin-top: 10px; }
.price-cta .btn { padding: 16px 28px; font-size: 15px; }

/* ==============  FAQ  ============== */

section.faq { padding: 100px 0; }
.faq .wrap { display: grid; grid-template-columns: 1fr 2fr; gap: 80px; align-items: start; }
.faq-side { position: sticky; top: 40px; }
.faq-side h2 {
  font-family: var(--serif);
  font-size: clamp(36px, 4vw, 52px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  font-weight: 400;
  margin-bottom: 18px;
}
.faq-side h2 em { font-style: italic; color: var(--red); }
.faq-side .mg { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 14px; }
.faq-side p { color: var(--ink-2); font-size: 15.5px; max-width: 36ch; }

.q-list { border-top: 1px solid var(--ink); }
details.q {
  border-bottom: 1px solid rgba(0,0,0,0.3);
  padding: 22px 0;
}
details.q > summary {
  list-style: none;
  display: grid;
  grid-template-columns: 34px 1fr 20px;
  gap: 14px;
  align-items: baseline;
  cursor: pointer;
}
details.q > summary::-webkit-details-marker { display: none; }
details.q .n {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  color: var(--ink-3);
}
details.q .t {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.25;
}
details.q .pm {
  font-family: var(--mono);
  font-size: 18px;
  color: var(--ink-3);
  justify-self: end;
  line-height: 0.7;
  transition: transform 0.2s ease;
}
details.q[open] .pm { transform: rotate(45deg); color: var(--red); }
details.q .a {
  margin-top: 16px;
  padding-left: 48px;
  font-family: var(--sans);
  font-size: 15.5px;
  line-height: 1.6;
  color: var(--ink-2);
  max-width: 60ch;
}
details.q .a em { color: var(--red); font-style: italic; font-family: var(--serif); font-size: 16px; }
details.q:hover .t { color: var(--red); }

/* ==============  FOOTER  ============== */

footer.site {
  padding: 60px 0 48px;
  border-top: 1px solid var(--ink);
  background: var(--paper);
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
}
footer.site .grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 42px;
}
footer.site h4 {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ink);
  margin-bottom: 14px;
}
footer.site ul { list-style: none; padding: 0; margin: 0; line-height: 1.9; }
footer.site a:hover { color: var(--red); }
footer.site .wordmark {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 500;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--ink);
  margin-bottom: 16px;
  display: flex; align-items: baseline; gap: 8px;
}
footer.site .wordmark i { width: 10px; height: 10px; background: var(--red); display: inline-block; transform: translateY(-1px); }
footer.site .wordmark .tld { font-weight: 300; color: var(--ink-3); }
footer.site .addr { text-transform: none; font-family: var(--sans); letter-spacing: 0; font-size: 13.5px; color: var(--ink-2); line-height: 1.6; max-width: 30ch; }
footer.site .addr b { color: var(--ink); font-weight: 500; }

.pay { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.pay .chip {
  display: inline-flex; align-items: center;
  padding: 7px 11px;
  border: 1px solid rgba(0,0,0,0.35);
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; color: var(--ink);
}

footer.site .bot {
  display: flex; justify-content: space-between; align-items: baseline;
  padding-top: 22px;
  border-top: 1px solid rgba(0,0,0,0.3);
  flex-wrap: wrap; gap: 14px;
}
footer.site .update b { color: var(--red); }

/* ==============  RESPONSIVE  ============== */

@media (max-width: 1100px) {
  .marginalia, .hero-right .mg { display: none; }
  .rules .wrap { grid-template-columns: 1fr; }
  .rules .mg { display: flex; gap: 20px; padding: 0; }
  .rules .mg hr { display: none; }
}

@media (max-width: 820px) {
  :root { --gutter: 22px; }
  nav.main a:not(.btn) { display: none; }
  header.site { padding: 20px 0 14px; }
  .logo { font-size: 16px; }
  footer.site .wordmark { font-size: 16px; }

  .field-row, .field-row-3 { grid-template-columns: 1fr; }
  .form-actions { flex-direction: column; align-items: stretch; }

  .hero { padding: 24px 0 60px; }
  .hero .wrap { grid-template-columns: 1fr; gap: 44px; }
  h1.headline { font-size: clamp(40px, 10vw, 56px); max-width: 100%; }
  .hero-sub { font-size: 17px; }
  .hero-ctas { flex-direction: column; align-items: flex-start; gap: 18px; }
  .hero-legal { letter-spacing: 0.1em; font-size: 10px; }

  .hero-right { padding-top: 10px; }
  .dossier { max-width: 100%; margin: 0 auto; transform: rotate(-1deg); padding: 26px 24px 30px; }
  .stamp { top: 30px; right: 6px; font-size: 22px; }
  .dossier::before, .dossier::after { display: none; }
  .hero-right { overflow: hidden; }

  .steps { grid-template-columns: 1fr; }
  .step { border-right: 0; border-bottom: 1px solid rgba(0,0,0,0.35); padding: 28px 0; }
  .step + .step { padding-left: 0; }
  .step:last-child { border-bottom: 0; }

  .spread { grid-template-columns: 1fr; }
  .spread::before { display: none; }
  .page-pdf { padding: 32px 24px 44px; }
  .page-pdf .pg-foot { left: 24px; right: 24px; }

  .premie-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .premie-table tbody td.t { word-break: break-word; }

  .timeline { overflow: hidden; }
  .tl-track { overflow: hidden; }
  .tl-lbl { white-space: nowrap; font-size: 8px; }

  .cols { column-count: 1; font-size: 15.5px; }
  .pullquote { font-size: 18px; }
  .rules-article h2 { max-width: none; font-size: clamp(28px, 7vw, 44px); }

  .rules .mg { display: none; }

  nav.main a.btn { display: none; }

  .price-headline { flex-direction: column; gap: 6px; }
  .price-headline .amt { font-size: 64px; }

  .faq .wrap { grid-template-columns: 1fr; gap: 30px; }
  .faq-side { position: static; }
  details.q > summary { grid-template-columns: 24px 1fr 20px; gap: 8px; }
  details.q .t { font-size: 18px; }
  details.q .a { padding-left: 0; font-size: 14.5px; }

  footer.site .grid { grid-template-columns: 1fr 1fr; }
  .section-head { flex-direction: column; align-items: flex-start; gap: 10px; }

  .wrap { overflow: hidden; }
}

@media (max-width: 480px) {
  .logo { font-size: 14px; }
  footer.site .wordmark { font-size: 14px; }
  h1.headline { font-size: 36px; }
  .hero-sub { font-size: 15px; }
  .section-head .title { font-size: 24px; }
  .step .num { font-size: 48px; }
  .pdf-h { font-size: 24px; }
  details.q .t { font-size: 16px; }
  .cols p:first-child::first-letter { font-size: 48px; }
  .price-headline .amt { font-size: 48px; }
  footer.site .grid { grid-template-columns: 1fr; }
}

/* print suggestion hint only */
