/* ── Fonts ─────────────────────────────────────────────── */
@font-face{font-family:"Fraunces";src:url("brand/fonts/fraunces-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url("brand/fonts/fraunces-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Plex";src:url("brand/fonts/plex-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Plex";src:url("brand/fonts/plex-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Plex";src:url("brand/fonts/plex-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

/* ── Tokens ────────────────────────────────────────────── */
:root{
  --ground:#F6F4F8;      /* warm, indigo-biased off-white */
  --ink:#2A1743;         /* deep indigo text (from brand #30194D) */
  --plum:#30194D;        /* OFFICIAL brand dark (huisstijl) */
  --plum-deep:#20103A;   /* dark section ground (deeper #30194D) */
  --mist:#877E97;        /* muted indigo-grey */
  --line:#E5E0EC;        /* hairline */
  --g1:#4E287C;          /* OFFICIAL gradient start (huisstijl) */
  --g2:#C52C63;          /* OFFICIAL gradient end (huisstijl) */
  --measure:38rem;
  --edge:clamp(1.25rem,5vw,6rem);
  --maxw:74rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ground);color:var(--ink);
  font-family:"Plex",system-ui,sans-serif;font-weight:400;
  font-size:clamp(1rem,0.55rem + 0.7vw,1.18rem);line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
::selection{background:rgba(193,58,138,.18)}
a{color:inherit}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--edge)}

/* eyebrow / labels */
.eyebrow{font-family:"Plex";font-weight:600;font-size:.74rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--mist)}

/* display type */
.display{font-family:"Fraunces",Georgia,serif;font-weight:600;line-height:1.04;
  letter-spacing:-.015em;color:var(--plum)}
.grad{background:linear-gradient(100deg,var(--g1),var(--g2));
  -webkit-background-clip:text;background-clip:text;color:transparent}

/* ── Header ────────────────────────────────────────────── */
header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--ground) 88%,transparent);
  backdrop-filter:saturate(1.1) blur(8px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding-block:.95rem}
.bar img{height:30px;width:auto;display:block}
.nav{display:flex;align-items:center;gap:1.75rem}
.nav a{font-weight:500;font-size:.92rem;text-decoration:none;color:var(--ink);opacity:.8}
.nav a:hover{opacity:1}
.nav a[aria-current]{opacity:1;color:var(--g1)}
.contact-link{display:inline-flex;align-items:center;gap:.4rem}
.contact-link .arrow{color:var(--g2)}
@media(max-width:33rem){
  .bar{flex-wrap:wrap;row-gap:.55rem}
  .nav{width:100%;gap:1.25rem;justify-content:flex-start}
}

/* ── Hero ──────────────────────────────────────────────── */
.hero{padding-top:clamp(3.5rem,10vw,8rem);padding-bottom:clamp(3rem,7vw,6rem)}
.hero-mark{display:none}
@media(min-width:60rem){
  .hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
    gap:clamp(2rem,5vw,5.5rem);align-items:center}
  .hero-mark{display:block;justify-self:end}
}
.hero-mark img{width:clamp(200px,24vw,320px);height:auto;display:block;
  filter:drop-shadow(0 18px 50px rgba(78,40,124,.14))}
.hero .eyebrow{display:block;margin-bottom:1.6rem}
.hero h1{font-family:"Fraunces",Georgia,serif;font-weight:600;color:var(--plum);
  font-size:clamp(2.3rem,1.2rem + 4.6vw,5rem);line-height:1.02;letter-spacing:-.02em;
  margin:0;max-width:20ch}
