/* =========================================================================
   Breon Verhaal — 3 tabs die tijdens het scrollen wisselen
   Gebruikt de kleuren uit style.css (--breon-…) en .breon-btn uit de hero.
   ========================================================================= */
.breon-story {
	--bs-ink: var(--breon-paars, rgb(47, 43, 82));
	--bs-accent: var(--breon-groen, rgb(174, 201, 55));
	--bs-card: var(--breon-wit, #fff);
	position: relative;
	height: 400vh; /* 3 tabs × scrollafstand + 1 scherm */
	color: var(--bs-ink);
	font-family: var(--breon-font-sans, -apple-system, "Segoe UI", sans-serif);
}
.breon-story__pin {
	position: sticky;
	top: 0;
	height: 100vh;
	height: 100svh;
	display: flex;
	align-items: center;
	overflow: hidden;
}
.breon-story__grid {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
	padding-inline: clamp(20px, 5.56vw, 80px);
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: 24px;
	align-items: center;
}
.breon-story__l {
	grid-column: 1 / 6;
	position: relative;
	z-index: 5;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

/* Tabs */
.breon-story__nav { display: flex; gap: 28px; flex-wrap: wrap; }
.breon-story__nav button {
	all: unset;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 14px;
	opacity: .4;
	transition: opacity .4s;
}
.breon-story__nav button.on { opacity: 1; }
.breon-story__nav button span { display: flex; gap: 8px; }
.breon-story__nav button span b { font-weight: 400; }
.breon-story__nav button i {
	width: 72px;
	height: 3px;
	border-radius: 2px;
	background: rgba(47, 43, 82, .15);
	position: relative;
	overflow: hidden;
}
.breon-story__nav button i b {
	position: absolute;
	inset: 0;
	background: var(--bs-accent);
	transform: scaleX(var(--p, 0));
	transform-origin: left;
}
.breon-story__nav button:focus-visible { outline: 2px solid var(--bs-accent); outline-offset: 6px; }

/* Teksten per tab (liggen op elkaar) */
.breon-story__steps { display: grid; }
.breon-story__step {
	grid-area: 1 / 1;
	display: flex;
	flex-direction: column;
	gap: 22px;
	pointer-events: none;
}
.breon-story__step.on { pointer-events: auto; }
.breon-story__step h2 {
	margin: 0;
	color: inherit;
	font-family: var(--breon-font-display, Georgia, serif);
	font-weight: 400;
	font-size: clamp(40px, 4.3vw, 68px);
	line-height: 1;
	letter-spacing: -.015em;
}
.breon-story__step h2 .w { display: block; overflow: hidden; padding-bottom: .08em; }
.breon-story__step h2 .w > span {
	display: block;
	transform: translateY(110%);
	transition: transform .6s cubic-bezier(.5, 0, .75, 0);
}
.breon-story__step.on h2 .w > span {
	transform: none;
	transition: transform 1s cubic-bezier(.2, .8, .2, 1);
	transition-delay: calc(.3s + var(--i, 0) * .12s);
}
.breon-story__step .tx {
	margin: 0;
	font-size: clamp(17px, 1.25vw, 19px);
	line-height: 1.55;
	max-width: 42ch;
	text-wrap: pretty;
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .35s, transform .5s;
}
.breon-story__step.on .tx {
	opacity: 1;
	transform: none;
	transition: opacity .8s .55s, transform 1s cubic-bezier(.2, .7, .2, 1) .55s;
}

/* Knoppen (alleen bij tab 3) */
.breon-story__cta {
	display: flex;
	gap: 32px;
	align-items: center;
	flex-wrap: wrap;
	min-height: 56px;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .5s, transform .6s cubic-bezier(.2, .7, .2, 1);
	pointer-events: none;
}
.breon-story.s3 .breon-story__cta { opacity: 1; transform: none; pointer-events: auto; transition-delay: .6s; }

.breon-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 17px;
	padding-bottom: 6px;
	color: inherit;
	text-decoration: none;
	white-space: nowrap;
	background: linear-gradient(var(--bs-accent), var(--bs-accent)) 0 100% / 100% 2px no-repeat;
	transition: background-size .35s ease;
}
.breon-link:hover, .breon-link:focus { color: inherit; text-decoration: none; background-size: 0 2px; }
.breon-link .ar { transition: transform .3s ease; }
.breon-link:hover .ar { transform: translateX(5px); }

/* Rechts: foto's */
.breon-story__r { grid-column: 6 / 13; position: relative; height: min(80vh, 720px); }
.breon-story__media { position: absolute; inset: 0; transition: opacity .6s ease, transform 1s cubic-bezier(.6, 0, .2, 1); }
.breon-story.s3 .breon-story__media { opacity: 0; transform: scale(.92); pointer-events: none; }
.breon-story__orb {
	position: absolute;
	left: 50%;
	top: 50%;
	width: min(100%, 72vh, 640px);
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
}
.breon-story__orb .im {
	position: absolute;
	top: 0;
	height: 100%;
	will-change: transform, opacity;
	background-size: cover;
	background-repeat: no-repeat;
}
.breon-story__orb .im-a { left: 0; width: 50%; border-radius: 999px 0 0 999px; background-position: 38% center; }
.breon-story__orb .im-b { left: 50%; width: 50%; border-radius: 0 999px 999px 0; background-position: 62% center; }
.breon-story__orb .im-c { left: 0; width: 100%; opacity: 0; border-radius: 50%; background-position: 55% center; transform: scale(var(--z, 1.06)); }

/* Rechts: kaart */
.breon-story__map {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 20px;
	z-index: 3;
	opacity: 0;
	transform: translateY(28px);
	pointer-events: none;
	transition: opacity .5s ease, transform 1s cubic-bezier(.2, .7, .2, 1);
}
.breon-story.s3 .breon-story__map { opacity: 1; transform: none; pointer-events: auto; transition-delay: .3s; }

.breon-chips {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .5s, transform .6s cubic-bezier(.2, .7, .2, 1);
}
.breon-story.s3 .breon-chips { opacity: 1; transform: none; transition-delay: .9s; }
.breon-chip {
	border: 0;
	background: none;
	color: var(--bs-ink);
	box-shadow: inset 0 0 0 1.5px var(--bs-ink);
	border-radius: 999px;
	padding: 11px 18px;
	font: inherit;
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
	transition: background-color .3s, box-shadow .3s, color .3s;
}
.breon-chip:hover { box-shadow: inset 0 0 0 2.5px var(--bs-accent); }
.breon-chip[aria-pressed="true"] { background: var(--bs-ink); color: var(--bs-card); box-shadow: none; }

.breon-mapwrap {
	position: relative;
	padding: clamp(24px, 4vw, 56px) 0;
	clip-path: inset(6% 6% 6% 6%);
	transition: clip-path 1.4s cubic-bezier(.7, 0, .2, 1);
}
.breon-mapwrap.in { clip-path: inset(0 0 0 0); }
.breon-mapart { position: relative; width: 100%; }
.breon-mapart > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	transform: scale(1.06);
	transition: transform 2.4s cubic-bezier(.2, .7, .2, 1);
}
.breon-mapwrap.in .breon-mapart > img { transform: none; }

