:root {
	--pk-button-font-family: var(--pk-text-font-family);
	--pk-button-font-weight: 400;
	--pk-button-font-size: max(.875rem, calc(.875 * var(--su)));
	--pk-button-radius: 999px;
	--pk-button-padding-block: max(.5rem, calc(.5 * var(--su)));
	--pk-button-padding-inline: max(1.25rem, calc(1.25 * var(--su)));
	--pk-button-gap: max(.375rem, calc(.375 * var(--su)));
}

button {
	font-family: var(--pk-text-font-family);
}


/* ─── BUTTON GROUP ────────────────────────────────────────────── */

.pk-button-group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: max(1rem, calc(1 * var(--su)));
}


/* ─── BASE BUTTON ─────────────────────────────────────────────── */

.pk-button {
	height: max(2.5rem, calc(2.5 * var(--su)));
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--pk-button-gap);
	width: fit-content;
	flex-shrink: 0;
	cursor: pointer;
	text-decoration: none;
	font-family: var(--pk-button-font-family);
	font-size: var(--pk-button-font-size);
	font-weight: var(--pk-button-font-weight);
	line-height: 1;
	padding: var(--pk-button-padding-block) var(--pk-button-padding-inline);
	outline: 1px solid transparent;
	outline-offset: -1px;
	border-radius: var(--pk-button-radius);
}

.pk-button.icon-left {
	flex-direction: row-reverse;
}

/* Kleur komt uit de variant; primair heeft er geen, dus die volgt de tekst. */
.pk-button:focus-visible {
	outline-width: 2px;
	outline-offset: 2px;
}

.pk-button.primary:focus-visible {
	outline-color: currentColor;
}


/* ─── VARIANTEN ───────────────────────────────────────────────── */

.pk-button.primary {
	background-color: var(--accent-100);
	color: var(--white-100);
}

.pk-button.secondary {
	background-color: transparent;
	outline-color: var(--primary-20);
	color: var(--primary-100);
}

.pk-button.secondary.white {
	background-color: rgba(255, 255, 255, .04);
	outline-color: rgba(255, 255, 255, .1);
	color: var(--white-100);
}

.pk-button.tertiary {
	height: unset;
	background-color: transparent;
	padding: 0;
	gap: max(.5rem, calc(.5 * var(--su)));;
	color: var(--primary-100);
}

.pk-button.tertiary.white {
	color: var(--white-100);
}

.pk-button.tertiary .pk-button-icon {
	width: max(2rem, calc(2 * var(--su)));
	height: auto;
	aspect-ratio: 1;
	outline: 1px solid var(--primary-20);
	outline-offset: -1px;
	border-radius: 50%;
	background-color: transparent;
	mask: none;
}

.pk-button.tertiary.white .pk-button-icon {
	outline: 1px solid var(--primary-80);
}

.pk-button.tertiary .pk-button-icon::before {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background-color: currentColor;
	aspect-ratio: 1;
	mask: var(--mask-url) center / 50% no-repeat;
}

.pk-button.download {
	height: max(2.5rem, calc(2.5 * var(--su)));
	padding-inline: max(1.25rem, calc(1.25 * var(--su))) max(.5rem, calc(.5 * var(--su)));
	background-color: var(--primary-90);
	outline: 1px solid var(--primary-80);
	outline-offset: -1px;
	font-size: var(--body-xs-regular);
	color: var(--white-100);
	gap: max(1rem, calc(1 * var(--su)));
	font-weight: 300;
}

.pk-button.download:hover, .pk-button.download:active {
	background-color: var(--white-100);
	outline-color: transparent;
	color: var(--primary-100);
}

.pk-button.download .pk-button-icon {
    width: max(1.5rem, calc(1.5 * var(--su)));
	height: auto;
	aspect-ratio: 1;
	outline: 1px solid var(--white-20);
	outline-offset: -1px;
	border-radius: 50%;
	background-color: transparent;
	mask: none;
}

.pk-button.download:hover .pk-button-icon, .pk-button.download:active .pk-button-icon {
	outline: 1px solid var(--primary-20);
}

.pk-button.download .pk-button-icon::before {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background-color: currentColor;
	aspect-ratio: 1;
	mask: var(--mask-url) center / 50% no-repeat;
}

.pk-button.download:hover .pk-button-icon:before, .pk-button.download:active .pk-button-icon:before {
	outline-color: var(--primary-20);
}


/* ─── CLA (site 3) ────────────────────────────────────────────── */
/* Kleuren volgen uit colors.css (accent = teal, primary = CLA-navy); hier alleen vorm en de extra varianten. */

:root:has(body.site-3) {
	--pk-button-radius: max(.25rem, calc(.25 * var(--su)));
	--pk-button-padding-inline: max(1rem, calc(1 * var(--su)));
	--pk-button-gap: max(.25rem, calc(.25 * var(--su)));
	--pk-button-font-weight: 300;
}

/* Figma: 2px minder padding aan de icoonkant. */
body.site-3 .pk-button.icon-right {
	padding-right: max(.875rem, calc(.875 * var(--su)));
}

body.site-3 .pk-button.icon-left {
	padding-left: max(.875rem, calc(.875 * var(--su)));
}

body.site-3 .pk-button.has-icon:not(.primary):not(.tertiary) {
	gap: max(.5rem, calc(.5 * var(--su)));
}

/* Navy gevuld (o.a. Members Hub Login, Apply now); geen ACF-keuze, alleen via templates. */
body.site-3 .pk-button.primary.navy {
	background-color: var(--primary-100);
}

