/* Next Source — styling voor de eigen Elementor-widgets (inc/widgets/). */

/* ---------- Partnerlogo's ---------- */
.ns-partner-logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-8) var(--space-10);align-items:center}
.ns-partner-logos__item{display:flex;align-items:center;justify-content:center}
.ns-partner-logos__item img{max-width:100%;max-height:56px;width:auto;height:auto;object-fit:contain;transition:transform var(--duration-base) var(--ease-standard)}
.ns-partner-logos__item:hover img{transform:scale(1.05)}

/* ---------- Team ---------- */
.ns-team{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-8)}
.ns-team__card{display:flex;flex-direction:column;gap:var(--space-3)}
.ns-team__photo{aspect-ratio:4/5;border-radius:var(--radius-card);overflow:hidden;background:var(--ns-grey-100)}
.ns-team__photo img{width:100%;height:100%;object-fit:cover}
.ns-team__name{font-family:var(--font-display);font-size:var(--size-lg);font-weight:var(--weight-semibold);color:var(--text-strong);margin:0}
.ns-team__role{font-size:var(--size-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ns-teal-700);margin:0}
.ns-team__bio{font-size:var(--size-sm);color:var(--text-muted);margin:0}
.ns-team__linkedin{display:inline-flex;align-items:center;gap:6px;font-size:var(--size-xs);font-weight:var(--weight-semibold);color:var(--ns-navy-900);text-decoration:none;width:fit-content}
.ns-team__linkedin:hover{color:var(--ns-teal-700)}

/* ---------- Tijdlijn (sticky scroll-verhaal) ---------- */
.ns-timeline{display:grid;grid-template-columns:220px 1fr;gap:var(--space-12);align-items:start}
.ns-timeline__index{position:sticky;top:calc(var(--header-h) + var(--space-8));display:flex;flex-direction:column;gap:var(--space-4);list-style:none;margin:0;padding:0;border-left:2px solid var(--border-subtle)}
.ns-timeline__index li{padding:2px 0 2px var(--space-5);font-size:var(--size-xs);font-weight:var(--weight-semibold);color:var(--text-subtle);position:relative;transition:color var(--duration-base) var(--ease-standard)}
.ns-timeline__index li::before{content:"";position:absolute;left:-2px;top:4px;bottom:4px;width:2px;background:transparent;transition:background var(--duration-base) var(--ease-standard)}
.ns-timeline__index li.is-active{color:var(--ns-navy-900)}
.ns-timeline__index li.is-active::before{background:var(--gradient-brand)}
.ns-timeline__steps{display:flex;flex-direction:column;gap:var(--space-20)}
.ns-timeline__step{display:flex;gap:var(--space-6);align-items:flex-start;opacity:.4;transition:opacity var(--duration-slow) var(--ease-standard)}
.ns-timeline__step.is-active{opacity:1}
.ns-timeline__num{flex:0 0 auto;width:52px;height:52px;border-radius:var(--radius-full);background:var(--ns-navy-900);color:var(--ns-white);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--size-md)}
.ns-timeline__step.is-active .ns-timeline__num{background:var(--gradient-brand);color:var(--ns-navy-900)}
.ns-timeline__title{font-family:var(--font-display);font-size:var(--size-xl);font-weight:var(--weight-semibold);color:var(--text-strong);margin:0 0 var(--space-2)}
.ns-timeline__text{font-size:var(--size-sm);color:var(--text-muted);max-width:var(--measure);margin:0}
@media (max-width:860px){.ns-timeline{grid-template-columns:1fr}.ns-timeline__index{display:none}}

