/**
 * Social icons — soft / outline / brand styles + hover animations + header mounts.
 */

.tekton-social-icons {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--tekton-social-gap, 8px);
}

.tekton-social-icons--small {
	--tekton-social-size: 32px;
	--tekton-social-icon: 14px;
	--tekton-social-gap: 6px;
}

.tekton-social-icons--medium {
	--tekton-social-size: 38px;
	--tekton-social-icon: 16px;
	--tekton-social-gap: 8px;
}

.tekton-social-icons--large {
	--tekton-social-size: 44px;
	--tekton-social-icon: 18px;
	--tekton-social-gap: 10px;
}

.tekton-social-icons .tekton-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--tekton-social-size, 38px);
	height: var(--tekton-social-size, 38px);
	min-width: var(--tekton-social-size, 38px);
	min-height: var(--tekton-social-size, 38px);
	border-radius: 999px;
	text-decoration: none;
	color: inherit;
	transition: transform 0.25s ease, background-color 0.2s ease, color 0.2s ease, box-shadow 0.25s ease, filter 0.25s ease;
	box-sizing: border-box;
}

.tekton-social-icons .tekton-social-link svg {
	width: var(--tekton-social-icon, 16px);
	height: var(--tekton-social-icon, 16px);
	display: block;
	flex-shrink: 0;
	transition: transform 0.25s ease;
}

/* Soft */
.tekton-social-icons--soft .tekton-social-link {
	background: color-mix(in srgb, currentColor 10%, transparent);
	color: inherit;
}

.tekton-social-icons--soft .tekton-social-link:hover {
	background: color-mix(in srgb, var(--primary-color, #0274be) 16%, transparent);
	color: var(--primary-color, #0274be);
}

/* Outline */
.tekton-social-icons--outline .tekton-social-link {
	background: transparent;
	border: 1.5px solid color-mix(in srgb, currentColor 28%, transparent);
	color: inherit;
}

.tekton-social-icons--outline .tekton-social-link:hover {
	border-color: var(--primary-color, #0274be);
	color: var(--primary-color, #0274be);
}

/* Brand */
.tekton-social-icons--brand .tekton-social-link {
	color: #fff;
}

.tekton-social-icons--brand .tekton-social-facebook { background: #1877f2; }
.tekton-social-icons--brand .tekton-social-twitter { background: #0f1419; }
.tekton-social-icons--brand .tekton-social-instagram { background: #e4405f; }
.tekton-social-icons--brand .tekton-social-linkedin { background: #0a66c2; }
.tekton-social-icons--brand .tekton-social-youtube { background: #ff0000; }
.tekton-social-icons--brand .tekton-social-tiktok { background: #010101; }
.tekton-social-icons--brand .tekton-social-whatsapp { background: #25d366; }

.tekton-social-icons--brand .tekton-social-link:hover {
	filter: brightness(1.05);
}

/* ---- Hover animations (header + footer; high specificity beats style/soft rules) ---- */
.tekton-social-icons.tekton-social-icons--hover-none .tekton-social-link:hover,
.tekton-social-icons.tekton-social-icons--hover-none .tekton-social-link:focus-visible {
	transform: none;
	animation: none;
	box-shadow: none;
}

.tekton-social-icons.tekton-social-icons--hover-lift .tekton-social-link:hover,
.tekton-social-icons.tekton-social-icons--hover-lift .tekton-social-link:focus-visible {
	transform: translateY(-4px);
	animation: none;
}

.tekton-social-icons.tekton-social-icons--hover-grow .tekton-social-link:hover,
.tekton-social-icons.tekton-social-icons--hover-grow .tekton-social-link:focus-visible {
	transform: scale(1.14);
	animation: none;
}

.tekton-social-icons.tekton-social-icons--hover-pulse .tekton-social-link:hover,
.tekton-social-icons.tekton-social-icons--hover-pulse .tekton-social-link:focus-visible {
	animation: tekton-social-pulse 0.7s ease-in-out infinite;
}

.tekton-social-icons.tekton-social-icons--hover-spin .tekton-social-link:hover svg,
.tekton-social-icons.tekton-social-icons--hover-spin .tekton-social-link:focus-visible svg {
	animation: tekton-social-spin 0.55s ease;
}

.tekton-social-icons.tekton-social-icons--hover-bounce .tekton-social-link:hover,
.tekton-social-icons.tekton-social-icons--hover-bounce .tekton-social-link:focus-visible {
	animation: tekton-social-bounce 0.55s ease;
}

.tekton-social-icons.tekton-social-icons--hover-shake .tekton-social-link:hover,
.tekton-social-icons.tekton-social-icons--hover-shake .tekton-social-link:focus-visible {
	animation: tekton-social-shake 0.45s ease;
}

.tekton-social-icons.tekton-social-icons--hover-glow .tekton-social-link:hover,
.tekton-social-icons.tekton-social-icons--hover-glow .tekton-social-link: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.16);
}

/* Do not clip lift / glow inside header rows or utility mounts */
.site-header-section:has(.tekton-social-icons),
.site-header-row-inner:has(.tekton-social-icons),
.tekton-header-utility-mount,
.tekton-header-utility-mount .tekton-social-icons,
.tekton-social-icons.tekton-social-item {
	overflow: visible;
}

body.tekton-header-style-vertical .tekton-site-header:has(.tekton-social-icons) {
	overflow: visible;
}

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

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

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

@keyframes tekton-social-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-social-icons .tekton-social-link,
	.tekton-social-icons .tekton-social-link svg {
		animation: none !important;
		transition: none !important;
	}
}

/* Footer strip */
.tekton-social-icons--footer {
	justify-content: center;
}

.footer-bottom-flex .tekton-footer-utilities {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px 16px;
	flex: 1 1 auto;
}

.footer-bottom-flex.layout-left-right .tekton-footer-utilities {
	justify-content: flex-end;
}

.footer-bottom-flex .tekton-footer-utilities:empty {
	display: none;
}

.footer-bottom-flex .tekton-footer-utilities .tekton-social-icons .tekton-social-link {
	min-width: var(--tekton-social-size, 38px);
	min-height: var(--tekton-social-size, 38px);
}

/* ---- Dedicated header mounts ---- */
.tekton-header-utility-mount {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
}

.tekton-header-utility-mount--beside {
	flex: 0 0 auto;
	margin-inline-start: 8px;
}

.tekton-header-utility-mount--below {
	width: 100%;
	justify-content: center;
	padding: 8px 16px;
	border-top: 1px solid color-mix(in srgb, currentColor 10%, transparent);
	box-sizing: border-box;
}

.tekton-header-utility-mount--below .tekton-header-utility-mount__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px 16px;
	width: 100%;
	max-width: var(--container-width, 1200px);
	margin: 0 auto;
}

.tekton-header-utility-mount--bottom {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px 12px;
	width: 100%;
	margin-top: auto !important;
	padding: 14px 16px 18px;
	box-sizing: border-box;
	border-top: 1px solid color-mix(in srgb, currentColor 10%, transparent);
}

body.tekton-header-style-vertical .tekton-header-vertical-inner .tekton-header-utility-mount--bottom .tekton-social-icons,
body.tekton-header-style-vertical .tekton-header-vertical-inner .tekton-header-utility-mount--bottom .tekton-language-item {
	width: auto;
	max-width: none;
	justify-content: center;
	flex-direction: row;
}
