/* ==========================================================================
   Nexus Bridge — designsysteem
   Eén stylesheet voor de hele site. Geen externe requests (AVG-veilig).
   Huisstijl: rood #E21742, bijna-zwart #17121C, Montserrat.
   Fonts toevoegen? Zie /assets/fonts/LEESMIJ.txt — de site werkt ook zonder.
   ========================================================================== */

/* ---------- Montserrat (zelf gehost) ----------
   Staan de bestanden er nog niet, dan valt de site netjes terug op
   Helvetica / Arial. Niets breekt, het oogt alleen iets minder eigen. */
@font-face{
  font-family:"Montserrat"; font-style:normal; font-weight:400; font-display:swap;
  src:url("/assets/fonts/montserrat-400.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;
}
@font-face{
  font-family:"Montserrat"; font-style:normal; font-weight:500; font-display:swap;
  src:url("/assets/fonts/montserrat-500.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;
}
@font-face{
  font-family:"Montserrat"; font-style:normal; font-weight:600; font-display:swap;
  src:url("/assets/fonts/montserrat-600.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;
}
@font-face{
  font-family:"Montserrat"; font-style:normal; font-weight:700; font-display:swap;
  src:url("/assets/fonts/montserrat-700.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;
}

:root{
  color-scheme: light;

  /* Huisstijl */
  --ink:        #17121C;   /* het zwart uit het logo */
  --ink-2:      #39333F;
  --ink-3:      #524C59;
  --muted:      #67626F;
  --paper:      #FBFBFC;
  --paper-2:    #F3F2F5;
  --paper-3:    #EAE8EE;
  --line:       #E3E1E8;
  --line-2:     #CBC7D3;
  --accent:     #E21742;   /* het rood uit het logo */
  --accent-ink: #C4123A;   /* iets donkerder, voor kleine tekst en links */
  --accent-bg:  #FDECF0;
  --accent-lt:  #FF7A97;   /* rood dat leesbaar blijft op het zwart */
  --white:      #FFFFFF;

  /* Typografie */
  --sans: "Montserrat", "Helvetica Neue", Helvetica, Arial, "Segoe UI", system-ui, sans-serif;

  /* Ritme */
  --gut: 24px;
  --max: 1200px;
  --narrow: 760px;
  --radius: 4px;
  --head-h: 80px;
}

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

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
[id]{ scroll-margin-top:calc(var(--head-h) + 20px); }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation:none !important; transition:none !important; }
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16.5px;
  line-height:1.65;
  font-weight:400;
  letter-spacing:-0.002em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{ max-width:100%; display:block; }
hr{ border:0; border-top:1px solid var(--line); margin:0; }

/* ---------- Typografie ---------- */
h1,h2,h3,h4{ margin:0; font-weight:700; letter-spacing:-0.022em; line-height:1.14; color:var(--ink); }
h1{ font-size:clamp(2rem, 1.2rem + 3.3vw, 3.6rem); letter-spacing:-0.03em; line-height:1.08; }
h2{ font-size:clamp(1.6rem, 1.1rem + 2vw, 2.5rem); letter-spacing:-0.026em; }
h3{ font-size:clamp(1.08rem, 0.98rem + 0.45vw, 1.28rem); letter-spacing:-0.015em; line-height:1.3; }
h4{ font-size:0.98rem; font-weight:600; letter-spacing:-0.008em; }
p{ margin:0 0 1.05em; }
p:last-child{ margin-bottom:0; }
strong{ font-weight:600; color:var(--ink); }

a{ color:var(--ink); text-underline-offset:3px; text-decoration-thickness:1px; text-decoration-color:var(--line-2); }
a:hover{ text-decoration-color:var(--accent); color:var(--accent-ink); }

.lead{ font-size:clamp(1.04rem, 0.98rem + 0.4vw, 1.24rem); line-height:1.58; color:var(--ink-2); letter-spacing:-0.008em; font-weight:400; }
.muted{ color:var(--muted); }
.small{ font-size:0.9rem; line-height:1.58; }
.xsmall{ font-size:0.8rem; line-height:1.5; }

/* Micro-labels: Montserrat in kapitalen, ruim gespatieerd */
.label{
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:var(--muted);
  display:inline-block;
}
.label--accent{ color:var(--accent-ink); }
.label--light{ color:rgba(255,255,255,.66); }
.mono{ font-weight:600; font-variant-numeric:tabular-nums; letter-spacing:0.01em; }

/* ---------- Layout ---------- */
.wrap{ width:100%; max-width:var(--max); margin:0 auto; padding:0 var(--gut); }
.wrap--narrow{ max-width:var(--narrow); }
.section{ padding:clamp(56px, 4vw + 36px, 104px) 0; border-top:1px solid var(--line); }
.section--flush{ border-top:0; }
.section--paper2{ background:var(--paper-2); }
.section--deep{ background:var(--ink); color:#EDEBEF; border-top:0; }
.section--deep h2,.section--deep h3{ color:#FFFFFF; }
.section--deep a{ color:#FFFFFF; text-decoration-color:rgba(255,255,255,.4); }
.section--deep a:hover{ color:#FFFFFF; text-decoration-color:var(--accent-lt); }
.section--deep .muted{ color:rgba(255,255,255,.62); }

.sec-head{ display:grid; grid-template-columns:minmax(0,1fr); gap:14px; margin-bottom:clamp(30px,3vw,52px); }
.sec-head p{ max-width:62ch; }
@media (min-width:900px){
  .sec-head{ grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:48px; align-items:end; }
  .sec-head .sec-head__aside{ padding-bottom:6px; }
}

.stack > * + *{ margin-top:14px; }

/* ---------- Knoppen ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--sans); font-size:0.92rem; font-weight:600; letter-spacing:0.002em;
  padding:13px 22px; border:1.5px solid var(--accent); border-radius:var(--radius);
  background:var(--accent); color:#fff; text-decoration:none; cursor:pointer;
  transition:background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.btn:hover{ background:var(--ink); border-color:var(--ink); color:#fff; transform:translateY(-1px); }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line-2); }
.btn--ghost:hover{ background:transparent; color:var(--accent-ink); border-color:var(--accent); transform:translateY(-1px); }
.btn--dark{ background:var(--ink); border-color:var(--ink); color:#fff; }
.btn--dark:hover{ background:var(--accent); border-color:var(--accent); }
.btn--light{ background:#fff; color:var(--ink); border-color:#fff; }
.btn--light:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }
.btn--sm{ padding:9px 15px; font-size:0.82rem; }
.btn--block{ width:100%; }
.btn--lg{ padding:15px 28px; font-size:0.97rem; }
.btn-row{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; }

.arrow-link{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:600; font-size:0.92rem; text-decoration:none;
  border-bottom:1.5px solid var(--line-2); padding-bottom:2px;
}
.arrow-link:hover{ border-color:var(--accent); color:var(--accent-ink); }
.arrow-link::after{ content:"→"; transition:transform .15s ease; }
.arrow-link:hover::after{ transform:translateX(3px); }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(251,251,252,.93);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.site-header__inner{ display:flex; align-items:center; gap:18px; height:var(--head-h); }
.brand{ display:flex; align-items:center; margin-right:auto; text-decoration:none; }
.brand img{ height:36px; width:auto; }
@media (min-width:640px){ .brand img{ height:42px; } }

.nav{ display:none; align-items:center; gap:24px; }
.nav a{ font-size:0.88rem; font-weight:500; text-decoration:none; color:var(--ink-2); }
.nav a:hover{ color:var(--accent-ink); }
@media (min-width:1040px){ .nav{ display:flex; } }

.header-actions{ display:flex; align-items:center; gap:12px; }
.lang{
  font-size:0.7rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--muted); text-decoration:none;
  border:1.5px solid var(--line); border-radius:var(--radius); padding:6px 9px; line-height:1;
}
.lang:hover{ border-color:var(--ink); color:var(--ink); }
.header-actions .btn{ padding:9px 13px; font-size:0.8rem; }
.btn__long{ display:none; }
@media (min-width:430px){ .btn__long{ display:inline; } }
@media (min-width:640px){ .header-actions .btn{ padding:10px 16px; font-size:0.84rem; } }

/* ---------- Hero ---------- */
.hero{ padding:clamp(48px, 5vw + 26px, 100px) 0 clamp(44px,4vw,80px); }
.hero__grid{ display:grid; gap:clamp(34px,4vw,60px); }
@media (min-width:980px){
  .hero__grid{ grid-template-columns:minmax(0,1.32fr) minmax(0,1fr); align-items:start; }
}
.hero h1{ margin:16px 0 0; max-width:17ch; }
.hero__lead{ margin-top:22px; max-width:52ch; }
.hero .btn-row{ margin-top:30px; }
.hero__note{ margin-top:18px; }

.facts{ border:1px solid var(--line); background:var(--white); border-radius:var(--radius); overflow:hidden; }
.facts__head{
  padding:14px 20px; border-bottom:1px solid var(--line); background:var(--ink);
  display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.facts__head .label{ color:rgba(255,255,255,.72); }
.facts__item{ padding:17px 20px; border-bottom:1px solid var(--line); display:flex; gap:14px; }
.facts__item:last-child{ border-bottom:0; }
.facts__num{ font-weight:700; font-size:0.72rem; color:var(--accent); padding-top:5px; flex:0 0 22px; letter-spacing:0.04em; }
.facts__item h4{ margin-bottom:3px; }
.facts__item p{ margin:0; font-size:0.89rem; color:var(--muted); line-height:1.52; }

/* ---------- Strip ---------- */
.strip{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper-2); }
.strip__inner{ display:flex; flex-wrap:wrap; gap:10px 32px; padding:15px 0; align-items:center; }
.strip__item{ display:flex; align-items:center; gap:9px; font-size:0.84rem; color:var(--ink-2); font-weight:500; }
.strip__item::before{ content:""; width:6px; height:6px; background:var(--accent); flex:0 0 6px; border-radius:50%; }

/* ---------- Tabel (pijnpunten) ---------- */
.tbl{ border:1px solid var(--line); background:var(--white); border-radius:var(--radius); overflow:hidden; }
.tbl__row{ display:grid; border-bottom:1px solid var(--line); }
.tbl__row:last-child{ border-bottom:0; }
.tbl__row--head{ background:var(--ink); }
.tbl__row--head .tbl__cell{ padding-top:13px; padding-bottom:13px; }
.tbl__row--head .label{ color:rgba(255,255,255,.72); }
.tbl__row--head .tbl__cell--fix .label{ color:#fff; }
.tbl__cell{ padding:20px; }
.tbl__cell + .tbl__cell{ border-top:1px solid var(--line); }
@media (min-width:860px){
  .tbl__row{ grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); }
  .tbl__cell + .tbl__cell{ border-top:0; border-left:1px solid var(--line); }
  .tbl__row--head .tbl__cell + .tbl__cell{ border-left-color:rgba(255,255,255,.2); }
}
.tbl__cell h3{ font-size:1.01rem; margin-bottom:6px; display:flex; gap:10px; align-items:baseline; }
.tbl__cell p{ margin:0; font-size:0.91rem; color:var(--muted); }
.tbl__cell--fix{ background:var(--paper); }
.x-mark{ color:var(--muted); font-size:0.9rem; flex:0 0 auto; font-weight:700; }
.v-mark{ color:var(--accent); font-size:0.9rem; flex:0 0 auto; font-weight:700; }

/* ---------- Pijlers ---------- */
.pillars{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
@media (min-width:860px){ .pillars{ grid-template-columns:repeat(3,1fr); } }
.pillar{ background:var(--white); padding:clamp(24px,2.4vw,34px); }
.pillar__num{ font-weight:700; font-size:0.72rem; color:var(--accent); letter-spacing:0.12em; }
.pillar h3{ margin:14px 0 10px; }
.pillar p{ font-size:0.92rem; color:var(--muted); margin:0; }
.pillar__foot{ margin-top:16px; padding-top:14px; border-top:2px solid var(--accent); font-size:0.82rem; color:var(--ink-2); font-weight:600; }

/* ---------- Traject ---------- */
.phases{ border:1px solid var(--line); border-radius:var(--radius); background:var(--white); overflow:hidden; }
.phase{ display:grid; gap:6px 24px; padding:22px 20px; border-bottom:1px solid var(--line); }
.phase:last-child{ border-bottom:0; }
.phase:nth-child(even){ background:var(--paper); }
@media (min-width:820px){
  .phase{ grid-template-columns:140px minmax(0,1.5fr) minmax(0,1.2fr); align-items:start; padding:24px; }
}
.phase__id{ display:flex; align-items:baseline; gap:10px; }
.phase__n{ font-weight:700; font-size:0.9rem; color:var(--accent); font-variant-numeric:tabular-nums; }
.phase__time{ font-size:0.76rem; color:var(--muted); font-weight:500; }
.phase h3{ font-size:1.04rem; margin-bottom:5px; }
.phase p{ margin:0; font-size:0.91rem; color:var(--muted); }
.phase__out{ font-size:0.87rem; color:var(--ink-2); }
.phase__out strong{ display:block; font-size:0.66rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); margin-bottom:5px; font-weight:700; }

/* ---------- Modules ---------- */
.modules{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
@media (min-width:760px){ .modules{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1080px){ .modules{ grid-template-columns:repeat(3,1fr); } }
.module{ background:var(--white); padding:26px 24px; display:flex; flex-direction:column; }
.module--wide{ background:var(--paper-2); }
.module__tag{ font-size:0.66rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--accent-ink); }
.module h3{ margin:12px 0 8px; }
.module > p{ font-size:0.91rem; color:var(--muted); margin:0 0 18px; }
.module ul{ margin:0 0 20px; padding:0; list-style:none; font-size:0.88rem; }
.module ul li{ padding:7px 0 7px 18px; position:relative; border-top:1px solid var(--line); color:var(--ink-2); }
.module ul li:first-child{ border-top:0; }
.module ul li::before{ content:""; position:absolute; left:0; top:15px; width:7px; height:2px; background:var(--accent); }
.module__foot{ margin-top:auto; padding-top:16px; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:12px; }
.pips{ display:flex; gap:3px; }
.pip{
  width:19px; height:19px; display:grid; place-items:center;
  font-size:0.6rem; font-weight:700; color:var(--line-2);
  border:1px solid var(--line); border-radius:2px;
}
.pip--on{ color:#fff; background:var(--accent); border-color:var(--accent); }

/* ---------- Geldmodel (donkere band) ---------- */
.money{ display:grid; gap:1px; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.16); border-radius:var(--radius); overflow:hidden; }
@media (min-width:820px){ .money{ grid-template-columns:repeat(3,1fr); } }
.money__item{ background:var(--ink); padding:28px 24px; }
.money__num{ font-weight:700; font-size:0.72rem; color:var(--accent-lt); letter-spacing:0.12em; }
.money__item h3{ margin:14px 0 10px; font-size:1.06rem; }
.money__item p{ margin:0; font-size:0.91rem; color:rgba(255,255,255,.68); }

/* ---------- Uitsluitingen ---------- */
.nots{ display:grid; gap:14px; }
@media (min-width:780px){ .nots{ grid-template-columns:repeat(2,1fr); gap:14px 40px; } }
.not{ display:flex; gap:13px; padding-top:14px; border-top:1px solid var(--line); }
.not__mark{ color:var(--accent); font-size:0.9rem; padding-top:3px; font-weight:700; }
.not h4{ margin-bottom:3px; }
.not p{ margin:0; font-size:0.88rem; color:var(--muted); }

/* ---------- FAQ ---------- */
.faq{ border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{
  cursor:pointer; list-style:none; padding:20px 44px 20px 0; position:relative;
  font-weight:600; font-size:1rem; letter-spacing:-0.012em;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"+"; position:absolute; right:6px; top:17px;
  font-size:1.35rem; color:var(--accent); font-weight:400; line-height:1.2;
}
.faq details[open] summary::after{ content:"–"; }
.faq summary:hover{ color:var(--accent-ink); }
.faq__body{ padding:0 0 22px; max-width:68ch; }
.faq__body p{ font-size:0.93rem; color:var(--muted); }

/* ---------- Formulier ---------- */
.form-wrap{ display:grid; gap:clamp(30px,3vw,56px); }
@media (min-width:980px){
  .form-wrap{ grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:start; }
  .form-aside{ position:sticky; top:calc(var(--head-h) + 18px); }
}
.form-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:clamp(24px,2.6vw,38px); }

.field{ margin-bottom:20px; }
.field > label,.fieldset__legend{
  display:block; font-size:0.82rem; font-weight:600; margin-bottom:7px; color:var(--ink);
}
.field .hint{ display:block; font-weight:400; color:var(--muted); font-size:0.78rem; margin-top:2px; }
.req{ color:var(--accent); font-weight:600; }

input[type=text],input[type=email],input[type=tel],input[type=url],select,textarea{
  width:100%; font-family:var(--sans); font-size:0.93rem; color:var(--ink);
  background:var(--paper-2); border:1.5px solid var(--line-2); border-radius:var(--radius);
  padding:11px 13px; line-height:1.4; transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
  -webkit-appearance:none; appearance:none;
}
select{
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2367626F' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 13px center; padding-right:36px;
}
textarea{ min-height:112px; resize:vertical; }
input:focus,select:focus,textarea:focus{
  outline:none; border-color:var(--accent); background:var(--white);
  box-shadow:0 0 0 3px rgba(226,23,66,.14);
}
input:user-invalid,textarea:user-invalid,select:user-invalid{ border-color:var(--accent); }
::placeholder{ color:#726D7B; }

.field-row{ display:grid; gap:20px; }
@media (min-width:560px){ .field-row{ grid-template-columns:1fr 1fr; } }

fieldset{ border:0; margin:0 0 20px; padding:0; }
.choices{ display:grid; gap:8px; }
@media (min-width:560px){ .choices--2{ grid-template-columns:1fr 1fr; } }
.choice{
  display:flex; gap:10px; align-items:flex-start; padding:11px 13px;
  border:1.5px solid var(--line-2); border-radius:var(--radius); background:var(--paper-2);
  cursor:pointer; font-size:0.89rem; line-height:1.42; transition:border-color .12s ease, background .12s ease;
}
.choice:hover{ border-color:var(--ink-3); }
.choice input{ margin:3px 0 0; accent-color:var(--accent); flex:0 0 auto; }
.choice:has(input:checked){ border-color:var(--accent); background:var(--white); box-shadow:inset 0 0 0 1px var(--accent); }
.choice span{ display:block; }
.choice .choice__sub{ display:block; color:var(--muted); font-size:0.79rem; margin-top:2px; }

.consent{ display:flex; gap:10px; align-items:flex-start; font-size:0.83rem; color:var(--muted); line-height:1.5; }
.consent input{ margin:3px 0 0; accent-color:var(--accent); flex:0 0 auto; }

.hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

.form-status{ margin-top:16px; padding:13px 15px; border-radius:var(--radius); font-size:0.89rem; display:none; }
.form-status[data-state="error"]{ display:block; background:var(--accent-bg); border:1px solid #F3BCC9; color:var(--accent-ink); }
.form-status[data-state="busy"]{ display:block; background:var(--paper-2); border:1px solid var(--line); color:var(--muted); }

.form-aside .facts__item h4{ font-size:0.94rem; }

/* ---------- Bedankpagina ---------- */
.thanks{ padding:clamp(70px,8vw,140px) 0; }
.thanks__mark{ font-weight:700; color:var(--accent); font-size:0.74rem; letter-spacing:0.15em; text-transform:uppercase; }
.next-steps{ counter-reset:ns; margin:34px 0 0; padding:0; list-style:none; }
.next-steps li{ counter-increment:ns; position:relative; padding:16px 0 16px 42px; border-top:1px solid var(--line); }
.next-steps li::before{
  content:counter(ns,decimal-leading-zero); position:absolute; left:0; top:17px;
  font-size:0.76rem; color:var(--accent); font-weight:700; letter-spacing:0.04em;
}
.next-steps strong{ display:block; font-weight:600; }
.next-steps span{ font-size:0.9rem; color:var(--muted); }

/* ---------- Juridische pagina's ---------- */
.legal{ padding:clamp(44px,4vw,76px) 0 clamp(60px,6vw,110px); }
.legal__head{ padding-bottom:26px; border-bottom:2px solid var(--accent); margin-bottom:34px; }
.legal__body{ max-width:74ch; }
.legal__body h2{
  font-size:1.24rem; letter-spacing:-0.018em; margin:44px 0 12px;
  padding-top:18px; border-top:1px solid var(--line);
}
.legal__body h2:first-child{ margin-top:0; border-top:0; padding-top:0; }
.legal__body h3{ font-size:1rem; margin:26px 0 8px; }
.legal__body p,.legal__body li{ font-size:0.94rem; color:var(--ink-2); }
.legal__body ul,.legal__body ol{ margin:0 0 1.05em; padding-left:1.25em; }
.legal__body li{ margin-bottom:6px; }
.legal__body li::marker{ color:var(--accent); }
.legal__body table{ width:100%; border-collapse:collapse; margin:0 0 1.2em; font-size:0.88rem; }
.legal__body th,.legal__body td{ border:1px solid var(--line); padding:9px 11px; text-align:left; vertical-align:top; }
.legal__body th{ background:var(--paper-2); font-weight:600; }
.toc{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px; margin-bottom:34px; }
.toc ol{ margin:10px 0 0; padding-left:1.3em; font-size:0.88rem; columns:2; column-gap:30px; }
.toc li::marker{ color:var(--accent); font-weight:600; }
@media (max-width:640px){ .toc ol{ columns:1; } }
.toc li{ margin-bottom:5px; break-inside:avoid; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--ink); color:#D7D4DA; padding:clamp(48px,5vw,78px) 0 34px; }
.site-footer a{ color:#D7D4DA; text-decoration:none; }
.site-footer a:hover{ color:#fff; text-decoration:underline; text-decoration-color:var(--accent-lt); }
.footer__grid{ display:grid; gap:34px; }
@media (min-width:820px){ .footer__grid{ grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr)); gap:40px; } }
.footer__brand .brand img{ height:44px; }
.footer__brand p{ margin-top:18px; font-size:0.87rem; color:rgba(255,255,255,.58); max-width:36ch; }
.footer__col h4{ font-size:0.66rem; letter-spacing:0.15em; text-transform:uppercase; color:var(--accent-lt); font-weight:700; margin-bottom:14px; }
.footer__col ul{ list-style:none; margin:0; padding:0; font-size:0.88rem; }
.footer__col li{ margin-bottom:9px; }
.footer__bottom{
  margin-top:44px; padding-top:22px; border-top:1px solid rgba(255,255,255,.15);
  display:flex; flex-wrap:wrap; gap:8px 26px; justify-content:space-between;
  font-size:0.78rem; color:rgba(255,255,255,.55);
}

/* ---------- Diversen ---------- */
.skip{
  position:absolute; left:-9999px; top:0; background:var(--accent); color:#fff;
  padding:10px 16px; z-index:100; border-radius:0 0 var(--radius) 0; font-weight:600;
}
.skip:focus{ left:0; }
:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.nowrap{ white-space:nowrap; }

@media print{
  .site-header,.site-footer,.btn,.faq summary::after{ display:none !important; }
  body{ background:#fff; font-size:11pt; }
}