/* Primair op een teal sectie: een tint lichter met rand, anders valt de knop weg. */
body.site-3 .bg-accent-100 .pk-button.primary:not(.navy),
body.site-3 .cla-hero-accent .pk-button.primary:not(.navy) {
	background-color: var(--accent-90);
	outline-color: var(--accent-80);
}

/* Het CLA-logo is één kleur: als mask, zodat het de tekstkleur van de knop volgt. */
body.site-3 .pk-button-icon.icon-nova-logo {
	background: currentColor;
	mask: var(--logo-nova) center / contain no-repeat;
}

body.site-3 .pk-button.secondary {
	outline-color: var(--primary-40);
}

body.site-3 .pk-button.secondary.white {
	background-color: transparent;
	outline-color: var(--primary-40);
}

body.site-3 .pk-button.download {
	background-color: transparent;
	outline-color: var(--primary-60);
}


/* ─── SHARE DROPDOWN ─── */

.share-dropdown {
	position: relative;
	z-index: 10;
}

.share-dropdown-toggle {
	border: 0;
	height: max(2.5rem, calc(2.5 * var(--su)));
	gap: max(.375rem, calc(.375 * var(--su)));
	padding: max(.5rem, calc(.5 * var(--su))) max(1.25rem, calc(1.25 * var(--su))) max(.5rem, calc(.5 * var(--su))) max(1.125rem, calc(1.125 * var(--su)));
	background: rgba(255, 255, 255, .04);
	outline-color: rgba(255, 255, 255, .1);
	color: var(--white-100);
}

.share-dropdown-toggle-icon {
	display: block;
	width: max(1rem, calc(1 * var(--su)));
	height: max(1rem, calc(1 * var(--su)));
	flex: 0 0 auto;
}

.share-dropdown-menu {
	position: absolute;
	top: calc(100% + max(.625rem, calc(.625 * var(--su))));
	left: 50%;
	width: max(10rem, calc(10 * var(--su)));
	padding: max(.25rem, calc(.25 * var(--su)));
	background: #fff;
	border-radius: max(.125rem, calc(.125 * var(--su)));
	transform: translateX(-50%);
	transform-origin: top center;
	animation: share-dropdown-open 180ms ease-out both;
}

@keyframes share-dropdown-open {
	from {
		opacity: 0;
		transform: translateX(-50%) translateY(-4px);
	}

	to {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
	}
}

.share-dropdown.is-closing .share-dropdown-menu {
	pointer-events: none;
	animation: share-dropdown-close 180ms ease-in both;
}

@keyframes share-dropdown-close {
	from {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
	}

	to {
		opacity: 0;
		transform: translateX(-50%) translateY(-4px);
	}
}

.share-dropdown-menu::before {
	content: '';
	position: absolute;
	bottom: 100%;
	left: 50%;
	border: max(.375rem, calc(.375 * var(--su))) solid transparent;
	border-bottom-color: #fff;
	transform: translateX(-50%);
}

.share-dropdown-item {
	display: flex;
	align-items: center;
	gap: max(.5rem, calc(.5 * var(--su)));
	height: max(2.5rem, calc(2.5 * var(--su)));
	padding: max(.375rem, calc(.375 * var(--su))) max(.75rem, calc(.75 * var(--su)));
	border: 1px solid #fef7f5;
	border-radius: max(.25rem, calc(.25 * var(--su)));
	color: #2f334c;
	text-decoration: none;
	font-family: var(--pk-text-font-family);
	font-size: max(.75rem, calc(.75 * var(--su)));
	font-weight: 400;
	line-height: 1.5;
}

.share-dropdown-item + .share-dropdown-item {
	margin-top: max(.25rem, calc(.25 * var(--su)));
}

.share-dropdown-item:hover,
.share-dropdown-item:focus-visible {
	background: #fef7f5;
}

.share-dropdown-item:focus-visible {
	outline: 2px solid var(--accent-100);
	outline-offset: -2px;
}

.share-dropdown-icon {
	display: block;
	height: max(1rem, calc(1 * var(--su)));
	width: max(1rem, calc(1 * var(--su)));
	flex: 0 0 auto;
	object-fit: contain;
}

.share-dropdown-icon.nova-icon {
	background-color: var(--accent-100);
}

[hidden].share-dropdown-menu {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	.share-dropdown-menu {
		animation: none;
	}
}

@media screen and (max-width: 480px) {
	.share-dropdown-menu {
		max-width: calc(100vw - 2 * var(--pk-site-gutter));
	}
}


/* ─── ICONEN ──────────────────────────────────────────────────── */

.pk-button-icon {
	width: max(1rem, calc(1 * var(--su)));
	height: auto;
	aspect-ratio: 1;
	flex-shrink: 0;
	background-color: currentColor;
	mask: var(--mask-url) center / contain no-repeat;
}

/* Eigen tweekleurige SVG (oranje gradient) i.p.v. de platte mask. */
.pk-button-icon.icon-nova-logo {
	background: var(--logo-nova) center / contain no-repeat;
	mask: none;
}


/* ── TEKSTANIMATIE ── */

[data-text-wrapper] {
	position: relative;
	display: flex;
	align-items: flex-start;
	height: 1.4em;
	line-height: 1.4;
	margin: 0;
	white-space: nowrap;
}

/* Safari tekent deze font-metrics optisch iets hoger binnen dezelfde line-box. */
@supports (-webkit-touch-callout: none) {
	[data-text-wrapper] {
		transform: translateY(.08em);
	}
}

[data-text-double] {
	position: absolute;
	left: 0;
	top: 0;
	white-space: nowrap;
}
