/*!
 * Salient Pill Tabs v1.1.0
 */

.spt {
	--spt-nav-width: 45%;
	--spt-gap: 60px;
	--spt-sticky-top: 30px;
	--spt-auto-active-text: #fff;
	--spt-pill-gap: 10px;
	--spt-pad-y: 10px;
	--spt-pad-x: 18px;
	--spt-font-size: 16px;

	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 28px;
	width: 100%;
	margin-bottom: 0;
}

/* Salient rows with light text: dark text on the selected pill until the script checks contrast. */
.light .spt {
	--spt-auto-active-text: #000;
}

.spt--split {
	grid-template-columns: var(--spt-nav-width) minmax(0, 1fr);
	gap: var(--spt-gap);
	align-items: start;
}

.spt--split[data-sticky="true"] .spt-nav-wrap {
	position: sticky;
	top: var(--spt-sticky-top);
}

/* ---------- tab list ---------- */

.spt-nav {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spt-pill-gap);
	margin: 0;
	padding: 0;
}

.spt--stacked[data-align="center"] .spt-nav {
	justify-content: center;
}

.spt--stacked[data-align="right"] .spt-nav {
	justify-content: flex-end;
}

.spt[data-size="small"] {
	--spt-pad-y: 7px;
	--spt-pad-x: 14px;
	--spt-font-size: 14px;
	--spt-pill-gap: 8px;
}

.spt[data-size="large"] {
	--spt-pad-y: 13px;
	--spt-pad-x: 24px;
	--spt-font-size: 18px;
	--spt-pill-gap: 12px;
}

.spt .spt-tab {
	-webkit-appearance: none;
	appearance: none;
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	margin: 0;
	padding: var(--spt-pad-y) var(--spt-pad-x);
	border: 0;
	border-radius: 999px;
	box-shadow: none;
	background: var(--spt-tab-bg, rgba(128, 128, 128, 0.12));
	color: var(--spt-tab-text, inherit);
	font: inherit;
	font-size: var(--spt-font-size);
	line-height: 1.25;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
	-webkit-tap-highlight-color: transparent;
}

.spt .spt-tab:hover {
	background-color: var(--spt-tab-bg-hover, rgba(128, 128, 128, 0.2));
}

@supports (color: color-mix(in srgb, red 50%, transparent)) {
	.spt .spt-tab {
		background: var(--spt-tab-bg, color-mix(in srgb, currentColor 9%, transparent));
	}
	.spt .spt-tab:hover {
		background: var(--spt-tab-bg-hover, color-mix(in srgb, currentColor 16%, transparent));
	}
}

.spt .spt-tab[aria-selected="true"],
.spt .spt-tab[aria-selected="true"]:hover {
	color: inherit;
	background: var(--spt-active-bg, currentColor);
	cursor: default;
}

.spt .spt-tab[aria-selected="true"] .spt-tab-label {
	color: var(--spt-active-text, var(--spt-auto-active-text));
}

.spt .spt-tab:focus {
	outline: none;
}

.spt .spt-tab:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

/* ---------- panels ---------- */

.spt-panels {
	min-width: 0;
}

.spt-panel[hidden] {
	display: none !important;
}

.spt-panel:focus {
	outline: none;
}

.spt-panel:focus-visible {
	outline: 2px dashed currentColor;
	outline-offset: 6px;
}

.spt-panel-inner > :last-child {
	margin-bottom: 0;
}

/* Salient toggles inside a tab: no stray gap at the top. */
.spt-panel-inner > .toggles:first-child,
.spt-panel-inner > .vc_element:first-child > .toggles {
	margin-top: 0;
}

.spt[data-animation="fade-up"] .spt-panel.is-entering {
	animation: spt-fade-up 0.4s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

.spt[data-animation="fade"] .spt-panel.is-entering {
	animation: spt-fade 0.3s ease both;
}

@keyframes spt-fade-up {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: none; }
}

@keyframes spt-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

/* ---------- responsive ---------- */

@media only screen and (max-width: 999px) {
	.spt--split[data-stack-at="tablet"] {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}
	.spt--split[data-stack-at="tablet"] .spt-nav-wrap {
		position: static;
	}
}

@media only screen and (max-width: 690px) {
	.spt--split {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
	}
	.spt--split .spt-nav-wrap {
		position: static;
	}

	.spt {
		--spt-font-size: 15px;
	}

}

