/* Beyond Prestige — huisstijl
   Palet: bordeaux #541E2B, wijnrood #30151E, ivoor #F4F0E8, antraciet #202023, taupe #ADA297, champagne #D9B98F (accent, nooit voor kleine tekst).
   Typografie: Cormorant Garamond (koppen), Manrope (lopende tekst). */

:root{
  --bordeaux:#541E2B; --wijn:#30151E; --ivoor:#F4F0E8; --ivoor-2:#EBE5DA; --ivoor-3:#FFFDF9;
  --antraciet:#202023; --taupe:#ADA297; --taupe-d:#6E655C; --lijn:#C9C0B4; --champagne:#D9B98F;
  --tekst:#202023; --tekst-2:#3C3A3A;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:Manrope,system-ui,-apple-system,'Segoe UI',sans-serif;
  --gutter:clamp(20px,5vw,72px); --max:1360px; --hdr:84px;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivoor);color:var(--tekst);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;letter-spacing:-.012em;margin:0;text-wrap:balance}
p{margin:0}
a{color:var(--bordeaux)}
img{max-width:100%;height:auto;display:block}
button{font:inherit}
.skip{position:absolute;left:-999px;top:8px;background:var(--bordeaux);color:var(--ivoor);padding:10px 16px;z-index:100}
.skip:focus{left:8px}
:is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--bordeaux);outline-offset:3px}
.on-dark :is(a,button):focus-visible{outline-color:var(--ivoor)}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.pad{padding-block:clamp(80px,10vw,144px)}
.pad-s{padding-block:clamp(56px,7vw,96px)}
.eyebrow{font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--taupe-d)}
.eyebrow.b{color:var(--bordeaux)}
.on-dark .eyebrow{color:var(--champagne)}
.h1{font-size:clamp(46px,6.6vw,96px);line-height:.98}
.h2{font-size:clamp(34px,4.2vw,60px);line-height:1.06}
.h3{font-size:clamp(24px,2.2vw,32px);line-height:1.15}
.lead{font-size:clamp(17px,1.35vw,20px);line-height:1.6;color:var(--tekst-2);max-width:58ch}
.body{color:var(--tekst-2);max-width:62ch}
.on-dark .lead,.on-dark .body{color:#E9E2D6}
.serif{font-family:var(--serif)}
.italic{font-style:italic}
.muted{color:var(--taupe-d)}
.on-dark .muted{color:var(--taupe)}
.stack{display:flex;flex-direction:column;gap:24px}
.stack-s{display:flex;flex-direction:column;gap:14px}
.measure{max-width:720px}

/* Knoppen */
.btn{display:inline-flex;align-items:center;gap:12px;background:var(--bordeaux);color:var(--ivoor);padding:0 30px;min-height:54px;border-radius:2px;text-decoration:none;font-family:var(--sans);font-size:15px;font-weight:600;border:1px solid var(--bordeaux);cursor:pointer;transition:background .25s var(--ease),transform .25s var(--ease)}
.btn:hover{background:var(--wijn);border-color:var(--wijn);color:var(--ivoor)}
.btn:active{transform:translateY(1px)}
.btn.light{background:var(--ivoor);color:var(--bordeaux);border-color:var(--ivoor)}
.btn.light:hover{background:#E9E2D6;border-color:#E9E2D6;color:var(--wijn)}
.btn.ghost{background:transparent;color:var(--bordeaux)}
.btn.ghost:hover{background:rgba(84,30,43,.06);color:var(--bordeaux)}
.on-dark .btn.ghost{color:var(--ivoor);border-color:rgba(244,240,232,.5)}
.on-dark .btn.ghost:hover{background:rgba(244,240,232,.08);color:var(--ivoor)}
.btn svg{flex:0 0 auto;transition:transform .25s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn.lg{min-height:60px;padding:0 36px;font-size:16px}
.textlink{display:inline-flex;align-items:center;gap:10px;color:var(--bordeaux);text-decoration:none;font-weight:600;font-size:15px;border-bottom:1px solid var(--bordeaux);padding-bottom:3px;min-height:44px}
.textlink:hover{color:var(--wijn)}
.on-dark .textlink{color:var(--ivoor);border-color:rgba(244,240,232,.6)}

/* Header */
.hdr{position:sticky;top:0;z-index:40;transition:background .3s var(--ease),border-color .3s var(--ease);border-bottom:1px solid transparent;background:transparent}
.hdr.scrolled,.hdr.solid{background:rgba(244,240,232,.94);backdrop-filter:blur(8px);border-bottom-color:rgba(173,162,151,.35)}
.hdr.over-dark:not(.scrolled){--nav:var(--ivoor)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--hdr)}
.logo{display:inline-flex;align-items:center;text-decoration:none}
.logo img{width:136px;height:auto}
.hdr.over-dark:not(.scrolled) .logo img{filter:brightness(0) invert(1) opacity(.95)}
.nav{display:flex;align-items:center;gap:36px}
.nav a{color:var(--nav,var(--tekst));text-decoration:none;font-size:15px;font-weight:500;padding:12px 2px;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:currentColor}
.hdr-cta{min-height:46px;padding:0 22px;font-size:14px}
.hdr.over-dark:not(.scrolled) .hdr-cta{background:var(--ivoor);color:var(--bordeaux);border-color:var(--ivoor)}
.menu-btn{display:none;align-items:center;gap:10px;background:transparent;border:1px solid currentColor;color:var(--nav,var(--tekst));border-radius:2px;min-height:44px;padding:0 14px;font-size:14px;font-weight:600;cursor:pointer}
.mnav{display:none;position:fixed;inset:var(--hdr) 0 0 0;background:var(--ivoor);z-index:39;overflow:auto}
.mnav[data-open="true"]{display:block}
.mnav .wrap{display:flex;flex-direction:column;padding-block:16px 40px}
.mnav a{color:var(--tekst);text-decoration:none;font-family:var(--serif);font-size:30px;padding:16px 0;border-bottom:1px solid var(--lijn)}
.mnav a.sub{font-family:var(--sans);font-size:16px;padding:12px 0 12px 20px;border:0}
.mnav .btn{margin-top:24px;justify-content:center;font-family:var(--sans);font-size:15px}
@media (max-width:960px){.nav,.hdr-cta{display:none}.menu-btn{display:inline-flex}}
body.menu-open{overflow:hidden}
body.menu-open .hdr{background:var(--ivoor);--nav:var(--tekst)}
body.menu-open .hdr .logo img{filter:none}

/* Hero home */
.hero{position:relative;background:var(--wijn);color:var(--ivoor);overflow:hidden;margin-top:calc(-1 * var(--hdr));padding-top:var(--hdr)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);min-height:calc(100svh - var(--hdr))}
.hero-copy{display:flex;flex-direction:column;justify-content:center;gap:36px;padding:clamp(56px,7vw,110px) clamp(32px,4vw,64px) clamp(56px,7vw,110px) var(--gutter)}
.hero-img{position:relative;min-height:420px}
.hero-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-img::after{content:"";position:absolute;inset:0;background:rgba(48,21,30,.18)}
.hero-panel{position:absolute;left:0;bottom:0;width:min(380px,70%);background:var(--bordeaux);padding:26px 30px;display:flex;flex-direction:column;z-index:2}
@media (min-width:1280px){.hero-panel{transform:translateX(-40px)}.hero-copy{padding-right:96px}}
.hero-panel .row{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;border-top:1px solid rgba(244,240,232,.25)}
.hero-panel .row span:first-child{font-family:var(--serif);font-size:22px}
.hero-panel .row span:last-child{font-size:11px;color:var(--champagne);letter-spacing:.14em}
.word-line{display:block;color:var(--champagne);font-style:italic;min-height:1em;font-weight:400}
.word{display:inline-block;transition:opacity .6s var(--ease),transform .6s var(--ease);will-change:opacity,transform}
.word.out{opacity:0;transform:translateY(-.28em)}
.word.pre{opacity:0;transform:translateY(.28em);transition:none}
.pause{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid rgba(244,240,232,.4);border-radius:2px;background:transparent;color:var(--taupe);cursor:pointer}
.pause:hover{border-color:var(--ivoor);color:var(--ivoor)}
.hero-foot{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;border-top:1px solid rgba(244,240,232,.2);padding-top:22px}
.hero-foot .tag{font-family:var(--serif);font-size:20px;font-style:italic;color:var(--taupe)}
@media (max-width:960px){
  .hero-grid{grid-template-columns:1fr;min-height:0}
  .hero-copy{padding:clamp(48px,8vw,80px) var(--gutter) 48px;gap:28px}
  .hero-img{min-height:380px;margin-inline:var(--gutter);margin-bottom:var(--gutter)}
  .hero-panel{transform:none;width:min(340px,85%)}
}

/* Intro-animatie: alleen met JS, altijd zichtbaar zonder */
.js .rise{opacity:0;transform:translateY(18px)}
.js .rise.in{opacity:1;transform:none;transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal{opacity:0;transform:translateY(16px)}
.js .reveal.in{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .reveal.d1.in{transition-delay:.08s}.js .reveal.d2.in{transition-delay:.16s}.js .reveal.d3.in{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){
  .js .rise,.js .reveal{opacity:1;transform:none;transition:none}
  .word,.btn svg{transition:none}
}

/* Sectie-thema's */
.on-dark{color:var(--ivoor)}
.dark{background:var(--antraciet);color:var(--ivoor)}
.wine{background:var(--bordeaux);color:var(--ivoor)}
.deep{background:var(--wijn);color:var(--ivoor)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sand{background:var(--ivoor-2)}

/* Grids */
.g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px}
.g2a{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,96px)}
.g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.sticky{position:sticky;top:112px}
@media (max-width:960px){.g2,.g2a,.g3,.g4{grid-template-columns:1fr;gap:36px}.sticky{position:static}}

/* Genummerde rijen */
.rows>div{display:flex;gap:28px;padding:28px 0;border-top:1px solid var(--lijn)}
.rows>div:last-child{border-bottom:1px solid var(--lijn)}
.rows .num{font-family:var(--serif);font-size:22px;color:var(--taupe-d);min-width:44px;flex:0 0 auto}
.rows p{font-family:var(--serif);font-size:clamp(22px,2vw,29px);line-height:1.3}
.rows.plain p{font-family:var(--sans);font-size:17px;line-height:1.55;color:var(--tekst)}
.on-dark .rows>div{border-color:rgba(244,240,232,.22)}
.on-dark .rows .num{color:var(--champagne)}
.on-dark .rows.plain p{color:#E9E2D6}

/* Disciplines (home) */
.disc{display:grid;grid-template-columns:1fr 320px 1fr;grid-template-rows:auto auto;gap:32px 56px;align-items:center}
.disc .cell{display:flex;flex-direction:column;gap:10px;padding:28px 0;border-top:1px solid rgba(244,240,232,.2)}
.disc .cell .n{font-size:12px;letter-spacing:.14em;color:var(--champagne)}
.disc .cell h3{font-size:32px}
.disc .cell p{font-size:15px;color:#C9C0B4}
.disc .center{grid-row:span 2;display:flex;align-items:center;justify-content:center}
.ring{width:300px;max-width:100%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(217,185,143,.6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:24px;position:relative}
.ring::before{content:"";position:absolute;inset:16px;border-radius:50%;border:1px solid rgba(244,240,232,.12)}
.ring .big{font-family:var(--serif);font-size:36px;line-height:1.1}
@media (max-width:960px){.disc{grid-template-columns:1fr;gap:12px}.disc .center{order:-1;grid-row:auto;padding-bottom:16px}}

/* Oplossingen-lijst */
.sol{display:flex;gap:40px;padding:44px 0;border-top:1px solid var(--lijn);text-decoration:none;color:var(--tekst);transition:background .25s var(--ease)}
.sol:last-child{border-bottom:1px solid var(--lijn)}
.sol:hover{background:rgba(84,30,43,.04);color:var(--tekst)}
.sol .num{font-family:var(--serif);font-size:22px;color:var(--taupe-d);min-width:72px}
.sol .t{flex:1 1 300px;display:flex;flex-direction:column;gap:8px;min-width:0}
.sol .t b{font-family:var(--serif);font-weight:500;font-size:clamp(26px,2.4vw,36px);line-height:1.1}
.sol .t small{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--taupe-d);font-weight:600}
.sol .d{flex:1 1 360px;color:var(--tekst-2);min-width:0}
.sol .r{flex:0 0 210px;display:flex;flex-direction:column;gap:8px}
.sol .r small{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--taupe-d);font-weight:600}
.sol .r span{font-size:15px;line-height:1.5}
.sol .arrow{color:var(--bordeaux);font-size:22px;line-height:1;transition:transform .25s var(--ease)}
.sol:hover .arrow{transform:translateX(6px)}
@media (max-width:960px){.sol{flex-direction:column;gap:14px;padding:28px 0}.sol .r{flex-basis:auto}}

/* Stappen */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--lijn)}
.step{display:flex;flex-direction:column;gap:16px;padding:40px 32px;border-left:1px solid var(--lijn)}
.step:first-child{border-left:0;padding-left:0}.step:last-child{padding-right:0}
.step .n{font-family:var(--serif);font-size:52px;line-height:1;color:var(--taupe-d)}
.step h3{font-size:30px}
.step p{font-size:15px;color:var(--tekst-2)}
.sand .steps,.sand .step{border-color:rgba(32,32,35,.2)}
.sand .step .n{color:var(--bordeaux)}
@media (max-width:960px){.steps{grid-template-columns:1fr}.step{border-left:0;border-top:1px solid var(--lijn);padding:24px 0}.step:first-child{border-top:0}}

/* Team */
.team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.member{display:flex;flex-direction:column;gap:14px;padding-top:24px;border-top:1px solid var(--taupe)}
.member:first-child{border-top-color:var(--bordeaux)}
.member small{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--bordeaux);font-weight:600}
.member h3{font-size:46px;line-height:1}
.member p{font-size:15px;color:var(--tekst-2)}
.team.big{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--lijn);border:1px solid var(--lijn)}
.team.big .member{background:var(--ivoor);padding:48px;border:0;gap:16px}
.team.big .member h3{font-size:58px}
.team.big .member p{font-size:16px}
@media (max-width:960px){.team,.team.big{grid-template-columns:1fr}.team.big .member{padding:28px 20px}}

