/*
Theme Name: NFC Smart
Theme URI: https://nfcsmart.nl
Author: Onlizo
Author URI: https://onlizo.nl
Description: Webshopthema voor NFC Smart (Google Review Kaart & Display). Inclusief WooCommerce-integratie, Google-bedrijf zoeken, staffelprijzen, upsells en Elementor-widgets.
Version: 2.0.18
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
WC requires at least: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nfcsmart
*/

/* Zelf gehoste lettertypen (geen Google Fonts: sneller en AVG-proof) */
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/plus-jakarta-sans-latin-400-normal.woff2') format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/plus-jakarta-sans-latin-ext-400-normal.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/plus-jakarta-sans-latin-500-normal.woff2') format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/plus-jakarta-sans-latin-ext-500-normal.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url('assets/fonts/plus-jakarta-sans-latin-600-normal.woff2') format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url('assets/fonts/plus-jakarta-sans-latin-ext-600-normal.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url('assets/fonts/plus-jakarta-sans-latin-700-normal.woff2') format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url('assets/fonts/plus-jakarta-sans-latin-ext-700-normal.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 800; font-display: swap; src: url('assets/fonts/plus-jakarta-sans-latin-800-normal.woff2') format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 800; font-display: swap; src: url('assets/fonts/plus-jakarta-sans-latin-ext-800-normal.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }


/* =========================================================
   1. Tokens & basis
   ========================================================= */
:root {
	--ns-ink: #0F1222;
	--ns-body: #333333;
	--ns-muted: #333333;
	--ns-faint: #5C5C5C;
	--ns-line: #ECECF3;
	--ns-line-2: #D9DAE6;
	--ns-bg: #FFFFFF;
	--ns-bg-alt: #FAFAFD;
	--ns-primary: #5B3DF5;
	--ns-primary-dark: #4B2FE0;
	--ns-blue: #3B5BFF;
	--ns-tint: #F1EEFF;
	--ns-tint-2: #F6F4FF;
	--ns-tint-blue: #EAF0FF;
	--ns-green: #16A34A;
	--ns-green-bg: #F0FDF4;
	--ns-green-ink: #14532D;
	--ns-star: #F5B400;
	--ns-grad: linear-gradient(135deg, #6A4BFF, #3B5BFF);
	--ns-radius: 16px;
	--ns-radius-lg: 24px;
	--ns-shadow: 0 14px 40px rgba(40, 30, 120, .07);
	--ns-font: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--ns-bg);
	color: var(--ns-ink);
	font-family: var(--ns-font);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--ns-primary-dark); }
a:hover { color: #3A22B8; }
h1, h2, h3, h4 { color: var(--ns-ink); line-height: 1.15; letter-spacing: -0.02em; }
:focus-visible { outline: 2px solid var(--ns-primary); outline-offset: 2px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.ns-container { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.ns-narrow { max-width: 880px; margin: 0 auto; padding: 0 24px; }
.ns-section { padding: 96px 0; }
.ns-section--alt { background: var(--ns-bg-alt); border-top: 1px solid var(--ns-line); border-bottom: 1px solid var(--ns-line); }
.ns-section--dark { background: var(--ns-ink); color: #FFFFFF; position: relative; overflow: hidden; }
.ns-section--dark h2, .ns-section--dark h3 { color: #FFFFFF; }
.ns-section-head { text-align: center; max-width: 700px; margin: 0 auto 48px; display: flex; flex-direction: column; gap: 14px; align-items: center; }
.ns-section-head p { margin: 0; font-size: 17px; color: var(--ns-muted); }
.ns-section--dark .ns-section-head p { color: #FFFFFF; }

.ns-h1 { margin: 0; font-size: clamp(36px, 5vw, 58px); line-height: 1.06; letter-spacing: -0.035em; font-weight: 800; }
.ns-h2 { margin: 0; font-size: clamp(28px, 3.4vw, 42px); line-height: 1.12; letter-spacing: -0.03em; font-weight: 800; }
.ns-gradient-text { background: var(--ns-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ns-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: var(--ns-primary-dark); background: var(--ns-tint); padding: 6px 12px; border-radius: 999px; }
.ns-section--dark .ns-eyebrow { color: #C9BFFF; background: rgba(255, 255, 255, .08); }
.ns-lead { font-size: 19px; line-height: 1.6; color: var(--ns-muted); margin: 0; }

/* Grids zonder gaten */
.ns-grid { display: grid; gap: 20px; }
.ns-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ns-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ns-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 960px) {
	.ns-grid-3, .ns-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.ns-grid-2, .ns-grid-3, .ns-grid-4 { grid-template-columns: minmax(0, 1fr); }
}

/* Knoppen */
.ns-btn, .woocommerce .ns-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 50px; padding: 0 24px; border-radius: 12px; border: 0;
	font-family: inherit; font-weight: 700; font-size: 15px; line-height: 1.2;
	text-decoration: none; cursor: pointer; transition: transform .15s, box-shadow .15s, background .15s;
}
.ns-btn--primary { background: var(--ns-grad); color: #FFFFFF; box-shadow: 0 10px 24px rgba(91, 61, 245, .28); }
.ns-btn--primary:hover { color: #FFFFFF; transform: translateY(-1px); box-shadow: 0 14px 30px rgba(91, 61, 245, .35); }
.ns-btn--outline { background: #FFFFFF; color: var(--ns-ink); border: 1px solid var(--ns-line-2); }
.ns-btn--outline:hover { color: var(--ns-ink); border-color: var(--ns-primary); }
.ns-btn--white { background: #FFFFFF; color: var(--ns-ink); }
.ns-btn--white:hover { color: var(--ns-ink); }
.ns-btn--lg { min-height: 58px; padding: 0 28px; font-size: 16px; border-radius: 14px; }
.ns-btn--block { width: 100%; }

/* Kaarten & iconen */
.ns-card { background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 20px; transition: box-shadow .2s, transform .2s; }
.ns-card:hover { box-shadow: 0 18px 40px rgba(40, 30, 120, .08); transform: translateY(-2px); }
.ns-pad { padding: 28px; display: flex; flex-direction: column; gap: 12px; }
.ns-pad h3 { margin: 0; font-size: 18px; font-weight: 700; }
.ns-pad p { margin: 0; color: var(--ns-muted); font-size: 15px; line-height: 1.6; }
.ns-icx { width: 60px; height: 60px; border-radius: 18px; background: linear-gradient(145deg, #FFFFFF, #F1EEFF); border: 1px solid #E4DEFF; box-shadow: 0 6px 16px rgba(91, 61, 245, .10); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ns-icx--sm { width: 48px; height: 48px; border-radius: 14px; }
.ns-icx--dark { background: var(--ns-grad); border: 0; box-shadow: none; }
.ns-icx--white { background: #FFFFFF; border: 0; }
.ns-check { display: flex; gap: 10px; align-items: center; }
.ns-ic-check { flex-shrink: 0; filter: drop-shadow(0 2px 4px rgba(91, 61, 245, .25)); }
.ns-check svg { flex-shrink: 0; }
.ns-stars { color: var(--ns-star); letter-spacing: 2px; }

/* =========================================================
   2. Header
   ========================================================= */
.ns-topbar { background: var(--ns-ink); color: #FFFFFF; font-size: 13px; font-weight: 500; }
.ns-topbar .ns-container { display: flex; justify-content: space-between; gap: 8px 24px; flex-wrap: wrap; padding-top: 9px; padding-bottom: 9px; }
.ns-topbar span { display: flex; gap: 8px; align-items: center; }
@media (max-width: 760px) { .ns-topbar .ns-container { justify-content: center; } .ns-topbar span:nth-child(n+3) { display: none; } }

.ns-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .93); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--ns-line); }
.admin-bar .ns-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ns-header { top: 0; } }
.ns-header .ns-container { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 14px; padding-bottom: 14px; }
.ns-logo { display: inline-flex; align-items: center; text-decoration: none; color: var(--ns-ink); line-height: 0; }
.ns-logo-svg { height: 34px; width: auto; display: block; overflow: visible; }
.ns-footer-brand .ns-logo-svg { height: 36px; }
@media (max-width: 560px) { .ns-logo-svg { height: 28px; } }
.ns-logo:hover { color: var(--ns-ink); }
.ns-logo-mark { width: 38px; height: 38px; border-radius: 11px; background: var(--ns-grad); display: flex; align-items: center; justify-content: center; }
.ns-logo img { max-height: 40px; width: auto; }
.ns-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 30px; }
.ns-nav a { color: var(--ns-ink); text-decoration: none; font-weight: 500; font-size: 15px; }
.ns-nav a:hover, .ns-nav .current-menu-item > a { color: var(--ns-primary); }
.ns-header-actions { display: flex; gap: 10px; align-items: center; }
.ns-cart-link { position: relative; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--ns-line-2); display: flex; align-items: center; justify-content: center; }
.ns-cart-count { position: absolute; top: -6px; right: -6px; background: var(--ns-primary); color: #FFFFFF; font-size: 11px; font-weight: 700; min-width: 20px; height: 20px; padding: 0 4px; border-radius: 999px; display: flex; align-items: center; justify-content: center; }
.ns-cart-count[data-count="0"] { display: none; }
.ns-menu-toggle { display: none; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--ns-line-2); background: #FFFFFF; cursor: pointer; align-items: center; justify-content: center; }
@media (max-width: 960px) {
	.ns-menu-toggle { display: flex; }
	.ns-header .ns-btn { display: none; }
	.ns-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #FFFFFF; border-bottom: 1px solid var(--ns-line); box-shadow: 0 20px 40px rgba(15, 18, 34, .08); }
	.ns-nav.is-open { display: block; }
	.ns-nav ul { flex-direction: column; gap: 0; padding: 8px 24px 20px; }
	.ns-nav a { display: block; padding: 12px 0; border-bottom: 1px solid var(--ns-line); }
}

/* =========================================================
   3. Homepage-secties
   ========================================================= */
.ns-hero { position: relative; overflow: hidden; background: radial-gradient(1200px 500px at 85% 0%, #ECE7FF 0%, rgba(255, 255, 255, 0) 60%), radial-gradient(800px 400px at 0% 100%, #EAF0FF 0%, rgba(255, 255, 255, 0) 60%), #FFFFFF; }
.ns-hero .ns-container { padding-top: 72px; padding-bottom: 88px; display: flex; flex-wrap: wrap; gap: 56px; align-items: center; }
.ns-hero-copy { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.ns-hero-pill { display: inline-flex; align-self: flex-start; align-items: center; gap: 10px; background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 999px; padding: 6px 14px 6px 6px; font-size: 13px; font-weight: 600; box-shadow: 0 4px 14px rgba(40, 30, 120, .06); }
.ns-hero-pill b { background: var(--ns-green); color: #FFFFFF; border-radius: 999px; padding: 3px 10px; font-size: 12px; font-weight: 600; }
.ns-hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.ns-hero-meta { display: flex; gap: 14px 22px; flex-wrap: wrap; align-items: center; font-size: 14px; color: var(--ns-body); }
.ns-rating-badge { display: inline-flex; gap: 10px; align-items: center; background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 12px; padding: 8px 12px; box-shadow: 0 4px 14px rgba(40, 30, 120, .06); font-size: 14px; color: var(--ns-body); text-decoration: none; }
.ns-rating-badge strong { color: var(--ns-ink); }
.ns-hero-visual { flex: 1 1 460px; min-width: 0; position: relative; height: 560px; }
.ns-hero-panel { position: absolute; inset: 20px 0 0 40px; border-radius: 32px; background: var(--ns-grad); overflow: hidden; }
.ns-hero-panel::after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .18) 1px, transparent 1px); background-size: 22px 22px; }
.ns-mock-card { position: absolute; left: 0; bottom: 70px; width: 300px; height: 189px; border-radius: 16px; background: #14103A; padding: 20px; display: flex; flex-direction: column; justify-content: space-between; color: #FFFFFF; transform: rotate(-8deg); box-shadow: 0 30px 60px rgba(20, 16, 58, .45); z-index: 2; }
.ns-mock-card .t { font-weight: 800; font-size: 20px; margin-top: 4px; }
.ns-rings { position: absolute; left: 30px; bottom: 130px; width: 120px; height: 120px; z-index: 3; pointer-events: none; }
.ns-rings span { position: absolute; inset: 0; border-radius: 999px; border: 2px solid #7B61FF; animation: nsRing 2.4s ease-out infinite; }
.ns-rings span + span { animation-delay: 1.2s; }
@keyframes nsRing { 0% { transform: scale(.6); opacity: .8; } 100% { transform: scale(1.7); opacity: 0; } }
.ns-mock-phone { position: absolute; right: 36px; top: 54px; width: 240px; height: 470px; border-radius: 40px; background: var(--ns-ink); padding: 10px; box-shadow: 0 40px 80px rgba(15, 18, 34, .35); z-index: 2; animation: nsFloat 5s ease-in-out infinite; }
@keyframes nsFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.ns-mock-screen { width: 100%; height: 100%; border-radius: 31px; background: #FFFFFF; padding: 26px 18px; display: flex; flex-direction: column; gap: 14px; }
.ns-mock-notch { width: 70px; height: 6px; border-radius: 99px; background: var(--ns-line); align-self: center; }
.ns-mock-biz { display: flex; gap: 10px; align-items: center; margin-top: 8px; }
.ns-mock-biz i { width: 38px; height: 38px; border-radius: 999px; background: var(--ns-tint); display: flex; align-items: center; justify-content: center; font-style: normal; font-weight: 800; color: var(--ns-primary); }
.ns-mock-text { border: 1px solid var(--ns-line); border-radius: 12px; padding: 12px; font-size: 12px; color: var(--ns-body); height: 90px; }
.ns-mock-btn { margin-top: auto; background: #1A73E8; color: #FFFFFF; border-radius: 999px; padding: 12px; text-align: center; font-size: 13px; font-weight: 700; }
.ns-chip { position: absolute; background: #FFFFFF; border-radius: 14px; padding: 12px 14px; display: flex; gap: 10px; align-items: center; box-shadow: 0 16px 40px rgba(15, 18, 34, .16); z-index: 4; font-size: 13px; line-height: 1.35; }
.ns-chip strong { display: block; }
.ns-chip span { color: var(--ns-muted); }
@media (prefers-reduced-motion: reduce) { .ns-rings span, .ns-mock-phone { animation: none; } }
@media (max-width: 600px) {
	.ns-hero-visual { height: 460px; transform: scale(.82); transform-origin: top center; margin-bottom: -60px; }
}

.ns-trust { background: var(--ns-bg-alt); border-top: 1px solid var(--ns-line); border-bottom: 1px solid var(--ns-line); }
.ns-trust .ns-container { padding-top: 28px; padding-bottom: 28px; }
.ns-trust-item { display: flex; gap: 14px; align-items: center; }
.ns-trust-item strong { display: block; font-size: 15px; }
.ns-trust-item span { font-size: 13px; color: var(--ns-muted); }

.ns-aeo { background: linear-gradient(135deg, #F6F4FF, #F1F5FF); border: 1px solid #E4DEFF; border-radius: var(--ns-radius-lg); padding: 32px; display: flex; gap: 20px; align-items: flex-start; flex-wrap: wrap; }
.ns-aeo > div { flex: 1 1 480px; min-width: 0; }
.ns-aeo h2 { margin: 0 0 8px; font-size: 20px; font-weight: 800; }
.ns-aeo p { margin: 0; font-size: 17px; line-height: 1.7; color: var(--ns-body); }
.ns-aeo strong { color: var(--ns-ink); }

.ns-product-card { overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 8px 30px rgba(40, 30, 120, .06); }
.ns-product-media { height: 300px; display: flex; align-items: center; justify-content: center; position: relative; }
.ns-product-media--kaart { background: radial-gradient(400px 220px at 50% 60%, #E4DDFF, #F6F4FF); }
.ns-product-media--display { background: radial-gradient(400px 220px at 50% 70%, #DCE6FF, #F2F6FF); align-items: flex-end; padding-bottom: 34px; }
.ns-product-media img { max-height: 260px; width: auto; object-fit: contain; }
.ns-tag { position: absolute; top: 18px; left: 18px; font-size: 12px; font-weight: 700; padding: 6px 12px; border-radius: 999px; }
.ns-tag--dark { background: var(--ns-ink); color: #FFFFFF; }
.ns-tag--light { background: #FFFFFF; border: 1px solid #DCE6FF; color: #1D4ED8; }
.ns-product-body { padding: 30px; display: flex; flex-direction: column; gap: 20px; flex: 1; }
.ns-product-body .ns-btn { margin-top: auto; }
.ns-product-top { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.ns-product-top h3 { margin: 0; font-size: 26px; font-weight: 800; }
.ns-product-top p { margin: 6px 0 0; color: var(--ns-muted); font-size: 15px; }
.ns-price-big { font-size: 28px; font-weight: 800; letter-spacing: -0.02em; white-space: nowrap; }
.ns-price-from { font-size: 13px; color: var(--ns-muted); text-align: right; }
.ns-checks { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; font-size: 14.5px; font-weight: 500; color: var(--ns-ink); }
.ns-tiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ns-tier { border: 1px solid var(--ns-line); border-radius: 14px; padding: 14px; position: relative; }
.ns-tier small { display: block; font-size: 13px; color: var(--ns-muted); }
.ns-tier b { font-size: 20px; font-weight: 800; }
.ns-tier--hl { border: 2px solid var(--ns-primary); background: var(--ns-tint-2); padding: 13px; }
.ns-tier--hl small { color: var(--ns-primary-dark); font-weight: 600; }
.ns-badge-save { position: absolute; top: -10px; right: 10px; background: var(--ns-green); color: #FFFFFF; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
.ns-note { display: flex; gap: 12px; align-items: center; border-radius: 14px; padding: 14px; background: #F2F6FF; font-size: 14px; color: #1E3A8A; }

.ns-dark-glow { position: absolute; inset: 0; background: radial-gradient(700px 300px at 15% 0%, rgba(106, 75, 255, .35), transparent 70%), radial-gradient(600px 300px at 100% 100%, rgba(59, 91, 255, .3), transparent 70%); pointer-events: none; }
.ns-steps { margin: 0; padding: 0; list-style: none; }
.ns-step { background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); border-radius: 20px; padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.ns-step-top { display: flex; justify-content: space-between; align-items: center; }
.ns-step-num { font-size: 40px; font-weight: 800; color: rgba(255, 255, 255, .12); }
.ns-step h3 { margin: 0; font-size: 19px; font-weight: 700; }
.ns-step p { margin: 0; color: #FFFFFF; font-size: 15px; line-height: 1.6; }
.ns-section .ns-container { position: relative; }

.ns-table-wrap { overflow-x: auto; background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 20px; }
.ns-table { width: 100%; min-width: 600px; border-collapse: collapse; font-size: 15px; }
.ns-table th, .ns-table td { padding: 16px 24px; text-align: left; border-top: 1px solid var(--ns-line); }
.ns-table thead th { border-top: 0; padding-top: 20px; padding-bottom: 20px; }
.ns-table .is-us { background: var(--ns-tint-2); }
.ns-table .yes { color: var(--ns-green); font-weight: 700; }
.ns-table .no { color: var(--ns-muted); }

.ns-branch { padding: 22px; display: flex; flex-direction: column; gap: 10px; }
.ns-branch span { font-size: 14px; color: var(--ns-muted); line-height: 1.5; }

.ns-guarantee { border-radius: 24px; padding: 36px; background: var(--ns-grad); color: #FFFFFF; display: flex; flex-direction: column; gap: 16px; }
.ns-guarantee h2 { margin: 0; font-size: 28px; font-weight: 800; color: #FFFFFF; }
.ns-guarantee p { margin: 0; font-size: 16px; line-height: 1.65; color: #E6E0FF; }
.ns-rating-card { border: 1px solid var(--ns-line); border-radius: 24px; padding: 36px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; color: var(--ns-muted); background: #FFFFFF; box-shadow: var(--ns-shadow); }
.ns-rating-score { font-size: 64px; font-weight: 800; color: var(--ns-ink); letter-spacing: -0.04em; line-height: 1; }
.ns-rating-card .ns-stars { font-size: 28px; letter-spacing: 3px; }
.ns-widget-slot { font-size: 13px; border: 1px dashed var(--ns-line-2); border-radius: 10px; padding: 8px 12px; margin-top: 6px; width: 100%; }

.ns-faq-wrap { display: flex; flex-wrap: wrap; gap: 48px; }
.ns-faq-intro { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.ns-faq-list { flex: 2 1 600px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.ns-faq { background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 16px; padding: 20px 24px; }
.ns-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 16px; font-size: 17px; font-weight: 700; }
.ns-faq summary::-webkit-details-marker { display: none; }
.ns-faq summary::after { content: "+"; color: var(--ns-primary); font-size: 22px; line-height: 1; transition: transform .2s; }
.ns-faq[open] summary::after { transform: rotate(45deg); }
.ns-faq p { margin: 12px 0 0; color: var(--ns-body); line-height: 1.7; }

.ns-cta-box { position: relative; overflow: hidden; background: var(--ns-ink); color: #FFFFFF; border-radius: 28px; padding: 64px 48px; display: flex; flex-wrap: wrap; gap: 28px; align-items: center; justify-content: space-between; }
.ns-cta-box::before { content: ""; position: absolute; inset: 0; background: radial-gradient(500px 260px at 90% 50%, rgba(106, 75, 255, .45), transparent 70%); }
.ns-cta-box > * { position: relative; }
.ns-cta-box h2 { color: #FFFFFF; margin: 0 0 12px; }
.ns-cta-box p { margin: 0; color: #FFFFFF; font-size: 17px; }
@media (max-width: 600px) { .ns-cta-box { padding: 40px 24px; } }

/* =========================================================
   4. Footer
   ========================================================= */
.ns-footer { background: var(--ns-ink); color: #FFFFFF; }
.ns-footer a { color: #FFFFFF; text-decoration: none; }
.ns-footer a:hover { color: #FFFFFF; text-decoration: underline; text-underline-offset: 3px; }
.ns-footer-usp { border-bottom: 1px solid rgba(255, 255, 255, .08); }
.ns-footer-usp .ns-container { padding-top: 28px; padding-bottom: 28px; }
.ns-footer-usp-item { display: flex; gap: 14px; align-items: center; font-size: 14px; }
.ns-footer-usp-item strong { display: block; }
.ns-footer-usp-item span.d { color: #FFFFFF; }
.ns-footer-ic { width: 44px; height: 44px; border-radius: 12px; background: rgba(169, 150, 255, .14); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ns-footer-main { display: grid; grid-template-columns: 1.7fr repeat(3, minmax(0, 1fr)) 1.3fr; gap: 40px; padding-top: 56px; padding-bottom: 40px; font-size: 15px; }
@media (max-width: 1000px) { .ns-footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ns-footer-main { grid-template-columns: minmax(0, 1fr); } }
.ns-footer-brand { display: flex; flex-direction: column; gap: 16px; }
.ns-footer-brand .ns-logo { color: #FFFFFF; }
.ns-footer-brand p { margin: 0; color: #FFFFFF; line-height: 1.65; font-size: 14px; max-width: 320px; }
.ns-footer-rating { display: inline-flex; align-self: flex-start; gap: 10px; align-items: center; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); border-radius: 12px; padding: 10px 14px; font-size: 14px; }
.ns-footer-rating .ns-stars { color: #FFC94D; }
.ns-footer-col { display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.ns-footer-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ns-footer-title { font-weight: 700; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; color: #FFFFFF; margin: 0 0 2px; }
.ns-footer-col .d { color: #FFFFFF; line-height: 1.6; }
.ns-footer-pay { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: center; padding-bottom: 28px; }
.ns-paylist { display: flex; gap: 8px; flex-wrap: wrap; }
.ns-pay { background: #FFFFFF; border-radius: 8px; height: 40px; min-width: 58px; padding: 6px 10px; display: inline-flex; align-items: center; justify-content: center; }
.ns-pay img { height: 100%; width: auto; max-width: 84px; object-fit: contain; display: block; }
.ns-pay--ideal img { height: 26px; }
.ns-pay--wero img, .ns-pay--klarna img { height: 18px; }
.ns-pay--visa img { height: 16px; }
.ns-pay--mastercard img, .ns-pay--bancontact img { height: 28px; }
.ns-pay--applepay img { height: 20px; }
.ns-footer-secure { font-size: 13px; color: #FFFFFF; display: flex; gap: 8px; align-items: center; }
.ns-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .08); font-size: 13px; color: #FFFFFF; }
.ns-footer-bottom .ns-row { display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; padding-top: 20px; padding-bottom: 12px; }
.ns-footer-bottom ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 18px; flex-wrap: wrap; }
.ns-footer-bottom a { color: #FFFFFF; }
.ns-footer-disclaimer { font-size: 12px; padding-bottom: 24px; }

/* =========================================================
   5. Productpagina
   ========================================================= */
.ns-breadcrumb { font-size: 13px; color: var(--ns-muted); padding-top: 18px; }
.ns-breadcrumb a { color: var(--ns-muted); }
.ns-pdp { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; padding-top: 24px; padding-bottom: 72px; }
.ns-gallery { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 12px; position: sticky; top: 92px; }
.ns-stage { height: 560px; border-radius: 24px; border: 1px solid var(--ns-line); position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.ns-stage::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(91, 61, 245, .12) 1px, transparent 1px); background-size: 22px 22px; }
.ns-stage--kaart { background: radial-gradient(500px 320px at 50% 55%, #E4DDFF, #F6F4FF); }
.ns-stage--display { background: radial-gradient(500px 320px at 50% 70%, #DCE6FF, #F2F6FF); align-items: flex-end; padding-bottom: 80px; }
.ns-stage img { position: relative; max-height: 480px; width: auto; object-fit: contain; }
.ns-live { position: absolute; left: 16px; top: 16px; background: #FFFFFF; border-radius: 999px; padding: 7px 12px; font-size: 12px; font-weight: 600; display: flex; gap: 6px; align-items: center; box-shadow: 0 6px 16px rgba(15, 18, 34, .08); z-index: 2; }
.ns-live i { width: 8px; height: 8px; border-radius: 999px; background: var(--ns-green); }
.ns-preview-card { position: relative; width: 420px; max-width: 82%; aspect-ratio: 1.586; border-radius: 20px; background: #14103A; transform: rotate(-5deg); padding: 28px; display: flex; flex-direction: column; justify-content: space-between; color: #FFFFFF; box-shadow: 0 40px 70px rgba(20, 16, 58, .35); }
.ns-preview-card .n { font-weight: 700; font-size: 21px; line-height: 1.2; }
.ns-preview-card .t { font-size: 25px; font-weight: 800; margin-top: 6px; line-height: 1.15; }
.ns-qr { width: 56px; height: 56px; background: #FFFFFF; color: var(--ns-ink); border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.ns-preview-display { position: relative; display: flex; flex-direction: column; align-items: center; }
.ns-preview-display .face { width: 250px; height: 320px; border-radius: 20px 20px 6px 6px; background: #FFFFFF; border: 1px solid #C9D6FB; box-shadow: 0 40px 70px rgba(37, 99, 235, .25); padding: 26px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; text-align: center; }
.ns-preview-display .base { width: 290px; height: 18px; border-radius: 6px; background: #FFFFFF; border: 1px solid #C9D6FB; }
.ns-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.ns-thumbs > * { aspect-ratio: 1; border-radius: 14px; background: var(--ns-bg-alt); border: 1px solid var(--ns-line); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.ns-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.ns-thumb { cursor: pointer; padding: 0; border: 2px solid var(--ns-line) !important; }
.ns-thumb.is-active { border-color: var(--ns-primary) !important; }
@media (max-width: 960px) { .ns-gallery { position: static; } .ns-stage { height: 420px; } }

.ns-buybox { flex: 1 1 440px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.ns-buybox h1 { margin: 0; font-size: clamp(32px, 3.5vw, 42px); line-height: 1.1; letter-spacing: -0.03em; font-weight: 800; }
.ns-buybox .ns-short { margin: 0; font-size: 16px; line-height: 1.65; color: var(--ns-muted); }
.ns-buybox .ns-short p { margin: 0; }
.ns-badges { display: flex; gap: 8px; flex-wrap: wrap; }
.ns-badge { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; padding: 6px 11px; border-radius: 999px; line-height: 1; }
.ns-badge.is-dark { background: var(--ns-ink); color: #FFFFFF; }
.ns-badge.is-green { background: var(--ns-green-bg); color: var(--ns-green-ink); box-shadow: inset 0 0 0 1px #BBF7D0; }
.ns-badge i { font-style: normal; }
.ns-badge-star { color: #FFC94D; font-size: 13px; }
.ns-badge-dot { width: 7px; height: 7px; border-radius: 999px; background: var(--ns-green); box-shadow: 0 0 0 3px rgba(22, 163, 74, .18); }
.ns-rating-line { display: flex; gap: 8px; align-items: center; font-size: 14px; color: var(--ns-body); text-decoration: none; }
.ns-rating-line strong { color: var(--ns-ink); }
.ns-rating-line u { text-decoration: underline; }
.ns-step-title { margin: 0; font-size: 16px; font-weight: 700; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.ns-step-title small { font-weight: 400; font-size: 13px; color: var(--ns-muted); }
.ns-field-group { display: flex; flex-direction: column; gap: 10px; }

.ns-packs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ns-packs--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 560px) { .ns-packs--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ns-pack { position: relative; display: block; cursor: pointer; }
.ns-pack input { position: absolute; opacity: 0; pointer-events: none; }
.ns-pack-box { display: flex; flex-direction: column; gap: 4px; padding: 18px 14px; border-radius: 16px; border: 2px solid var(--ns-line); background: #FFFFFF; transition: border-color .15s, background .15s, box-shadow .15s; height: 100%; }
.ns-pack-box .l { font-size: 14px; font-weight: 600; }
.ns-pack-box .p { font-size: 24px; font-weight: 800; letter-spacing: -0.02em; }
.ns-pack-box .s { font-size: 13px; color: var(--ns-muted); }
.ns-pack input:checked + .ns-pack-box { border-color: var(--ns-primary); background: var(--ns-tint-2); box-shadow: 0 8px 20px rgba(91, 61, 245, .12); }
.ns-pack input:focus-visible + .ns-pack-box { outline: 2px solid var(--ns-primary); outline-offset: 2px; }
.ns-pack .ns-badge-save { right: 12px; top: -11px; }
.ns-packs--4 .ns-pack-box { align-items: center; text-align: center; padding: 14px 8px; min-height: 72px; }
.ns-packs--4 .ns-pack-box .p { font-size: 17px; }
.ns-packs--4 .ns-badge-save { left: 50%; right: auto; transform: translateX(-50%); white-space: nowrap; }

.ns-qty { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ns-qty-box { display: inline-flex; align-items: center; border: 1px solid var(--ns-line-2); border-radius: 12px; }
.ns-qty-box button { width: 44px; height: 44px; background: transparent; border: 0; font-size: 18px; cursor: pointer; color: var(--ns-ink); }
.ns-qty-box input { width: 44px; text-align: center; border: 0; font-weight: 700; font-size: 16px; font-family: inherit; -moz-appearance: textfield; }
.ns-qty-box input::-webkit-outer-spin-button, .ns-qty-box input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.ns-lookup { display: flex; flex-direction: column; gap: 14px; background: var(--ns-bg-alt); border: 1px solid var(--ns-line); border-radius: 18px; padding: 22px; }
.ns-lookup-head { display: flex; gap: 12px; align-items: flex-start; }
.ns-lookup-head h2 { margin: 0; font-size: 16px; font-weight: 700; letter-spacing: 0; }
.ns-lookup-head p { margin: 4px 0 0; font-size: 14px; color: var(--ns-muted); line-height: 1.5; }
.ns-input, .ns-lookup input[type="text"], .ns-lookup input[type="search"], .ns-lookup input[type="url"] {
	width: 100%; height: 50px; border-radius: 12px; border: 1px solid var(--ns-line-2); background: #FFFFFF;
	padding: 0 14px; font-size: 16px; font-family: inherit; color: var(--ns-ink);
}
.ns-input::placeholder { color: var(--ns-faint); }
.ns-label { font-size: 13px; font-weight: 600; display: block; margin-bottom: 6px; }
.ns-label small { font-weight: 400; color: var(--ns-muted); }
.ns-search { position: relative; }
.ns-search svg { position: absolute; left: 14px; top: 15px; pointer-events: none; }
.ns-search input { padding-left: 44px !important; }
.ns-results { margin-top: 6px; background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 14px; box-shadow: 0 16px 40px rgba(15, 18, 34, .12); overflow: hidden; }
.ns-results[hidden] { display: none; }
.ns-result { width: 100%; display: flex; gap: 12px; align-items: center; padding: 12px 14px; background: #FFFFFF; border: 0; border-bottom: 1px solid #F1F1F6; cursor: pointer; text-align: left; color: var(--ns-ink); min-height: 60px; font-family: inherit; }
.ns-result:hover, .ns-result:focus { background: var(--ns-tint-2); }
.ns-result i { width: 36px; height: 36px; border-radius: 10px; background: var(--ns-tint); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ns-result b { display: block; font-size: 15px; }
.ns-result small { font-size: 13px; color: var(--ns-muted); }
.ns-results-foot { padding: 8px 14px; font-size: 11px; color: var(--ns-muted); text-align: right; background: var(--ns-bg-alt); }
.ns-results-msg { padding: 14px; font-size: 14px; color: var(--ns-muted); }
.ns-linkbtn { align-self: flex-start; background: transparent; border: 0; color: var(--ns-primary-dark); font-weight: 600; font-size: 14px; cursor: pointer; padding: 0; min-height: 40px; text-decoration: underline; font-family: inherit; }
.ns-manual { display: flex; flex-direction: column; gap: 12px; }
.ns-manual[hidden] { display: none; }
.ns-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ns-picked { background: #FFFFFF; border: 2px solid var(--ns-green); border-radius: 14px; padding: 16px; display: flex; gap: 14px; align-items: flex-start; }
.ns-picked[hidden] { display: none; }
.ns-picked-ok { width: 36px; height: 36px; border-radius: 999px; background: #DCFCE7; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ns-picked-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ns-picked-body small { font-size: 14px; color: var(--ns-muted); }
.ns-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.ns-chips span { font-size: 12px; font-weight: 600; padding: 4px 8px; border-radius: 999px; }
.ns-chips .g { background: var(--ns-green-bg); color: var(--ns-green-ink); }
.ns-chips .p { background: var(--ns-tint); color: var(--ns-primary-dark); }
.ns-picked button { background: transparent; border: 1px solid var(--ns-line-2); border-radius: 10px; padding: 0 12px; min-height: 40px; font-weight: 600; cursor: pointer; color: var(--ns-ink); font-family: inherit; }
.ns-error { background: #FFF1F0; border: 1px solid #F3B4AE; color: #9B1C14; border-radius: 12px; padding: 12px 14px; font-size: 14px; }
.ns-error[hidden] { display: none; }

.ns-upsell { display: flex; gap: 14px; align-items: center; padding: 14px; border-radius: 16px; border: 2px dashed #C9BFFF; background: #FFFFFF; cursor: pointer; min-height: 88px; }
.ns-upsell input { width: 22px; height: 22px; accent-color: var(--ns-primary); flex-shrink: 0; }
.ns-upsell:has(input:checked) { border-style: solid; border-color: var(--ns-primary); background: var(--ns-tint-2); }
.ns-upsell-media { width: 60px; height: 60px; border-radius: 12px; background: var(--ns-tint-blue); flex-shrink: 0; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 8px; }
.ns-upsell-media span { width: 26px; height: 34px; border: 1.5px solid var(--ns-blue); border-radius: 4px 4px 1px 1px; background: #FFFFFF; }
.ns-upsell-text { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.ns-upsell-text b { font-size: 15px; }
.ns-upsell-text small { font-size: 13px; color: var(--ns-muted); }
.ns-upsell-price { font-weight: 800; font-size: 16px; white-space: nowrap; }

.ns-total { display: flex; flex-direction: column; gap: 12px; border-top: 1px solid var(--ns-line); padding-top: 22px; }
.ns-total-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ns-total-row > span { font-size: 16px; color: var(--ns-muted); }
.ns-total-amount { font-size: 34px; font-weight: 800; letter-spacing: -0.02em; }
.ns-ship { background: var(--ns-green-bg); border-radius: 12px; padding: 12px 14px; font-size: 14px; color: var(--ns-green-ink); display: flex; gap: 8px; align-items: center; }
.ns-ship strong { font-weight: 700; }
.ns-add { width: 100%; min-height: 60px; font-size: 17px; font-weight: 800; border-radius: 14px; }
.ns-mini-badges { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ns-mini-badges div { border: 1px solid var(--ns-line); border-radius: 12px; padding: 12px 8px; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; font-size: 12px; color: var(--ns-body); }

.ns-howto { background: var(--ns-bg-alt); border-top: 1px solid var(--ns-line); border-bottom: 1px solid var(--ns-line); padding: 72px 0; }
.ns-howto h2 { text-align: center; margin: 0 0 32px; font-size: 30px; font-weight: 800; }
.ns-content-wrap { padding: 80px 0; }
.ns-content { font-size: 17px; line-height: 1.75; color: var(--ns-body); display: flex; flex-direction: column; gap: 16px; }
.ns-content > * { margin-top: 0; margin-bottom: 0; }
.ns-content h2 { margin-top: 24px; font-size: 28px; line-height: 1.25; font-weight: 800; }
.ns-content h3 { margin-top: 8px; font-size: 21px; font-weight: 700; }
.ns-content strong { color: var(--ns-ink); }
.ns-content ul.ns-list-check { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 16px; }
@media (max-width: 760px) { .ns-content ul.ns-list-check { grid-template-columns: minmax(0, 1fr); } }
.ns-content ul.ns-list-check li { padding-left: 26px; position: relative; }
.ns-content ul.ns-list-check li { padding-left: 30px; }
.ns-content ul.ns-list-check li::before { content: ""; position: absolute; left: 0; top: .2em; width: 18px; height: 18px; border-radius: 999px; background: #5B3DF5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.2 12.4l3.2 3.2 6.4-7' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat; }
.ns-content table { width: 100%; border-collapse: collapse; font-size: 15px; border: 1px solid var(--ns-line); border-radius: 16px; overflow: hidden; }
.ns-content th, .ns-content td { padding: 12px 18px; text-align: left; border-top: 1px solid var(--ns-line); }

.ns-specs { border: 1px solid var(--ns-line); border-radius: 24px; padding: 32px; background: #FFFFFF; box-shadow: 0 14px 40px rgba(40, 30, 120, .05); }
.ns-specs-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 22px; }
.ns-specs-head h2 { margin: 0; font-size: 28px; font-weight: 800; }
.ns-specs-head span { font-size: 14px; color: var(--ns-muted); }
.ns-specs dl { margin: 0; gap: 12px; }
.ns-specs dl > div { background: var(--ns-bg-alt); border: 1px solid var(--ns-line); border-radius: 14px; padding: 16px 18px; }
.ns-specs dt { font-size: 13px; color: var(--ns-muted); }
.ns-specs dd { margin: 4px 0 0; font-weight: 700; font-size: 16px; }

.ns-reviews-block { background: var(--ns-bg-alt); border-top: 1px solid var(--ns-line); border-bottom: 1px solid var(--ns-line); margin-bottom: 80px; }
.ns-reviews-block .ns-container { padding-top: 72px; padding-bottom: 72px; display: flex; flex-wrap: wrap; gap: 28px; align-items: stretch; }
.ns-reviews-block .ns-rating-card { flex: 1 1 320px; min-width: 0; }
.ns-reviews-side { flex: 2 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.ns-reviews-side h2 { margin: 0; font-size: 30px; font-weight: 800; }
.ns-tile { background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 18px; padding: 20px; display: flex; gap: 14px; align-items: flex-start; }
.ns-tile strong { display: block; font-size: 16px; }
.ns-tile span.d { font-size: 14px; color: var(--ns-muted); line-height: 1.5; }
.ns-bar-cta { background: var(--ns-grad); color: #FFFFFF; border-radius: 18px; padding: 22px 24px; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; }
.ns-bar-cta strong { display: block; font-size: 18px; }
.ns-bar-cta span { font-size: 14px; color: #E6E0FF; }
.ns-faq-section { padding-bottom: 96px; }
.ns-faq-section h2 { margin: 0 0 8px; font-size: 32px; font-weight: 800; }
.ns-faq-section > .ns-narrow > p { margin: 0 0 24px; color: var(--ns-muted); }

/* Drawer na toevoegen */
.ns-drawer { position: fixed; inset: 0; background: rgba(15, 18, 34, .4); z-index: 9999; display: flex; justify-content: flex-end; }
.ns-drawer[hidden] { display: none; }
.ns-drawer-panel { width: 440px; max-width: 100%; height: 100%; background: #FFFFFF; padding: 28px; display: flex; flex-direction: column; gap: 18px; overflow-y: auto; box-shadow: -20px 0 60px rgba(15, 18, 34, .15); }
.ns-drawer-head { display: flex; justify-content: space-between; align-items: center; font-weight: 800; font-size: 19px; }
.ns-drawer-close { width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--ns-line-2); background: #FFFFFF; cursor: pointer; font-size: 16px; }
.ns-drawer-item { border: 1px solid var(--ns-line); border-radius: 14px; padding: 14px; display: flex; gap: 14px; align-items: center; }
.ns-drawer-up { background: linear-gradient(135deg, #F6F4FF, #EEF3FF); border: 1px solid #DCD3FF; border-radius: 18px; padding: 22px; display: flex; flex-direction: column; gap: 12px; }
.ns-drawer-up .k { font-size: 12px; font-weight: 700; color: var(--ns-primary-dark); text-transform: uppercase; letter-spacing: .04em; }
.ns-drawer-up .h { font-size: 20px; font-weight: 800; line-height: 1.25; }
.ns-drawer-foot { margin-top: auto; display: flex; flex-direction: column; gap: 10px; }

/* =========================================================
   6. WooCommerce (winkelwagen, checkout, bedankt, meldingen)
   ========================================================= */
.ns-page { padding: 48px 0 96px; }
.ns-page-title { margin: 0 0 24px; font-size: 34px; font-weight: 800; letter-spacing: -0.03em; }
.woocommerce-notices-wrapper .woocommerce-message, .woocommerce-notices-wrapper .woocommerce-info, .woocommerce-notices-wrapper .woocommerce-error,
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info, .woocommerce .woocommerce-error {
	border: 1px solid var(--ns-line); border-left: 4px solid var(--ns-primary); background: #FFFFFF; border-radius: 12px; padding: 14px 18px; list-style: none; margin: 0 0 20px;
}
.woocommerce .woocommerce-error { border-left-color: #DC2626; }
.woocommerce .woocommerce-message::before, .woocommerce .woocommerce-info::before, .woocommerce .woocommerce-error::before { display: none; }

.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
	background: var(--ns-grad); color: #FFFFFF; border-radius: 12px; padding: 14px 22px; font-weight: 700; font-family: inherit; border: 0; box-shadow: 0 10px 24px rgba(91, 61, 245, .22);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--ns-primary-dark); color: #FFFFFF; }
.woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled] { opacity: .6; }

.ns-cart-layout { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; }
.woocommerce-cart .woocommerce { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; }
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { flex: 1 1 100%; }
.woocommerce-cart .woocommerce-cart-form { flex: 2 1 620px; min-width: 0; }
.woocommerce-cart .cart-collaterals { flex: 1 1 340px; min-width: 0; width: auto !important; float: none !important; }
.woocommerce-cart .cart-collaterals .cart_totals { width: 100% !important; float: none !important; background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 18px; padding: 24px; box-shadow: var(--ns-shadow); }
.woocommerce table.shop_table { border: 1px solid var(--ns-line); border-radius: 18px; border-collapse: separate; overflow: hidden; background: #FFFFFF; }
.woocommerce table.shop_table th { font-weight: 700; }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-top: 1px solid var(--ns-line); padding: 16px; }
.woocommerce table.shop_table td.product-name dl.variation { font-size: 13px; color: var(--ns-muted); }
.woocommerce table.shop_table td.product-name dl.variation dt { font-weight: 600; }
.woocommerce-cart table.cart img { width: 72px; border-radius: 10px; }
.woocommerce .quantity .qty { width: 64px; height: 44px; border: 1px solid var(--ns-line-2); border-radius: 10px; font-family: inherit; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .woocommerce .select2-container .select2-selection--single, #coupon_code {
	min-height: 48px; border: 1px solid var(--ns-line-2); border-radius: 12px; padding: 10px 14px; font-family: inherit; font-size: 15px; background: #FFFFFF;
}
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 26px; }
.woocommerce form .form-row label { font-weight: 600; font-size: 13px; }
.woocommerce-checkout .woocommerce { }
.woocommerce-checkout form.checkout { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; }
.woocommerce-checkout form.checkout > .col2-set { flex: 2 1 600px; min-width: 0; width: auto; float: none; background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 18px; padding: 24px; }
.woocommerce-checkout form.checkout > .col2-set .col-1, .woocommerce-checkout form.checkout > .col2-set .col-2 { width: 100%; float: none; }
.woocommerce-checkout form.checkout > #order_review_heading { display: none; }
.woocommerce-checkout form.checkout > #order_review { flex: 1 1 360px; min-width: 0; background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 18px; padding: 24px; box-shadow: var(--ns-shadow); position: sticky; top: 100px; }
.woocommerce-checkout #payment { background: var(--ns-bg-alt) !important; border-radius: 14px !important; }
.woocommerce-checkout #place_order { width: 100%; min-height: 58px; font-size: 17px; }

.ns-cartbar { background: var(--ns-green-bg); border: 1px solid #BBF7D0; border-radius: 16px; padding: 14px 18px; color: var(--ns-green-ink); font-weight: 600; display: flex; gap: 10px; align-items: center; margin-bottom: 18px; }
.ns-bump { background: linear-gradient(135deg, #F6F4FF, #EEF3FF); border: 2px dashed #B9A9FF; border-radius: 18px; padding: 20px; display: flex; flex-wrap: wrap; gap: 18px; align-items: center; margin: 20px 0; }
.ns-bump-text { flex: 1 1 280px; min-width: 0; }
.ns-bump-text .k { font-size: 12px; font-weight: 700; color: var(--ns-primary-dark); text-transform: uppercase; letter-spacing: .04em; }
.ns-bump-text b { display: block; font-size: 17px; margin-top: 2px; }
.ns-bump-text span { font-size: 14px; color: var(--ns-muted); }
.ns-business-box { background: var(--ns-tint-2); border: 1px solid #E4DEFF; border-radius: 14px; padding: 14px 16px; font-size: 14px; color: var(--ns-body); margin-bottom: 20px; flex: 1 1 100%; }
.ns-business-box strong { color: var(--ns-ink); }

.ns-thanks { display: flex; flex-direction: column; gap: 20px; margin: 0 0 28px; }
.ns-offer { background: #FFFFFF; border: 2px solid var(--ns-primary); border-radius: 20px; padding: 28px; display: flex; flex-wrap: wrap; gap: 24px; align-items: center; box-shadow: 0 20px 50px rgba(91, 61, 245, .12); }
.ns-offer > div:first-child { flex: 1 1 360px; display: flex; flex-direction: column; gap: 8px; }
.ns-offer .k { font-size: 12px; font-weight: 700; color: var(--ns-primary-dark); text-transform: uppercase; letter-spacing: .04em; }
.ns-offer .h { font-size: 24px; font-weight: 800; letter-spacing: -0.02em; }
.ns-offer s { font-size: 16px; color: var(--ns-faint); font-weight: 500; }
.ns-timeline { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.ns-timeline li { display: flex; gap: 14px; align-items: flex-start; }
.ns-timeline i { width: 28px; height: 28px; border-radius: 999px; background: var(--ns-tint); color: var(--ns-primary-dark); font-size: 13px; font-weight: 700; font-style: normal; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ns-timeline li:first-child i { background: var(--ns-primary); color: #FFFFFF; }

/* Elementor: secties zonder extra padding */
.elementor-widget[class*="elementor-widget-nfcs_"] > .elementor-widget-container { margin: 0; padding: 0; }

/* Generieke pagina's */
.ns-entry { padding: 56px 0 96px; }
.ns-entry h1 { font-size: clamp(30px, 4vw, 42px); font-weight: 800; letter-spacing: -0.03em; margin: 0 0 24px; }
.ns-entry .entry-content { font-size: 17px; line-height: 1.75; color: var(--ns-body); }

/* ---------- Productmockups (naar de echte producten) ---------- */
.ns-pm { --pmr: #EA4335; --pmy: #F2A33A; --pmg: #34A853; --pmb: #4285F4; font-size: var(--pm, 16px); font-family: var(--ns-font, "Plus Jakarta Sans", sans-serif); color: #24262E; display: inline-flex; flex-direction: column; align-items: center; position: relative; line-height: 1.1; text-align: center; }
.ns-pm-kaart { width: 13.5em; aspect-ratio: 54 / 85.6; background: #FFFFFF; border-radius: .9em; padding: 1.5em 1.1em 1.1em; justify-content: space-between; box-shadow: 0 0 0 1px rgba(15, 18, 34, .06), 0 2em 3.5em rgba(20, 16, 58, .22); }
.ns-pm-brand { display: block; line-height: 0; color: #24262E; }
.ns-pm-brand .ns-logo-svg { height: 1.5em; width: auto; }
.ns-pm-waves { position: absolute; right: -.55em; top: -.45em; width: .7em; height: .7em; }
.ns-pm-title { font-size: 1.12em; font-weight: 700; color: #33353D; }
.ns-pm-ring { width: 8.4em; aspect-ratio: 1; border-radius: 50%; padding: .26em; background: conic-gradient(var(--pmr) 0 25%, var(--pmy) 25% 50%, var(--pmg) 50% 75%, var(--pmb) 75% 100%); display: block; flex-shrink: 0; }
.ns-pm-ring-in { width: 100%; height: 100%; border-radius: 50%; background: #FFFFFF; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .12em; }
.ns-pm-nfc { font-size: .62em; font-weight: 500; margin-bottom: -.4em; margin-left: 1.6em; }
.ns-pm-tap { width: 2.6em; height: 2.6em; display: block; }
.ns-pm-taphere { font-size: .8em; font-weight: 500; }
.ns-pm-g { font-size: 1.45em; font-weight: 600; letter-spacing: -.01em; color: #3C4043; }
.ns-pm-stars { font-size: 1.45em; letter-spacing: .08em; color: var(--pmy); }
.ns-pm-bar { display: block; width: 100%; height: .42em; background: linear-gradient(90deg, var(--pmr) 0 25%, var(--pmg) 25% 50%, var(--pmb) 50% 75%, var(--pmy) 75% 100%); }
.ns-pm-bar--rev { background: linear-gradient(90deg, var(--pmb) 0 25%, var(--pmg) 25% 50%, var(--pmy) 50% 75%, var(--pmr) 75% 100%); }
.ns-pm-url { font-size: .74em; font-weight: 800; letter-spacing: .05em; color: #15161B; }
.ns-pm-display { width: 15em; }
.ns-pm-face { width: 14em; aspect-ratio: 0.64; background: #FFFFFF; border-radius: .7em .7em .3em .3em; padding: 1.3em 1em 1em; display: flex; flex-direction: column; align-items: center; justify-content: space-between; box-shadow: inset 0 0 0 1px rgba(15, 18, 34, .07), .38em .3em 0 #E4E8F1, 0 2.2em 3.5em rgba(37, 60, 140, .22); }
.ns-pm-display .ns-pm-title { font-size: .98em; white-space: nowrap; }
.ns-pm-ring--sm { width: 4.8em; padding: .55em; }
.ns-pm-ring--sm .ns-pm-g { font-size: .82em; }
.ns-pm-display .ns-pm-stars { font-size: 1.5em; }
.ns-pm-qrwrap { display: block; padding: .45em; border-radius: .3em; position: relative; background: linear-gradient(#0F1222, #0F1222) top left / .9em 2px no-repeat, linear-gradient(#0F1222, #0F1222) top left / 2px .9em no-repeat, linear-gradient(#0F1222, #0F1222) top right / .9em 2px no-repeat, linear-gradient(#0F1222, #0F1222) top right / 2px .9em no-repeat, linear-gradient(#0F1222, #0F1222) bottom left / .9em 2px no-repeat, linear-gradient(#0F1222, #0F1222) bottom left / 2px .9em no-repeat, linear-gradient(#0F1222, #0F1222) bottom right / .9em 2px no-repeat, linear-gradient(#0F1222, #0F1222) bottom right / 2px .9em no-repeat; }
.ns-pm-qr { width: 5.6em; height: 5.6em; display: block; }
.ns-pm-actions { display: flex; align-items: center; gap: .3em; }
.ns-pm-actions b { font-size: .82em; font-weight: 500; }
.ns-pm-actions em { font-size: .72em; font-style: normal; }
.ns-pm-actions .ns-pm-tap { width: 2.1em; height: 2.1em; }
.ns-pm-base { display: block; width: 15em; height: 1em; margin-top: -.15em; border-radius: .25em; background: linear-gradient(#F4F6FA, #D9DEE8); box-shadow: 0 1em 1.6em rgba(37, 60, 140, .18); }
.ns-pm.is-tilt { transform: rotate(-6deg); }
.ns-pm, .ns-pm * { text-decoration: none !important; }
.ns-hero-visual .ns-pm-kaart { position: absolute; left: 6px; bottom: 40px; z-index: 3; transform: rotate(-8deg); }
.ns-linked { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); background: #FFFFFF; border-radius: 999px; padding: 8px 14px; font-size: 13px; display: flex; gap: 8px; align-items: center; box-shadow: 0 8px 22px rgba(15, 18, 34, .1); z-index: 2; max-width: calc(100% - 32px); white-space: nowrap; }
.ns-linked span { color: var(--ns-muted); }
.ns-linked b { overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 960px) { .ns-stage .ns-pm-kaart { --pm: 15px !important; } .ns-stage .ns-pm-display { --pm: 14px !important; } }
.ns-footer .ns-logo:hover { text-decoration: none; }

/* Mobiele bestelbalk */
.ns-sticky-buy { display: none; }
@media (max-width: 960px) {
	.ns-sticky-buy { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: #FFFFFF; border-top: 1px solid var(--ns-line); box-shadow: 0 -10px 30px rgba(15, 18, 34, .1); padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); gap: 12px; align-items: center; justify-content: space-between; transform: translateY(110%); transition: transform .25s ease; }
	.ns-sticky-buy.is-on { transform: none; }
	.ns-sticky-info { display: flex; flex-direction: column; min-width: 0; font-size: 13px; line-height: 1.3; }
	.ns-sticky-info strong { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.ns-sticky-info span { color: var(--ns-muted); }
	.ns-sticky-info [data-ns-total-sticky] { color: var(--ns-ink); font-weight: 700; }
	.ns-sticky-buy .ns-btn { flex-shrink: 0; padding-left: 22px; padding-right: 22px; min-height: 46px; }
}
@media (prefers-reduced-motion: reduce) { .ns-sticky-buy { transition: none; } }
/* Grotere tikvlakken in de footer */
.ns-footer-col a, .ns-footer-bottom a { display: inline-block; padding: 3px 0; }
.ns-footer-col ul { gap: 6px; }
@media (max-width: 960px) { .single-product .ns-footer { padding-bottom: 72px; } }

/* ---------- Contactpagina ---------- */
.ns-contact-hero { background: radial-gradient(800px 300px at 80% 0%, #EEE9FF, transparent 70%), #FAFAFE; border-bottom: 1px solid var(--ns-line); padding-bottom: 48px; }
.ns-contact-hero h1 { font-size: clamp(30px, 4.4vw, 48px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.08; margin: 22px 0 12px; color: var(--ns-ink); }
.ns-contact-hero p { font-size: 18px; color: var(--ns-body); max-width: 620px; margin: 0; line-height: 1.6; }
.ns-contact { padding-top: 48px; }
.ns-contact-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 28px; align-items: start; }
@media (max-width: 900px) { .ns-contact-grid { grid-template-columns: minmax(0, 1fr); } }
.ns-contact-form { padding: 32px; }
.ns-contact-form h2 { font-size: 24px; font-weight: 800; letter-spacing: -0.02em; margin: 0 0 20px; color: var(--ns-ink); }
.ns-contact-form form { display: flex; flex-direction: column; gap: 16px; }
.ns-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 600px) { .ns-form-row { grid-template-columns: minmax(0, 1fr); } .ns-contact-form { padding: 22px; } }
.ns-field { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; color: var(--ns-ink); }
.ns-field small { font-weight: 400; color: var(--ns-muted); }
.ns-field input, .ns-field select, .ns-field textarea { width: 100%; min-height: 50px; border-radius: 12px; border: 1px solid var(--ns-line-2); background: #FFFFFF; padding: 12px 14px; font: inherit; font-weight: 400; font-size: 16px; color: var(--ns-ink); box-sizing: border-box; }
.ns-field textarea { resize: vertical; min-height: 140px; }
.ns-field input:focus, .ns-field select:focus, .ns-field textarea:focus { outline: none; border-color: var(--ns-primary); box-shadow: 0 0 0 4px rgba(91, 61, 245, .14); }
.ns-form-note { font-size: 13px; color: var(--ns-muted); margin: 0; }
.ns-contact-form .ns-btn { align-self: flex-start; }
@media (max-width: 600px) { .ns-contact-form .ns-btn { align-self: stretch; justify-content: center; } }
.ns-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ns-alert { display: flex; gap: 10px; align-items: flex-start; border-radius: 12px; padding: 14px 16px; font-size: 15px; margin-bottom: 18px; line-height: 1.5; }
.ns-alert--ok { background: #ECFDF3; color: #05603A; border: 1px solid #ABEFC6; }
.ns-alert--err { background: #FEF3F2; color: #B42318; border: 1px solid #FECDCA; }
.ns-contact-side { display: flex; flex-direction: column; gap: 14px; }
.ns-contact-item { display: flex; gap: 14px; align-items: center; padding: 18px; text-decoration: none; color: var(--ns-ink); }
.ns-contact-item > span:last-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ns-contact-item > span:last-child span { color: var(--ns-muted); font-size: 14px; overflow-wrap: anywhere; }
a.ns-contact-item:hover { box-shadow: 0 14px 34px rgba(15, 18, 34, .08); transform: translateY(-2px); }
.ns-contact-item .ns-icon-tile { width: 52px; height: 52px; border-radius: 14px; background: var(--ns-tint, #F3F0FF); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ns-contact-links { padding: 20px; display: flex; flex-direction: column; gap: 4px; }
.ns-contact-links strong { margin-bottom: 6px; color: var(--ns-ink); }
.ns-contact-links a { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-top: 1px solid var(--ns-line); color: var(--ns-ink); text-decoration: none; font-size: 15px; }
.ns-contact-links a:hover { color: var(--ns-primary); }
.ns-contact-legal { margin-top: 56px; padding-bottom: 40px; font-size: 12px; line-height: 1.7; color: var(--ns-faint, #8F93AD); text-align: center; }

/* ---------- Juridische pagina's ---------- */
.ns-entry .entry-content h2 { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; color: var(--ns-ink); margin: 36px 0 10px; }
.ns-entry .entry-content table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 12px 0 20px; display: block; overflow-x: auto; }
.ns-entry .entry-content th, .ns-entry .entry-content td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--ns-line); vertical-align: top; min-width: 120px; }
.ns-entry .entry-content th { background: #FAFAFE; color: var(--ns-ink); }
.ns-entry .entry-content blockquote { margin: 12px 0; padding: 16px 20px; background: #FAFAFE; border-left: 3px solid var(--ns-primary); border-radius: 0 12px 12px 0; }
.ns-company { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 20px; background: #FAFAFE; border: 1px solid var(--ns-line); border-radius: 14px; padding: 16px 20px; margin: 12px 0 20px; font-size: 15px; }
.ns-company dt { font-weight: 700; color: var(--ns-ink); }
.ns-company dd { margin: 0; }
@media (max-width: 480px) { .ns-company { grid-template-columns: minmax(0, 1fr); } .ns-company dd { margin-bottom: 8px; } }

/* Bedrijf kiezen */
.ns-lookup-head p { font-size: 13px; color: #333333; }
.ns-addr { display: flex; flex-direction: column; gap: 12px; }
.ns-addr[hidden] { display: none; }
.ns-found { display: flex; gap: 8px; align-items: center; font-size: 13px; color: var(--ns-green-ink); background: var(--ns-green-bg); border: 1px solid #BBF7D0; border-radius: 10px; padding: 8px 12px; }
.ns-found[hidden] { display: none; }
.ns-lookup.is-found #ns-m-name { border-color: var(--ns-green); }
.ns-result--manual { justify-content: center; font-size: 14px; font-weight: 600; color: var(--ns-primary-dark); background: var(--ns-bg-alt); }
.ns-namefield { position: relative; }

/* ---------- FAQ-pagina ---------- */
.ns-faq-cats { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 24px; }
.ns-faq-cats a { display: inline-flex; gap: 8px; align-items: center; padding: 9px 14px; border-radius: 999px; background: #FFFFFF; border: 1px solid var(--ns-line); color: var(--ns-ink); font-size: 14px; font-weight: 600; text-decoration: none; }
.ns-faq-cats a:hover { border-color: var(--ns-primary); color: var(--ns-primary-dark); }
.ns-faq-cats span { font-size: 12px; background: var(--ns-tint); color: var(--ns-primary-dark); border-radius: 999px; padding: 2px 7px; }
.ns-faq-page { padding-top: 48px; }
.ns-faq-group { scroll-margin-top: 100px; margin-bottom: 44px; }
.ns-faq-group h2 { font-size: 24px; font-weight: 800; letter-spacing: -0.02em; color: var(--ns-ink); margin: 0 0 16px; }
.ns-faq-more { display: inline-flex; gap: 6px; align-items: center; margin-top: 14px; font-weight: 600; color: var(--ns-primary-dark); text-decoration: none; }
.ns-faq-cta { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 24px; flex-wrap: wrap; }
.ns-faq-cta > div { display: flex; flex-direction: column; gap: 2px; }
.ns-faq-cta strong { font-size: 18px; color: var(--ns-ink); }
.ns-faq-cta span { color: var(--ns-muted); }
.ns-faq-intro-btns { display: flex; gap: 10px; flex-wrap: wrap; }

/* Productbeschrijving: samenvatting + AEO-blok onderaan */
.ns-content .ns-summary { background: linear-gradient(180deg, #F6F4FF, #FFFFFF); border: 1px solid #E4DEFF; border-radius: 20px; padding: 24px 26px; margin: 0 0 40px; }
.ns-content .ns-summary h2 { margin-top: 0 !important; font-size: 20px; }
.ns-content .ns-summary ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.ns-content .ns-summary li { padding-left: 0; }
.ns-content .ns-aeo--end { margin-top: 40px; }
.ns-content h3 { font-size: 19px; font-weight: 700; color: var(--ns-ink); margin: 28px 0 10px; }

/* ---------- Moderne reviewbadge ---------- */
.ns-hero-meta { gap: 14px 18px; }
.ns-proof { display: inline-flex; align-items: center; gap: 12px; padding: 8px 16px 8px 8px; background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 999px; box-shadow: 0 10px 30px rgba(40, 30, 120, .08); text-decoration: none; color: var(--ns-ink); transition: transform .2s, box-shadow .2s; }
a.ns-proof:hover { transform: translateY(-1px); box-shadow: 0 14px 34px rgba(40, 30, 120, .12); color: var(--ns-ink); }
.ns-avatars { display: flex; }
.ns-avatars i { width: 32px; height: 32px; border-radius: 999px; border: 2px solid #FFFFFF; display: flex; align-items: center; justify-content: center; margin-left: -9px; box-shadow: 0 2px 6px rgba(15, 18, 34, .12); }
.ns-avatars i:first-child { margin-left: 0; }
.ns-avatars .av-a { background: linear-gradient(135deg, #7B61FF, #5B3DF5); }
.ns-avatars .av-b { background: linear-gradient(135deg, #3B9BFF, #3B5BFF); }
.ns-avatars .av-c { background: linear-gradient(135deg, #34D399, #16A34A); }
.ns-avatars .av-d { background: linear-gradient(135deg, #FFC94D, #F59E0B); }
.ns-proof-body { display: flex; flex-direction: column; line-height: 1.15; }
.ns-proof-stars { color: #FFB800; font-size: 14px; letter-spacing: 1.5px; }
.ns-proof-line { display: flex; gap: 6px; align-items: baseline; font-size: 14px; }
.ns-proof-line strong { font-size: 16px; font-weight: 800; }
.ns-proof-line span { color: var(--ns-muted); }
.ns-proof.is-compact { box-shadow: none; padding: 6px 12px 6px 6px; }
.ns-proof.is-compact .ns-avatars i { width: 26px; height: 26px; }
.ns-pills { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; flex-wrap: wrap; }
.ns-pills li { display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px 7px 8px; background: rgba(255, 255, 255, .8); border: 1px solid var(--ns-line); border-radius: 999px; font-size: 13.5px; font-weight: 600; color: var(--ns-ink); white-space: nowrap; }

/* ---------- Moderne reviewkaart (home) ---------- */
.ns-rating-card--modern { align-items: stretch; text-align: left; gap: 22px; padding: 32px; background: radial-gradient(500px 220px at 100% 0%, #F1EEFF, transparent 70%), #FFFFFF; }
.ns-rc-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.ns-rc-score { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.ns-rating-card--modern .ns-rating-score { font-size: 76px; }
.ns-rating-score small { font-size: 26px; font-weight: 700; color: var(--ns-faint); letter-spacing: 0; margin-left: 2px; }
.ns-rc-meta { display: flex; flex-direction: column; gap: 4px; }
.ns-rc-meta .ns-stars { font-size: 24px; color: #FFB800; letter-spacing: 2px; }
.ns-rc-meta strong { color: var(--ns-ink); font-size: 17px; }
.ns-rc-meta span:last-child { color: var(--ns-muted); font-size: 14px; }
.ns-rc-bar { height: 8px; border-radius: 999px; background: var(--ns-tint); overflow: hidden; }
.ns-rc-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #FFC94D, #FFB800); }
.ns-rc-facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ns-rc-facts li { display: flex; flex-direction: column; gap: 8px; padding: 14px; border-radius: 14px; background: var(--ns-bg-alt); border: 1px solid var(--ns-line); font-size: 13.5px; font-weight: 600; color: var(--ns-ink); }
@media (max-width: 520px) { .ns-rc-facts { grid-template-columns: minmax(0, 1fr); } .ns-rc-facts li { flex-direction: row; align-items: center; } .ns-rating-card--modern { padding: 24px; } .ns-rating-card--modern .ns-rating-score { font-size: 60px; } }

/* ---------- Mobiele sliders: USP-strook + footer ---------- */
.ns-dots { display: none; }
@media (max-width: 760px) {
	.ns-mslider { display: flex !important; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; scroll-padding-left: 24px; }
	.ns-mslider::-webkit-scrollbar { display: none; }
	.ns-mslider > * { flex: 0 0 82%; scroll-snap-align: start; }
	.ns-trust .ns-container { padding-top: 18px; padding-bottom: 8px; }
	.ns-trust .ns-trust-item { background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 16px; padding: 14px 16px; }
	.ns-footer-usp .ns-container { padding-top: 20px; padding-bottom: 8px; }
	.ns-footer-usp .ns-footer-usp-item { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); border-radius: 16px; padding: 14px 16px; }
	.ns-dots { display: flex; justify-content: center; gap: 6px; padding: 10px 0 16px; }
	.ns-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 999px; background: var(--ns-line-2); cursor: pointer; transition: width .25s, background .25s; }
	.ns-dots button.is-on { width: 20px; background: var(--ns-primary); }
	.ns-footer-usp .ns-dots button { background: rgba(255, 255, 255, .25); }
	.ns-footer-usp .ns-dots button.is-on { background: #FFFFFF; }
	.ns-pills { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
	.ns-pills::-webkit-scrollbar { display: none; }
}
@media (max-width: 760px) { .ns-content table { display: block; overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; } .ns-content th, .ns-content td { min-width: 130px; } }

/* ---------- Productbeschrijving: rijkere opmaak ---------- */
.ns-content .ns-lead { font-size: 19px; line-height: 1.7; color: var(--ns-ink); padding: 22px 26px; border-left: 4px solid var(--ns-primary); background: linear-gradient(90deg, #F6F4FF, rgba(246, 244, 255, 0)); border-radius: 0 16px 16px 0; }
.ns-content h2 { padding-top: 12px; }
.ns-content h2 + p, .ns-content h2 + ol, .ns-content h2 + ul, .ns-content h2 + table { margin-top: -4px; }
.ns-content a { color: var(--ns-primary-dark); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.ns-content ol.ns-steps-list { list-style: none; padding: 0; counter-reset: nsstep; display: grid; gap: 10px; }
.ns-content ol.ns-steps-list li { counter-increment: nsstep; position: relative; padding: 14px 18px 14px 62px; background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 14px; }
.ns-content ol.ns-steps-list li::before { content: counter(nsstep); position: absolute; left: 16px; top: 14px; width: 30px; height: 30px; border-radius: 10px; background: var(--ns-grad); color: #FFFFFF; font-weight: 800; font-size: 14px; display: flex; align-items: center; justify-content: center; }
.ns-content .ns-callout { background: #F0FDF4; border: 1px solid #BBF7D0; border-radius: 14px; padding: 16px 20px 16px 52px; position: relative; font-size: 16px; }
.ns-content .ns-callout::before { content: "i"; position: absolute; left: 18px; top: 17px; width: 22px; height: 22px; border-radius: 999px; background: var(--ns-green); color: #FFFFFF; font: 800 13px/22px Georgia, serif; text-align: center; font-style: italic; }
.ns-content .ns-callout strong { color: var(--ns-green-ink); }
.ns-content ul:not(.ns-list-check) { padding-left: 0; list-style: none; display: grid; gap: 8px; }
.ns-content ul:not(.ns-list-check) li { position: relative; padding-left: 22px; }
.ns-content ul:not(.ns-list-check) li::before { content: ""; position: absolute; left: 4px; top: .68em; width: 8px; height: 8px; border-radius: 3px; background: var(--ns-primary); transform: rotate(45deg); }
.ns-content table thead th { background: var(--ns-ink); color: #FFFFFF; font-size: 14px; }
.ns-content table tbody tr:nth-child(even) { background: var(--ns-bg-alt); }
.ns-content table tbody th { color: var(--ns-ink); }
@media (max-width: 600px) { .ns-content .ns-lead { font-size: 17px; padding: 18px; } .ns-content ol.ns-steps-list li { padding-left: 56px; } }

/* ---------- Slanke reviewbadge (zonder avatars) ---------- */
.ns-proof { gap: 8px; padding: 7px 14px; box-shadow: 0 4px 14px rgba(40, 30, 120, .06); font-size: 14px; line-height: 1; }
.ns-proof-stars { font-size: 13px; letter-spacing: 1px; }
.ns-proof strong { font-size: 14px; font-weight: 800; }
.ns-proof-sep { width: 1px; height: 14px; background: var(--ns-line-2); }
.ns-proof-count { color: var(--ns-muted); }
.ns-rc-top { justify-content: flex-start; }

/* ---------- Rekenhulp ---------- */
.ns-calc-section { padding-top: 24px; }
.ns-calc { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 40px; padding: 48px; border-radius: 28px; background: #0F1222; color: #FFFFFF; isolation: isolate; }
.ns-calc-glow { position: absolute; inset: -40% -10% auto auto; width: 620px; height: 620px; background: radial-gradient(closest-side, rgba(91, 61, 245, .55), transparent); z-index: -1; pointer-events: none; }
.ns-calc::after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px); background-size: 22px 22px; z-index: -1; }
.ns-calc-eyebrow { display: inline-flex; align-self: flex-start; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #FFFFFF; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .16); padding: 6px 12px; border-radius: 999px; }
.ns-calc-left { display: flex; flex-direction: column; gap: 18px; }
.ns-calc h2 { margin: 0; font-size: clamp(28px, 3.4vw, 40px); line-height: 1.1; letter-spacing: -0.03em; font-weight: 800; color: #FFFFFF; }
.ns-calc p { margin: 0; color: #FFFFFF; font-size: 17px; line-height: 1.6; }
.ns-range { background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); border-radius: 16px; padding: 16px 18px; }
.ns-range-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; font-size: 15px; font-weight: 600; }
.ns-range-top output { font-size: 22px; font-weight: 800; color: #FFFFFF; }
.ns-range input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 8px; border-radius: 999px; background: linear-gradient(90deg, #7B61FF var(--fill, 50%), rgba(255, 255, 255, .15) var(--fill, 50%)); outline: none; margin: 6px 0; }
.ns-range input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 26px; height: 26px; border-radius: 999px; background: #FFFFFF; border: 6px solid #5B3DF5; box-shadow: 0 4px 14px rgba(91, 61, 245, .6); cursor: grab; }
.ns-range input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border-radius: 999px; background: #FFFFFF; border: 6px solid #5B3DF5; cursor: grab; }
.ns-range input[type="range"]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 6px rgba(123, 97, 255, .35); }
.ns-calc-right { display: flex; flex-direction: column; gap: 16px; justify-content: center; }
.ns-calc-result { background: linear-gradient(145deg, rgba(91, 61, 245, .35), rgba(59, 91, 255, .15)); border: 1px solid rgba(255, 255, 255, .14); border-radius: 22px; padding: 26px 28px; display: flex; flex-direction: column; gap: 6px; backdrop-filter: blur(6px); }
.ns-calc-label { font-size: 14px; font-weight: 600; color: #FFFFFF; }
.ns-calc-big { font-size: clamp(56px, 7vw, 84px); font-weight: 800; letter-spacing: -0.04em; line-height: 1; background: linear-gradient(90deg, #FFFFFF, #C9BEFF); -webkit-background-clip: text; background-clip: text; color: transparent; font-variant-numeric: tabular-nums; }
.ns-calc-big b { font-weight: 800; }
.ns-calc-year { font-size: 15px; color: #FFFFFF; }
.ns-calc-year strong { color: #FFC94D; }
.ns-calc-tip { display: flex; gap: 12px; align-items: center; font-size: 15px; color: #FFFFFF; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); border-radius: 14px; padding: 12px 14px; }
.ns-calc-tip svg { flex-shrink: 0; }
.ns-calc-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.ns-btn--ghost-light { background: transparent; color: #FFFFFF; border: 1px solid rgba(255, 255, 255, .35); }
.ns-btn--ghost-light:hover { color: #FFFFFF; border-color: #FFFFFF; }
.ns-calc-note { font-size: 12px; color: #FFFFFF; opacity: .75; }
@media (max-width: 900px) { .ns-calc { grid-template-columns: minmax(0, 1fr); padding: 32px 24px; gap: 28px; border-radius: 22px; } }
@media (max-width: 520px) { .ns-calc-btns .ns-btn { flex: 1 1 100%; justify-content: center; } }

/* ---------- Topbar: verkoopgericht met aftelklok ---------- */
.ns-topbar { background: linear-gradient(90deg, #4B2FE0, #5B3DF5 45%, #3B5BFF); color: #FFFFFF; font-size: 13.5px; }
.ns-topbar .ns-container { display: flex; align-items: center; justify-content: space-between; gap: 10px 24px; flex-wrap: nowrap; padding-top: 8px; padding-bottom: 8px; min-height: 40px; }
.ns-topbar span { display: inline; }
.ns-topbar-main { display: flex; align-items: center; gap: 8px; min-width: 0; font-weight: 600; }
.ns-topbar-clock { display: inline-flex !important; width: 26px; height: 26px; border-radius: 8px; background: rgba(255, 255, 255, .16); align-items: center; justify-content: center; flex-shrink: 0; }
.ns-countdown b { font-weight: 800; }
.ns-countdown .ns-cd-time { display: inline-block; background: #FFC94D; color: #0F1222; border-radius: 6px; padding: 1px 7px; font-variant-numeric: tabular-nums; }
.ns-topbar-usps { list-style: none; margin: 0; padding: 0; display: flex; gap: 22px; align-items: center; white-space: nowrap; }
.ns-topbar-usps li { display: flex; align-items: center; gap: 7px; font-weight: 500; }
.ns-topbar-stars { color: #FFC94D; letter-spacing: 1px; }
@media (max-width: 1100px) { .ns-topbar-usps li:nth-child(2) { display: none; } }
@media (max-width: 760px) {
	.ns-topbar { font-size: 12.5px; }
	.ns-topbar .ns-container { flex-direction: column; gap: 4px; padding-top: 7px; padding-bottom: 7px; text-align: center; }
	.ns-topbar-main { justify-content: center; }
	.ns-topbar-clock { width: 22px; height: 22px; }
	.ns-topbar-usps { position: relative; height: 18px; width: 100%; justify-content: center; }
	.ns-topbar-usps li, .ns-topbar-usps li:nth-child(2) { display: flex; position: absolute; left: 0; right: 0; justify-content: center; opacity: 0; transform: translateY(6px); transition: opacity .35s, transform .35s; }
	.ns-topbar-usps li.is-on { opacity: 1; transform: none; }
}

/* ---------- Afsluitende CTA: verkoopgericht ---------- */
.ns-cta2-section { padding-top: 0; }
.ns-cta2 { position: relative; overflow: hidden; isolation: isolate; border-radius: 30px; padding: 56px; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 32px; align-items: center; color: #FFFFFF; background: linear-gradient(125deg, #4B2FE0 0%, #5B3DF5 40%, #3B5BFF 100%); box-shadow: 0 30px 70px rgba(75, 47, 224, .35); }
.ns-cta2-bg { position: absolute; inset: 0; z-index: -1; background: radial-gradient(420px 300px at 85% 30%, rgba(255, 255, 255, .22), transparent 70%), radial-gradient(500px 400px at 0% 100%, rgba(15, 18, 34, .35), transparent 70%); }
.ns-cta2::after { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255, 255, 255, .12) 1px, transparent 1px); background-size: 22px 22px; mask-image: linear-gradient(90deg, transparent, #000 60%); -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%); }
.ns-cta2-copy { display: flex; flex-direction: column; gap: 18px; }
.ns-cta2-urgent { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px 7px 9px; border-radius: 999px; background: rgba(15, 18, 34, .35); border: 1px solid rgba(255, 255, 255, .22); font-size: 14px; font-weight: 600; }
.ns-cta2 h2 { margin: 0; font-size: clamp(30px, 4vw, 48px); line-height: 1.05; letter-spacing: -0.035em; font-weight: 800; color: #FFFFFF; }
.ns-cta2 p { margin: 0; font-size: 17px; line-height: 1.6; color: #FFFFFF; max-width: 560px; }
.ns-offers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 4px; }
.ns-offer { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 18px 20px; border-radius: 18px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .25); color: #FFFFFF; text-decoration: none; transition: transform .2s, box-shadow .2s, background .2s; }
.ns-offer:hover { transform: translateY(-3px); color: #FFFFFF; background: rgba(255, 255, 255, .16); }
.ns-offer--hl { background: #FFFFFF; color: var(--ns-ink); border-color: #FFFFFF; box-shadow: 0 18px 40px rgba(15, 18, 34, .25); }
.ns-offer--hl:hover { background: #FFFFFF; color: var(--ns-ink); box-shadow: 0 22px 50px rgba(15, 18, 34, .32); }
.ns-offer-badge { position: absolute; top: -10px; right: 14px; background: #16A34A; color: #FFFFFF; font-size: 12px; font-weight: 800; padding: 4px 9px; border-radius: 999px; box-shadow: 0 6px 14px rgba(22, 163, 74, .35); }
.ns-offer-name { font-size: 14px; font-weight: 700; opacity: .9; }
.ns-offer-price { font-size: 30px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; display: flex; align-items: baseline; gap: 8px; }
.ns-offer-price s { font-size: 15px; font-weight: 600; opacity: .5; letter-spacing: 0; }
.ns-offer-sub { font-size: 13px; opacity: .8; }
.ns-offer-go { margin-top: 10px; display: inline-flex; align-items: center; gap: 6px; font-weight: 800; font-size: 15px; }
.ns-offer--hl .ns-offer-go { color: var(--ns-primary-dark); }
.ns-offer:not(.ns-offer--hl) .ns-offer-go svg * { stroke: #FFFFFF; }
.ns-cta2-trust { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 13.5px; font-weight: 600; }
.ns-cta2-trust li { display: inline-flex; align-items: center; gap: 6px; }
.ns-cta2-stars { color: #FFC94D; letter-spacing: 1px; }
.ns-cta2-visual { position: relative; height: 380px; display: flex; align-items: flex-end; justify-content: center; }
.ns-cta2-visual .ns-pm-display { position: absolute; right: 4%; bottom: 10px; transform: rotate(3deg); }
.ns-cta2-visual .ns-cta2-card { position: absolute; left: 4%; bottom: 0; transform: rotate(-10deg); z-index: 2; }
.ns-cta2-ping { position: absolute; top: 18px; left: 6%; z-index: 3; display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 14px; background: #FFFFFF; color: var(--ns-ink); font-size: 14px; font-weight: 700; box-shadow: 0 14px 34px rgba(15, 18, 34, .25); animation: nsPing 3.2s ease-in-out infinite; }
.ns-cta2-ping b { color: #FFB800; letter-spacing: 1px; }
.ns-cta2-ping i { width: 9px; height: 9px; border-radius: 999px; background: #16A34A; box-shadow: 0 0 0 4px rgba(22, 163, 74, .2); }
@keyframes nsPing { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@media (prefers-reduced-motion: reduce) { .ns-cta2-ping { animation: none; } }
@media (max-width: 960px) { .ns-cta2 { grid-template-columns: minmax(0, 1fr); padding: 40px 28px; } .ns-cta2-visual { height: 300px; order: -1; margin-top: -10px; } }
@media (max-width: 560px) { .ns-cta2 { padding: 32px 20px; border-radius: 24px; } .ns-offers { grid-template-columns: minmax(0, 1fr); } .ns-cta2-visual { height: 250px; } .ns-cta2-visual .ns-pm-display { --pm: 10px !important; } .ns-cta2-visual .ns-cta2-card { --pm: 9px !important; } }
.ns-offer { text-align: left; align-items: flex-start; }
.ns-cta2-urgent { white-space: nowrap; }
@media (max-width: 560px) { .ns-cta2-urgent { font-size: 12.5px; padding: 6px 12px 6px 8px; } .ns-cta2-urgent svg { width: 16px; height: 16px; } }

/* CTA weer in de oorspronkelijke donkere kleur */
.ns-cta2 { background: #0F1222; box-shadow: 0 30px 70px rgba(15, 18, 34, .25); }
.ns-cta2-bg { background: radial-gradient(520px 340px at 85% 45%, rgba(106, 75, 255, .5), transparent 70%); }
.ns-cta2-urgent { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .16); }
.ns-offer { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .16); }
.ns-offer:hover { background: rgba(255, 255, 255, .1); }
.ns-offer--hl { background: var(--ns-grad); border-color: transparent; color: #FFFFFF; box-shadow: 0 18px 40px rgba(91, 61, 245, .35); }
.ns-offer--hl:hover { background: var(--ns-grad); color: #FFFFFF; }
.ns-offer--hl .ns-offer-go { color: #FFFFFF; }
.ns-offer--hl .ns-offer-go svg * { stroke: #FFFFFF; }

/* ---------- Topbar v2: paars, één regel, rustig ---------- */
.ns-topbar { background: var(--ns-primary); background: linear-gradient(90deg, #4B2FE0, #5B3DF5 50%, #4B2FE0); color: #FFFFFF; font-size: 13.5px; font-weight: 500; }
.ns-topbar .ns-container { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: nowrap; min-height: 38px; padding-top: 0; padding-bottom: 0; white-space: nowrap; overflow: hidden; }
.ns-topbar .ns-container > svg { flex-shrink: 0; }
.ns-topbar span { display: inline; }
.ns-topbar .ns-countdown { overflow: hidden; text-overflow: ellipsis; }
.ns-topbar .ns-cd-time { background: #FFFFFF; color: var(--ns-primary-dark); border-radius: 6px; padding: 1px 7px; margin: 0 1px; font-weight: 800; font-variant-numeric: tabular-nums; }
.ns-topbar-extra { color: #FFFFFF; opacity: .9; }
.ns-topbar-dot { margin: 0 8px; opacity: .6; }
@media (max-width: 760px) { .ns-topbar { font-size: 12.5px; } .ns-topbar .ns-container { min-height: 34px; } .ns-topbar-extra { display: none !important; } }
@media (max-width: 760px) { .ns-topbar .ns-container { flex-direction: row; gap: 6px; padding-top: 0; padding-bottom: 0; text-align: left; } }
.ns-offer--hl .ns-offer-price s { opacity: .75; }

/* Logo iets kleiner */
.ns-header .ns-logo-svg { height: 28px; }
@media (max-width: 560px) { .ns-header .ns-logo-svg { height: 23px; } }
.ns-footer-brand .ns-logo-svg { height: 30px; }

/* Tekstkleur: Elementor's globale (grijze) tekstkleur overschrijven zodat body-tekst #333333 is */
body.nfcs.nfcs, body.nfcs.nfcs p, body.nfcs.nfcs li, body.nfcs.nfcs td { color: #333333; }
body.nfcs.nfcs .ns-section--dark p, body.nfcs.nfcs .ns-section--dark li, body.nfcs.nfcs .ns-footer p, body.nfcs.nfcs .ns-footer li, body.nfcs.nfcs .ns-cta2 p, body.nfcs.nfcs .ns-cta2 li, body.nfcs.nfcs .ns-calc p, body.nfcs.nfcs .ns-guarantee p, body.nfcs.nfcs .ns-topbar, body.nfcs.nfcs .ns-step p { color: #FFFFFF; }
body.nfcs.nfcs .ns-alert--ok, body.nfcs.nfcs .ns-alert--err { color: inherit; }
.ns-buybox .ns-short, .ns-buybox .ns-short p { font-size: 16px; }

/* ---------- Productpagina: voordelenblok ---------- */
.ns-usp-rot { background: linear-gradient(180deg, #F8F6FF, #F3F0FF); border: 1px solid #E4DEFF; border-radius: 16px; padding: 4px; position: relative; }
.ns-usp-rot ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ns-usp-rot li { display: flex; align-items: center; gap: 10px; padding: 11px 14px; font-size: 14.5px; font-weight: 600; color: var(--ns-ink); line-height: 1.3; }
.ns-usp-rot li:nth-child(odd) { border-right: 1px solid #E4DEFF; }
.ns-usp-rot li:nth-child(n+3) { border-top: 1px solid #E4DEFF; }
.ns-usp-dots { display: none; }
@media (max-width: 760px) {
	.ns-usp-rot { padding: 0 14px; border-radius: 14px; }
	.ns-usp-rot ul { display: block; position: relative; height: 46px; overflow: hidden; }
	.ns-usp-rot li { position: absolute; inset: 0; padding: 0 44px 0 0; border: 0 !important; opacity: 0; transform: translateY(10px); transition: opacity .35s ease, transform .35s ease; }
	.ns-usp-rot li.is-on { opacity: 1; transform: none; }
	.ns-usp-dots { display: flex; gap: 4px; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); }
	.ns-usp-dots i { width: 6px; height: 6px; border-radius: 999px; background: #D5CCFF; transition: width .25s, background .25s; }
	.ns-usp-dots i.is-on { width: 14px; background: var(--ns-primary); }
}
@media (prefers-reduced-motion: reduce) { .ns-usp-rot li { transition: none; } }

/* ---------- Productpagina mobiel: compactere foto, zodat titel, score en prijs direct in beeld zijn ---------- */
@media (max-width: 600px) {
	.ns-stage { height: 300px; border-radius: 18px; }
	.ns-stage--display { padding-bottom: 46px; }
	.ns-stage .ns-pm-kaart { --pm: 12.5px !important; }
	.ns-stage .ns-pm-display { --pm: 10.5px !important; }
	.ns-stage img { max-height: 270px; }
	.ns-live { font-size: 11px; padding: 5px 10px; left: 10px; top: 10px; }
	.ns-linked { bottom: 10px; font-size: 12px; padding: 6px 12px; }
	.ns-thumbs { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
	.ns-thumbs > * { border-radius: 10px; }
	.ns-pdp { gap: 18px !important; }
	.ns-buybox h1 { font-size: 30px; }
}
@media (max-width: 600px) { .ns-live { display: none; } .ns-breadcrumb { padding-top: 10px; font-size: 12px; } .ns-pdp { padding-top: 10px; } }

/* ---------- Taalkiezer ---------- */
.ns-langs { display: inline-flex; align-items: center; gap: 2px; padding: 3px; border: 1px solid var(--ns-line-2); border-radius: 999px; background: #FFFFFF; }
.ns-langs a { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 30px; padding: 0 8px; border-radius: 999px; font-size: 12.5px; font-weight: 700; letter-spacing: .02em; color: var(--ns-ink); text-decoration: none; }
.ns-langs a:hover { color: var(--ns-primary-dark); }
.ns-langs a.is-active { background: var(--ns-ink); color: #FFFFFF; }
@media (max-width: 560px) { .ns-langs a { min-width: 30px; height: 28px; padding: 0 6px; font-size: 12px; } }
@media (max-width: 420px) {
	.ns-header .ns-container { gap: 8px; padding-left: 16px; padding-right: 16px; }
	.ns-header-actions { gap: 6px; }
	.ns-header .ns-logo-svg { height: 19px; }
	.ns-cart-link, .ns-menu-toggle { width: 40px; height: 40px; border-radius: 11px; }
	.ns-langs { padding: 2px; }
	.ns-langs a { min-width: 28px; height: 26px; padding: 0 5px; font-size: 11.5px; }
}

/* ---------- Productkaarten homepage: mobiel netjes ---------- */
.ns-product-card .ns-checks li { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 600px) {
	.ns-product-body { padding: 22px 20px; gap: 16px; }
	.ns-product-top { flex-direction: column; gap: 10px; }
	.ns-product-top h3 { font-size: 24px; line-height: 1.15; }
	.ns-product-top p { font-size: 15px; }
	.ns-product-top > div:last-child { display: flex; align-items: baseline; gap: 8px; }
	.ns-price-from { text-align: left; order: 0; }
	.ns-price-big { font-size: 26px; }
	.ns-product-card .ns-checks { grid-template-columns: minmax(0, 1fr); gap: 8px; font-size: 14.5px; }
	.ns-tiers { gap: 8px; }
	.ns-tier { padding: 12px 10px; border-radius: 12px; }
	.ns-tier--hl { padding: 11px 9px; }
	.ns-tier small { font-size: 12.5px; white-space: nowrap; }
	.ns-tier b { font-size: 17px; white-space: nowrap; letter-spacing: -0.01em; }
	.ns-badge-save { font-size: 11px; }
}
@media (max-width: 380px) { .ns-tier b { font-size: 15.5px; } .ns-tier small { font-size: 11.5px; } }
a.ns-product-media, a.ns-product-media:hover { text-decoration: none !important; }

/* =========================================================
   v2.0.4 – Checkout & winkelwagen: mobiele marges + groene koopknoppen
   ========================================================= */
.ns-btn--buy, .woocommerce-checkout #place_order, .woocommerce #place_order, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	background: linear-gradient(135deg, #22C55E, #16A34A) !important; color: #FFFFFF !important; border: 0; font-weight: 800;
	box-shadow: 0 10px 24px rgba(22, 163, 74, .30) !important; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.ns-btn--buy:hover, .woocommerce-checkout #place_order:hover, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	filter: brightness(1.05); transform: translateY(-1px); box-shadow: 0 14px 28px rgba(22, 163, 74, .38) !important; color: #FFFFFF !important;
}
.ns-btn--buy { min-height: 56px; font-size: 17px; border-radius: 14px; }
.ns-btn--buy svg, #place_order svg { flex: none; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { width: 100%; min-height: 56px; font-size: 17px; border-radius: 14px; }
.ns-drawer-trust { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px 14px; font-size: 12.5px; color: #333333; }
.ns-drawer-trust span::before { content: "✓"; color: var(--ns-green); font-weight: 800; margin-right: 4px; }
.ns-drawer-cartlink { text-align: center; font-size: 14px; font-weight: 600; color: var(--ns-primary); text-decoration: underline; text-underline-offset: 3px; padding: 4px; }
.ns-checkout-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 14px; margin-top: 12px; font-size: 13px; font-weight: 600; color: #333333; }
.ns-checkout-trust span { display: inline-flex; align-items: center; gap: 4px; }
.ns-checkout-trust svg { color: var(--ns-green); }
.ns-checkout-trust small { flex: 1 1 100%; text-align: center; font-weight: 400; font-size: 12px; color: #555; }

/* Blokken (WC Blocks) nooit buiten de container laten vallen */
.woocommerce-cart .ns-page .alignwide, .woocommerce-checkout .ns-page .alignwide, .woocommerce-cart .ns-page .alignfull, .woocommerce-checkout .ns-page .alignfull,
.ns-page .wp-block-woocommerce-checkout, .ns-page .wp-block-woocommerce-cart { margin-left: 0 !important; margin-right: 0 !important; max-width: 100% !important; width: auto !important; }

@media (max-width: 760px) {
	/* Altijd 16px lucht links/rechts, ook als de pagina met Elementor of blokken is opgebouwd */
	body.woocommerce-cart #ns-main, body.woocommerce-checkout #ns-main, body.woocommerce-account #ns-main { padding-left: 16px; padding-right: 16px; }
	body.woocommerce-cart #ns-main .ns-container, body.woocommerce-checkout #ns-main .ns-container, body.woocommerce-account #ns-main .ns-container { padding-left: 0; padding-right: 0; }
	body.woocommerce-cart #ns-main .elementor-section.elementor-section-stretched, body.woocommerce-checkout #ns-main .elementor-section.elementor-section-stretched { left: 0 !important; width: 100% !important; }
	.ns-page { padding: 24px 0 64px; }
	.ns-page-title { font-size: 28px; margin-bottom: 16px; }
	.woocommerce-checkout form.checkout { gap: 16px; }
	.woocommerce-checkout form.checkout > .col2-set, .woocommerce-checkout form.checkout > #order_review { padding: 18px 16px; border-radius: 16px; position: static; flex-basis: 100%; }
	.woocommerce-cart .cart-collaterals .cart_totals { padding: 18px 16px; }
	.woocommerce-checkout #payment div.form-row { padding: 12px !important; }
	.woocommerce table.shop_table td, .woocommerce table.shop_table th { padding: 12px; }
	.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { font-size: 14px; }
}
.woocommerce table.shop_table td.product-name dl.variation { margin: 6px 0 0; }
.woocommerce table.shop_table td.product-name dl.variation dd { margin: 0 0 4px; }
.woocommerce table.shop_table td.product-name dl.variation dd p { margin: 0; }
.woocommerce-checkout #order_review table.shop_table th { text-align: left; }

/* v2.0.5 – taalkeuze in footer, productfoto's in upsell/drawer */
.ns-footer-langs { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; }
.ns-footer-langs a { color: rgba(255, 255, 255, .75); text-decoration: none; }
.ns-footer-langs a:hover, .ns-footer-langs a.is-active { color: #FFFFFF; text-decoration: underline; text-underline-offset: 3px; }
.ns-footer-langs span { color: rgba(255, 255, 255, .4); }
.ns-upsell-media--img { width: 72px; height: 72px; padding: 0; background: #F3F4F6; overflow: hidden; border: 1px solid var(--ns-line); align-items: center; }
.ns-upsell-media--img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ns-drawer-thumb { width: 56px; height: 56px; border-radius: 12px; object-fit: cover; flex-shrink: 0; border: 1px solid var(--ns-line); background: #F3F4F6; }

/* v2.0.7 – eigen productfoto's: eerste foto groot, geen vaste mockup of achtergrond */
.ns-stage--photo { height: auto !important; background: #FFFFFF; padding: 0 !important; display: block; border: 1px solid var(--ns-line); border-radius: 24px; }
.ns-stage--photo::before { display: none; }
.ns-stage--photo img { display: block; width: 100%; height: auto; max-height: none; object-fit: cover; border-radius: 0; }
.ns-thumbs .ns-thumb { background: #FFFFFF; }
@media (max-width: 760px) { .ns-stage--photo { border-radius: 18px; } }
/* Upsell-foto subtiel: vrijstaande display op een zachte tint */
.ns-upsell-media--img { width: 56px; height: 56px; padding: 0; border: 0; border-radius: 14px; background: linear-gradient(160deg, #F6F4FF, #EEF2FF); display: flex; align-items: center; justify-content: center; overflow: visible; }
.ns-upsell-media--img img { width: auto; height: 44px; object-fit: contain; filter: drop-shadow(0 4px 6px rgba(15, 18, 34, .12)); transform: rotate(-4deg); }
.ns-upsell:has(input:checked) .ns-upsell-media--img { background: #FFFFFF; }
.ns-upsell { border: 1.5px dashed #DCD5FF; }
.ns-upsell-media--img img { height: 46px; }

/* v2.0.12 – winkelwagen mobiel: compacte verzendbalk, geen grote witruimte */
.ns-cartbar svg { color: var(--ns-green); flex-shrink: 0; }
@media (max-width: 760px) {
	.ns-cartbar { font-size: 14px; padding: 12px 14px; border-radius: 14px; gap: 10px; margin-bottom: 12px; }
	.woocommerce-cart .woocommerce { gap: 16px; }
	.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
}

/* v2.0.13 – bestelknop + vertrouwensregel netjes onder elkaar (WooCommerce laat de knop anders rechts zweven) */
.woocommerce-checkout #payment .form-row.place-order { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
.woocommerce #payment #place_order, .woocommerce-page #payment #place_order { float: none !important; width: 100% !important; margin: 0; }
.woocommerce-checkout .ns-checkout-trust { clear: both; width: 100%; margin-top: 14px; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; }
.woocommerce-checkout .ns-checkout-trust span { white-space: nowrap; font-size: 13px; font-weight: 600; color: #333333; display: inline-flex; align-items: center; gap: 5px; }
.woocommerce-checkout .ns-checkout-trust svg { color: var(--ns-green); width: 14px; height: 14px; flex: none; }
.woocommerce-checkout .ns-checkout-trust small { flex: 1 1 100%; text-align: center; font-size: 12px; color: #555555; line-height: 1.5; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { margin-bottom: 14px; }
.ns-checkout-trust .ns-ic-check circle { fill: var(--ns-green); }

/* v2.0.14 – homepage productkaarten: hele product zichtbaar, vlak eromheen gevuld met een zachte vervaging van dezelfde foto */
.ns-product-media.has-photo { padding: 0; overflow: hidden; height: 340px; background: #F4F4F6; isolation: isolate; }
.ns-product-media.has-photo::before { content: ""; position: absolute; inset: -40px; background: var(--ns-photo) center / cover no-repeat; filter: blur(28px) saturate(1.1); opacity: .9; transform: scale(1.1); z-index: -1; }
.ns-product-media.has-photo img { position: relative; height: 100%; width: 100%; max-height: none; object-fit: contain; transition: transform .4s ease; }
.ns-product-card:hover .ns-product-media.has-photo img { transform: scale(1.03); }
.ns-product-media .ns-tag { z-index: 2; }
@media (max-width: 760px) { .ns-product-media.has-photo { height: auto; aspect-ratio: 1 / 1; } }

/* v2.0.17 – echte productreviews (WooCommerce) */
.ns-wc-reviews { padding-top: 24px; }
.ns-wc-reviews #reviews { scroll-margin-top: 100px; }
.ns-wc-reviews .woocommerce-Reviews-title, .ns-wc-reviews #reply-title { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; }
.ns-wc-reviews ol.commentlist { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 14px; }
.ns-wc-reviews ol.commentlist li .comment_container { background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 16px; padding: 18px; display: flex; gap: 14px; }
.ns-wc-reviews ol.commentlist li img.avatar { display: none; }
.ns-wc-reviews .star-rating { color: #F5A524; }
.ns-wc-reviews .woocommerce-review__verified { color: var(--ns-green); font-weight: 600; font-style: normal; }
.ns-wc-reviews #review_form_wrapper { background: #FFFFFF; border: 1px solid var(--ns-line); border-radius: 18px; padding: 22px; }
.ns-wc-reviews textarea { width: 100%; min-height: 120px; border: 1px solid var(--ns-line-2); border-radius: 12px; padding: 12px; font-family: inherit; }
.ns-wc-reviews .woocommerce-noreviews, .ns-wc-reviews .woocommerce-verification-required { color: #333333; }
/* v2.0.18 – upsell: display recht met voetje, zodat hij herkenbaar als staande display is */
.ns-upsell-media--img img { transform: none; height: 48px; filter: drop-shadow(0 5px 5px rgba(15, 18, 34, .16)); }
