:root{
  --bg:#faf6ef; --surface:#f2ead9; --surface-2:#ece0c8;
  --ink:#231f1a; --ink-2:#4a463f; --muted:#7c766a;
  --accent:#bc4b28; --accent-ink:#9c3d20; --accent-bg:rgba(188,75,40,.1); --accent-line:rgba(188,75,40,.28);
  --gold:#725317; --gold-bg:rgba(138,106,31,.1);
  --line:rgba(35,31,26,.12); --line-strong:rgba(35,31,26,.22);
  --shadow:0 18px 44px rgba(35,31,26,.14);
  --radius:18px; --radius-sm:12px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg); color:var(--ink);
  font-family:'DM Sans',sans-serif; font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
h1,h2,h3{font-family:'Fraunces',serif; letter-spacing:-.01em; color:var(--ink)}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.ico{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

/* ── NAV ─────────────────────────────────────────────────────────────── */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(250,246,239,.92); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1160px;margin:0 auto}
.logo{font-family:'Fraunces',serif;font-weight:700;font-size:19px;letter-spacing:-.01em}
.logo span{color:var(--accent)}
.nav-links{display:none;gap:28px;font-size:14px;font-weight:600;color:var(--ink-2)}
.nav-cta{
  background:var(--accent); color:#fff8f2; font-weight:700; font-size:14px;
  padding:11px 20px; border-radius:999px; white-space:nowrap;
  box-shadow:0 6px 16px rgba(188,75,40,.28);
}
@media(min-width:860px){ .nav-links{display:flex} }

/* ── HERO ────────────────────────────────────────────────────────────── */
.hero{position:relative; padding:52px 0 40px; overflow:hidden}
.hero::before{
  content:''; position:absolute; top:-140px; right:-120px; width:480px; height:480px;
  background:radial-gradient(circle,rgba(188,75,40,.16),transparent 70%); border-radius:50%;
}
.hero-grid{display:grid; gap:36px; position:relative}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em; color:var(--accent-ink);
  background:var(--accent-bg); border:1px solid var(--accent-line);
  padding:7px 14px; border-radius:999px; margin-bottom:18px;
}
h1{font-size:clamp(32px,7vw,54px); line-height:1.08; font-weight:700; max-width:15ch}
.hero-sub{font-size:17px; color:var(--ink-2); max-width:46ch; margin-top:18px; line-height:1.65}
.hero-actions{display:flex; flex-direction:column; gap:12px; margin-top:28px; max-width:420px}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-weight:700; font-size:15.5px; padding:16px 24px; border-radius:14px;
  border:none; cursor:pointer; font-family:inherit; transition:transform .15s ease;
  text-decoration:none;
}
.btn:active{transform:scale(.98)}
.btn-primary{ background:var(--accent); color:#fff8f2; box-shadow:0 10px 26px rgba(188,75,40,.32) }
.btn-ghost{ background:var(--surface); color:var(--ink); border:1px solid var(--line-strong) }
.trust-row{display:flex; flex-wrap:wrap; gap:18px; margin-top:22px}
.trust-item{display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--ink-2)}
.trust-item .ico{width:17px;height:17px; color:var(--gold)}

