/** Site Language Manager language switcher. */
.sast-switcher,
.sast-switcher * {
	box-sizing: border-box;
}

.sast-switcher {
	--sast-switcher-bg: #fff;
	--sast-switcher-text: #172033;
	--sast-switcher-accent: #5b3fd6;
	--sast-switcher-border: #dce1ea;
	--sast-switcher-radius: 14px;
	--sast-switcher-shadow: 0 12px 34px rgb(15 23 42 / 18%);
	color: var(--sast-switcher-text);
	display: inline-flex;
	font-family: inherit;
	font-size: 14px;
	line-height: 1.25;
	max-width: 100%;
	position: relative;
	vertical-align: middle;
	z-index: 9998;
}

.sast-switcher button,
.sast-switcher a {
	font: inherit;
}

.sast-switcher__trigger,
.sast-switcher__item {
	align-items: center;
	background: var(--sast-switcher-bg);
	border: 1px solid var(--sast-switcher-border);
	border-radius: var(--sast-switcher-radius);
	color: var(--sast-switcher-text);
	display: inline-flex;
	gap: 9px;
	justify-content: flex-start;
	min-height: 42px;
	padding: 9px 12px;
	text-decoration: none !important;
	transition: border-color .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}

.sast-switcher__trigger {
	box-shadow: var(--sast-switcher-shadow);
	cursor: pointer;
	min-width: 120px;
}

.sast-switcher__trigger:hover,
.sast-switcher__trigger:focus-visible,
.sast-switcher__item:hover,
.sast-switcher__item:focus-visible {
	border-color: var(--sast-switcher-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--sast-switcher-accent) 18%, transparent);
	color: var(--sast-switcher-text);
	outline: 0;
}

.sast-switcher__trigger:active,
.sast-switcher__item:active {
	transform: translateY(1px);
}

.sast-switcher__current {
	align-items: center;
	display: inline-flex;
	flex: 1 1 auto;
	gap: 8px;
	min-width: 0;
}

.sast-switcher__chevron {
	block-size: 7px;
	border-block-end: 2px solid currentColor;
	border-inline-end: 2px solid currentColor;
	flex: 0 0 7px;
	inline-size: 7px;
	margin-inline-start: auto;
	transform: rotate(45deg) translateY(-2px);
	transition: transform .18s ease;
}

.sast-switcher.is-open .sast-switcher__chevron {
	transform: rotate(225deg) translate(-1px, -1px);
}

.sast-switcher__popover {
	background: var(--sast-switcher-bg);
	border: 1px solid var(--sast-switcher-border);
	border-radius: calc(var(--sast-switcher-radius) + 2px);
	box-shadow: var(--sast-switcher-shadow);
	inset-block-start: calc(100% + 9px);
	inset-inline-end: 0;
	min-inline-size: max(100%, 220px);
	padding: 8px;
	position: absolute;
	z-index: 9999;
}

/* Ready-made template: soft glass card with a premium floating surface. */
.sast-switcher--glass-card .sast-switcher__trigger {
	-webkit-backdrop-filter: blur(18px) saturate(150%);
	backdrop-filter: blur(18px) saturate(150%);
	background:
		linear-gradient(135deg, rgb(255 255 255 / 88%), rgb(255 255 255 / 66%)),
		var(--sast-switcher-bg);
	border-color: rgb(255 255 255 / 78%);
	box-shadow: 0 16px 42px rgb(15 23 42 / 18%), inset 0 1px 0 rgb(255 255 255 / 75%);
	min-width: 132px;
}

.sast-switcher--glass-card .sast-switcher__popover {
	-webkit-backdrop-filter: blur(22px) saturate(145%);
	backdrop-filter: blur(22px) saturate(145%);
	background:
		linear-gradient(145deg, rgb(255 255 255 / 92%), rgb(248 250 252 / 78%)),
		var(--sast-switcher-bg);
	border-color: rgb(255 255 255 / 82%);
	box-shadow: 0 22px 54px rgb(15 23 42 / 22%), inset 0 1px 0 rgb(255 255 255 / 80%);
	padding: 10px;
}

.sast-switcher--glass-card .sast-switcher__item {
	background: rgb(255 255 255 / 48%);
	border: 1px solid transparent;
}

.sast-switcher--glass-card .sast-switcher__item:hover,
.sast-switcher--glass-card .sast-switcher__item:focus-visible,
.sast-switcher--glass-card .sast-switcher__item.is-active {
	background: rgb(255 255 255 / 82%);
	border-color: color-mix(in srgb, var(--sast-switcher-accent) 22%, transparent);
}