.breon-mk {
	position: absolute;
	width: 24px;
	height: 24px;
	margin: -12px 0 0 -12px;
	border: 0;
	padding: 0;
	background: none;
	cursor: pointer;
	opacity: 0;
	transform: translateY(-24px) scale(.4);
	transition: opacity .4s var(--d), transform .7s cubic-bezier(.3, 1.6, .5, 1) var(--d);
}
.breon-mk svg { width: 100%; height: 100%; display: block; overflow: visible; }
.breon-mk .body { fill: var(--bs-ink); stroke: var(--bs-card); stroke-width: 2.5; stroke-linejoin: round; transition: fill .3s; }
.breon-mapwrap.live .breon-mk { opacity: 1; transform: none; }
.breon-mapwrap.live .breon-mk.dim { opacity: .15; transform: scale(.7); transition-delay: 0s; }
.breon-mapwrap.live .breon-mk:hover,
.breon-mapwrap.live .breon-mk.on { transform: scale(1.4); z-index: 5; transition-delay: 0s; }
.breon-mk:hover .body, .breon-mk.on .body { fill: var(--bs-accent); }

.breon-legend {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 10;
	background: var(--bs-card);
	padding: 14px 18px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 14px;
}
.breon-legend span { display: flex; align-items: center; gap: 10px; }
.breon-legend svg { width: 16px; height: 16px; }
.breon-legend path, .breon-legend rect { fill: var(--bs-ink); }

