/*
 * Le Fleur Production Language Switcher
 * Scope: only .lff-pls-* classes and one plugin body class.
 * No JavaScript, external font, image, API request, or global typography rules.
 */

:root {
	--lff-pls-size: 32px;
	--lff-pls-color: #c88a78;
	--lff-pls-border: #efddd5;
	--lff-pls-background: #fffaf7;
	--lff-pls-hover: #c88a78;
}

/* Hide only known TranslatePress floating switcher containers. */
#trp-floater-ls,
.trp-floater-ls,
.trp-language-switcher-container.trp-floater-ls,
.trp-floater-ls-disabled-language,
.trp-floater-ls-enabled-language,
[class*="trp-floater-ls"] {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/*
 * The item is appended to Astra's Primary Menu, which is directly before
 * the Social element in the supplied Header Builder.
 */
.main-header-menu > .lff-pls-menu-item,
.ast-builder-menu-1 .main-header-menu > .lff-pls-menu-item {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 76px !important;
	margin: 0 0 0 6px !important;
	padding: 0 !important;
	border: 0 !important;
	white-space: nowrap !important;
}

.main-header-menu > .lff-pls-menu-item > .lff-pls-circle,
.ast-builder-menu-1 .main-header-menu > .lff-pls-menu-item > .lff-pls-circle {
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: var(--lff-pls-size) !important;
	height: var(--lff-pls-size) !important;
	min-width: var(--lff-pls-size) !important;
	min-height: var(--lff-pls-size) !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--lff-pls-border) !important;
	border-radius: 50% !important;
	background: var(--lff-pls-background) !important;
	color: var(--lff-pls-color) !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-size: 10px !important;
	font-weight: 600 !important;
	letter-spacing: .04em !important;
	line-height: 1 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: uppercase !important;
	transition:
		background-color .18s ease,
		border-color .18s ease,
		color .18s ease,
		transform .18s ease !important;
}

/* Remove the global menu underline from this component only. */
.main-header-menu > .lff-pls-menu-item > .lff-pls-circle::before,
.main-header-menu > .lff-pls-menu-item > .lff-pls-circle::after,
.ast-builder-menu-1 .main-header-menu > .lff-pls-menu-item > .lff-pls-circle::before,
.ast-builder-menu-1 .main-header-menu > .lff-pls-menu-item > .lff-pls-circle::after {
	content: none !important;
	display: none !important;
}

.main-header-menu > .lff-pls-menu-item > .lff-pls-circle:hover,
.main-header-menu > .lff-pls-menu-item > .lff-pls-circle:focus-visible,
.ast-builder-menu-1 .main-header-menu > .lff-pls-menu-item > .lff-pls-circle:hover,
.ast-builder-menu-1 .main-header-menu > .lff-pls-menu-item > .lff-pls-circle:focus-visible {
	background: var(--lff-pls-hover) !important;
	border-color: var(--lff-pls-hover) !important;
	color: #ffffff !important;
	transform: translateY(-1px);
	outline: none !important;
}

.main-header-menu > .lff-pls-menu-item > .lff-pls-circle:focus-visible,
.ast-builder-menu-1 .main-header-menu > .lff-pls-menu-item > .lff-pls-circle:focus-visible {
	box-shadow: 0 0 0 3px rgba(200, 138, 120, .18) !important;
}

/*
 * Existing site CSS sets .ast-header-social-wrap margin-left to 32px.
 * Reduce it only while this plugin is active so the new circle uses
 * the same visual rhythm as the 8px social icon gap.
 */
@media (min-width: 922px) {
	body.lff-pls-enabled .ast-header-social-wrap {
		margin-left: 8px !important;
	}
}

/* Astra mobile Primary Menu / Hamburger */
@media (max-width: 921px) {
	.ast-mobile-popup-content .main-header-menu > .lff-pls-menu-item,
	.ast-mobile-header-content .main-header-menu > .lff-pls-menu-item {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		width: 100% !important;
		height: auto !important;
		margin: 0 !important;
		padding: 12px 22px !important;
		border-top: 1px solid #f3e5df !important;
		border-bottom: 1px solid #f3e5df !important;
		background: #ffffff !important;
	}

	.ast-mobile-popup-content .main-header-menu > .lff-pls-menu-item::before,
	.ast-mobile-header-content .main-header-menu > .lff-pls-menu-item::before {
		content: "Language";
		color: #6b5a58;
		font-family: inherit;
		font-size: 15px;
		font-weight: 500;
		line-height: 1.4;
	}

	.ast-mobile-popup-content .main-header-menu > .lff-pls-menu-item > .lff-pls-circle,
	.ast-mobile-header-content .main-header-menu > .lff-pls-menu-item > .lff-pls-circle {
		--lff-pls-size: 38px;
		font-size: 11px !important;
	}

	/* Do not apply the site's ordinary mobile menu-link width to the circle. */
	.ast-mobile-popup-content .main-header-menu > .lff-pls-menu-item > a,
	.ast-mobile-header-content .main-header-menu > .lff-pls-menu-item > a {
		width: var(--lff-pls-size) !important;
		height: var(--lff-pls-size) !important;
		padding: 0 !important;
		line-height: 1 !important;
		text-align: center !important;
	}
}

/* Manual shortcode fallback, intentionally independent of menu layout. */
.lff-pls-circle {
	box-sizing: border-box;
}