/* Statement-band */
.statement .big{font-family:var(--serif);font-size:clamp(40px,7vw,112px);line-height:1;font-style:italic;color:var(--ivoor);letter-spacing:-.01em}
.statement .line{width:72px;height:1px;background:var(--champagne)}

/* Figuren */
figure{margin:0;display:flex;flex-direction:column;gap:12px}
figure img{width:100%;height:clamp(300px,42vw,620px);object-fit:cover}
figcaption{font-size:13px;color:var(--taupe-d)}
.on-dark figcaption{color:var(--taupe)}

/* Feiten-strook */
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(244,240,232,.18)}
.facts>div{padding:28px 32px 36px;border-left:1px solid rgba(244,240,232,.18);display:flex;flex-direction:column;gap:6px}
.facts>div:first-child{border-left:0;padding-left:0}
.facts small{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--champagne);font-weight:600}
.facts span{font-family:var(--serif);font-size:24px}
@media (max-width:960px){.facts{grid-template-columns:1fr}.facts>div{border-left:0;border-top:1px solid rgba(244,240,232,.18);padding:20px 0}.facts>div:first-child{border-top:0}}

/* Label/waarde-paren en cellen */
.pairs>div{display:grid;grid-template-columns:220px 1fr;gap:32px;padding:30px 0;border-top:1px solid var(--lijn)}
.pairs>div:last-child{border-bottom:1px solid var(--lijn)}
.pairs .k{font-family:var(--serif);font-size:25px;color:var(--bordeaux)}
.pairs p{color:var(--tekst-2)}
@media (max-width:700px){.pairs>div{grid-template-columns:1fr;gap:8px}}
.cells{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--lijn);border:1px solid var(--lijn)}
.cells>div{background:var(--ivoor);padding:34px;display:flex;flex-direction:column;gap:10px}
.cells small{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--bordeaux);font-weight:600}
.cells b{font-family:var(--serif);font-weight:500;font-size:25px;line-height:1.2}
.cells p{font-size:14.5px;color:var(--tekst-2)}
@media (max-width:600px){.cells{grid-template-columns:1fr}}
.crumb{display:flex;gap:12px;font-size:13px;color:var(--taupe)}
.crumb a{color:var(--taupe);text-decoration:none}.crumb a:hover{color:var(--ivoor)}