.hero .lede{max-width:var(--measure);margin:2rem 0 0;font-size:clamp(1.05rem,.9rem + .5vw,1.3rem);
  color:#4a3442;line-height:1.6}
.hero .lede b{font-weight:500;color:var(--ink)}
.motto{margin-top:2.2rem;font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:400;
  font-size:clamp(1.05rem,.9rem + .5vw,1.35rem);color:var(--mist);letter-spacing:-.01em}
.cta{display:inline-flex;align-items:center;gap:.55rem;margin-top:2.6rem;
  font-family:"Plex";font-weight:600;font-size:1rem;text-decoration:none;color:var(--ink);
  padding-bottom:.25rem;border-bottom:2px solid var(--g2);transition:gap .18s ease}
.cta:hover{gap:.9rem}
.cta .arrow{color:var(--g2)}

/* section rhythm */
section{padding-block:clamp(3rem,6vw,5.5rem)}
.rule{height:1px;background:var(--line);border:0;margin:0}

/* ── De verschuiving ───────────────────────────────────── */
.shift{display:grid;grid-template-columns:1fr;gap:2rem}
.shift h2{font-family:"Fraunces",Georgia,serif;font-weight:600;color:var(--plum);
  font-size:clamp(1.7rem,1.2rem + 1.8vw,2.7rem);line-height:1.08;letter-spacing:-.02em;margin:.8rem 0 0;max-width:16ch}
.shift .body{max-width:var(--measure);color:#4a3442}
.shift .body p{margin:0 0 1.1rem}
.tenets{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.6rem}
.tenet{font-family:"Plex";font-weight:500;font-size:.86rem;color:var(--plum);
  border:1px solid var(--line);background:#fff;border-radius:999px;padding:.4rem .9rem}
@media(min-width:52rem){
  .shift{grid-template-columns:minmax(0,15rem) 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
  .shift h2{margin-top:0}
}

/* ── Denkwijze / modus operandi ────────────────────────── */
.mo{display:grid;grid-template-columns:1fr;gap:1.4rem}
.mo .head .eyebrow{display:block;margin-bottom:1rem}
.mo h2{font-family:"Fraunces",Georgia,serif;font-weight:600;color:var(--plum);
  font-size:clamp(1.7rem,1.2rem + 1.8vw,2.7rem);line-height:1.08;letter-spacing:-.02em;margin:0;max-width:15ch}
.mo .body{max-width:var(--measure);color:#4a3442}
.mo .body p{margin:0 0 1.15rem}
.mo .body p:last-child{margin-bottom:0}
@media(min-width:52rem){
  .mo{grid-template-columns:minmax(0,15rem) 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
}

/* ── Overtuigingen (the spine — signature) ─────────────── */
.convictions{background:linear-gradient(180deg,#fff,var(--ground))}
.spine{display:grid;gap:0}
.conv{padding-block:clamp(1.8rem,3.5vw,3rem);border-top:1px solid var(--line);
  display:grid;grid-template-columns:1fr;gap:.4rem}
.conv:last-child{border-bottom:1px solid var(--line)}
.conv p{margin:0;font-family:"Fraunces",Georgia,serif;font-weight:500;color:var(--plum);
  font-size:clamp(1.3rem,1rem + 1.5vw,2.05rem);line-height:1.18;letter-spacing:-.015em;max-width:24ch}
.conv .mark{width:34px;height:3px;background:linear-gradient(90deg,var(--g1),var(--g2));margin-bottom:1.1rem}
.convictions .eyebrow{display:block;margin-bottom:.4rem}

/* ── Werkwijze (real sequence → numbered) ──────────────── */
.method .steps{display:grid;gap:2.2rem;margin-top:2rem}
.step{display:grid;grid-template-columns:auto 1fr;gap:1.1rem;align-items:baseline;max-width:44rem}
.step .n{font-family:"Fraunces",Georgia,serif;font-weight:400;font-size:1.05rem;color:var(--g2);
  font-variant-numeric:tabular-nums;padding-top:.15rem}
.step h3{font-family:"Fraunces",Georgia,serif;font-weight:600;color:var(--plum);
  font-size:clamp(1.2rem,1rem + 1vw,1.7rem);margin:0 0 .35rem;letter-spacing:-.01em}
.step p{margin:0;color:#4a3442;max-width:34rem}
@media(min-width:52rem){.method .steps{grid-template-columns:repeat(3,1fr);gap:clamp(2rem,4vw,3.5rem)}
  .step{grid-template-columns:1fr;gap:.5rem}}

/* ── Expertise ─────────────────────────────────────────── */
.expertise .grid{margin-top:1.8rem;display:grid;grid-template-columns:1fr;
  border-bottom:1px solid var(--line)}
.xp{padding-block:1.25rem;border-top:1px solid var(--line);
  display:grid;grid-template-columns:20px 1fr;gap:1rem;align-items:baseline}
.xp .tick{width:20px;height:2px;align-self:center;
  background:linear-gradient(90deg,var(--g1),var(--g2))}
.xp h3{margin:0;font-family:"Fraunces",Georgia,serif;font-weight:600;color:var(--plum);
  font-size:clamp(1.15rem,.95rem + .8vw,1.5rem);letter-spacing:-.01em}
.xp p{margin:.2rem 0 0;color:var(--mist);font-size:.95rem}
@media(min-width:52rem){
  .expertise .grid{grid-template-columns:1fr 1fr;column-gap:clamp(2.5rem,6vw,5rem)}
}

/* ── Handoff naar Werk ──────────────────────────────────── */
.handoff .eyebrow{display:block;margin-bottom:1.2rem}
.handoff h2{font-family:"Fraunces",Georgia,serif;font-weight:600;color:var(--plum);
  font-size:clamp(1.7rem,1.2rem + 1.8vw,2.7rem);line-height:1.08;letter-spacing:-.02em;
  margin:0;max-width:18ch}
.handoff p{margin:1.2rem 0 0;max-width:var(--measure);color:#4a3442;line-height:1.6}
.handoff .cta{margin-top:2rem}

/* ── Closing (dark) ────────────────────────────────────── */
.closing{background:var(--plum-deep);color:#F3E9EF}
.closing .eyebrow{color:#B79BAE}
.closing h2{font-family:"Fraunces",Georgia,serif;font-weight:600;
  font-size:clamp(2rem,1.3rem + 3vw,3.6rem);line-height:1.05;letter-spacing:-.02em;
  color:#fff;margin:1.2rem 0 0;max-width:16ch}
.closing p{max-width:34rem;margin:1.4rem 0 0;color:#D8C6D2}
.mail{display:inline-flex;align-items:center;gap:.6rem;margin-top:2.4rem;
  font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:clamp(1.25rem,1rem + 1.4vw,2rem);
  text-decoration:none;color:#fff;border-bottom:2px solid var(--g2);padding-bottom:.2rem}
.mail .arrow{color:var(--g2);transition:transform .18s ease}
.mail:hover .arrow{transform:translateX(5px)}

/* ── Footer ────────────────────────────────────────────── */
footer{background:var(--plum-deep);color:#9C87954D}
.foot{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;
  padding-block:2rem;border-top:1px solid rgba(255,255,255,.08)}
.foot .co{font-family:"Plex";font-weight:500;font-size:.9rem;color:#C9B6C3}
.foot .lang{font-size:.82rem;letter-spacing:.05em;color:#8A7080}
.foot .lang b{color:#E9DCE4;font-weight:600}
.foot .lang a{color:inherit;text-decoration:none;transition:color .15s ease}
.foot .lang a:hover{color:#E9DCE4}

/* ── Motion ────────────────────────────────────────────── */
@media(prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}
  .reveal.in{opacity:1;transform:none}
}
:focus-visible{outline:2px solid var(--g2);outline-offset:3px;border-radius:2px}

/* ── Work page ─────────────────────────────────────────── */
.workintro{padding-top:clamp(3rem,8vw,6.5rem);padding-bottom:clamp(1.5rem,4vw,3rem)}
.workintro .eyebrow{display:block;margin-bottom:1.4rem}
.workintro h1{font-family:"Fraunces",Georgia,serif;font-weight:600;color:var(--plum);
  font-size:clamp(2rem,1.2rem + 3.4vw,3.8rem);line-height:1.05;letter-spacing:-.02em;margin:0;max-width:16ch}
.workintro .lede{max-width:var(--measure);margin:1.6rem 0 0;color:#463a52;
  font-size:clamp(1.02rem,.9rem + .4vw,1.2rem);line-height:1.6}
.themes{padding-top:clamp(1rem,3vw,2rem);padding-bottom:clamp(2.5rem,6vw,5rem);
  border-bottom:1px solid var(--line)}
.theme{padding-block:clamp(1.6rem,3.2vw,2.6rem);border-top:1px solid var(--line);
  display:grid;grid-template-columns:1fr;gap:1.1rem}
.theme > h2{font-family:"Fraunces",Georgia,serif;font-weight:600;color:var(--plum);
  font-size:clamp(1.25rem,1rem + 1.2vw,1.8rem);margin:0;letter-spacing:-.01em}
.theme .frame{margin:0 0 1.4rem;font-family:"Fraunces",Georgia,serif;font-style:italic;
  font-weight:400;color:var(--plum);font-size:clamp(1.05rem,.95rem + .5vw,1.35rem);
  line-height:1.35;letter-spacing:-.01em;max-width:44rem}
.theme > p{margin:0;color:#463a52;line-height:1.62;max-width:44rem}
.theme > p .accent{color:var(--plum);font-weight:500}
.capstone{padding-block:clamp(3.5rem,7vw,6rem)}
.capstone .eyebrow{display:block;margin-bottom:1.5rem}
.capstone .big{margin:0;font-family:"Fraunces",Georgia,serif;font-weight:600;color:var(--plum);
  font-size:clamp(1.7rem,1.1rem + 2.6vw,3rem);line-height:1.14;letter-spacing:-.02em;max-width:24ch}
.capstone .sub{margin:1.7rem 0 0;max-width:var(--measure);color:#463a52;line-height:1.62}
.theme ul{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.theme li{display:grid;grid-template-columns:20px 1fr;gap:.9rem;align-items:baseline;
  color:#463a52;max-width:46rem;line-height:1.5}
.theme li .tick{width:20px;height:2px;align-self:center;
  background:linear-gradient(90deg,var(--g1),var(--g2))}
@media(min-width:52rem){
  .theme{grid-template-columns:minmax(0,14rem) 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
}

/* ── Contactpagina ─────────────────────────────────────── */
.contact-head{padding-top:clamp(3rem,8vw,6.5rem);padding-bottom:clamp(1rem,2vw,1.5rem)}
.contact-head .eyebrow{display:block;margin-bottom:1.3rem}
.contact-head h1{font-family:"Fraunces",Georgia,serif;font-weight:600;color:var(--plum);
  font-size:clamp(2rem,1.2rem + 3.4vw,3.8rem);line-height:1.05;letter-spacing:-.02em;margin:0;max-width:15ch}
.contact-head .lede{max-width:var(--measure);margin:1.5rem 0 0;color:#463a52;
  font-size:clamp(1.02rem,.9rem + .4vw,1.2rem);line-height:1.6}
.contactgrid{padding-top:clamp(1.5rem,4vw,3rem);padding-bottom:clamp(3rem,7vw,6rem);
  display:grid;grid-template-columns:1fr;gap:clamp(2.5rem,6vw,4.5rem)}
@media(min-width:52rem){.contactgrid{grid-template-columns:1.2fr .8fr;align-items:start}}

form.contact .field{display:grid;gap:.4rem;margin-bottom:1.15rem}
form.contact label{font-family:"Plex";font-weight:500;font-size:.86rem;color:var(--plum)}
form.contact input,form.contact textarea{font-family:"Plex",system-ui,sans-serif;font-size:1rem;
  color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:9px;padding:.72rem .85rem;
  width:100%;transition:border-color .15s ease,box-shadow .15s ease}
form.contact textarea{min-height:8.5rem;resize:vertical;line-height:1.5}
form.contact input:focus,form.contact textarea:focus{outline:none;border-color:var(--g1);
  box-shadow:0 0 0 3px rgba(78,40,124,.12)}
form.contact input::placeholder,form.contact textarea::placeholder{color:#a99fb6}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
altcha-widget.altcha{display:block;margin:.2rem 0 1.3rem;max-width:100%;
  --altcha-border-radius:9px;--altcha-border-width:1px;--altcha-color-border:var(--line);
  --altcha-color-base:#fff;--altcha-color-text:var(--ink);--altcha-color-border-focus:var(--g1);
  --altcha-color-checkbox-checked:var(--g1);--altcha-max-width:100%}
.submit{display:inline-flex;align-items:center;gap:.55rem;border:0;cursor:pointer;margin-top:.4rem;
  font-family:"Plex";font-weight:600;font-size:1rem;color:#fff;
  background:linear-gradient(100deg,var(--g1),var(--g2));border-radius:999px;padding:.8rem 1.6rem;
  transition:filter .15s ease,gap .18s ease}
.submit:hover{filter:brightness(1.07);gap:.85rem}
.submit:disabled{opacity:.6;cursor:default}
.formnote{margin:.9rem 0 0;font-size:.82rem;color:var(--mist)}
.formstatus{margin:1rem 0 0;font-size:.92rem;font-weight:500}
.formstatus.ok{color:#2e7d51}.formstatus.err{color:var(--g2)}

.bizinfo{border-top:1px solid var(--line);padding-top:1.6rem}
.bizinfo .eyebrow{display:block;margin-bottom:1.1rem}
.bizinfo dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.55rem 1.2rem;font-size:.94rem}
.bizinfo dt{color:var(--mist)}
.bizinfo dd{margin:0;color:var(--ink);font-weight:500}
.bizinfo dd a{color:var(--g1);text-decoration:none}
.bizinfo dd a:hover{text-decoration:underline}
.bizinfo dd[data-fill]{color:var(--mist);font-weight:400}
.bizinfo .co{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:1.15rem;color:var(--plum);
  margin:0 0 1rem}
