/* ============================================================
   basvandenbeld.com — Stylesheet
   Alle kleuren, typografie en spacing komen uit het prototype
   (Bas van den Beld.dc.html). Navigatie is omgezet van buttons
   naar echte links.
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:'DM Sans',system-ui,sans-serif;color:#0D0D0D;background:#F7F6F4;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
ul{list-style:none}
button{font:inherit;cursor:pointer;border:none;background:none;padding:0}
input,select,textarea{font:inherit}

:root{
  --n:#090640;--nd:#060428;--nm:#141650;
  --r:#8A3033;--rd:#6E252A;--rm:#B86264;--rl:#F5EAEB;
  --b:#F7F6F4;--w:#FFFFFF;
  --t:#0D0D0D;--t2:#3D3D3D;--tm:#686868;
  --od:#F0EFED;--dm:rgba(240,239,237,.62);
  --br:#E0DFE0;--brd:rgba(255,255,255,.1);
  --fh:'DM Serif Display',Georgia,serif;
  --fb:'DM Sans',system-ui,sans-serif;
  --s1:0 1px 3px rgba(9,6,64,.07);
  --s2:0 4px 16px rgba(9,6,64,.10);
  --s3:0 12px 40px rgba(9,6,64,.14)
}

.site{min-height:100vh;display:flex;flex-direction:column}
.site-main{flex:1}
.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 2rem}
.sec{padding:6rem 0}.sec-sm{padding:4rem 0}
.dk{background:var(--n);color:var(--od)}.wh{background:var(--w)}.rl-bg{background:var(--rl)}

/* NAV */
.nav{position:sticky;top:0;z-index:100;background:var(--b);border-bottom:1px solid var(--br);transition:box-shadow .2s}
.nav.scrolled{box-shadow:var(--s2)}
.nav-in{display:flex;align-items:center;height:72px}
.logo{display:flex;flex-direction:column;gap:2px;flex-shrink:0;align-items:flex-start}
.logo-n{font-family:var(--fh);font-size:1.25rem;color:var(--n);line-height:1.1;white-space:nowrap}
.logo-s{font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--tm);font-weight:500;font-family:var(--fb)}
.nav-links{display:flex;align-items:center;gap:1.75rem;margin-left:auto}
.nav-links a{font-size:.9375rem;font-weight:500;color:var(--t2);transition:color .15s;font-family:var(--fb)}
.nav-links a:hover,.nav-links a.on{color:var(--r)}
.nav-links a.on{font-weight:600}
.nav-cta-w{margin-left:1.5rem}
.burger{display:none;margin-left:auto;flex-direction:column;gap:5px;padding:8px}
.burger span{display:block;width:22px;height:2px;background:var(--n);border-radius:1px;transition:.2s}

/* DRAWER */
.drawer{position:fixed;inset:72px 0 0 0;background:var(--b);z-index:90;padding:2rem;flex-direction:column;border-top:1px solid var(--br);display:none;overflow-y:auto}
.drawer.open{display:flex;gap:0}
.drawer a{font-size:1.125rem;font-weight:600;color:var(--n);padding:1rem 0;border-bottom:1px solid var(--br);display:block;width:100%;text-align:left;font-family:var(--fb)}
.drawer-cta{margin-top:1.5rem}
.drawer-cta a{border-bottom:none;display:inline-flex;width:auto}