/* ---------- Vergelijkingstabel ---------- */
.ns-comparison{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border-radius:var(--radius-card);box-shadow:var(--shadow-sm)}
.ns-comparison th,.ns-comparison td{padding:var(--space-4) var(--space-5);text-align:left;border-bottom:1px solid var(--border-subtle)}
.ns-comparison thead th{font-family:var(--font-display);font-size:var(--size-lg);font-weight:var(--weight-semibold);background:var(--surface-subtle);color:var(--text-strong)}
.ns-comparison thead th .ns-comparison__price{display:block;font-size:var(--size-sm);font-weight:var(--weight-regular);color:var(--text-muted);margin-top:4px}
.ns-comparison thead th.is-highlight{background:var(--gradient-brand);color:var(--ns-navy-900)}
.ns-comparison tbody tr:last-child td{border-bottom:0}
.ns-comparison td.is-highlight{background:var(--ns-teal-100)}
.ns-comparison__yes,.ns-comparison__no{display:inline-flex;width:20px;height:20px;border-radius:var(--radius-full);align-items:center;justify-content:center;font-size:12px;font-weight:var(--weight-bold)}
.ns-comparison__yes{background:var(--ns-teal-100);color:var(--ns-teal-700)}
.ns-comparison__no{background:var(--ns-grey-100);color:var(--ns-grey-400)}
.ns-comparison-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-6)}
.ns-comparison-cards__card{border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}
.ns-comparison-cards__card.is-highlight{background:var(--gradient-navy);color:var(--ns-white)}
.ns-comparison-cards__card.is-highlight .ns-comparison__price{color:rgba(255,255,255,.78)}
.ns-comparison-cards__name{font-family:var(--font-display);font-size:var(--size-lg);font-weight:var(--weight-semibold);margin:0}
.ns-comparison-cards__price{font-size:var(--size-sm);color:var(--text-muted);margin:0}
.ns-comparison-cards__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}
.ns-comparison-cards__list li{display:flex;gap:var(--space-2);align-items:baseline;font-size:var(--size-sm)}
.ns-comparison-cards__card.is-highlight .ns-comparison-cards__list li{color:rgba(255,255,255,.86)}

/* ---------- Besparingscalculator ---------- */
.ns-calculator{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-10);background:var(--surface-subtle);border-radius:var(--radius-card);padding:var(--space-10)}
.ns-calculator__field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-6)}
.ns-calculator__field label{font-size:var(--size-xs);font-weight:var(--weight-semibold);color:var(--text-strong);display:flex;justify-content:space-between}
.ns-calculator__field output{color:var(--ns-teal-700)}
.ns-calculator input[type=range]{width:100%;accent-color:var(--ns-teal-500)}
.ns-calculator__result{background:var(--gradient-navy);color:var(--ns-white);border-radius:var(--radius-card);padding:var(--space-8);display:flex;flex-direction:column;justify-content:center;gap:var(--space-4)}
.ns-calculator__result-value{font-family:var(--font-display);font-size:var(--size-4xl);font-weight:var(--weight-bold);line-height:1}
.ns-calculator__result-label{font-size:var(--size-sm);color:rgba(255,255,255,.78)}
.ns-calculator__note{font-size:var(--size-2xs);color:rgba(255,255,255,.6)}
@media (max-width:760px){.ns-calculator{grid-template-columns:1fr}}

/* ---------- Kerncijfers met tel-animatie ---------- */
.ns-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-8)}

/* ---------- Voor/na-schuifbalk ---------- */
.ns-before-after{position:relative;aspect-ratio:16/9;border-radius:var(--radius-card);overflow:hidden;user-select:none;touch-action:pan-y}
.ns-before-after img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ns-before-after__after{clip-path:inset(0 0 0 var(--ns-ba-pos,50%))}
.ns-before-after__handle{position:absolute;top:0;bottom:0;left:var(--ns-ba-pos,50%);width:3px;background:var(--ns-white);transform:translateX(-50%);cursor:ew-resize}
.ns-before-after__handle::after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;border-radius:var(--radius-full);background:var(--ns-white);box-shadow:var(--shadow-md);transform:translate(-50%,-50%)}
.ns-before-after__handle::before{content:"";position:absolute;top:50%;left:50%;width:14px;height:14px;border-right:2px solid var(--ns-navy-900);border-bottom:2px solid var(--ns-navy-900);transform:translate(-70%,-50%) rotate(-45deg);z-index:1}
.ns-before-after__label{position:absolute;bottom:var(--space-4);padding:6px 14px;border-radius:var(--radius-full);background:rgba(5,29,46,.72);color:var(--ns-white);font-size:var(--size-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase}
.ns-before-after__label--before{left:var(--space-4)}
.ns-before-after__label--after{right:var(--space-4)}

/* ---------- Projectenkaart (Leaflet) ---------- */
.ns-project-map{position:relative;height:520px;border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-sm)}
.ns-project-map .leaflet-container{font-family:var(--font-body);background:var(--ns-grey-100)}
.ns-map-marker{width:16px;height:16px;border-radius:var(--radius-full);background:var(--ns-teal-500);border:3px solid var(--ns-navy-900);box-shadow:0 0 0 4px rgba(41,213,203,.25)}
.ns-map-popup{font-family:var(--font-core)}
.ns-map-popup strong{display:block;font-family:var(--font-display);color:var(--ns-navy-900)}
.ns-map-popup span{font-size:var(--size-2xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-caps)}