/* Ready-made template: compact rounded badge with a strong accent edge. */
.sast-switcher--round-badge .sast-switcher__trigger {
	background: linear-gradient(135deg, color-mix(in srgb, var(--sast-switcher-accent) 92%, #fff), var(--sast-switcher-accent));
	border: 2px solid rgb(255 255 255 / 85%);
	border-radius: 999px;
	box-shadow: 0 12px 30px color-mix(in srgb, var(--sast-switcher-accent) 34%, transparent), 0 5px 14px rgb(15 23 42 / 16%);
	color: #fff;
	min-width: 0;
	padding-inline: 12px 10px;
}

.sast-switcher--round-badge .sast-switcher__chevron {
	background: rgb(255 255 255 / 18%);
	border: 0;
	border-radius: 50%;
	block-size: 22px;
	inline-size: 22px;
	margin-inline-start: 1px;
	position: relative;
	transform: none;
}

.sast-switcher--round-badge .sast-switcher__chevron::after {
	block-size: 6px;
	border-block-end: 2px solid currentColor;
	border-inline-end: 2px solid currentColor;
	content: "";
	inline-size: 6px;
	inset-block-start: 6px;
	inset-inline-start: 7px;
	position: absolute;
	transform: rotate(45deg);
	transition: transform .18s ease;
}

.sast-switcher--round-badge.is-open .sast-switcher__chevron {
	transform: none;
}

.sast-switcher--round-badge.is-open .sast-switcher__chevron::after {
	transform: rotate(225deg) translate(-1px, -1px);
}

.sast-switcher--round-badge .sast-switcher__popover {
	border: 0;
	border-radius: 20px;
	box-shadow: 0 22px 52px rgb(15 23 42 / 24%);
	padding: 9px;
}

.sast-switcher--round-badge .sast-switcher__item {
	border-radius: 13px;
}

/* Compact two-language template: show only the destination language. */
.sast-switcher--alternate-only .sast-switcher__trigger,
.sast-switcher--alternate-only .sast-switcher__alternate-link {
	background: var(--sast-switcher-bg);
	border: 1px solid var(--sast-switcher-border);
	border-radius: 999px;
	box-shadow: 0 10px 28px rgb(15 23 42 / 16%);
	inline-size: auto;
	min-inline-size: 0;
	padding-inline: 12px;
}

.sast-switcher--alternate-only .sast-switcher__alternate-link {
	justify-content: center;
	white-space: nowrap;
}

.sast-switcher--alternate-only .sast-switcher__list--alternate {
	display: inline-flex;
	width: auto;
}

.sast-switcher--alternate-only .sast-switcher__popover {
	min-inline-size: 190px;
}

.sast-switcher--alternate-only.sast-switcher--direct-alternate .sast-switcher__item {
	inline-size: auto;
}

.sast-switcher--alternate-only.sast-switcher--minimal .sast-switcher__alternate-link {
	box-shadow: none;
}

.sast-switcher--dark.sast-switcher--glass-card .sast-switcher__trigger,
.sast-switcher--dark.sast-switcher--glass-card .sast-switcher__popover {
	background: color-mix(in srgb, var(--sast-switcher-bg) 86%, transparent);
	border-color: rgb(255 255 255 / 14%);
}

@media (prefers-color-scheme: dark) {
	.sast-switcher--auto.sast-switcher--glass-card .sast-switcher__trigger,
	.sast-switcher--auto.sast-switcher--glass-card .sast-switcher__popover {
		background: color-mix(in srgb, var(--sast-switcher-bg) 86%, transparent);
		border-color: rgb(255 255 255 / 14%);
	}
}

.sast-switcher--open-up .sast-switcher__popover,
.sast-switcher.is-open-up .sast-switcher__popover {
	inset-block-end: calc(100% + 9px);
	inset-block-start: auto;
}

.sast-switcher__sheet-title,
.sast-switcher__sheet-handle,
.sast-switcher__sheet-close {
	display: none;
}

.sast-switcher__list {
	display: grid;
	gap: 5px;
}

.sast-switcher__item {
	border-color: transparent;
	box-shadow: none;
	inline-size: 100%;
	position: relative;
}

.sast-switcher__item.is-active {
	background: color-mix(in srgb, var(--sast-switcher-accent) 10%, var(--sast-switcher-bg));
	color: var(--sast-switcher-accent);
	font-weight: 700;
}

.sast-switcher__check {
	font-weight: 800;
	margin-inline-start: auto;
}

.sast-switcher__flag {
	align-items: center;
	display: inline-flex;
	flex: 0 0 auto;
	justify-content: center;
}

.sast-language-flag {
	align-items: center;
	aspect-ratio: 5 / 3;
	block-size: var(--sast-switcher-flag-size, 22px);
	box-sizing: border-box;
	display: inline-flex;
	flex: 0 0 auto;
	inline-size: calc(var(--sast-switcher-flag-size, 22px) * 1.6667);
	justify-content: center;
	line-height: 1;
	overflow: hidden;
	position: relative;
	vertical-align: middle;
}

img.sast-language-flag,
.sast-language-flag > img {
	aspect-ratio: inherit;
	block-size: 100% !important;
	border: 0 !important;
	border-radius: inherit;
	box-shadow: none !important;
	display: block !important;
	inline-size: 100% !important;
	margin: 0 !important;
	max-block-size: none !important;
	max-inline-size: none !important;
	min-block-size: 0 !important;
	min-inline-size: 0 !important;
	object-fit: cover;
	object-position: center;
	padding: 0 !important;
	transform: none !important;
}

.sast-language-flag--asset {
	background: #fff;
	border: 1px solid rgba(15, 23, 42, 0.12);
	border-radius: 4px;
}

.sast-language-flag--rounded {
	border-radius: 4px;
}

.sast-language-flag--circle {
	aspect-ratio: 1;
	border-radius: 50% !important;
	inline-size: var(--sast-switcher-flag-size, 22px);
}

.sast-language-flag--rectangle {
	border-radius: 0 !important;
}

.sast-language-flag--emoji {
	align-items: center;
	font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
	font-size: var(--sast-switcher-flag-size, 22px);
	inline-size: auto;
	justify-content: center;
	line-height: 1;
	overflow: visible;
}

.sast-language-flag--globe {
	align-items: center;
	color: currentColor;
	inline-size: var(--sast-switcher-flag-size, 22px);
	justify-content: center;
}

.sast-language-globe {
	block-size: 100%;
	fill: none;
	inline-size: 100%;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.sast-switcher__code {
	font-size: .78em;
	font-weight: 800;
	letter-spacing: .055em;
}

.sast-switcher__name {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.sast-switcher--inline,
.sast-switcher--flags {
	display: inline-flex;
}

.sast-switcher--inline .sast-switcher__list,
.sast-switcher--flags .sast-switcher__list {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.sast-switcher--inline .sast-switcher__item,
.sast-switcher--flags .sast-switcher__item {
	inline-size: auto;
}

.sast-switcher--flags .sast-switcher__item {
	justify-content: center;
	min-inline-size: 42px;
}

.sast-switcher--compact .sast-switcher__trigger {
	min-inline-size: 82px;
}

.sast-switcher--small {
	font-size: 12px;
}

.sast-switcher--small .sast-switcher__trigger,
.sast-switcher--small .sast-switcher__item {
	min-height: 34px;
	padding: 6px 9px;
}

.sast-switcher--large {
	font-size: 16px;
}

.sast-switcher--large .sast-switcher__trigger,
.sast-switcher--large .sast-switcher__item {
	min-height: 50px;
	padding: 12px 15px;
}

.sast-switcher--minimal .sast-switcher__trigger,
.sast-switcher--minimal .sast-switcher__item {
	background: transparent;
	border-color: transparent;
	box-shadow: none;
}

.sast-switcher--outline .sast-switcher__trigger,
.sast-switcher--outline .sast-switcher__item {
	background: transparent;
	box-shadow: none;
}

.sast-switcher--dark {
	--sast-switcher-bg: #172033 !important;
	--sast-switcher-text: #f8fafc !important;
	--sast-switcher-border: #334155 !important;
}

.sast-switcher__item.is-unavailable {
	cursor: not-allowed;
	opacity: .48;
}

.sast-switcher--glass .sast-switcher__trigger,
.sast-switcher--glass .sast-switcher__popover,
.sast-switcher--glass .sast-switcher__item {
	backdrop-filter: blur(16px);
	background: color-mix(in srgb, var(--sast-switcher-bg) 82%, transparent);
}

.sast-switcher--pills .sast-switcher__trigger,
.sast-switcher--pills .sast-switcher__item {
	border-radius: 999px;
}

.sast-switcher-floating {
	position: fixed;
	z-index: 99990;
}

.sast-switcher-floating--bottom-right {
	bottom: var(--sast-floating-block, 20px);
	right: var(--sast-floating-inline, 20px);
}

.sast-switcher-floating--bottom-left {
	bottom: var(--sast-floating-block, 20px);
	left: var(--sast-floating-inline, 20px);
}

.sast-switcher-floating--top-right {
	right: var(--sast-floating-inline, 20px);
	top: var(--sast-floating-block, 20px);
}

.sast-switcher-floating--top-left {
	left: var(--sast-floating-inline, 20px);
	top: var(--sast-floating-block, 20px);
}

.sast-switcher-floating--middle-right {
	right: var(--sast-floating-inline, 20px);
	top: 50%;
	transform: translateY(-50%);
}

.sast-switcher-floating--middle-left {
	left: var(--sast-floating-inline, 20px);
	top: 50%;
	transform: translateY(-50%);
}

.sast-switcher-floating--hide-desktop {
	display: none !important;
}

.admin-bar .sast-switcher-floating--top-right,
.admin-bar .sast-switcher-floating--top-left {
	top: calc(var(--sast-floating-block, 20px) + 32px);
}

@media (max-width: 782px) {
	.sast-switcher-floating--hide-desktop {
		display: block !important;
	}

	.sast-switcher-floating--hide-mobile {
		display: none !important;
	}
	.admin-bar .sast-switcher-floating--top-right,
	.admin-bar .sast-switcher-floating--top-left {
		top: calc(var(--sast-floating-block, 20px) + 46px);
	}

	.sast-switcher--mobile-sheet.is-open::before {
		background: rgb(15 23 42 / 48%);
		content: "";
		inset: 0;
		position: fixed;
		z-index: 99998;
	}

	.sast-switcher--mobile-sheet .sast-switcher__popover {
		border-block-end: 0;
		border-radius: 24px 24px 0 0;
		bottom: 0;
		inset-inline: 0;
		max-block-size: min(78vh, 620px);
		min-inline-size: 0;
		overflow-y: auto;
		padding: 10px 14px max(18px, env(safe-area-inset-bottom));
		position: fixed;
		top: auto;
		transform: translateY(0);
		width: 100%;
		z-index: 99999;
	}

	.sast-switcher--mobile-sheet .sast-switcher__sheet-handle {
		background: #cbd5e1;
		border-radius: 999px;
		display: block;
		height: 4px;
		margin: 2px auto 12px;
		width: 46px;
	}

	.sast-switcher--mobile-sheet .sast-switcher__sheet-title {
		display: block;
		font-size: 17px;
		font-weight: 750;
		padding: 2px 48px 12px 6px;
		padding-inline-end: 48px;
		padding-inline-start: 6px;
	}

	.sast-switcher--mobile-sheet .sast-switcher__sheet-close {
		align-items: center;
		background: transparent;
		border: 0;
		border-radius: 999px;
		color: var(--sast-switcher-text);
		cursor: pointer;
		display: inline-flex;
		font-size: 26px;
		font-weight: 400;
		height: 40px;
		inset-inline-end: 14px;
		justify-content: center;
		line-height: 1;
		padding: 0;
		position: absolute;
		top: 17px;
		width: 40px;
	}

	.sast-switcher--mobile-sheet .sast-switcher__sheet-close:hover,
	.sast-switcher--mobile-sheet .sast-switcher__sheet-close:focus-visible {
		background: rgb(148 163 184 / 18%);
		outline: 2px solid var(--sast-switcher-accent);
		outline-offset: 2px;
	}

	.sast-switcher--mobile-sheet .sast-switcher__item {
		font-size: 16px;
		min-height: 50px;
		padding: 12px;
	}
}

/* Some phone themes omit a viewport declaration and report a width near
 * 980px. The coarse-pointer query still treats those devices as mobile and
 * keeps an explicitly enabled floating control visible. */
@media (hover: none) and (pointer: coarse) and (max-width: 1024px) {
	.sast-switcher-floating[data-sast-floating-root]:not(.sast-switcher-floating--hide-mobile),
	.sast-switcher-floating[data-sast-floating-root]:not(.sast-switcher-floating--hide-mobile) > .sast-switcher {
		display: inline-flex !important;
		opacity: 1 !important;
		pointer-events: auto !important;
		visibility: visible !important;
	}

	.sast-switcher-floating[data-sast-floating-root] {
		display: block !important;
	}

	.sast-switcher-floating[data-sast-floating-root].sast-switcher-floating--hide-mobile {
		display: none !important;
	}

	.sast-switcher-floating .sast-switcher__trigger,
	.sast-switcher-floating .sast-switcher--alternate-only .sast-switcher__alternate-link {
		min-block-size: 52px;
		min-inline-size: 52px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sast-switcher *,
	.sast-switcher *::before,
	.sast-switcher *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}

/* Phase 5 finishing rules: templates, adaptive theme and integrations. */
.sast-switcher__trigger:hover,
.sast-switcher__trigger:focus-visible,
.sast-switcher__item:hover,
.sast-switcher__item:focus-visible {
	box-shadow: 0 0 0 3px rgb(91 63 214 / 18%);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--sast-switcher-accent) 18%, transparent);
}

.sast-switcher__item.is-active {
	background: rgb(91 63 214 / 10%);
	background: color-mix(in srgb, var(--sast-switcher-accent) 10%, var(--sast-switcher-bg));
}

.sast-switcher--pills .sast-switcher__list {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.sast-switcher--pills .sast-switcher__item {
	inline-size: auto;
	min-inline-size: 42px;
}

.sast-switcher--popover .sast-switcher__popover {
	padding: 12px;
}

.sast-switcher--popover .sast-switcher__item {
	min-height: 46px;
	padding-inline: 14px;
}

.sast-switcher--light {
	color-scheme: light;
}

.sast-switcher--dark {
	color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
	.sast-switcher--auto {
		--sast-switcher-bg: #172033 !important;
		--sast-switcher-text: #f8fafc !important;
		--sast-switcher-border: #334155 !important;
		color-scheme: dark;
	}
}

.sast-switcher--minimal .sast-switcher__popover {
	background: var(--sast-switcher-bg);
}

.sast-switcher--context-menu {
	display: flex;
}

.menu-item-sast-language-switcher {
	align-items: center;
	display: flex;
	position: relative;
}

.menu-item-sast-language-switcher:empty {
	display: none;
}

.menu-item-sast-language-switcher > .sast-switcher {
	max-width: 100%;
}

.sast-switcher-modal-open {
	overflow: hidden;
}

.sast-switcher-floating--bottom-right,
.sast-switcher-floating--bottom-left {
	bottom: max(var(--sast-floating-block, 20px), env(safe-area-inset-bottom));
}

.sast-switcher-floating--bottom-right,
.sast-switcher-floating--top-right,
.sast-switcher-floating--middle-right {
	right: max(var(--sast-floating-inline, 20px), env(safe-area-inset-right));
}

.sast-switcher-floating--bottom-left,
.sast-switcher-floating--top-left,
.sast-switcher-floating--middle-left {
	left: max(var(--sast-floating-inline, 20px), env(safe-area-inset-left));
}

@media (max-width: 782px) {
	.sast-switcher-floating {
		max-inline-size: calc(100vw - 24px);
	}

	.sast-switcher-floating .sast-switcher__trigger {
		min-inline-size: 0;
	}
}

@media print {
	.sast-switcher-floating {
		display: none !important;
	}
}

.sast-language-switcher-block-wrap {
	display: flex;
	max-width: 100%;
}

.sast-language-switcher-block-wrap.aligncenter {
	justify-content: center;
}

.sast-language-switcher-block-wrap.alignright {
	justify-content: flex-end;
}

.sast-language-switcher-block-wrap.alignleft {
	justify-content: flex-start;
}

/* 1.4.0 viewport-safe floating placement and mobile touch target. */
.sast-switcher-floating[data-sast-floating-root] {
	bottom: auto !important;
	left: auto !important;
	margin: 0 !important;
	position: fixed !important;
	right: auto !important;
	top: auto !important;
	transform: none !important;
	z-index: 2147483000 !important;
}

.sast-switcher-floating--bottom-right[data-sast-floating-root] {
	bottom: max(var(--sast-floating-block, 20px), env(safe-area-inset-bottom)) !important;
	right: max(var(--sast-floating-inline, 20px), env(safe-area-inset-right)) !important;
}

.sast-switcher-floating--bottom-left[data-sast-floating-root] {
	bottom: max(var(--sast-floating-block, 20px), env(safe-area-inset-bottom)) !important;
	left: max(var(--sast-floating-inline, 20px), env(safe-area-inset-left)) !important;
}

.sast-switcher-floating--top-right[data-sast-floating-root] {
	right: max(var(--sast-floating-inline, 20px), env(safe-area-inset-right)) !important;
	top: max(var(--sast-floating-block, 20px), env(safe-area-inset-top)) !important;
}

.sast-switcher-floating--top-left[data-sast-floating-root] {
	left: max(var(--sast-floating-inline, 20px), env(safe-area-inset-left)) !important;
	top: max(var(--sast-floating-block, 20px), env(safe-area-inset-top)) !important;
}

.sast-switcher-floating--middle-right[data-sast-floating-root] {
	right: max(var(--sast-floating-inline, 20px), env(safe-area-inset-right)) !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
}

.sast-switcher-floating--middle-left[data-sast-floating-root] {
	left: max(var(--sast-floating-inline, 20px), env(safe-area-inset-left)) !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
}

.admin-bar .sast-switcher-floating--top-right[data-sast-floating-root],
.admin-bar .sast-switcher-floating--top-left[data-sast-floating-root] {
	top: max(calc(var(--sast-floating-block, 20px) + 32px), env(safe-area-inset-top)) !important;
}

@media (max-width: 782px) {
	.sast-switcher-floating[data-sast-floating-root]:not(.sast-switcher-floating--hide-mobile) {
		display: block !important;
		opacity: 1 !important;
		pointer-events: auto !important;
		visibility: visible !important;
	}

	.sast-switcher-floating[data-sast-floating-root]:not(.sast-switcher-floating--hide-mobile) > .sast-switcher {
		display: inline-flex !important;
		opacity: 1 !important;
		pointer-events: auto !important;
		visibility: visible !important;
	}

	.admin-bar .sast-switcher-floating--top-right[data-sast-floating-root],
	.admin-bar .sast-switcher-floating--top-left[data-sast-floating-root] {
		top: max(calc(var(--sast-floating-block, 16px) + 46px), env(safe-area-inset-top)) !important;
	}

	.sast-switcher-floating[data-sast-floating-root] {
		--sast-floating-inline: max(14px, env(safe-area-inset-left), env(safe-area-inset-right));
		--sast-floating-block: max(14px, env(safe-area-inset-bottom));
		max-inline-size: calc(100vw - 28px);
	}

	.sast-switcher-floating .sast-switcher__trigger {
		font-size: max(15px, 1em);
		min-block-size: 52px;
		min-inline-size: 52px;
		padding: 10px 13px;
	}

	.sast-switcher-floating .sast-language-flag {
		block-size: max(26px, var(--sast-switcher-flag-size, 22px));
		flex: 0 0 auto;
		font-size: max(26px, var(--sast-switcher-flag-size, 22px));
		inline-size: calc(max(26px, var(--sast-switcher-flag-size, 22px)) * 1.6667);
	}

	.sast-switcher-floating .sast-language-flag--circle,
	.sast-switcher-floating .sast-language-flag--globe {
		inline-size: max(26px, var(--sast-switcher-flag-size, 22px));
	}

	.sast-switcher-floating .sast-language-globe {
		block-size: 26px;
		inline-size: 26px;
	}

	.sast-switcher-floating .sast-switcher--round-badge .sast-switcher__trigger,
	.sast-switcher-floating .sast-switcher--flags .sast-switcher__trigger {
		block-size: 56px;
		inline-size: 56px;
		justify-content: center;
		padding: 10px;
	}

	.sast-switcher-floating .sast-switcher--alternate-only .sast-switcher__alternate-link {
		block-size: 56px;
		justify-content: center;
		min-inline-size: 56px;
		padding: 10px 13px;
	}
}

/* Keep flags visible inside WooCommerce Checkout Blocks, which can reset emoji
 * fonts and inline element dimensions. Local SVG flags avoid the country code
 * appearing as plain letters on checkout. */
.sast-language-flag,
.wc-block-checkout .sast-language-flag,
.woocommerce-checkout .sast-language-flag {
	align-items: center !important;
	display: inline-flex !important;
	flex: 0 0 auto !important;
	justify-content: center !important;
	overflow: hidden;
}

.sast-language-flag--emoji {
	font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla", sans-serif !important;
	font-variant-emoji: emoji;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

.sast-language-flag-svg {
	block-size: 100%;
	display: block;
	inline-size: 100%;
	max-block-size: none !important;
	max-inline-size: none !important;
}

/* -------------------------------------------------------------------------
 * Professional locale switcher design system (2.8.0)
 * ---------------------------------------------------------------------- */

/* Structured frame controls shared by every placement and template. */
.sast-switcher--frame-soft .sast-switcher__trigger,
.sast-switcher--frame-soft .sast-switcher__alternate-link {
	background: color-mix(in srgb, var(--sast-switcher-bg) 94%, var(--sast-switcher-accent) 6%);
	border-color: color-mix(in srgb, var(--sast-switcher-border) 78%, transparent);
}

.sast-switcher--frame-outline .sast-switcher__trigger,
.sast-switcher--frame-outline .sast-switcher__alternate-link {
	background: transparent;
	border-color: var(--sast-switcher-border);
}

.sast-switcher--frame-solid .sast-switcher__trigger,
.sast-switcher--frame-solid .sast-switcher__alternate-link {
	background: var(--sast-switcher-bg);
	border-color: var(--sast-switcher-border);
}

.sast-switcher--frame-glass .sast-switcher__trigger,
.sast-switcher--frame-glass .sast-switcher__alternate-link,
.sast-switcher--frame-glass .sast-switcher__popover {
	-webkit-backdrop-filter: blur(18px) saturate(145%);
	backdrop-filter: blur(18px) saturate(145%);
	background: color-mix(in srgb, var(--sast-switcher-bg) 78%, transparent);
	border-color: color-mix(in srgb, var(--sast-switcher-border) 62%, transparent);
}

.sast-switcher--frame-none .sast-switcher__trigger,
.sast-switcher--frame-none .sast-switcher__alternate-link {
	background: transparent;
	border-color: transparent;
}

.sast-switcher--shadow-none .sast-switcher__trigger,
.sast-switcher--shadow-none .sast-switcher__alternate-link,
.sast-switcher--shadow-none .sast-switcher__popover {
	box-shadow: none;
}

.sast-switcher--shadow-soft .sast-switcher__trigger,
.sast-switcher--shadow-soft .sast-switcher__alternate-link {
	box-shadow: 0 8px 24px rgb(15 23 42 / 12%);
}

.sast-switcher--shadow-soft .sast-switcher__popover {
	box-shadow: 0 18px 44px rgb(15 23 42 / 18%);
}

.sast-switcher--shadow-elevated .sast-switcher__trigger,
.sast-switcher--shadow-elevated .sast-switcher__alternate-link {
	box-shadow: 0 14px 34px rgb(15 23 42 / 20%), 0 2px 8px rgb(15 23 42 / 9%);
}

.sast-switcher--shadow-elevated .sast-switcher__popover {
	box-shadow: 0 28px 70px rgb(15 23 42 / 25%), 0 6px 18px rgb(15 23 42 / 10%);
}

/* A dedicated flag/icon surface avoids theme styles distorting the flag and
 * gives the designer control over the visual weight of the left/right segment. */
.sast-switcher__icon-box {
	align-items: center;
	background: var(--sast-switcher-icon-bg, transparent);
	border: 1px solid color-mix(in srgb, var(--sast-switcher-border) 66%, transparent);
	display: inline-flex;
	flex: 0 0 auto;
	justify-content: center;
	min-block-size: calc(var(--sast-switcher-flag-size, 22px) + 8px);
	min-inline-size: calc(var(--sast-switcher-flag-size, 22px) + 10px);
	padding: 3px 4px;
}

.sast-switcher--icon-box-none .sast-switcher__icon-box {
	background: transparent;
	border: 0;
	border-radius: 0;
	min-block-size: 0;
	min-inline-size: 0;
	padding: 0;
}

.sast-switcher--icon-box-circle .sast-switcher__icon-box {
	aspect-ratio: 1;
	border-radius: 50%;
	min-inline-size: calc(var(--sast-switcher-flag-size, 22px) + 10px);
}

.sast-switcher--icon-box-rounded .sast-switcher__icon-box {
	border-radius: 9px;
}

.sast-switcher--icon-box-square .sast-switcher__icon-box {
	border-radius: 2px;
}

/* Premium Locale Pill: a restrained header control inspired by modern account
 * and locale selectors. It keeps a clear language name and a separated icon. */
.sast-switcher--locale-pill .sast-switcher__trigger {
	border-radius: 999px;
	gap: 10px;
	min-block-size: 46px;
	min-inline-size: 148px;
	padding: 6px 10px 6px 7px;
}

[dir="rtl"] .sast-switcher--locale-pill .sast-switcher__trigger,
.sast-switcher--locale-pill[dir="rtl"] .sast-switcher__trigger {
	padding: 6px 7px 6px 10px;
}

.sast-switcher--locale-pill .sast-switcher__current {
	gap: 8px;
}

.sast-switcher--locale-pill .sast-switcher__chevron {
	block-size: 6px;
	flex-basis: 6px;
	inline-size: 6px;
}

.sast-switcher--locale-pill .sast-switcher__popover {
	border-radius: 18px;
	min-inline-size: 240px;
	padding: 9px;
}

.sast-switcher--locale-pill .sast-switcher__item {
	border-radius: 12px;
	min-block-size: 44px;
	padding: 7px 9px;
}

/* Minimal Alternate Link: directly displays the other language on two-language
 * sites. With more languages the same quiet label opens a compact list. */
.sast-switcher--minimal-link .sast-switcher__trigger,
.sast-switcher--minimal-link .sast-switcher__alternate-link {
	background: transparent;
	border-color: transparent;
	border-radius: 8px;
	box-shadow: none !important;
	font-weight: 650;
	min-block-size: 38px;
	min-inline-size: 0;
	padding: 5px 7px;
}

.sast-switcher--minimal-link .sast-switcher__trigger:hover,
.sast-switcher--minimal-link .sast-switcher__trigger:focus-visible,
.sast-switcher--minimal-link .sast-switcher__alternate-link:hover,
.sast-switcher--minimal-link .sast-switcher__alternate-link:focus-visible {
	background: color-mix(in srgb, var(--sast-switcher-accent) 9%, transparent);
	border-color: transparent;
	box-shadow: none;
	color: var(--sast-switcher-accent);
}

.sast-switcher--minimal-link .sast-switcher__popover {
	border-radius: 14px;
	min-inline-size: 205px;
}

.sast-switcher--minimal-link .sast-switcher__list--alternate {
	display: inline-flex;
}

.sast-switcher--minimal-link.sast-switcher--direct-alternate .sast-switcher__item {
	inline-size: auto;
	white-space: nowrap;
}

/* Locale Command Panel: a clear multi-language selector with a visible panel
 * heading, roomy rows, and a strong selected-language state. */
.sast-switcher--command-panel .sast-switcher__trigger {
	border-radius: 12px;
	min-block-size: 46px;
	min-inline-size: 164px;
	padding: 7px 10px;
}

.sast-switcher--command-panel .sast-switcher__popover {
	border-radius: 20px;
	min-inline-size: min(310px, calc(100vw - 32px));
	padding: 14px;
}

.sast-switcher--command-panel .sast-switcher__sheet-title {
	display: block;
	font-size: .78em;
	font-weight: 750;
	letter-spacing: .07em;
	margin: 2px 4px 10px;
	opacity: .65;
	text-transform: uppercase;
}

.sast-switcher--command-panel .sast-switcher__item {
	border: 1px solid transparent;
	border-radius: 13px;
	min-block-size: 48px;
	padding: 8px 10px;
}

.sast-switcher--command-panel .sast-switcher__item:hover,
.sast-switcher--command-panel .sast-switcher__item:focus-visible {
	background: color-mix(in srgb, var(--sast-switcher-accent) 7%, var(--sast-switcher-bg));
	border-color: color-mix(in srgb, var(--sast-switcher-accent) 20%, transparent);
}

.sast-switcher--command-panel .sast-switcher__item.is-active {
	background: color-mix(in srgb, var(--sast-switcher-accent) 11%, var(--sast-switcher-bg));
	border-color: color-mix(in srgb, var(--sast-switcher-accent) 24%, transparent);
}

.sast-switcher--command-panel .sast-switcher__code {
	background: color-mix(in srgb, var(--sast-switcher-accent) 9%, transparent);
	border-radius: 999px;
	padding: 3px 6px;
}

@media (max-width: 782px) {
	.sast-switcher--locale-pill .sast-switcher__trigger,
	.sast-switcher--command-panel .sast-switcher__trigger {
		min-block-size: 52px;
	}

	.sast-switcher--minimal-link .sast-switcher__trigger,
	.sast-switcher--minimal-link .sast-switcher__alternate-link {
		min-block-size: 48px;
	}

	.sast-switcher--command-panel.sast-switcher--mobile-sheet .sast-switcher__sheet-title {
		font-size: .9rem;
		letter-spacing: 0;
		margin: 0;
		text-transform: none;
	}
}

/* Commercial hardening: searchable multi-language panels and robust focus. */
.sast-switcher__search {
	margin-block-end: 9px;
	position: relative;
}

.sast-switcher__search input[type="search"] {
	appearance: none;
	background: color-mix(in srgb, var(--sast-switcher-bg) 92%, var(--sast-switcher-text) 8%);
	border: 1px solid var(--sast-switcher-border);
	border-radius: 11px;
	color: var(--sast-switcher-text);
	font: inherit;
	inline-size: 100%;
	min-block-size: 44px;
	padding-block: 9px;
	padding-inline: 38px 10px;
}

[dir="rtl"] .sast-switcher__search input[type="search"],
.sast-switcher[dir="rtl"] .sast-switcher__search input[type="search"] {
	padding-inline: 10px 38px;
}

.sast-switcher__search input[type="search"]:focus-visible {
	border-color: var(--sast-switcher-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--sast-switcher-accent) 20%, transparent);
	outline: 2px solid transparent;
}

.sast-switcher__search-icon {
	block-size: 14px;
	border: 2px solid currentColor;
	border-radius: 50%;
	inline-size: 14px;
	inset-block-start: 14px;
	inset-inline-start: 13px;
	opacity: .58;
	pointer-events: none;
	position: absolute;
}

.sast-switcher__search-icon::after {
	background: currentColor;
	block-size: 2px;
	content: "";
	inline-size: 6px;
	inset-block-start: 10px;
	inset-inline-start: 9px;
	position: absolute;
	transform: rotate(45deg);
	transform-origin: left center;
}

.sast-switcher__no-results {
	font-size: .9em;
	margin: 10px 4px 2px;
	opacity: .72;
	text-align: center;
}

.sast-switcher [hidden] {
	display: none !important;
}

.sast-switcher--command-panel .sast-switcher__list {
	max-block-size: min(430px, 60vh);
	overflow: auto;
	overscroll-behavior: contain;
	scrollbar-gutter: stable;
}

/* Keep every interactive language target usable by touch and keyboard, even
 * when the visual preset is intentionally compact. */
.sast-switcher .sast-switcher__trigger,
.sast-switcher .sast-switcher__item,
.sast-switcher .sast-switcher__alternate-link {
	min-block-size: 48px;
}

.sast-switcher :focus-visible {
	outline: 2px solid var(--sast-switcher-accent);
	outline-offset: 2px;
}

@media (forced-colors: active) {
	.sast-switcher,
	.sast-switcher__trigger,
	.sast-switcher__item,
	.sast-switcher__popover,
	.sast-switcher__search input[type="search"] {
		background: Canvas;
		border-color: ButtonText;
		box-shadow: none !important;
		color: CanvasText;
		forced-color-adjust: auto;
	}

	.sast-switcher__item.is-active,
	.sast-switcher__trigger:focus-visible,
	.sast-switcher__item:focus-visible {
		outline: 2px solid Highlight;
		outline-offset: 2px;
	}
}

.sast-switcher .screen-reader-text {
	block-size: 1px;
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	inline-size: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	white-space: nowrap;
}