/* BUTTONS */
.btn{font-family:var(--fb);font-weight:600;font-size:.9375rem;padding:13px 24px;border-radius:2px;display:inline-flex;align-items:center;gap:8px;transition:background .15s,color .15s,transform .1s,border-color .15s;white-space:nowrap;border:1.5px solid transparent;cursor:pointer;text-decoration:none}
.btn:active{transform:translateY(1px)}
.bp{background:var(--r);color:#fff;border-color:var(--r)}
.bp:hover{background:var(--rd);border-color:var(--rd)}
.bo{background:transparent;color:var(--n);border-color:var(--n)}
.bo:hover{background:var(--n);color:#fff}
.bol{background:transparent;color:#fff;border-color:rgba(255,255,255,.38)}
.bol:hover{border-color:#fff;background:rgba(255,255,255,.07)}
.btn-lg{padding:16px 30px;font-size:1rem}
.btxt{color:var(--r);font-weight:600;font-size:.9375rem;display:inline-flex;align-items:center;gap:5px;transition:gap .15s;font-family:var(--fb)}
.btxt:hover{gap:10px}

/* LABELS + TYPE */
.lbl{font-size:.8125rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--r);display:block}
.lbl-d{color:rgba(240,239,237,.65)}
.hd{font-family:var(--fh);font-size:clamp(2.25rem,5.5vw,4.25rem);line-height:1.1;font-weight:400;color:var(--n);text-wrap:balance}
.hs{font-family:var(--fh);font-size:clamp(1.875rem,3.6vw,2.75rem);line-height:1.15;font-weight:400;color:var(--n);text-wrap:balance}
.hc{font-family:var(--fh);font-size:1.375rem;line-height:1.25;font-weight:400;color:var(--n)}
.hod{color:var(--od)}
.sub{font-size:1.0625rem;line-height:1.65;color:var(--t2);max-width:56ch}
.sub-d{color:var(--dm)}
.body-t{font-size:1rem;line-height:1.65;color:var(--t2)}
.div-r{width:48px;height:3px;background:var(--r);display:block}
.div-d{background:rgba(255,255,255,.3)}

/* HERO */
.hero{background:var(--n);padding:8rem 0 6.5rem;position:relative;overflow:hidden}
.hero-bg{position:absolute;right:0;top:0;bottom:0;width:46%;background:url('../img/img-bas.jpg') 30% 20%/cover no-repeat;opacity:.12;pointer-events:none}
.hero-c{position:relative;z-index:1;max-width:660px}
.hero h1{font-family:var(--fh);font-size:clamp(2.25rem,5.5vw,4.25rem);line-height:1.1;font-weight:400;color:var(--od);margin:1.5rem 0 1.75rem;text-wrap:balance}
.hero-sub{font-size:1.0625rem;line-height:1.65;color:var(--dm);max-width:52ch;margin-bottom:2.5rem}
.hero-ctas{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}

/* PAGE HERO */
.phero{background:var(--n);padding:5rem 0 4.5rem}
.phero h1{font-family:var(--fh);font-size:clamp(1.875rem,4.2vw,3.25rem);line-height:1.15;font-weight:400;color:var(--od);margin:1rem 0 1.25rem;text-wrap:balance;max-width:720px}
.phero-sub{font-size:1rem;line-height:1.65;color:var(--dm);max-width:52ch}

/* SITUATION BLOCKS */
.sit-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.sit{padding:3rem 2.5rem;border-right:1px solid var(--br)}
.sit:last-child{border-right:none}
.sit-lbl{font-size:.8125rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--r);display:block;margin-bottom:1.25rem}
.sit-h{font-family:var(--fh);font-size:1.375rem;line-height:1.25;font-weight:400;color:var(--n);margin-bottom:.875rem}
.sit-p{font-size:.9375rem;line-height:1.65;color:var(--tm)}

/* QUOTES */
.q-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.q{border-top:2px solid var(--r);padding:2rem 0}
.q-panel{padding:2rem;background:var(--n)}
.qm::before{content:'\201C';font-family:var(--fh);font-size:4rem;line-height:.9;color:var(--r);margin-bottom:.75rem;opacity:.8;display:block}
.qt{font-family:var(--fh);font-style:italic;font-size:1.125rem;line-height:1.55;color:var(--od);margin-bottom:1.5rem}
.qb strong{display:block;font-size:.9375rem;font-weight:600;color:var(--od);margin-bottom:2px}
.qb span{font-size:.8125rem;color:var(--dm)}

/* PATHS */
.path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.path{background:var(--w);padding:2rem 2rem 2.5rem;border:1px solid var(--br);display:flex;flex-direction:column;gap:.875rem;transition:box-shadow .18s}
.path:hover{box-shadow:var(--s2)}
.path-n{font-size:.8125rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--r)}
.path-h{font-family:var(--fh);font-size:1.625rem;font-weight:400;color:var(--n);line-height:1.2}
.path-p{font-size:.9375rem;line-height:1.65;color:var(--tm);flex:1}

/* EDU BAND */
.edu{border-top:3px solid var(--r);padding:3.5rem 0;background:var(--rl)}
.edu-in{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}

/* STEPS */
.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.step{background:var(--w);padding:2rem;border:1px solid var(--br)}
.step-n{font-family:var(--fh);font-size:3rem;font-weight:400;color:#A65B5E;line-height:1;margin-bottom:1.25rem;display:block}
.step-h{font-family:var(--fh);font-size:1.1875rem;font-weight:400;color:var(--n);margin-bottom:.75rem}
.step-p{font-size:.9375rem;line-height:1.65;color:var(--tm)}

/* FEATURE LIST */
.feat{display:flex;flex-direction:column;gap:.875rem;margin-top:1.5rem}
.feat li{display:flex;align-items:flex-start;gap:.875rem;font-size:1rem;line-height:1.55;color:var(--t2)}
.feat li::before{content:'';display:block;width:18px;height:2px;background:var(--r);margin-top:.7rem;flex-shrink:0}

/* SERVICES */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.svc{background:var(--w);padding:2.5rem 2rem 3rem;border:1px solid var(--br);display:flex;flex-direction:column;gap:.875rem}
.svc-acc{width:40px;height:3px;background:var(--r);display:block;margin-bottom:.25rem}
.svc-det{font-size:.875rem;color:var(--tm);line-height:1.6;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--br)}

/* TWO-COL */
.two{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}
.two-w{grid-template-columns:1.15fr .85fr}

/* BIO */
.bio-grid{display:grid;grid-template-columns:360px 1fr;gap:5rem;align-items:start}
.bio-photo{overflow:hidden;background:var(--nm);aspect-ratio:3/4;position:relative}
.bio-photo img{width:100%;height:100%;object-fit:cover;display:block}
.creds{margin-top:2.5rem}
.cred{display:flex;gap:1.5rem;align-items:flex-start;padding:1.25rem 0;border-top:1px solid var(--br)}
.cred-l{font-size:.8125rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--r);min-width:88px;flex-shrink:0;padding-top:.15em}
.cred-v{font-size:.9375rem;line-height:1.55;color:var(--t2)}
.swp-ref{margin-top:2.5rem;padding:1.5rem 1.75rem;background:var(--b);border-left:3px solid var(--r)}
.swp-ref p{font-size:.9375rem;line-height:1.65;color:var(--t2)}
.swp-ref a{color:var(--r);text-decoration:underline;text-underline-offset:3px}

