/* "Jouw woning. Eén compleet plan." — tekst links, voor/na-slider rechts (project.js). */
.project-service{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:64px;align-items:center;padding:80px 6%;background:var(--paper,#fff)}
.project-copy .eyebrow{margin-bottom:16px}
.project-copy h2{margin:0 0 22px}
.project-copy p:not(.eyebrow){max-width:520px}
.project-tags{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 28px}
.project-tags span{display:inline-flex;align-items:center;gap:9px;padding:9px 14px 9px 9px;border:1px solid var(--line,#e8e2dc);border-radius:999px;background:var(--soft,#f7f4f1);font-size:12.5px;color:var(--black);cursor:pointer;transition:border-color .25s,background .25s,color .25s,transform .25s;user-select:none}
.project-tags span i{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#f3ece8;color:var(--black);font-style:normal;font-weight:700;font-size:11px;transition:background .25s,color .25s}
.project-tags span:hover,.project-tags span.is-on{border-color:var(--pink);background:#fdf1f6;transform:translateY(-1px)}
.project-tags span:hover i,.project-tags span.is-on i{background:var(--pink);color:#fff}
.project-tags span:focus-visible{outline:3px solid var(--pink);outline-offset:2px}
.project-cta{box-sizing:border-box;display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:14px 26px;border-radius:999px;background:var(--pink);color:#fff;font-size:14.5px;font-weight:600;text-decoration:none;transition:background .25s,transform .25s,box-shadow .25s;box-shadow:0 10px 24px rgba(214,0,97,.18)}
.project-cta:hover{background:#b90052;transform:translateY(-1px);box-shadow:0 14px 28px rgba(214,0,97,.22)}
.project-cta svg{width:16px;height:16px}
.project-service small{display:block;margin-top:14px;font-size:12px;color:#87786e}

/* Voor/na-slider */
.project-plan{position:relative;min-width:0}
.cmp{--pos:100;--line:#fff}
.cmp-stage{position:relative;aspect-ratio:4/3;border-radius:24px;overflow:hidden;background:#ece7e1;box-shadow:0 24px 54px rgba(41,36,30,.14);isolation:isolate;user-select:none;-webkit-user-select:none;touch-action:pan-y}
.cmp-layer{position:absolute;inset:0}
.cmp-layer img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.cmp-before img{filter:saturate(.85) contrast(.98)}
.cmp-after{clip-path:inset(0 0 0 calc(var(--pos) * 1%))}
.cmp-label{position:absolute;top:16px;z-index:2;padding:8px 14px;border-radius:999px;font:600 11.5px/1 "Helvetica Neue",Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;pointer-events:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.cmp-label--before{left:16px;background:rgba(41,36,30,.55);color:#fff}
.cmp-label--after{right:16px;background:rgba(255,255,255,.82);color:var(--black);box-shadow:0 4px 14px rgba(0,0,0,.12)}
.cmp-label--after em{font-style:normal;color:var(--pink)}
.cmp-line{position:absolute;top:0;bottom:0;left:calc(var(--pos) * 1%);width:2px;margin-left:-1px;background:var(--line);box-shadow:0 0 0 1px rgba(0,0,0,.08),0 0 18px rgba(0,0,0,.35);z-index:3;pointer-events:none}
.cmp-handle{position:absolute;left:50%;top:50%;width:54px;height:54px;transform:translate(-50%,-50%);border-radius:50%;background:#fff;color:var(--black);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(0,0,0,.28);transition:transform .25s,background .25s,color .25s}
.cmp-handle svg{width:24px;height:24px}
.cmp.is-dragging .cmp-handle,.cmp-stage:hover .cmp-handle{transform:translate(-50%,-50%) scale(1.06)}
.cmp.is-dragging .cmp-handle{background:var(--pink);color:#fff}
.cmp-range:focus-visible~.cmp-line .cmp-handle{box-shadow:0 0 0 4px var(--pink),0 10px 26px rgba(0,0,0,.28)}
.cmp-range{position:absolute;inset:0;z-index:4;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none;background:transparent;touch-action:pan-y}
.cmp-range::-webkit-slider-thumb{-webkit-appearance:none;width:2px;height:2px}
.cmp-range::-moz-range-thumb{width:2px;height:2px;border:0;background:transparent}
.cmp-hint{display:flex;align-items:center;gap:8px;margin:14px 0 0;font-size:12.5px;color:#87786e}
.cmp-hint svg{width:18px;height:18px;flex:0 0 auto;color:var(--pink)}

/* Stippen op het "na"-beeld, gekoppeld aan de tags */
.cmp-pins{position:absolute;inset:0;z-index:5;pointer-events:none;clip-path:inset(0 0 0 calc(var(--pos) * 1%))}
.cmp-pin{position:absolute;transform:translate(-50%,-50%);width:28px;height:28px;padding:0;border:0;border-radius:50%;background:transparent;pointer-events:auto;cursor:pointer;opacity:0;transition:opacity .4s}
.cmp.is-revealed .cmp-pin{opacity:1}
.cmp-pin i{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--black);font:700 11px/1 "Helvetica Neue",Arial,sans-serif;font-style:normal;box-shadow:0 4px 14px rgba(0,0,0,.22);transition:background .25s,color .25s,transform .25s}
.cmp-pin::before{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid #fff;opacity:.7;animation:cmp-pulse 2.4s ease-out infinite}
.cmp-pin span{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%,4px);white-space:nowrap;padding:8px 12px;border-radius:10px;background:var(--black);color:#fff;font-size:12px;line-height:1.3;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;box-shadow:0 8px 20px rgba(0,0,0,.2)}
.cmp-pin span::after{content:'';position:absolute;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:var(--black)}
.cmp-pin.is-on i,.cmp-pin:hover i{background:var(--pink);color:#fff;transform:scale(1.12)}
.cmp-pin.is-on span,.cmp-pin:hover span{opacity:1;transform:translate(-50%,0)}
.cmp-pin:focus-visible{outline:0}
.cmp-pin:focus-visible i{box-shadow:0 0 0 3px var(--pink)}
.cmp-pin[data-spot="4"] span,.cmp-pin[data-spot="3"] span{left:auto;right:-8px;transform:translate(0,4px)}
.cmp-pin[data-spot="4"].is-on span,.cmp-pin[data-spot="4"]:hover span,.cmp-pin[data-spot="3"].is-on span,.cmp-pin[data-spot="3"]:hover span{transform:translate(0,0)}
.cmp-pin[data-spot="4"] span::after,.cmp-pin[data-spot="3"] span::after{left:auto;right:16px;margin:0}
@keyframes cmp-pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(2);opacity:0}}

@media(max-width:999px){
  .project-service{grid-template-columns:1fr;gap:36px;padding:56px 6%}
  .project-plan{max-width:680px}
}
@media(max-width:700px){
  .project-service{padding:40px 20px;gap:26px}
  .project-copy h2{font-size:32px}
  .project-tags{gap:8px;margin:20px 0 22px}
  .project-tags span{font-size:12px;padding:7px 12px 7px 7px}
  .project-cta{width:100%;justify-content:center;min-height:48px}
  .cmp-stage{border-radius:14px}
  .cmp-label{top:12px;padding:7px 11px;font-size:10.5px}
  .cmp-label--before{left:12px}
  .cmp-label--after{right:12px}
  .cmp-handle{width:46px;height:46px}
  .cmp-handle svg{width:20px;height:20px}
  .cmp-pin,.cmp-pin i{width:24px;height:24px}
  .cmp-pin i{font-size:10px}
  .cmp-pin span{display:none}
  .cmp-hint{font-size:12px}
}
@media(hover:none){.cmp-stage:hover .cmp-handle{transform:translate(-50%,-50%)}}
@media(prefers-reduced-motion:reduce){.cmp-pin::before{animation:none}.project-tags span,.project-cta,.cmp-handle{transition:none}}
