/*
Theme Name: NeuroVerstaan
Theme URI: https://www.neuroverstaan.co.za
Author: NeuroVerstaan
Description: 'n Warm, speelse tema vir NeuroVerstaan: neurodiversiteit in plein Afrikaans. Handgetekende brein-krabbels, 'n reis-tuisblad met stasies, blog- en WooCommerce-ondersteuning.
Version: 1.3.0
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: neuroverstaan
*/

/* ---------- Tokens ---------- */
:root {
	--nv-ink: #24203F;
	--nv-ink-soft: #4C4766;
	--nv-paper: #FFFDF9;
	--nv-lilac: #F1EFFC;
	--nv-line: #C9C5EE;
	--nv-accent: #534AB7;

	--nv-teal: #1D9E75;  --nv-teal-dark: #12795A;  --nv-teal-tint: #E3F4ED;  --nv-teal-text: #3B4A44;
	--nv-purple: #7F77DD; --nv-purple-dark: #534AB7; --nv-purple-tint: #ECEBFB; --nv-purple-text: #45406A;
	--nv-amber: #EF9F27; --nv-amber-dark: #8A5A0B; --nv-amber-tint: #FDF0DC; --nv-amber-text: #5A4A30;
	--nv-coral: #D85A30; --nv-coral-dark: #B4441E; --nv-coral-tint: #FBE6DE; --nv-coral-text: #5E3A2C;

	--nv-display: 'Bricolage Grotesque', 'Trebuchet MS', sans-serif;
	--nv-body: 'Atkinson Hyperlegible', 'Segoe UI', sans-serif;
	--nv-hand: 'Gochi Hand', 'Comic Sans MS', cursive;

	--nv-wrap: 1200px;
	--nv-radius: 22px;
}

/* ---------- Basics ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
	margin: 0;
	background: var(--nv-paper);
	color: var(--nv-ink);
	font-family: var(--nv-body);
	font-size: 18px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img, svg { max-width: 100%; height: auto; }
a { color: var(--nv-ink); text-underline-offset: 5px; }
a:hover { color: var(--nv-purple-dark); }
:focus-visible { outline: 3px solid var(--nv-amber); outline-offset: 3px; border-radius: 6px; }
h1, h2, h3, h4 { font-family: var(--nv-display); line-height: 1.12; letter-spacing: -0.02em; margin: 0 0 .5em; }
p { margin: 0 0 1em; }

.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.skip-link:focus {
	clip: auto; clip-path: none; height: auto; width: auto; margin: 0;
	left: 12px; top: 12px; z-index: 1000; background: #fff; padding: 12px 18px; border-radius: 12px;
}

.nv-wrap { max-width: var(--nv-wrap); margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.nv-hand { font-family: var(--nv-hand); font-size: 24px; margin: 0; line-height: 1.3; }
.nv-hand--coral { color: var(--nv-coral-dark); }
.nv-hand--purple { color: var(--nv-purple-dark); }
.nv-h2 { font-weight: 800; font-size: clamp(32px, 3.8vw, 50px); line-height: 1.08; margin: 0; }
.nv-lead { color: var(--nv-ink-soft); margin: 0; }
.nv-section-head { display: flex; flex-direction: column; gap: 10px; max-width: 700px; }

/* ---------- Buttons ---------- */
.nv-btn,
.wp-block-button__link,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 0 28px; border: 0; border-radius: 999px;
	background: var(--nv-accent); color: #fff; text-decoration: none;
	font-family: var(--nv-body); font-size: 17px; font-weight: 700; line-height: 1.2;
	cursor: pointer; transition: transform .15s ease, filter .15s ease;
}
.nv-btn:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover {
	color: #fff; background: var(--nv-accent); filter: brightness(1.12); transform: translateY(-1px);
}
.nv-btn--big { min-height: 56px; padding: 0 30px; }
.nv-textlink { font-weight: 700; font-size: 17px; }

/* ---------- Header ---------- */
.nv-header { position: relative; z-index: 20; }
.nv-header__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-top: 24px; padding-bottom: 24px; }
.nv-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.nv-brand svg { width: 44px; height: 44px; flex: none; }
.nv-brand .custom-logo { max-height: 56px; width: auto; }
.nv-wordmark { font-family: var(--nv-display); font-size: 26px; font-weight: 800; letter-spacing: -0.01em; color: var(--nv-ink); }
.nv-wordmark span { color: var(--nv-purple-dark); }

