/* ==========================================================
   Captwiki Social Icons Widget
   Styles: filled | outlined | text | tooltip
   Animations: scale | rotate | bounce | float | pulse | shake | flip
   ========================================================== */

/* ── Base Wrapper ── */
.captwiki-social-icons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

/* ── Base Anchor ── */
.captwiki-social-icons a {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: #fff;
	background-color: #1877f2;
	border-radius: 50%;
	padding: 12px;
	transition: background-color 0.28s ease, color 0.28s ease,
		transform 0.28s cubic-bezier(0.34, 1.56, 0.64, 1),
		box-shadow 0.28s ease, border-color 0.28s ease;
	line-height: 1;
	font-size: 18px;
}

.captwiki-social-icons a svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
	display: block;
	transition: fill 0.28s ease;
}

.captwiki-social-icons a i {
	display: block;
	line-height: 1;
}

/* ==========================================================
   STYLE 1 — Filled (default, already styled by base)
   ========================================================== */
.captwiki-si-style-filled a {
	border-radius: 50%;
}

/* ==========================================================
   STYLE 2 — Outlined Ghost
   ========================================================== */
.captwiki-si-style-outlined a {
	background-color: transparent !important;
	border: 2px solid currentColor;
	color: inherit;
}

.captwiki-si-style-outlined a:hover {
	color: #fff !important;
}

/* ==========================================================
   STYLE 3 — Icon + Text Pill
   ========================================================== */
.captwiki-si-style-text a {
	border-radius: 100px;
	gap: 8px;
	padding: 10px 18px;
	white-space: nowrap;
}

.captwiki-si-style-text a .captwiki-si-label {
	font-size: 0.875em;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1;
}

/* ==========================================================
   STYLE 4 — Tooltip
   ========================================================== */
.captwiki-si-style-tooltip a {
	border-radius: 50%;
	overflow: visible;
	/* allow tooltip to overflow */
}

/* Tooltip bubble */
.captwiki-si-tooltip {
	position: absolute;
	white-space: nowrap;
	background: #1a1a2e;
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.04em;
	padding: 5px 10px;
	border-radius: 6px;
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
	z-index: 99;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
}

/* Tooltip arrow (shared base) */
.captwiki-si-tooltip::after {
	content: '';
	position: absolute;
	border: 5px solid transparent;
}

/* ── Tooltip: Top (default) ── */
.captwiki-si-tooltip-top .captwiki-si-tooltip {
	bottom: calc(100% + 10px);
	left: 50%;
	transform: translateX(-50%) translateY(6px);
}

.captwiki-si-tooltip-top .captwiki-si-tooltip::after {
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	border-top-color: #1a1a2e;
}

.captwiki-si-tooltip-top a:hover .captwiki-si-tooltip,
.captwiki-si-tooltip-top a:focus .captwiki-si-tooltip {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

/* ── Tooltip: Bottom ── */
.captwiki-si-tooltip-bottom .captwiki-si-tooltip {
	top: calc(100% + 10px);
	left: 50%;
	transform: translateX(-50%) translateY(-6px);
}

.captwiki-si-tooltip-bottom .captwiki-si-tooltip::after {
	bottom: 100%;
	left: 50%;
	transform: translateX(-50%);
	border-bottom-color: #1a1a2e;
}

.captwiki-si-tooltip-bottom a:hover .captwiki-si-tooltip,
.captwiki-si-tooltip-bottom a:focus .captwiki-si-tooltip {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

/* ── Tooltip: Left ── */
.captwiki-si-tooltip-left .captwiki-si-tooltip {
	right: calc(100% + 10px);
	top: 50%;
	transform: translateY(-50%) translateX(6px);
}

.captwiki-si-tooltip-left .captwiki-si-tooltip::after {
	left: 100%;
	top: 50%;
	transform: translateY(-50%);
	border-left-color: #1a1a2e;
}

.captwiki-si-tooltip-left a:hover .captwiki-si-tooltip,
.captwiki-si-tooltip-left a:focus .captwiki-si-tooltip {
	opacity: 1;
	visibility: visible;
	transform: translateY(-50%) translateX(0);
}

/* ── Tooltip: Right ── */
.captwiki-si-tooltip-right .captwiki-si-tooltip {
	left: calc(100% + 10px);
	top: 50%;
	transform: translateY(-50%) translateX(-6px);
}

.captwiki-si-tooltip-right .captwiki-si-tooltip::after {
	right: 100%;
	top: 50%;
	transform: translateY(-50%);
	border-right-color: #1a1a2e;
}

.captwiki-si-tooltip-right a:hover .captwiki-si-tooltip,
.captwiki-si-tooltip-right a:focus .captwiki-si-tooltip {
	opacity: 1;
	visibility: visible;
	transform: translateY(-50%) translateX(0);
}

/* ==========================================================
   HOVER ANIMATIONS
   ========================================================== */

/* Scale Up */
.captwiki-si-hover-scale a:hover {
	transform: scale(1.18);
}

/* Rotate */
.captwiki-si-hover-rotate a:hover {
	transform: rotate(15deg) scale(1.1);
}

/* Bounce */
.captwiki-si-hover-bounce a:hover {
	animation: captwiki-si-bounce 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97);
}

/* Float */
.captwiki-si-hover-float a:hover {
	animation: captwiki-si-float 0.6s ease infinite alternate;
}

/* Pulse Ring */
.captwiki-si-hover-pulse a:hover {
	animation: captwiki-si-pulse 0.65s ease-out;
}

/* Shake */
.captwiki-si-hover-shake a:hover {
	animation: captwiki-si-shake 0.5s ease;
}

/* Flip */
.captwiki-si-hover-flip a:hover {
	transform: rotateY(180deg);
}

/* ==========================================================
   KEYFRAMES
   ========================================================== */
@keyframes captwiki-si-bounce {

	0%,
	100% {
		transform: translateY(0);
	}

	30% {
		transform: translateY(-10px);
	}

	60% {
		transform: translateY(-5px);
	}

	80% {
		transform: translateY(-8px);
	}
}

@keyframes captwiki-si-float {
	0% {
		transform: translateY(0);
	}

	100% {
		transform: translateY(-7px);
	}
}

@keyframes captwiki-si-pulse {
	0% {
		box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.3);
	}

	70% {
		box-shadow: 0 0 0 12px rgba(0, 0, 0, 0);
	}

	100% {
		box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
	}
}

@keyframes captwiki-si-shake {

	0%,
	100% {
		transform: translateX(0);
	}

	15% {
		transform: translateX(-5px) rotate(-5deg);
	}

	30% {
		transform: translateX(5px) rotate(5deg);
	}

	45% {
		transform: translateX(-4px) rotate(-3deg);
	}

	60% {
		transform: translateX(4px) rotate(3deg);
	}

	75% {
		transform: translateX(-2px) rotate(-1deg);
	}
}

/* ==========================================================
   ACCESSIBILITY: Reduce Motion
   ========================================================== */
@media (prefers-reduced-motion: reduce) {

	.captwiki-social-icons a,
	.captwiki-si-tooltip {
		transition: none !important;
		animation: none !important;
	}
}