/* ---------- legal pages (algemene voorwaarden / retourbeleid) ---------- */
.legal-wrap{ max-width:820px; margin:0 auto; }
.legal-card{ padding:clamp(26px,5vw,56px); }
.legal-meta{ color:var(--mute); font-size:.85rem; margin:0 0 28px; }
.legal-body > *{
  will-change:filter, opacity, transform;
  transition:filter .12s linear, opacity .12s linear, transform .12s linear;
}
.legal-body h2{
  font-family:var(--display); font-weight:700; font-size:1.25rem;
  letter-spacing:-.01em; margin:38px 0 12px; color:var(--text);
}
.legal-body h2:first-child{ margin-top:0; }
.legal-body p, .legal-body li{ color:var(--silver); font-size:1rem; line-height:1.75; }
.legal-body p{ margin:0 0 14px; }
.legal-body ul{ margin:0 0 14px; padding-left:1.2rem; }
.legal-body li{ margin-bottom:6px; }
.legal-body a{ color:var(--text); border-bottom:1px solid rgba(255,255,255,.3); }
.legal-spacer{ height:30vh; }
@media (prefers-reduced-motion:reduce){
  .legal-body > *{ filter:none !important; opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ---------- officiële voorwaarden: clausules, opsommingen, inhoudsopgave ---------- */
.legal-body .clause{ display:flex; gap:.7em; }
.legal-body .clause .n{ flex:0 0 1.9em; color:var(--mute); font-variant-numeric:tabular-nums; }
.legal-body .clause .t{ flex:1; }
.legal-body h2[id]{ scroll-margin-top:96px; }
.legal-body h3{
  font-family:var(--display); font-weight:600; font-size:1.02rem;
  margin:24px 0 10px; color:var(--text);
}
.legal-body ul.opsomming{ margin:0 0 14px 2.6em; }
.legal-body ul.toc{ list-style:none; padding:0; margin:0 0 6px; columns:2; column-gap:32px; }
.legal-body ul.toc li{ break-inside:avoid; margin-bottom:8px; line-height:1.45; }
.legal-body ul.toc a{ border-bottom:0; color:var(--silver); font-size:.95rem; }
.legal-body ul.toc a:hover{ color:var(--text); }
.legal-body li{
  will-change:filter, opacity, transform;
  transition:filter .12s linear, opacity .12s linear, transform .12s linear;
}
@media (max-width:680px){
  .legal-body ul.toc{ columns:1; }
  .legal-body ul.opsomming{ margin-left:1.6em; }
}
@media (prefers-reduced-motion:reduce){
  .legal-body li{ filter:none !important; opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ---------- contactformulier ---------- */
.contact-intro{ color:var(--silver); font-size:1rem; line-height:1.75; margin:0 0 28px; }
.contact-intro a{ color:var(--text); border-bottom:1px solid rgba(255,255,255,.3); }
.cf-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.cf-field{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.cf-field.full{ grid-column:1 / -1; }
.cf-field label{ font-size:.76rem; letter-spacing:.07em; text-transform:uppercase; color:var(--dim); }
.cf-field label em{ font-style:normal; text-transform:none; letter-spacing:0; color:var(--mute); margin-left:4px; }
.cf-field input, .cf-field select, .cf-field textarea{
  width:100%; background:var(--panel-2); border:1px solid rgba(255,255,255,.14); border-radius:10px;
  color:var(--text); padding:.85rem 1rem; font:inherit; font-size:1rem; line-height:1.4;
  transition:border-color .2s, box-shadow .2s;
}
.cf-field textarea{ min-height:170px; resize:vertical; }
.cf-field select{
  appearance:none; -webkit-appearance:none; padding-right:2.6rem; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239a9aa6' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .8rem center; background-size:18px;
}
.cf-field input:focus, .cf-field select:focus, .cf-field textarea:focus{
  outline:0; border-color:var(--g2); box-shadow:0 0 0 3px rgba(138,92,255,.2);
}
.cf-field input::placeholder, .cf-field textarea::placeholder{ color:var(--mute); }
.cf-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.cf-actions{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:24px; }
.cf-note{ color:var(--mute); font-size:.82rem; line-height:1.5; margin:0; flex:1; min-width:200px; }
.cf-note a{ color:var(--silver); border-bottom:1px solid rgba(255,255,255,.25); }
.cf-status{ min-height:1.3em; margin-top:16px; font-size:.92rem; }
.cf-status.err{ color:#ff6b8a; }
.cf-success{ text-align:center; padding:28px 0 12px; }
.cf-success h2{ font-family:var(--display); font-size:1.5rem; margin:0 0 10px; }
.cf-success p{ color:var(--silver); margin:0 0 20px; }
#cfSubmit:disabled{ opacity:.6; cursor:default; transform:none; box-shadow:none; }
@media (max-width:680px){
  .cf-grid{ grid-template-columns:1fr; }
}
