.est-switcher { --est-bg: #fff; --est-radius: 6px; font-size: inherit; line-height: 1.4; }
.est-switcher ul, ul.est-switcher { list-style: none; margin: 0; padding: 0; }
.est-switcher a { color: inherit; text-decoration: none; }

/* Inline list */
.est-switcher--list { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.est-switcher--list .est-switcher__item.is-active a { font-weight: 600; }
.est-switcher__sep { opacity: .5; }

/* Toggle buttons: one outlined box, active language filled with the same colour */
.est-switcher--toggle { --est-color: #000; --est-active-text: #fff; display: inline-flex; gap: 0; border: 1px solid var(--est-color); }
.est-switcher--toggle li { margin: 0; padding: 0; }
.est-switcher--toggle a { display: block; padding: 6px 14px; line-height: 1.3; color: var(--est-color); background: transparent; transition: background .2s, color .2s; }
.est-switcher--toggle .is-active a { background: var(--est-color); color: var(--est-active-text); }

/* Dropdown */
.est-switcher--dropdown { position: relative; display: inline-block; }
.est-switcher__current {
	display: inline-flex; align-items: center; gap: 8px;
	background: transparent; border: 0; padding: 6px 4px; margin: 0;
	color: inherit; font: inherit; cursor: pointer; line-height: inherit;
}
.est-switcher__caret { transition: transform .2s ease; }
.est-switcher.is-open .est-switcher__caret { transform: rotate(180deg); }
.est-switcher__menu {
	position: absolute; top: 100%; inset-inline-start: 0; z-index: 9999;
	min-width: 150px; padding: 6px 0 !important;
	background: var(--est-bg); border-radius: var(--est-radius);
	box-shadow: 0 10px 30px rgba(0, 0, 0, .12);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.est-switcher--align-end .est-switcher__menu { inset-inline-start: auto; inset-inline-end: 0; }
.est-switcher.is-open .est-switcher__menu,
.est-switcher--hover:hover .est-switcher__menu,
.est-switcher--hover:focus-within .est-switcher__menu { opacity: 1; visibility: visible; transform: none; }
.est-switcher__menu a { display: block; padding: 8px 16px; color: #1a1a1a; white-space: nowrap; }
.est-switcher__menu a:hover, .est-switcher__menu a:focus { background: rgba(0, 0, 0, .05); }
.est-switcher__menu .is-active a { font-weight: 600; }

/* Language Buttons widget: every colour/size is a variable set from the widget */
.est-compact {
	--estc-bg: transparent; --estc-text: #1a1a1a; --estc-border: #d4d4d4;
	--estc-bg-hover: var(--estc-bg); --estc-text-hover: var(--estc-text); --estc-border-hover: var(--estc-border);
	--estc-bg-active: #111; --estc-text-active: #fff; --estc-border-active: #111;
	--estc-menu-bg: #fff; --estc-menu-text: #1a1a1a; --estc-menu-border: #e5e5e5; --estc-menu-hover-bg: #f2f2f2;
	--estc-pad: 6px 12px; --estc-gap: 6px; --estc-bw: 1px; --estc-radius: 4px;
	display: flex; line-height: 1.2;
}
.est-compact .est-switcher--list { gap: var(--estc-gap); flex-wrap: nowrap; }
.est-compact .est-switcher a,
.est-compact .est-switcher__current {
	display: inline-flex; align-items: center; gap: 6px; padding: var(--estc-pad);
	background: var(--estc-bg); color: var(--estc-text);
	border: var(--estc-bw) solid var(--estc-border); border-radius: var(--estc-radius);
	font-weight: inherit; direction: inherit; transition: background .2s, color .2s, border-color .2s, opacity .2s;
}
.est-compact .est-switcher--list a:hover,
.est-compact .est-switcher__current:hover {
	background: var(--estc-bg-hover); color: var(--estc-text-hover); border-color: var(--estc-border-hover);
}
.est-compact .est-switcher--list .is-active a,
.est-compact .est-switcher--list .is-active a:hover {
	background: var(--estc-bg-active); color: var(--estc-text-active); border-color: var(--estc-border-active); font-weight: inherit; opacity: 1;
}
.est-compact .est-switcher__menu {
	min-width: 100%; margin-top: 4px; padding: 4px 0 !important;
	background: var(--estc-menu-bg); border: 1px solid var(--estc-menu-border); border-radius: var(--estc-radius);
}
.est-compact .est-switcher__menu a {
	display: block; border: 0; border-radius: 0; background: transparent; color: var(--estc-menu-text);
}
.est-compact .est-switcher__menu a:hover { background: var(--estc-menu-hover-bg); color: var(--estc-menu-text); }
.est-compact .est-switcher__menu .is-active a { font-weight: 600; }

/* Language Buttons: "Text with dividers" layout (FR | EN | ES, active underlined) */
.est-compact--minimal {
	--estc-text: #8a8a8a; --estc-text-hover: #cfcfcf; --estc-text-active: #d4a647;
	--estc-div-color: #555; --estc-div-w: 1px; --estc-div-h: 1.1em;
	--estc-ul-active: var(--estc-text-active); --estc-ul-hover: var(--estc-text-hover);
	--estc-ul-h: 2px; --estc-ul-w: 100%; --estc-ul-gap: 6px; --estc-gap: 14px;
}
.est-compact--minimal .est-switcher--list { align-items: center; }
.est-compact--minimal .est-switcher__item { display: flex; align-items: center; gap: var(--estc-gap); }
.est-compact--minimal .est-switcher a {
	position: relative; padding: 4px 0; background: transparent; border: 0; border-radius: 0;
	color: var(--estc-text); font-weight: 600; letter-spacing: .06em;
}
.est-compact--minimal .est-switcher--list a:hover { background: transparent; color: var(--estc-text-hover); }
.est-compact--minimal .est-switcher--list .is-active a,
.est-compact--minimal .est-switcher--list .is-active a:hover { background: transparent; color: var(--estc-text-active); font-weight: 600; }
/* divider before every language except the first */
.est-divider-yes .est-compact--minimal .est-switcher__item + .est-switcher__item::before {
	content: ''; display: block; width: var(--estc-div-w); height: var(--estc-div-h); background: var(--estc-div-color);
}
/* underline */
.est-compact--minimal .est-switcher a::after {
	content: ''; position: absolute; left: 50%; bottom: calc(-1 * var(--estc-ul-gap));
	width: var(--estc-ul-w); height: var(--estc-ul-h); background: var(--estc-ul-active);
	transform: translateX(-50%) scaleX(0); transition: transform .25s ease, background .2s;
}
.est-underline-active .est-compact--minimal .is-active a::after,
.est-underline-hover .est-compact--minimal .is-active a::after { transform: translateX(-50%) scaleX(1); }
.est-underline-hover .est-compact--minimal .est-switcher__item:not(.is-active) a:hover::after { transform: translateX(-50%) scaleX(1); background: var(--estc-ul-hover); }