/* ---------- one line, swipe sideways ----------
 * Phones: every tab set set to "One line, swipe sideways".
 * Tablets: the same, whenever the tabs sit above the content.
 */

@media only screen and (max-width: 999px) {
	.spt--stacked[data-mobile-nav="scroll"] > .spt-nav-wrap,
	.spt--split[data-stack-at="tablet"][data-mobile-nav="scroll"] > .spt-nav-wrap {
		min-width: 0;
		max-width: 100%;
		overflow: hidden;
	}

	.spt--stacked[data-mobile-nav="scroll"] .spt-nav,
	.spt--split[data-stack-at="tablet"][data-mobile-nav="scroll"] .spt-nav {
		flex-wrap: nowrap !important;
		justify-content: flex-start;
		overflow-x: auto;
		overflow-y: hidden;
		padding: 3px;
		scrollbar-width: none;
		-ms-overflow-style: none;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-x: contain;
		scroll-snap-type: x proximity;
	}

	.spt--stacked[data-mobile-nav="scroll"] .spt-nav::-webkit-scrollbar,
	.spt--split[data-stack-at="tablet"][data-mobile-nav="scroll"] .spt-nav::-webkit-scrollbar {
		display: none;
	}

	.spt--stacked[data-mobile-nav="scroll"] .spt-tab,
	.spt--split[data-stack-at="tablet"][data-mobile-nav="scroll"] .spt-tab {
		flex: 0 0 auto;
		scroll-snap-align: start;
	}

	/* Keep centred / right alignment when the pills fit, and still scroll when they don't. */
	.spt[data-align="center"][data-mobile-nav="scroll"] .spt-nav > .spt-tab:first-child,
	.spt[data-align="right"][data-mobile-nav="scroll"] .spt-nav > .spt-tab:first-child {
		margin-left: auto;
	}
	.spt[data-align="center"][data-mobile-nav="scroll"] .spt-nav > .spt-tab:last-child {
		margin-right: auto;
	}
}

@media only screen and (max-width: 690px) {
	.spt[data-mobile-nav="scroll"] > .spt-nav-wrap {
		min-width: 0;
		max-width: 100%;
		overflow: hidden;
	}

	.spt[data-mobile-nav="scroll"] .spt-nav {
		flex-wrap: nowrap !important;
		justify-content: flex-start;
		overflow-x: auto;
		overflow-y: hidden;
		padding: 3px;
		scrollbar-width: none;
		-ms-overflow-style: none;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-x: contain;
		scroll-snap-type: x proximity;
	}

	.spt[data-mobile-nav="scroll"] .spt-nav::-webkit-scrollbar {
		display: none;
	}

	.spt[data-mobile-nav="scroll"] .spt-tab {
		flex: 0 0 auto;
		scroll-snap-align: start;
	}

	.spt[data-align="center"][data-mobile-nav="scroll"] .spt-nav > .spt-tab:first-child,
	.spt[data-align="right"][data-mobile-nav="scroll"] .spt-nav > .spt-tab:first-child {
		margin-left: auto;
	}
	.spt[data-align="center"][data-mobile-nav="scroll"] .spt-nav > .spt-tab:last-child {
		margin-right: auto;
	}
}

/* Soft fade on whichever edge has more pills hidden behind it (set by the script). */
.spt-nav-wrap.has-more-right {
	-webkit-mask-image: linear-gradient(to right, #000 82%, transparent);
	mask-image: linear-gradient(to right, #000 82%, transparent);
}
.spt-nav-wrap.has-more-left {
	-webkit-mask-image: linear-gradient(to left, #000 82%, transparent);
	mask-image: linear-gradient(to left, #000 82%, transparent);
}
.spt-nav-wrap.has-more-left.has-more-right {
	-webkit-mask-image: linear-gradient(to right, transparent, #000 14%, #000 86%, transparent);
	mask-image: linear-gradient(to right, transparent, #000 14%, #000 86%, transparent);
}

@media (prefers-reduced-motion: reduce) {
	.spt .spt-tab {
		transition: none;
	}
	.spt .spt-panel.is-entering {
		animation: none !important;
	}
}

/* ---------- WPBakery front-end editor ---------- */

.vc_editor .spt-panels > .vc_element[hidden] {
	display: none !important;
}
