/* WPSolaris Sticky Buttons – Website.
 *
 * Ebenen: Die Buttons liegen mit z-index 970 unter der YOOtheme-Navbar (980),
 * unter Offcanvas, Modals und Cookie-Bannern (ab 990) und weit unter dem
 * Panel der Barrierefreiheit (99990). Über --wpsol-sticky-buttons-z änderbar.
 *
 * Kante (edge): right, left, bottom, top. Ausrichtung entlang der Kante
 * (align): start, center, end. Auf Smartphones (bis 640px) gilt wahlweise
 * dasselbe, eine eigene Position (m-edge, m-align), eine Leiste oder nichts. */

.wpsol-sticky-buttons {
	--wpsol-sticky-buttons-current: var(--wpsol-sticky-buttons-size, 52px);
	position: fixed;
	z-index: var(--wpsol-sticky-buttons-z, 970);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wpsol-sticky-buttons-gap, 10px);
	margin: 0;
	padding: 0;
	font: 400 13px/1.3 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.wpsol-sticky-buttons__list {
	display: flex;
	flex-direction: inherit;
	align-items: center;
	gap: inherit;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wpsol-sticky-buttons__item {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* ── Kanten und Ausrichtung ── */
.wpsol-sticky-buttons--edge-right  { right: var(--wpsol-sticky-buttons-offset, 20px); }
.wpsol-sticky-buttons--edge-left   { left: var(--wpsol-sticky-buttons-offset, 20px); }
.wpsol-sticky-buttons--edge-bottom { bottom: var(--wpsol-sticky-buttons-offset, 20px); flex-direction: row; }
.wpsol-sticky-buttons--edge-top    { top: var(--wpsol-sticky-buttons-offset, 20px); flex-direction: row; }

.wpsol-sticky-buttons--edge-right.wpsol-sticky-buttons--align-start,
.wpsol-sticky-buttons--edge-left.wpsol-sticky-buttons--align-start { top: var(--wpsol-sticky-buttons-along, 20px); }
.wpsol-sticky-buttons--edge-right.wpsol-sticky-buttons--align-end,
.wpsol-sticky-buttons--edge-left.wpsol-sticky-buttons--align-end { bottom: var(--wpsol-sticky-buttons-along, 20px); }
.wpsol-sticky-buttons--edge-right.wpsol-sticky-buttons--align-center,
.wpsol-sticky-buttons--edge-left.wpsol-sticky-buttons--align-center { top: 50%; transform: translateY(-50%); }

.wpsol-sticky-buttons--edge-bottom.wpsol-sticky-buttons--align-start,
.wpsol-sticky-buttons--edge-top.wpsol-sticky-buttons--align-start { left: var(--wpsol-sticky-buttons-along, 20px); }
.wpsol-sticky-buttons--edge-bottom.wpsol-sticky-buttons--align-end,
.wpsol-sticky-buttons--edge-top.wpsol-sticky-buttons--align-end { right: var(--wpsol-sticky-buttons-along, 20px); }
.wpsol-sticky-buttons--edge-bottom.wpsol-sticky-buttons--align-center,
.wpsol-sticky-buttons--edge-top.wpsol-sticky-buttons--align-center { left: 50%; transform: translateX(-50%); }

/* ── Button ── */
.wpsol-sticky-buttons__button {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: var(--wpsol-sticky-buttons-current);
	height: var(--wpsol-sticky-buttons-current);
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--wpsol-sticky-buttons-bg, #624cab);
	color: var(--wpsol-sticky-buttons-fg, #fff);
	box-shadow: 0 2px 10px rgba(0, 0, 0, .22);
	cursor: pointer;
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease;
}

.wpsol-sticky-buttons__button:hover,
.wpsol-sticky-buttons__button:focus-visible {
	color: var(--wpsol-sticky-buttons-fg, #fff);
	transform: scale(1.06);
	box-shadow: 0 4px 14px rgba(0, 0, 0, .28);
}

.wpsol-sticky-buttons__button:focus-visible {
	outline: 3px solid #1d2327;
	outline-offset: 3px;
}

.wpsol-sticky-buttons--rounded .wpsol-sticky-buttons__button { border-radius: 22%; }
.wpsol-sticky-buttons--square .wpsol-sticky-buttons__button { border-radius: 0; }

.wpsol-sticky-buttons__button svg,
.wpsol-sticky-buttons__icon {
	display: block;
	width: 52%;
	height: 52%;
	pointer-events: none;
}

.wpsol-sticky-buttons__icon svg { width: 100%; height: 100%; }

/* ── Tooltip: bei Hover und Tastaturfokus, zur Seitenmitte hin ── */
.wpsol-sticky-buttons__tip {
	position: absolute;
	padding: 6px 10px;
	border-radius: 4px;
	background: #1d2327;
	color: #fff;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .15s ease;
}

.wpsol-sticky-buttons__button:hover .wpsol-sticky-buttons__tip,
.wpsol-sticky-buttons__button:focus-visible .wpsol-sticky-buttons__tip { opacity: 1; visibility: visible; }

.wpsol-sticky-buttons--edge-right .wpsol-sticky-buttons__tip  { right: calc(100% + 10px); top: 50%; transform: translateY(-50%); }
.wpsol-sticky-buttons--edge-left .wpsol-sticky-buttons__tip   { left: calc(100% + 10px); top: 50%; transform: translateY(-50%); }
.wpsol-sticky-buttons--edge-bottom .wpsol-sticky-buttons__tip { bottom: calc(100% + 10px); left: 50%; transform: translateX(-50%); }
.wpsol-sticky-buttons--edge-top .wpsol-sticky-buttons__tip    { top: calc(100% + 10px); left: 50%; transform: translateX(-50%); }

/* ── Aufklappen: ein Hauptbutton, die übrigen erscheinen beim Klick ── */
.wpsol-sticky-buttons__icon--close { display: none; }
.wpsol-sticky-buttons.is-open .wpsol-sticky-buttons__icon--open { display: none; }
.wpsol-sticky-buttons.is-open .wpsol-sticky-buttons__icon--close { display: block; }

.wpsol-sticky-buttons--toggle .wpsol-sticky-buttons__toggle { order: 2; }
.wpsol-sticky-buttons--toggle.wpsol-sticky-buttons--align-start .wpsol-sticky-buttons__toggle { order: 0; }
.wpsol-sticky-buttons--toggle .wpsol-sticky-buttons__list { order: 1; }

.wpsol-sticky-buttons--toggle:not(.is-open) .wpsol-sticky-buttons__list { display: none; }
.wpsol-sticky-buttons--toggle.is-open .wpsol-sticky-buttons__list { animation: wpsol-sticky-buttons-in .18s ease; }

@keyframes wpsol-sticky-buttons-in {
	from { opacity: 0; transform: scale(.9); }
	to   { opacity: 1; transform: none; }
}

/* „Nach oben“ erscheint erst nach etwas Scrollen (Skript setzt is-visible). */
.wpsol-sticky-buttons__item--top:not(.is-visible) { display: none; }

/* ── Geräte ── */
@media (max-width: 640px) {
	.wpsol-sticky-buttons__item--desktop { display: none; }
}

@media (min-width: 641px) {
	.wpsol-sticky-buttons__item--mobile { display: none; }
}

/* ── Smartphones ── */
@media (max-width: 640px) {
	.wpsol-sticky-buttons { --wpsol-sticky-buttons-current: var(--wpsol-sticky-buttons-mobile-size, 46px); }

	.wpsol-sticky-buttons--mobile-hide { display: none; }

	/* Eigene Position: erst alles zurücksetzen, dann die mobilen Werte. */
	.wpsol-sticky-buttons.wpsol-sticky-buttons--mobile-custom {
		top: auto;
		right: auto;
		bottom: auto;
		left: auto;
		transform: none;
		flex-direction: column;
	}

	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-right  { right: var(--wpsol-sticky-buttons-mobile-offset, 12px); }
	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-left   { left: var(--wpsol-sticky-buttons-mobile-offset, 12px); }
	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-bottom { bottom: var(--wpsol-sticky-buttons-mobile-offset, 12px); flex-direction: row; }
	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-top    { top: var(--wpsol-sticky-buttons-mobile-offset, 12px); flex-direction: row; }

	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-right.wpsol-sticky-buttons--m-align-start,
	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-left.wpsol-sticky-buttons--m-align-start { top: var(--wpsol-sticky-buttons-mobile-along, 12px); }
	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-right.wpsol-sticky-buttons--m-align-end,
	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-left.wpsol-sticky-buttons--m-align-end { bottom: var(--wpsol-sticky-buttons-mobile-along, 12px); }
	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-right.wpsol-sticky-buttons--m-align-center,
	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-left.wpsol-sticky-buttons--m-align-center { top: 50%; transform: translateY(-50%); }

	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-bottom.wpsol-sticky-buttons--m-align-start,
	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-top.wpsol-sticky-buttons--m-align-start { left: var(--wpsol-sticky-buttons-mobile-along, 12px); }
	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-bottom.wpsol-sticky-buttons--m-align-end,
	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-top.wpsol-sticky-buttons--m-align-end { right: var(--wpsol-sticky-buttons-mobile-along, 12px); }
	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-bottom.wpsol-sticky-buttons--m-align-center,
	.wpsol-sticky-buttons.wpsol-sticky-buttons--m-edge-top.wpsol-sticky-buttons--m-align-center { left: 50%; transform: translateX(-50%); }

	/* Leiste: über die ganze Breite unten, Icons nebeneinander, Text darunter. */
	.wpsol-sticky-buttons.wpsol-sticky-buttons--mobile-bar {
		top: auto;
		right: 0;
		bottom: 0;
		left: 0;
		transform: none;
		flex-direction: row;
		gap: 0;
		box-shadow: 0 -2px 10px rgba(0, 0, 0, .15);
	}

	.wpsol-sticky-buttons.wpsol-sticky-buttons--mobile-bar .wpsol-sticky-buttons__toggle { display: none; }

	.wpsol-sticky-buttons.wpsol-sticky-buttons--mobile-bar .wpsol-sticky-buttons__list {
		display: flex;
		flex-direction: row;
		width: 100%;
		gap: 0;
		animation: none;
	}

	.wpsol-sticky-buttons.wpsol-sticky-buttons--mobile-bar .wpsol-sticky-buttons__item { flex: 1 1 0; min-width: 0; }

	.wpsol-sticky-buttons.wpsol-sticky-buttons--mobile-bar .wpsol-sticky-buttons__button {
		flex-direction: column;
		gap: 3px;
		width: 100%;
		height: 58px;
		border-radius: 0;
		box-shadow: none;
		transform: none;
	}

	.wpsol-sticky-buttons.wpsol-sticky-buttons--mobile-bar .wpsol-sticky-buttons__button svg { width: 22px; height: 22px; }

	.wpsol-sticky-buttons.wpsol-sticky-buttons--mobile-bar .wpsol-sticky-buttons__tip {
		position: static;
		max-width: 100%;
		padding: 0 4px;
		overflow: hidden;
		background: none;
		color: inherit;
		font-size: 11px;
		text-overflow: ellipsis;
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	body.wpsol-sticky-buttons-has-bar { padding-bottom: 58px; }
}

@media (prefers-reduced-motion: reduce) {
	.wpsol-sticky-buttons__button,
	.wpsol-sticky-buttons__tip { transition: none; }

	.wpsol-sticky-buttons__button:hover,
	.wpsol-sticky-buttons__button:focus-visible { transform: none; }

	.wpsol-sticky-buttons--toggle.is-open .wpsol-sticky-buttons__list { animation: none; }
}

@media print {
	.wpsol-sticky-buttons { display: none; }
}