.nv-nav { display: flex; align-items: center; gap: 26px; }
.nv-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 26px; }
.nv-nav a { text-decoration: none; font-size: 16px; font-weight: 700; }
.nv-nav .current-menu-item > a, .nv-nav a:hover { color: var(--nv-purple-dark); text-decoration: underline; text-decoration-thickness: 2px; }
.nv-nav .sub-menu { display: none; }
.nv-nav__cta.nv-btn { min-height: 46px; padding: 0 22px; font-size: 16px; }
.nv-nav__cta.nv-btn:hover { text-decoration: none; color: #fff; }
.nv-cartlink[hidden] { display: none; }
@media (max-width: 420px) {
	.nv-wordmark { font-size: 21px; }
	.nv-brand svg { width: 36px; height: 36px; }
	.nv-menu-toggle { padding: 0 14px; }
}
.nv-cartlink { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: var(--nv-lilac); }

.nv-menu-toggle {
	display: none; align-items: center; gap: 8px; min-height: 46px; padding: 0 18px;
	border: 2px solid var(--nv-ink); border-radius: 999px; background: transparent;
	font: inherit; font-size: 16px; font-weight: 700; color: var(--nv-ink); cursor: pointer;
}

@media (max-width: 900px) {
	.nv-menu-toggle { display: inline-flex; }
	.nv-nav { display: none; width: 100%; flex-direction: column; align-items: flex-start; gap: 18px; padding: 8px 0 12px; }
	.nv-nav.is-open { display: flex; }
	.nv-nav ul { flex-direction: column; align-items: flex-start; gap: 14px; }
	.nv-nav a { font-size: 19px; }
}

/* ---------- Hero ---------- */
.nv-hero { display: flex; flex-wrap: wrap; align-items: center; gap: 48px; padding-top: 32px; padding-bottom: 88px; }
.nv-hero__text { flex: 1 1 460px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.nv-hero__title { font-weight: 800; font-size: clamp(40px, 5.2vw, 70px); line-height: 1.02; letter-spacing: -0.025em; margin: 0; }
.nv-hero__lead { font-size: 20px; color: var(--nv-ink-soft); max-width: 540px; margin: 0; }
.nv-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 6px; }
.nv-hero__art { flex: 1 1 440px; min-width: 0; display: flex; justify-content: center; }
.nv-hero__art svg { width: 100%; max-width: 560px; }
.nv-ticks { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: 15px; font-weight: 700; color: var(--nv-ink-soft); }
.nv-ticks li { display: flex; align-items: center; gap: 8px; }

/* Gentle doodle motion */
@media (prefers-reduced-motion: no-preference) {
	.nv-float { animation: nv-float 6s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
	.nv-float--slow { animation-duration: 8s; animation-delay: -2s; }
	@keyframes nv-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
}

/* ---------- Waar is jy ---------- */
.nv-band { background: var(--nv-lilac); padding: 88px 0; }
.nv-band__inner { display: flex; flex-direction: column; gap: 40px; }
.nv-gates { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; }
.nv-gate {
	text-decoration: none; background: #fff; border-radius: var(--nv-radius); padding: 26px;
	display: flex; flex-direction: column; gap: 14px; min-height: 180px;
	transition: transform .15s ease, box-shadow .15s ease;
}
.nv-gate:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(36, 32, 63, .08); color: var(--nv-ink); }
.nv-gate__dot { width: 14px; height: 14px; border-radius: 4px; }
.nv-gate__quote { font-family: var(--nv-display); font-size: 22px; font-weight: 700; line-height: 1.2; }
.nv-gate__go { margin-top: auto; font-size: 15px; font-weight: 700; }
.nv-gate--dark { background: var(--nv-ink); color: #fff; }
.nv-gate--dark:hover { color: #fff; }
.nv-gate--dark .nv-gate__dot { border-radius: 50%; border: 2px dashed #B9B4F0; }
.nv-gate--dark .nv-gate__go { color: #D4D0F7; }
.nv-waar__self { margin: 24px 0 0; font-size: 18px; }

/* ---------- Colour variants ---------- */
.is-teal .nv-gate__dot, .is-teal .nv-stop__num { background: var(--nv-teal); }
.is-teal .nv-gate__go, .is-teal .nv-stop__eyebrow, .is-teal .nv-guide__label, .is-teal .nv-guide__go { color: var(--nv-teal-dark); }
.is-teal .nv-guide { background: var(--nv-teal-tint); } .is-teal .nv-guide__desc { color: var(--nv-teal-text); }

.is-purple .nv-gate__dot, .is-purple .nv-stop__num { background: var(--nv-purple); }
.is-purple .nv-gate__go, .is-purple .nv-stop__eyebrow, .is-purple .nv-guide__label, .is-purple .nv-guide__go { color: var(--nv-purple-dark); }
.is-purple .nv-guide { background: var(--nv-purple-tint); } .is-purple .nv-guide__desc { color: var(--nv-purple-text); }

.is-amber .nv-gate__dot, .is-amber .nv-stop__num { background: var(--nv-amber); }
.is-amber .nv-stop__num { color: var(--nv-ink); }
.is-amber .nv-gate__go, .is-amber .nv-stop__eyebrow, .is-amber .nv-guide__label, .is-amber .nv-guide__go { color: var(--nv-amber-dark); }
.is-amber .nv-guide { background: var(--nv-amber-tint); } .is-amber .nv-guide__desc { color: var(--nv-amber-text); }

.is-coral .nv-gate__dot, .is-coral .nv-stop__num { background: var(--nv-coral); }
.is-coral .nv-gate__go, .is-coral .nv-stop__eyebrow, .is-coral .nv-guide__label, .is-coral .nv-guide__go { color: var(--nv-coral-dark); }
.is-coral .nv-guide { background: var(--nv-coral-tint); } .is-coral .nv-guide__desc { color: var(--nv-coral-text); }

.is-ink .nv-gate__dot, .is-ink .nv-stop__num { background: var(--nv-ink); }
.is-ink .nv-gate__go, .is-ink .nv-stop__eyebrow, .is-ink .nv-guide__label, .is-ink .nv-guide__go { color: var(--nv-purple-dark); }
.is-ink .nv-guide { background: var(--nv-lilac); border: 1.5px solid var(--nv-line); } .is-ink .nv-guide__desc { color: var(--nv-purple-text); }

/* ---------- Die pad ---------- */
.nv-path { padding-top: 96px; padding-bottom: 64px; display: flex; flex-direction: column; gap: 56px; }
.nv-stops { display: flex; flex-direction: column; }
.nv-stop { display: flex; gap: 24px; scroll-margin-top: 24px; }
.nv-stop__rail { flex: 0 0 56px; display: flex; flex-direction: column; align-items: center; }
.nv-stop__num {
	width: 56px; height: 56px; border-radius: 50%; color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--nv-display); font-size: 24px; font-weight: 800;
}
.nv-stop__line { flex: 1; width: 0; border-left: 3px dashed var(--nv-line); margin-top: 8px; }
.nv-stop__body { flex: 1; min-width: 0; padding-bottom: 64px; display: flex; flex-wrap: wrap; gap: 28px 40px; }
.nv-stop__story, .nv-stop__guides { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
@media (max-width: 600px) {
	.nv-stop { gap: 14px; }
	.nv-stop__rail { flex-basis: 44px; }
	.nv-stop__num, .nv-stop__ring { width: 44px; height: 44px; font-size: 20px; }
	.nv-stop__body { padding-bottom: 48px; }
	.nv-guide { padding: 22px; }
	.nv-gates { grid-template-columns: 1fr; }
}
.nv-stop__guides { gap: 14px; }
.nv-stop__eyebrow { margin: 0; font-size: 14px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.nv-stop__title { margin: 0; font-size: 30px; font-weight: 700; line-height: 1.15; }
.nv-stop__story p:last-child { margin: 0; color: var(--nv-ink-soft); }

.nv-guide {
	text-decoration: none; border-radius: var(--nv-radius); padding: 26px;
	display: flex; flex-direction: column; gap: 10px; transition: transform .15s ease;
}
.nv-guide:hover { transform: translateY(-3px); color: var(--nv-ink); }
.nv-guide__label { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.nv-guide__title { font-family: var(--nv-display); font-size: 23px; font-weight: 700; line-height: 1.2; }
.nv-guide__desc { font-size: 16px; }
.nv-guide__go { font-size: 15px; font-weight: 700; }

.nv-stop--end .nv-stop__rail { justify-content: center; }
.nv-stop__ring {
	width: 56px; height: 56px; border-radius: 50%; border: 3px dashed var(--nv-purple-dark);
	display: flex; align-items: center; justify-content: center;
}
.nv-stop--end .nv-stop__body { flex-direction: column; flex-wrap: nowrap; gap: 6px; padding: 6px 0 0; }
.nv-stop--end .nv-stop__body p { margin: 0; font-family: var(--nv-display); font-size: 26px; font-weight: 700; }

/* ---------- Aanhaling ---------- */
.nv-quote-wrap { padding: 24px 24px 96px; }
.nv-quote {
	margin: 0 auto; max-width: var(--nv-wrap); background: var(--nv-ink); color: #fff;
	border-radius: 32px; padding: clamp(40px, 6vw, 80px);
	display: flex; flex-direction: column; gap: 22px; position: relative; overflow: hidden;
}
.nv-quote__doodle { position: absolute; right: 24px; top: 20px; width: 260px; opacity: .55; }
.nv-quote blockquote {
	margin: 0; position: relative; max-width: 900px;
	font-family: var(--nv-display); font-weight: 700; font-size: clamp(26px, 3.4vw, 44px); line-height: 1.2; letter-spacing: -0.015em;
}
.nv-quote figcaption { position: relative; font-family: var(--nv-hand); font-size: 24px; color: #F7C77A; }

/* ---------- NeuroKaart ---------- */
.nv-kaart { display: flex; flex-wrap: wrap; align-items: center; gap: 56px; }
.nv-kaart__art { flex: 1 1 380px; min-width: 0; display: flex; justify-content: center; }
.nv-kaart__art svg { width: 100%; max-width: 420px; }
.nv-kaart__text { flex: 1 1 460px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }

.nv-signup { margin-top: 6px; background: #fff; border-radius: 24px; padding: 26px; display: flex; flex-direction: column; gap: 14px; scroll-margin-top: 24px; }
.nv-signup__title { font-family: var(--nv-display); font-size: 22px; font-weight: 700; line-height: 1.25; }
.nv-signup__fields { display: flex; flex-wrap: wrap; gap: 12px; }
.nv-field { flex: 1 1 200px; display: flex; flex-direction: column; gap: 6px; }
.nv-field label { font-size: 15px; font-weight: 700; }
.nv-field input,
.nv-signup input[type="text"], .nv-signup input[type="email"] {
	height: 50px; padding: 0 16px; border: 1.5px solid var(--nv-line); border-radius: 14px;
	background: var(--nv-paper); font: inherit; font-size: 17px; color: var(--nv-ink); width: 100%;
}
.nv-signup input[type="submit"], .nv-signup button { width: 100%; }
.nv-signup__fine { margin: 0; font-size: 15px; color: var(--nv-ink-soft); }
.nv-admin-note { margin: 0; font-size: 14px; background: var(--nv-amber-tint); color: var(--nv-amber-text); padding: 10px 14px; border-radius: 12px; }

/* ---------- Petro ---------- */
.nv-petro { display: flex; flex-wrap: wrap; align-items: center; gap: 56px; padding-top: 96px; padding-bottom: 96px; }
.nv-petro__art { flex: 1 1 320px; display: flex; justify-content: center; }
.nv-petro__art svg { width: 100%; max-width: 360px; }
.nv-petro__text { flex: 1 1 480px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.nv-petro__text p { margin: 0; color: var(--nv-ink-soft); }
.nv-petro__text .nv-textlink { align-self: flex-start; }

/* ---------- Blog cards ---------- */
.nv-blogstrip { border-top: 1.5px dashed var(--nv-line); padding-top: 72px; padding-bottom: 88px; display: flex; flex-direction: column; gap: 32px; }
.nv-blogstrip__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; }
.nv-blogstrip__head h2 { font-weight: 800; font-size: clamp(30px, 3vw, 40px); margin: 0; }
.nv-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 32px 24px; }
.nv-card { text-decoration: none; display: flex; flex-direction: column; gap: 10px; }
.nv-card:hover .nv-card__title { color: var(--nv-purple-dark); }
.nv-card__img { height: 180px; border-radius: 20px; overflow: hidden; background: var(--nv-teal-tint); display: flex; align-items: center; justify-content: center; }
.nv-card:nth-child(3n+2) .nv-card__img { background: var(--nv-purple-tint); }
.nv-card:nth-child(3n+3) .nv-card__img { background: var(--nv-amber-tint); }
.nv-card__img img { width: 100%; height: 100%; object-fit: cover; }
.nv-card__img svg { width: 90px; opacity: .8; }
.nv-card__cat { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--nv-teal-dark); }
.nv-card__title { font-family: var(--nv-display); font-size: 22px; font-weight: 700; line-height: 1.25; color: var(--nv-ink); }
.nv-card__excerpt { font-size: 16px; color: var(--nv-ink-soft); }

/* ---------- Inner pages ---------- */
.nv-pagehead { background: var(--nv-lilac); padding: 64px 0 56px; margin-bottom: 56px; }
.nv-pagehead h1 { font-weight: 800; font-size: clamp(34px, 4.4vw, 56px); margin: 0; max-width: 860px; }
.nv-pagehead .nv-meta { margin-top: 14px; color: var(--nv-ink-soft); font-size: 16px; }
.nv-pagehead .nv-hand { margin-bottom: 8px; }

.nv-content { max-width: 740px; margin: 0 auto; padding: 0 24px 88px; }
.nv-content > * + * { margin-top: 1.1em; }
.nv-content h2 { font-size: 32px; margin-top: 1.6em; }
.nv-content h3 { font-size: 25px; margin-top: 1.4em; }
.nv-content a { color: var(--nv-purple-dark); }
.nv-content blockquote {
	margin: 1.6em 0; padding: 28px 32px; background: var(--nv-lilac); border-radius: var(--nv-radius);
	font-family: var(--nv-display); font-size: 24px; font-weight: 700; line-height: 1.3;
}
.nv-content blockquote p:last-child { margin: 0; }
.nv-content img { border-radius: 18px; }
.nv-content ul, .nv-content ol { padding-left: 1.3em; }
.nv-content li + li { margin-top: .35em; }
.nv-content .alignwide { max-width: 1040px; margin-left: 50%; transform: translateX(-50%); width: calc(100vw - 48px); }
.nv-content .alignfull { width: 100vw; max-width: 100vw; margin-left: 50%; transform: translateX(-50%); }
/* Lang Afrikaanse woorde (bv. geestesgesondheidsgevolge) mag op fone breek eerder as om afgesny te word. */
.nv-content, .nv-pagehead h1, .nv-guide__title, .nv-stop__title { overflow-wrap: break-word; hyphens: auto; }
@media (max-width: 600px) {
	.nv-content h2 { font-size: 26px; }
	.nv-content h3 { font-size: 22px; }
}
.nv-content figcaption, .wp-caption-text { font-size: 15px; color: var(--nv-ink-soft); text-align: center; }
.nv-featured { max-width: 1040px; margin: -24px auto 48px; padding: 0 24px; }
.nv-featured img { border-radius: 24px; width: 100%; }
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { margin-left: auto; margin-right: auto; display: block; }

.nv-listing { padding-bottom: 88px; }
.nv-pagination { margin-top: 56px; display: flex; flex-wrap: wrap; gap: 10px; }
.nv-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 46px; height: 46px; padding: 0 14px;
	border-radius: 999px; background: var(--nv-lilac); text-decoration: none; font-weight: 700;
}
.nv-pagination .page-numbers.current { background: var(--nv-ink); color: #fff; }

.nv-postnav { max-width: 740px; margin: 0 auto; padding: 0 24px 72px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; font-weight: 700; }

.nv-search { display: flex; gap: 10px; flex-wrap: wrap; max-width: 520px; }
.nv-search input[type="search"] { flex: 1 1 220px; height: 52px; padding: 0 18px; border: 1.5px solid var(--nv-line); border-radius: 999px; font: inherit; background: #fff; }

/* Comments */
.nv-comments { max-width: 740px; margin: 0 auto; padding: 0 24px 88px; }
.nv-comments ol { list-style: none; padding: 0; }
.nv-comments .comment-body { background: var(--nv-lilac); border-radius: 18px; padding: 20px 24px; margin-bottom: 16px; }
.nv-comments .children { list-style: none; padding-left: 28px; }
.nv-comments textarea, .nv-comments input[type="text"], .nv-comments input[type="email"], .nv-comments input[type="url"] {
	width: 100%; padding: 12px 16px; border: 1.5px solid var(--nv-line); border-radius: 14px; font: inherit; background: #fff;
}
.nv-comments input[type="submit"] { background: var(--nv-accent); color: #fff; border: 0; border-radius: 999px; min-height: 50px; padding: 0 26px; font: inherit; font-weight: 700; cursor: pointer; }

/* 404 */
.nv-404 { display: flex; flex-wrap: wrap; align-items: center; gap: 48px; padding-top: 64px; padding-bottom: 96px; }
.nv-404 > div { flex: 1 1 380px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }

/* ---------- WooCommerce ---------- */
.nv-shop { padding-bottom: 88px; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { text-align: left; }
.woocommerce ul.products li.product a img { border-radius: 20px; background: var(--nv-lilac); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--nv-display); font-size: 21px; font-weight: 700; line-height: 1.25; color: var(--nv-ink); }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--nv-purple-dark); font-weight: 700; font-size: 18px; }
.woocommerce div.product .product_title { font-weight: 800; font-size: clamp(30px, 3.6vw, 46px); }
.woocommerce div.product div.images img { border-radius: 24px; }
.woocommerce span.onsale { background: var(--nv-coral-dark); border-radius: 999px; min-height: 0; min-width: 0; padding: 6px 14px; line-height: 1.3; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border-radius: 14px 14px 0 0; background: var(--nv-lilac); border-color: var(--nv-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: #fff; }
.woocommerce .quantity .qty { height: 52px; border-radius: 14px; border: 1.5px solid var(--nv-line); font: inherit; }
.woocommerce-message, .woocommerce-info { border-top-color: var(--nv-purple-dark); background: var(--nv-lilac); border-radius: 0 0 14px 14px; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--nv-purple-dark); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
	min-height: 48px; padding: 10px 14px; border: 1.5px solid var(--nv-line); border-radius: 14px; font: inherit; background: #fff;
}
.woocommerce table.shop_table { border-radius: 18px; border-color: var(--nv-line); }

/* ---------- Footer ---------- */
.nv-footer { background: var(--nv-ink); color: #E9E7F7; padding: 56px 0 40px; }
.nv-footer__inner { display: flex; flex-direction: column; gap: 28px; }
.nv-footer__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; }
.nv-footer .nv-wordmark { color: #fff; }
.nv-footer .nv-wordmark span { color: #B9B4F0; }
.nv-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; }
.nv-footer a { color: #E9E7F7; font-size: 16px; }
.nv-footer a:hover { color: #fff; }
.nv-footer__disclaimer { margin: 0; max-width: 760px; font-size: 15px; color: #C9C5EE; }
.nv-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 14px; color: #C9C5EE; }
.nv-footer__bottom a { color: #C9C5EE; font-size: 14px; }

/* ==========================================================================
   v1.2 · Inproppe in die NeuroVerstaan-styl
   ========================================================================== */

/* ---------- MailPoet: die inteken-vorm ---------- */
.nv-signup .mailpoet_form { padding: 0 !important; background: transparent !important; width: 100% !important; }
.nv-signup form.mailpoet_form { padding: 0 !important; display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.nv-signup .mailpoet_paragraph { flex: 1 1 200px; margin: 0 !important; line-height: 1.3 !important; }
.nv-signup .mailpoet_paragraph:has(.mailpoet_submit),
.nv-signup .mailpoet_paragraph.last { flex-basis: 100%; }
.nv-signup .mailpoet_text_label { font-size: 15px; font-weight: 700; margin-bottom: 6px; }
.nv-signup .mailpoet_text,
.nv-signup input.mailpoet_text {
	width: 100% !important; min-height: 52px; padding: 12px 16px !important;
	font: inherit; font-size: 17px; color: var(--nv-ink);
	background: var(--nv-paper); border: 1.5px solid var(--nv-line) !important; border-radius: 14px !important;
}
.nv-signup .mailpoet_text::placeholder { color: var(--nv-ink-soft); opacity: 1; }
.nv-signup .mailpoet_text:focus { outline: 3px solid var(--nv-purple); outline-offset: 2px; border-color: var(--nv-accent) !important; }
.nv-signup .mailpoet_submit,
.nv-signup input.mailpoet_submit {
	width: 100% !important; min-height: 54px; padding: 0 26px !important; cursor: pointer;
	font-family: var(--nv-display) !important; font-size: 18px !important; font-weight: 700 !important;
	color: #fff !important; background: var(--nv-accent) !important;
	border: 0 !important; border-radius: 999px !important;
	transition: transform .15s ease, background-color .15s ease;
}
.nv-signup .mailpoet_submit:hover { background: var(--nv-ink) !important; transform: translateY(-1px); }
.nv-signup .mailpoet_submit:focus-visible { outline: 3px solid var(--nv-purple); outline-offset: 3px; }
.nv-signup .mailpoet_message { padding: 0 !important; margin-top: 4px; }
.nv-signup .mailpoet_validate_success {
	color: var(--nv-teal-text) !important; background: var(--nv-teal-tint); border-radius: 14px; padding: 12px 16px; font-weight: 700;
}
.nv-signup .mailpoet_validate_error, .nv-signup .parsley-errors-list { color: var(--nv-coral-dark) !important; font-size: 15px; }
.nv-signup .mailpoet_form_loading > span { background-color: var(--nv-accent) !important; }
@media (prefers-reduced-motion: reduce) { .nv-signup .mailpoet_submit { transition: none; } .nv-signup .mailpoet_submit:hover { transform: none; } }

/* ---------- CookieAdmin: die koekie-banier ---------- */
[class*="cookieadmin_"], [class*="cookieadmin_"] p, [class*="cookieadmin_"] button, [class*="cookieadmin_"] a, [class*="cookieadmin_"] label {
	font-family: var(--nv-body) !important;
}
#cookieadmin_notice_title, [class*="cookieadmin_"] h1, [class*="cookieadmin_"] h2, [class*="cookieadmin_"] h3 {
	font-family: var(--nv-display) !important; font-weight: 700 !important;
}
.cookieadmin_consent_inside { border-radius: var(--nv-radius) !important; box-shadow: 0 12px 40px rgba(36, 32, 63, .14) !important; }
.cookieadmin_btn { border-radius: 999px !important; font-weight: 700 !important; min-height: 44px; border: 1.5px solid var(--nv-line) !important; }
.cookieadmin_accept_btn, #cookieadmin_save_button, [id*="cookieadmin_save"] { border-color: var(--nv-accent) !important; }
.cookieadmin_btn:focus-visible { outline: 3px solid var(--nv-purple) !important; outline-offset: 2px; }

/* ---------- ShareMyPost: deelknoppies onder plasings ---------- */
.sharemypost-inline-bar { margin: 40px 0 8px; padding-top: 24px; border-top: 1.5px dashed var(--nv-line); }
.sharemypost-inline-bar::before {
	content: "Deel dit met iemand wat dit nodig het"; display: block; margin-bottom: 12px;
	font-family: var(--nv-hand); font-size: 22px; color: var(--nv-coral-dark);
}
.sharemypost-inline-bar .sharemypost-share-button { border-radius: 999px !important; transition: transform .15s ease; }
.sharemypost-inline-bar .sharemypost-share-button:hover { transform: translateY(-2px); }
.sharemypost-inline-bar .sharemypost-share-button:focus-visible { outline: 3px solid var(--nv-purple); outline-offset: 3px; }

/* ---------- Pagelayer: die kontakvorm ---------- */
.pagelayer-contact-form input[type="text"], .pagelayer-contact-form input[type="email"], .pagelayer-contact-form textarea {
	font-family: var(--nv-body) !important; font-size: 17px !important; color: var(--nv-ink) !important;
	background: var(--nv-paper) !important; border: 1.5px solid var(--nv-line) !important; border-radius: 14px !important;
	padding: 14px 16px !important;
}
.pagelayer-contact-form input:focus, .pagelayer-contact-form textarea:focus { outline: 3px solid var(--nv-purple) !important; outline-offset: 2px; border-color: var(--nv-accent) !important; }
.pagelayer-contact-submit-btn {
	font-family: var(--nv-display) !important; font-weight: 700 !important; font-size: 18px !important;
	color: #fff !important; background: var(--nv-accent) !important; border: 0 !important; border-radius: 999px !important;
	padding: 14px 32px !important; cursor: pointer;
}
.pagelayer-contact-submit-btn:hover { background: var(--nv-ink) !important; }
.pagelayer-message-box { font-family: var(--nv-body); border-radius: 14px; }

/* ---------- Pagelayer: knoppies op die ou bladsye ---------- */
.pagelayer-btn-holder.pagelayer-btn-custom { border-radius: 999px !important; font-family: var(--nv-display) !important; font-weight: 700 !important; }
