/**
 * Language switcher — sizes + hover animations (mirrors social utility controls).
 */

.tekton-language-item--size-small {
	--tekton-lang-size: 32px;
	--tekton-lang-icon: 14px;
	--tekton-lang-pad-x: 10px;
	--tekton-lang-font: 12px;
}

.tekton-language-item--size-medium {
	--tekton-lang-size: 38px;
	--tekton-lang-icon: 18px;
	--tekton-lang-pad-x: 12px;
	--tekton-lang-font: 13px;
}

.tekton-language-item--size-large {
	--tekton-lang-size: 44px;
	--tekton-lang-icon: 20px;
	--tekton-lang-pad-x: 14px;
	--tekton-lang-font: 14px;
}

.tekton-language-item--size-small .tekton-lang-trigger,
.tekton-language-item--size-medium .tekton-lang-trigger,
.tekton-language-item--size-large .tekton-lang-trigger {
	min-width: var(--tekton-lang-size, 38px);
	min-height: var(--tekton-lang-size, 38px);
	padding-left: var(--tekton-lang-pad-x, 12px);
	padding-right: var(--tekton-lang-pad-x, 12px);
}

.tekton-language-item--size-small .tekton-lang-trigger-label,
.tekton-language-item--size-medium .tekton-lang-trigger-label,
.tekton-language-item--size-large .tekton-lang-trigger-label {
	font-size: var(--tekton-lang-font, 13px);
}

.tekton-language-item--size-small .tekton-lang-trigger svg,
.tekton-language-item--size-medium .tekton-lang-trigger svg,
.tekton-language-item--size-large .tekton-lang-trigger svg {
	width: var(--tekton-lang-icon, 18px);
	height: var(--tekton-lang-icon, 18px);
}

.tekton-language-item--size-small.tekton-language-item--trigger-flag_chip .tekton-lang-trigger,
.tekton-language-item--size-medium.tekton-language-item--trigger-flag_chip .tekton-lang-trigger,
.tekton-language-item--size-large.tekton-language-item--trigger-flag_chip .tekton-lang-trigger {
	width: var(--tekton-lang-size, 38px);
	height: var(--tekton-lang-size, 38px);
	padding: 4px;
}

/* Hover animations on trigger (beat style.css base trigger rules) */
.tekton-language-item.tekton-language-item--hover-none .tekton-lang-trigger:hover,
.tekton-language-item.tekton-language-item--hover-none .tekton-lang-trigger:focus-visible {
	transform: none;
	animation: none;
}

.tekton-language-item.tekton-language-item--hover-lift .tekton-lang-trigger:hover,
.tekton-language-item.tekton-language-item--hover-lift .tekton-lang-trigger:focus-visible {
	transform: translateY(-4px);
	animation: none;
}

.tekton-language-item.tekton-language-item--hover-grow .tekton-lang-trigger:hover,
.tekton-language-item.tekton-language-item--hover-grow .tekton-lang-trigger:focus-visible {
	transform: scale(1.1);
	animation: none;
}

.tekton-language-item.tekton-language-item--hover-pulse .tekton-lang-trigger:hover,
.tekton-language-item.tekton-language-item--hover-pulse .tekton-lang-trigger:focus-visible {
	animation: tekton-lang-pulse 0.7s ease-in-out infinite;
}

.tekton-language-item.tekton-language-item--hover-spin .tekton-lang-trigger:hover .tekton-lang-trigger-icon svg,
.tekton-language-item.tekton-language-item--hover-spin .tekton-lang-trigger:focus-visible .tekton-lang-trigger-icon svg {
	animation: tekton-lang-spin 0.55s ease;
}

.tekton-language-item.tekton-language-item--hover-bounce .tekton-lang-trigger:hover,
.tekton-language-item.tekton-language-item--hover-bounce .tekton-lang-trigger:focus-visible {
	animation: tekton-lang-bounce 0.55s ease;
}

.tekton-language-item.tekton-language-item--hover-shake .tekton-lang-trigger:hover,
.tekton-language-item.tekton-language-item--hover-shake .tekton-lang-trigger:focus-visible {
	animation: tekton-lang-shake 0.45s ease;
}

.tekton-language-item.tekton-language-item--hover-glow .tekton-lang-trigger:hover,
.tekton-language-item.tekton-language-item--hover-glow .tekton-lang-trigger:focus-visible {
	transform: translateY(-3px);
	animation: none;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary-color, #0274be) 28%, transparent),
		0 10px 22px rgba(15, 23, 42, 0.14);
}

@keyframes tekton-lang-pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.08); }
}

@keyframes tekton-lang-spin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

@keyframes tekton-lang-bounce {
	0%, 100% { transform: translateY(0); }
	40% { transform: translateY(-6px); }
	70% { transform: translateY(-2px); }
}

@keyframes tekton-lang-shake {
	0%, 100% { transform: translateX(0); }
	20% { transform: translateX(-3px); }
	40% { transform: translateX(3px); }
	60% { transform: translateX(-2px); }
	80% { transform: translateX(2px); }
}

@media (prefers-reduced-motion: reduce) {
	.tekton-language-item .tekton-lang-trigger,
	.tekton-language-item .tekton-lang-trigger svg {
		animation: none !important;
		transition: none !important;
	}
}