/* Pagina-hero (detailpagina's) */
.phero{position:relative;margin-top:calc(-1 * var(--hdr));padding-top:var(--hdr)}
.phero .inner{padding-block:clamp(72px,9vw,128px) clamp(56px,7vw,96px)}

/* Formulier */
.form{display:flex;flex-direction:column;gap:28px;background:var(--ivoor-3);border:1px solid var(--lijn);padding:clamp(24px,4vw,48px)}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field label{font-size:14px;font-weight:600}
.hint{font-size:13px;color:var(--taupe-d)}
.input{width:100%;min-height:54px;padding:12px 16px;border:1px solid var(--taupe);border-radius:2px;background:var(--ivoor-3);font-family:var(--sans);font-size:16px;color:var(--tekst)}
.input:focus{border-color:var(--bordeaux)}
.input[aria-invalid="true"]{border-color:#8E2A2A}
.err{font-size:13px;color:#8E2A2A;font-weight:600}
.notice{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border:1px solid var(--champagne);background:#F7F1E4;font-size:14px;line-height:1.55;color:#5A4A2E}
.status{padding:16px 18px;border:1px solid var(--taupe);background:var(--ivoor);font-size:14px;line-height:1.55}
.status.bad{border-color:#8E2A2A;background:#F8EEEE;color:#5A1B1B}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
@media (max-width:700px){.row2{grid-template-columns:1fr}}
.btn[disabled]{opacity:.6;cursor:progress}
[hidden]{display:none!important}

/* Footer */
.foot{background:var(--wijn);color:var(--ivoor)}
.foot .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid rgba(244,240,232,.18)}
.foot nav,.foot .col{display:flex;flex-direction:column;gap:12px}
.foot small{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--champagne);font-weight:600;margin-bottom:6px}
.foot nav a{color:var(--taupe);text-decoration:none;font-size:14px}.foot nav a:hover{color:var(--ivoor)}
.foot .logo img{width:150px;filter:brightness(0) invert(1) opacity(.92)}
.foot .bottom{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:24px;font-size:13px;color:var(--taupe)}
.foot .bottom a{color:var(--taupe)}
@media (max-width:960px){.foot .cols{grid-template-columns:1fr;gap:32px}}