.breon-count {
	position: absolute;
	right: 0;
	top: 0;
	z-index: 10;
	background: var(--bs-card);
	padding: 14px 18px;
	display: flex;
	align-items: baseline;
	gap: 10px;
	font-size: 14px;
}
.breon-count b {
	font-family: var(--breon-font-display, Georgia, serif);
	font-weight: 400;
	font-size: 40px;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.breon-card {
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 10;
	background: var(--bs-card);
	color: var(--bs-ink);
	text-decoration: none;
	width: min(420px, 100%);
	padding: 12px;
	display: grid;
	grid-template-columns: 130px 1fr;
	gap: 18px;
	align-items: center;
	box-shadow: 0 20px 40px rgba(47, 43, 82, .12);
	opacity: 0;
	transform: translateY(-10px);
	transition: opacity .4s, transform .5s cubic-bezier(.2, .7, .2, 1);
	pointer-events: none;
}
.breon-card:hover, .breon-card:focus { color: var(--bs-ink); text-decoration: none; }
.breon-card.show { opacity: 1; transform: none; pointer-events: auto; }
.breon-card.no-img { grid-template-columns: 1fr; padding: 18px 20px; }
.breon-card.no-img .im { display: none; }
.breon-card .im { aspect-ratio: 1; background-size: cover; background-position: center; }
.breon-card .tx { display: flex; flex-direction: column; gap: 4px; }
.breon-card small { font-size: 13px; }
.breon-card b { font-family: var(--breon-font-display, Georgia, serif); font-weight: 400; font-size: 26px; line-height: 1.1; }
.breon-card .ad { font-size: 15px; margin-bottom: 8px; }
.breon-card .breon-link { font-size: 15px; align-self: flex-start; }
.breon-card.no-link .breon-link { display: none; }

/* In de WPBakery-editor: alles plat onder elkaar */
.vc_editor .breon-story { height: auto; }

/* Tablet / mobiel: geen vastzetten, alles onder elkaar */
@media (max-width: 1000px) {
	.breon-story { height: auto; padding: 96px 0; }
	.breon-story__pin { position: static; height: auto; display: block; overflow: visible; }
	.breon-story__l, .breon-story__r { grid-column: 1 / -1; }
	.breon-story__nav, .breon-story__media { display: none; }
	.breon-story__steps { gap: 56px; }
	.breon-story__step { grid-area: auto; }
	.breon-story__step .tx,
	.breon-story__cta { opacity: 1; transform: none; pointer-events: auto; }
	.breon-story__step h2 .w > span { transform: none; }
	.breon-story__r { height: auto; margin-top: 56px; }
	.breon-story__map { position: relative; opacity: 1; transform: none; pointer-events: auto; }
	.breon-chips { opacity: 1; transform: none; }
}
@media (max-width: 640px) {
	.breon-count { display: none; }
	.breon-card { position: relative; margin-top: 16px; grid-template-columns: 80px 1fr; }
}

/* Minder beweging */
@media (prefers-reduced-motion: reduce) {
	.breon-story *, .breon-story *::before { transition: none !important; animation: none !important; }
	.breon-mapwrap { clip-path: none; }
	.breon-mk { opacity: 1; transform: none; }
}