.hero-visual{
  position:relative; border-radius:24px; overflow:hidden;
  background:linear-gradient(155deg,#231f1a 0%,#3a3227 55%,#5a4630 100%);
  min-height:280px; display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow);
}
.hv-pattern{position:absolute;inset:0;opacity:.5}
.hv-badge{
  position:relative; text-align:center; color:#f2ead9; padding:32px;
}
.hv-num{font-family:'Fraunces',serif; font-weight:800; font-size:56px; line-height:1; color:#e8b98a}
.hv-lbl{font-size:13px; font-weight:600; letter-spacing:.04em; margin-top:8px; opacity:.85}
.hv-sep{width:40px;height:1px;background:rgba(242,234,217,.3);margin:20px auto}

@media(min-width:900px){
  .hero-grid{grid-template-columns:1.15fr .85fr; align-items:center; gap:56px}
  .hero-actions{flex-direction:row}
}

/* ── SECTION SHELL ───────────────────────────────────────────────────── */
section{padding:56px 0}
.slbl{
  font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.09em;
  color:var(--accent-ink); margin-bottom:10px;
}
.s-title{font-size:clamp(24px,4vw,34px); font-weight:700; max-width:22ch; line-height:1.18}
.s-sub{color:var(--ink-2); font-size:15.5px; max-width:56ch; margin-top:12px}

/* ── STAPPEN ─────────────────────────────────────────────────────────── */
.steps{display:grid; gap:16px; margin-top:36px}
.step{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:24px; display:flex; gap:16px; align-items:flex-start;
}
.step-n{
  font-family:'Fraunces',serif; font-weight:800; font-size:22px; color:var(--accent);
  background:#fff; width:44px; height:44px; border-radius:50%; display:flex;
  align-items:center; justify-content:center; flex-shrink:0; border:1px solid var(--accent-line);
}
.step h3{font-size:16.5px; margin-bottom:6px}
.step p{font-size:14px; color:var(--ink-2); line-height:1.55}
@media(min-width:760px){ .steps{grid-template-columns:repeat(3,1fr)} }

/* ── DIENSTEN ────────────────────────────────────────────────────────── */
.svc-grid{display:grid; gap:14px; margin-top:36px}
.svc{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:22px; display:flex; gap:14px; align-items:flex-start;
}
.svc .ico-wrap{
  width:40px; height:40px; border-radius:11px; background:var(--accent-bg);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.svc .ico-wrap .ico{color:var(--accent-ink); width:20px; height:20px}
.svc h3{font-size:15.5px; font-weight:700; margin-bottom:4px; font-family:'DM Sans',sans-serif}
.svc p{font-size:13.5px; color:var(--muted); line-height:1.5}
@media(min-width:760px){ .svc-grid{grid-template-columns:repeat(2,1fr)} }
@media(min-width:1040px){ .svc-grid{grid-template-columns:repeat(3,1fr)} }

/* ── WAAROM ──────────────────────────────────────────────────────────── */
.why-band{background:#231f1a; color:#f2ead9; padding:56px 0; margin-top:8px}
.why-band .slbl{color:#e8b98a}
.why-band h2{color:#f2ead9}
.why-grid{display:grid; gap:22px; margin-top:36px}
.why-item{display:flex; gap:14px; align-items:flex-start}
.why-item .ico-circ{
  width:38px; height:38px; border-radius:50%; background:rgba(242,234,217,.1);
  border:1px solid rgba(242,234,217,.2); display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.why-item .ico{color:#e8b98a; width:18px; height:18px}
.why-item h3{color:#f2ead9; font-size:15.5px; font-family:'DM Sans',sans-serif; font-weight:700; margin-bottom:4px}
.why-item p{color:rgba(242,234,217,.68); font-size:13.5px; line-height:1.55}
@media(min-width:760px){ .why-grid{grid-template-columns:repeat(2,1fr)} }

/* ── FORMULIER ───────────────────────────────────────────────────────── */
#offerte{background:var(--surface)}
.form-card{
  background:#fff; border:1px solid var(--line); border-radius:24px;
  padding:32px 24px; box-shadow:var(--shadow); margin-top:36px;
}
.f-row{margin-bottom:16px}
.f-row label{display:block; font-size:13px; font-weight:700; margin-bottom:7px; color:var(--ink-2)}
.f-row input, .f-row select, .f-row textarea{
  width:100%; padding:13px 15px; border-radius:11px; border:1px solid var(--line-strong);
  font-family:inherit; font-size:15px; background:var(--bg); color:var(--ink);
}
.f-row input:focus, .f-row select:focus, .f-row textarea:focus{ outline:2px solid var(--accent); outline-offset:1px }
.f-2col{display:grid; gap:16px}
@media(min-width:560px){ .f-2col{grid-template-columns:1fr 1fr} }
.form-foot{display:flex; flex-direction:column; gap:12px; margin-top:6px}
.form-note{font-size:12px; color:var(--muted); line-height:1.6}
.wa-alt{
  display:flex; align-items:center; justify-content:center; gap:9px;
  background:var(--gold-bg); border:1px solid rgba(138,106,31,.25); color:var(--gold);
  border-radius:12px; padding:13px; font-weight:700; font-size:14px; text-decoration:none;
  margin-top:10px;
}
#form-msg{ display:none; margin-top:14px; padding:14px 16px; border-radius:11px; font-size:14px; font-weight:600 }
#form-msg.ok{ display:block; background:rgba(58,110,60,.1); color:#2e5a30; border:1px solid rgba(58,110,60,.25) }
#form-msg.err{ display:block; background:rgba(188,60,40,.1); color:var(--accent-ink); border:1px solid var(--accent-line) }

/* ── WIJKEN ──────────────────────────────────────────────────────────── */
.wijk-grid{display:flex; flex-wrap:wrap; gap:10px; margin-top:28px}
.wijk-chip{
  background:#fff; border:1px solid var(--line); border-radius:999px; padding:9px 18px;
  font-size:13.5px; font-weight:600; color:var(--ink-2); text-decoration:none;
}
.wijk-chip:hover{border-color:var(--accent-line); color:var(--accent-ink)}

/* ── FOOTER ──────────────────────────────────────────────────────────── */
footer{background:#231f1a; color:rgba(242,234,217,.75); padding:44px 0 28px; font-size:13.5px}
.f-grid{display:grid; gap:28px}
.f-col h4{color:#f2ead9; font-family:'DM Sans',sans-serif; font-size:13.5px; font-weight:700; margin-bottom:12px; text-transform:uppercase; letter-spacing:.06em}
.f-col a{display:block; color:rgba(242,234,217,.65); text-decoration:none; margin-bottom:8px}
.f-col a:hover{color:#e8b98a}
.f-bottom{border-top:1px solid rgba(242,234,217,.14); margin-top:32px; padding-top:20px; display:flex; flex-wrap:wrap; gap:8px 20px; justify-content:space-between; color:rgba(242,234,217,.72); font-size:12px}
@media(min-width:760px){ .f-grid{grid-template-columns:1.4fr 1fr 1fr} }

/* ── MOBILE STICKY CTA ───────────────────────────────────────────────── */
.mobile-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:60;
  background:rgba(250,246,239,.96); backdrop-filter:blur(14px);
  border-top:1px solid var(--line); padding:10px 16px;
  padding-bottom:calc(10px + env(safe-area-inset-bottom));
}
.mobile-cta a{ width:100% }
@media(min-width:760px){ .mobile-cta{display:none} }
body{padding-bottom:74px}
@media(min-width:760px){ body{padding-bottom:0} }