/* CTA BAND */
.cta-band{background:var(--n);padding:5rem 0}
.cta-in{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}

/* FORM */
.f-grid{display:flex;flex-direction:column;gap:1.5rem}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.field{display:flex;flex-direction:column;gap:.5rem}
.field label{font-size:.875rem;font-weight:600;color:var(--n)}
.field input,.field select,.field textarea{font-family:var(--fb);font-size:1rem;padding:12px 14px;border:1.5px solid var(--br);border-radius:2px;background:var(--w);color:var(--t);width:100%;transition:border-color .15s,box-shadow .15s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--r);box-shadow:0 0 0 3px rgba(138,48,51,.12)}
.field textarea{resize:vertical;min-height:140px}
.field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23686868' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:40px}
.react-t{margin-top:1.5rem;padding:1rem 1.25rem;background:var(--b);border-left:2px solid var(--r);font-size:.9375rem;color:var(--t2);line-height:1.6}

/* FOOTER */
.foot{background:var(--n);color:var(--od);padding:4.5rem 0 2.5rem}
.foot-in{display:grid;grid-template-columns:1.8fr 1fr 1fr;gap:3rem;padding-bottom:2.5rem;border-bottom:1px solid var(--brd)}
.foot-ln{font-family:var(--fh);font-size:1.25rem;color:#fff}
.foot-ls{font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:3px;font-family:var(--fb)}
.foot-desc{margin-top:1.25rem;font-size:.9375rem;line-height:1.65;color:var(--dm);max-width:32ch}
.foot-ch{font-size:.8125rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--rm);margin-bottom:1.25rem;display:block;font-family:var(--fb)}
.foot-col a{display:block;font-size:.9375rem;color:rgba(255,255,255,.72);margin-bottom:.75rem;transition:color .15s}
.foot-col a:hover{color:#fff}
.foot-base{display:flex;justify-content:space-between;align-items:center;padding-top:1.5rem;font-size:.8125rem;color:rgba(255,255,255,.6);flex-wrap:wrap;gap:.75rem}
.foot-swp{font-size:.875rem;color:rgba(255,255,255,.7)}
.foot-swp a{color:rgba(255,255,255,.85);text-decoration:underline;text-underline-offset:3px}

/* SKIP LINK */
.skip{position:absolute;left:-9999px;top:0;background:var(--w);color:var(--n);padding:.75rem 1.25rem;z-index:200;font-weight:600}
.skip:focus{left:0}

/* RESPONSIVE */
@media(max-width:960px){
  .nav-links,.nav-cta-w{display:none}
  .burger{display:flex}
  .sit-grid,.q-grid,.path-grid,.step-grid,.svc-grid,.two,.bio-grid{grid-template-columns:1fr}
  .sit{border-right:none;border-bottom:1px solid var(--br)}
  .sit:last-child{border-bottom:none}
  .foot-in{grid-template-columns:1fr 1fr}
  .cta-in,.edu-in{flex-direction:column}
}
@media(max-width:640px){
  .sec{padding:4rem 0}
  .sec-sm{padding:2.5rem 0}
  .hero{padding:5rem 0 4rem}
  .hero-bg{opacity:.07}
  .phero{padding:3.5rem 0 3rem}
  .foot-in{grid-template-columns:1fr}
  .f-row{grid-template-columns:1fr}
}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
