/* InFinIT Control - site. Huisstijl InFinIT Partners: navy #102037, blauw #1C3664, oranje #F26722.
   Alles lokaal: geen externe lettertypen, scripts of afbeeldingen. Geen inline style of script (CSP). */
@font-face { font-family: "Oswald"; font-weight: 600; font-style: normal; font-display: swap; src: url("fonts/oswald-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Roboto"; font-weight: 300; font-style: normal; font-display: swap; src: url("fonts/roboto-latin-300-normal.woff2") format("woff2"); }
@font-face { font-family: "Roboto"; font-weight: 400; font-style: normal; font-display: swap; src: url("fonts/roboto-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Roboto"; font-weight: 700; font-style: normal; font-display: swap; src: url("fonts/roboto-latin-700-normal.woff2") format("woff2"); }

:root {
  --navy: #102037;
  --navy-diep: #0c192b;
  --blauw: #1C3664;
  --oranje: #F26722;
  --wit: #FFFFFF;
  --licht: #D8E2EC;
  --gedempt: #9FB0C3;
  --grijs: #6B7A8D;
  --breedte: 1120px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--navy);
  color: var(--licht);
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-weight: 300;
  font-size: 18px;
  line-height: 1.6;
  overflow-x: hidden;
}
a { color: var(--wit); text-decoration-color: var(--oranje); text-underline-offset: 3px; }
a:hover, a:focus-visible { color: var(--oranje); }
a:focus-visible { outline: 2px solid var(--oranje); outline-offset: 3px; }
mark { background: #ffe66d; color: var(--navy); padding: 0 0.15em; border-radius: 2px; }

/* --- kop --- */
.kop {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 24px 16px;
  max-width: var(--breedte);
  width: 100%;
  margin: 0 auto;
}
.merk { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.merk img { height: 40px; width: auto; display: block; }
.merknaam {
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-weight: 600;
  font-size: 22px;
  letter-spacing: 0.03em;
  color: var(--wit);
  line-height: 1;
}
.menu { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.menu-link {
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-weight: 600;
  font-size: 15px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--wit);
  border-bottom: 2px solid transparent;
  padding-bottom: 2px;
  white-space: nowrap;
}
.menu-link:hover, .menu-link:focus-visible { color: var(--oranje); }
.menu-link[aria-current="page"] { border-bottom-color: var(--oranje); }
@media (max-width: 479px) {
  .menu { gap: 10px; }
  .menu-link { font-size: 13px; letter-spacing: 0.05em; }
  .taal { font-size: 13px; letter-spacing: 0.05em; }
}
.taal {
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gedempt);
}
.taal a { color: var(--gedempt); text-decoration: none; border-bottom: 2px solid transparent; padding-bottom: 2px; }
.taal a:hover, .taal a:focus-visible { color: var(--wit); border-bottom-color: var(--gedempt); }
.taal span[aria-current] { color: var(--wit); font-weight: 700; border-bottom: 2px solid var(--oranje); padding-bottom: 2px; }

/* --- hoofd --- */
main { flex: 1; width: 100%; }
.inhoud { max-width: 760px; }
.hero {
  max-width: var(--breedte);
  margin: 0 auto;
  padding: 40px 16px 64px;
}
.wenkbrauw {
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-weight: 600;
  color: var(--oranje);
  font-size: 16px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin: 0 0 18px;
}
h1 {
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-weight: 600;
  color: var(--wit);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-size: clamp(34px, 7.2vw, 64px);
  line-height: 1.06;
  margin: 0 0 28px;
  overflow-wrap: anywhere;
}
.merkzin { font-family: "Oswald", "Arial Narrow", sans-serif; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--gedempt); font-size: clamp(18px, 2.4vw, 24px); margin: 0 0 14px; }
.probleem { font-size: 18px; line-height: 1.6; color: var(--licht); max-width: 58ch; margin: 0 0 28px; }
.stappen { background: var(--navy-diep); border-top: 1px solid rgba(216, 226, 236, 0.12); }
.stap-lijst { list-style: none; margin: 0; padding: 0; counter-reset: stap; display: grid; grid-template-columns: 1fr; gap: 28px 40px; }
.stap-lijst li { counter-increment: stap; position: relative; padding-left: 56px; }
.stap-lijst li::before { content: counter(stap); position: absolute; left: 0; top: 0; font-family: "Oswald", "Arial Narrow", sans-serif; font-weight: 600; font-size: 40px; line-height: 1; color: var(--oranje); }
.stap-lijst h3 { font-family: "Oswald", "Arial Narrow", sans-serif; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; font-size: 24px; color: var(--wit); margin: 0 0 8px; line-height: 1.1; }
.stap-lijst p { margin: 0; color: var(--licht); font-size: 17px; line-height: 1.55; max-width: 44ch; }
.stap-kop { font-family: "Oswald", "Arial Narrow", sans-serif; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; font-size: 16px; color: var(--oranje); margin: 36px 0 14px; }
.stap-kop:first-of-type { margin-top: 0; }
.onderdeel-lijst.start-6 { counter-reset: onderdeel 5; }
.onderdeel-lijst.start-7 { counter-reset: onderdeel 6; }
.faq-lijst details { border-top: 1px solid rgba(216, 226, 236, 0.14); padding: 14px 0; }
.faq-lijst details:last-child { border-bottom: 1px solid rgba(216, 226, 236, 0.14); }
.faq-lijst summary { cursor: pointer; font-family: "Oswald", "Arial Narrow", sans-serif; font-weight: 600; font-size: 20px; letter-spacing: 0.02em; color: var(--wit); list-style: none; position: relative; padding-left: 28px; }
.faq-lijst summary::-webkit-details-marker { display: none; }
.faq-lijst summary::before { content: "+"; position: absolute; left: 0; top: -2px; color: var(--oranje); font-size: 24px; line-height: 1; }
.faq-lijst details[open] summary::before { content: "\2013"; }
.faq-lijst summary:hover, .faq-lijst summary:focus-visible { color: var(--oranje); outline: none; }
.faq-lijst p { margin: 10px 0 0 28px; max-width: 64ch; font-size: 16px; }
.faq-lijst strong { font-weight: 700; color: var(--wit); }
h1 mark { background: none; color: inherit; padding: 0; text-decoration: underline; text-decoration-color: #ffe66d; text-decoration-thickness: 0.08em; text-underline-offset: 0.06em; }
.zin {
  font-size: clamp(19px, 2.4vw, 23px);
  line-height: 1.55;
  color: var(--licht);
  margin: 0 0 24px;
  max-width: 44ch;
}
.contact {
  border-left: 3px solid var(--oranje);
  padding: 4px 0 4px 18px;
  font-size: 17px;
  margin: 0 0 32px;
}
.contact strong { font-weight: 700; color: var(--wit); }

/* --- blokken --- */
.blok { width: 100%; padding: 56px 16px; }
.blok-in { max-width: var(--breedte); margin: 0 auto; }
.blok h2 {
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-weight: 600;
  color: var(--wit);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: clamp(28px, 4.5vw, 40px);
  line-height: 1.1;
  margin: 0 0 28px;
}
.blok.licht { background: var(--wit); color: var(--navy); }
.blok.licht h2 { color: var(--blauw); }
.blok.licht a { color: var(--blauw); }
.blok.licht a:hover, .blok.licht a:focus-visible { color: var(--oranje); }

/* uitgangspunten: genummerde stellingen */
.stellingen { background: var(--navy-diep); border-top: 1px solid rgba(216, 226, 236, 0.12); }
.stelling-lijst {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: stelling;
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px 40px;
}
.stelling-lijst li {
  counter-increment: stelling;
  position: relative;
  padding: 14px 0 14px 56px;
  border-top: 1px solid rgba(216, 226, 236, 0.14);
}
.stelling-lijst li::before {
  content: counter(stelling, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 16px;
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-weight: 600;
  font-size: 20px;
  color: var(--oranje);
  letter-spacing: 0.04em;
}
.stelling-lijst p {
  margin: 0;
  font-size: clamp(20px, 2.6vw, 26px);
  line-height: 1.4;
  color: var(--wit);
  font-weight: 300;
  max-width: 30ch;
}
.stelling-lijst p.uitleg { font-size: 15px; color: var(--gedempt); margin-top: 8px; max-width: 48ch; }

.blok .h2-klein { font-size: clamp(22px, 3.2vw, 28px); margin: 56px 0 16px; }
.kern-lijst { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 10px 40px; }
.kern-lijst li { position: relative; padding-left: 26px; font-size: clamp(19px, 2.3vw, 23px); line-height: 1.4; color: var(--wit); max-width: 34ch; }
.kern-lijst li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 12px; height: 3px; background: var(--oranje); }

/* onderdelen: de tien keywords */
.kader {
  display: inline-block;
  border: 1px solid var(--oranje);
  color: var(--blauw);
  font-size: 15px;
  font-weight: 400;
  padding: 6px 12px;
  margin: 0 0 32px;
}
.onderdeel-lijst {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: onderdeel;
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px 40px;
}
.onderdeel-lijst li { counter-increment: onderdeel; padding-left: 52px; position: relative; }
.onderdeel-lijst li::before {
  content: counter(onderdeel, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 2px;
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-weight: 600;
  font-size: 22px;
  color: var(--oranje);
  letter-spacing: 0.04em;
}
.onderdeel-lijst h3 {
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-weight: 600;
  font-size: 22px;
  letter-spacing: 0.02em;
  color: var(--blauw);
  margin: 0 0 6px;
  line-height: 1.2;
}
.onderdeel-lijst h3 .en-term { font-family: "Roboto", "Helvetica Neue", Arial, sans-serif; font-weight: 400; font-size: 15px; letter-spacing: 0; color: var(--grijs); }
.onderdeel-lijst h3 mark .en-term { color: var(--navy); }
.onderdeel-lijst h3 mark { font-size: inherit; }
.onderdeel-lijst p { margin: 0; font-weight: 400; font-size: 17px; line-height: 1.55; color: var(--navy); max-width: 46ch; }

/* in aanbouw + verwijzing */
.aanbouw .zin { max-width: 56ch; }
.verwijs {
  display: block;
  max-width: 560px;
  text-decoration: none;
  border: 1px solid rgba(216, 226, 236, 0.3);
  padding: 20px 22px;
  color: var(--licht);
}
.verwijs:hover, .verwijs:focus-visible { border-color: var(--oranje); color: var(--licht); }
.verwijs-kop {
  display: block;
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-weight: 600;
  font-size: 20px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--wit);
  margin-bottom: 4px;
}
.verwijs:hover .verwijs-kop, .verwijs:focus-visible .verwijs-kop { color: var(--oranje); }
.verwijs-tekst { display: block; font-size: 16px; }

/* --- tekstpagina's (achtergrond, privacy) --- */
.tekst { padding: 32px 16px 64px; margin: 0 auto; max-width: 800px; }
.klein-h1 { font-size: clamp(34px, 7vw, 56px); }
.tekst h2 { font-family: "Oswald", "Arial Narrow", sans-serif; font-weight: 600; color: var(--wit); letter-spacing: 0.03em; text-transform: uppercase; font-size: 24px; margin: 40px 0 10px; }
.tekst p { max-width: 68ch; margin: 0 0 14px; }
.tekst .zin { max-width: 60ch; }
.principes { list-style: none; margin: 8px 0 32px; padding: 0; counter-reset: principe; }
.principes li { counter-increment: principe; position: relative; padding: 18px 0 8px 56px; border-top: 1px solid rgba(216, 226, 236, 0.14); }
.principes li::before {
  content: counter(principe, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 20px;
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-weight: 600;
  font-size: 20px;
  color: var(--oranje);
  letter-spacing: 0.04em;
}
.principes h3 { font-family: "Oswald", "Arial Narrow", sans-serif; font-weight: 600; font-size: 22px; letter-spacing: 0.02em; color: var(--wit); margin: 0 0 6px; line-height: 1.25; }
.principes p { margin: 0 0 8px; }
.slot { font-size: clamp(19px, 2.4vw, 23px); line-height: 1.5; color: var(--wit); border-left: 3px solid var(--oranje); padding-left: 18px; margin: 0 0 24px; }
.klein-tekst { font-size: 14px; color: var(--gedempt); }

/* --- voet --- */
.voet {
  border-top: 1px solid rgba(216, 226, 236, 0.18);
  background: var(--navy-diep);
  color: var(--gedempt);
  font-size: 14px;
  line-height: 1.7;
}
.voet-in { max-width: var(--breedte); margin: 0 auto; padding: 24px 16px 28px; }
.voet p { margin: 0 0 6px; }
.voet a { color: var(--licht); }
.voet .klein { font-size: 13px; }

@media (min-width: 720px) {
  .kop { padding: 32px 32px; }
  .hero { padding: 56px 32px 88px; }
  .blok { padding: 72px 32px; }
  .voet-in { padding: 28px 32px 32px; }
  .tekst { padding: 48px 32px 96px; }
  .merk img { height: 48px; }
  .merknaam { font-size: 28px; }
  .menu { gap: 28px; }
  .menu-link { font-size: 16px; }
  .stelling-lijst { grid-template-columns: 1fr 1fr; }
  .onderdeel-lijst { grid-template-columns: 1fr 1fr; }
  .kern-lijst { grid-template-columns: 1fr 1fr; }
  .stap-lijst { grid-template-columns: 1fr 1fr 1fr; }
}

/* v6 · toelichting bij een term: sterretje, tekst bij hover/focus (geen script) */
p:has(.toel), li:has(.toel) { position: relative; }
.toel { cursor: help; border-bottom: 1px dotted currentColor; outline: none; }
.toel:focus-visible { outline: 2px solid var(--oranje); outline-offset: 2px; }
.toel-ster { color: var(--oranje); font-weight: 700; font-size: 0.8em; line-height: 0; margin-left: 1px; }
.toel-tekst {
  position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 5;
  padding: 10px 14px; border-radius: 4px;
  background: var(--wit); color: var(--navy); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  font-family: "Roboto", Arial, sans-serif; font-size: 15px; font-weight: 400; line-height: 1.45;
  letter-spacing: 0; text-transform: none; max-width: 52ch;
  opacity: 0; visibility: hidden; transition: opacity 0.15s; pointer-events: none;
}
.toel:hover .toel-tekst, .toel:focus .toel-tekst, .toel:focus-within .toel-tekst { opacity: 1; visibility: visible; }
.blok.licht .toel-tekst { background: var(--navy); color: var(--wit); }
.tekst h2.ip-logo { margin: 44px 0 16px; line-height: 0; }
.ip-logo a { display: inline-block; border-bottom: 0; }
.ip-logo img { height: 64px; width: auto; display: block; }
/* v9 · verwijsregel onder de korte principes */
.blok p.uitleg { font-size: 15px; color: var(--gedempt); margin: 12px 0 0; max-width: 60ch; }
.blok p.uitleg a { color: var(--wit); }
