/**
 * REDORZO – the language switcher of the public site.
 *
 * It takes the site's font and colours: every colour below is drawn from `currentColor` (the
 * text of the place where it sits) and `--toptr-sw-bg` (the background behind it: the theme's
 * own colour, then the one the script reads on the page). Light or dark, it follows.
 * The collection of twenty-one models (TOPTR_Switcher::catalog()): the four of the free version —
 * pills, dropdown, flags, minimal —, then the seventeen of TOP TRANSLATE 8 (their own section,
 * below). Three places: in the menu, floating at the bottom right, at the very bottom of the page.
 *
 * @package TopTranslate
 */

.toptr-sw {
	--toptr-sw-bg: var(--wp--preset--color--base, var(--global--color-background, #fff));
	--toptr-sw-line: color-mix(in srgb, currentColor 16%, transparent);
	--toptr-sw-line-2: color-mix(in srgb, currentColor 28%, transparent);
	--toptr-sw-track: color-mix(in srgb, currentColor 5%, transparent);
	--toptr-sw-hover: color-mix(in srgb, currentColor 9%, transparent);
	--toptr-sw-muted: color-mix(in srgb, currentColor 70%, transparent);
	--toptr-sw-shadow: 0 1px 2px rgba(16, 22, 26, .08), 0 18px 40px -16px rgba(16, 22, 26, .34);
	--toptr-sw-ease: cubic-bezier(.2, .8, .2, 1);
	position: relative;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: .35em;
	vertical-align: middle;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	font: inherit;
	font-size: var(--toptr-sw-size, .95rem);
	line-height: 1.25;
	letter-spacing: normal;
	text-transform: none;
	color: inherit;
	-webkit-font-smoothing: antialiased;
	-webkit-tap-highlight-color: transparent;
}

.toptr-sw *,
.toptr-sw *::before,
.toptr-sw *::after {
	box-sizing: border-box;
}

/* The colours (decision D3). Neutral by default: black and white, to blend into any site — the
   script (switcher.js, paint()) writes the switcher's text in near-black on a light place and
   near-white on a dark one, read on the background really behind it; every colour below is drawn
   from that text, so the whole switcher follows. The theme's colours, when the administrator
   chooses them (`.toptr-sw--theme`): the text around, as it is. Without the script, the text
   around. « Your colours » (`.toptr-sw--custom`, TOPTR_Switcher_Couleurs): the background, the
   text and the accent the administrator chose — the light ones on a light place, the dark ones
   on a dark place (`.toptr-sw--dark`, set by the script on the background really behind it;
   without the script, the device's own light or dark). Every model reads the accent through
   `--toptr-sw-cur` (the chosen language) and writes on it with `--toptr-sw-on-cur`; without
   « your colours », both fall back on the text and the background, as before. */

.toptr-switcher.toptr-sw.toptr-sw--custom {
	--toptr-sw-bg: var(--toptr-c-bg);
	--toptr-sw-cur: var(--toptr-c-ac);
	--toptr-sw-on-cur: var(--toptr-c-on);
	color: var(--toptr-c-fg);
}

/* The chosen background under the switcher itself — except under the three models drawn to
   spill out of their place (the Morph's panel, the Orbit's arc, the Fan's cards), which carry it
   on their own surfaces. */
.toptr-switcher.toptr-sw.toptr-sw--custom:not(.toptr-sw--morph, .toptr-sw--orbit, .toptr-sw--fan) {
	border-radius: 1.4em;
	background: var(--toptr-sw-bg);
}

.toptr-switcher.toptr-sw.toptr-sw--custom.toptr-sw--dark {
	--toptr-sw-bg: var(--toptr-c-bg-d);
	--toptr-sw-cur: var(--toptr-c-ac-d);
	--toptr-sw-on-cur: var(--toptr-c-on-d);
	color: var(--toptr-c-fg-d);
}

/* The verifier keeps the chosen text at 4.5:1 on the chosen background, and not a hair more:
   with « your colours », nothing of the switcher is written fainter than that text (the faded
   codes and counts of the neutral colours would fall under 4.5:1, measured on 06/10). */
.toptr-switcher.toptr-sw.toptr-sw--custom {
	--toptr-sw-muted: currentColor;
}

.toptr-sw--custom .toptr-sw-end .toptr-sw-code,
.toptr-sw--custom .toptr-sw-find .toptr-sw-count,
.toptr-sw--custom .toptr-sw-curtain-t {
	opacity: 1;
}

@media (prefers-color-scheme: dark) {
	html:not(.toptr-sw-js) .toptr-switcher.toptr-sw.toptr-sw--custom {
		--toptr-sw-bg: var(--toptr-c-bg-d);
		--toptr-sw-cur: var(--toptr-c-ac-d);
		--toptr-sw-on-cur: var(--toptr-c-on-d);
		color: var(--toptr-c-fg-d);
	}
}

/* Never wider than its place: in a narrow one (a phone's footer, the header), its row of pills
   scrolls instead of pushing the page sideways. Pasted in a page, the theme gives it the width of
   the text column (see below): nothing here overrides it. */
.toptr-switcher.toptr-sw:not(.toptr-sw--shortcode) {
	max-width: 100%;
	min-width: 0;
}

/* In a menu or a page, it speaks at the size of the text around it (the float and the footer
   keep their own size). */
.toptr-sw.toptr-sw--menu,
.toptr-sw.toptr-sw--shortcode {
	font-size: var(--toptr-sw-size, .95em);
}

/* Pasted in a page ([redorzo_switcher]): a block of the page, lined up with its text. The themes
   give the blocks of a page their width and their margins (the column of text, in Twenty
   Twenty-One as in Twenty Twenty-Five); an inline box ignores both, and the switcher stuck to the
   edge of the window, far left of the text (29/09, measured in both themes). */
.toptr-switcher.toptr-sw.toptr-sw--shortcode {
	display: flex;
	align-items: flex-start;
}

/* A small reset: the theme's menu rules must not reach inside. */
.toptr-switcher.toptr-sw ul,
.toptr-switcher.toptr-sw li {
	display: block;
	margin: 0;
	padding: 0;
	list-style: none;
	background: none;
	border: 0;
	box-shadow: none;
}

.toptr-switcher.toptr-sw a {
	color: inherit;
	text-decoration: none;
	border: 0;
	box-shadow: none;
	background: none;
	text-transform: none;
	letter-spacing: inherit;
}

.toptr-switcher.toptr-sw a:hover,
.toptr-switcher.toptr-sw a:focus {
	text-decoration: none;
}

.toptr-sw :focus {
	outline: none;
}

.toptr-sw :focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.toptr-sw .toptr-sr,
.toptr-suggest .toptr-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.toptr-sw-ic {
	width: 1em;
	height: 1em;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Flags, at the size of the text. */
.toptr-sw .toptr-flag {
	display: inline-block;
	width: 1.36em;
	height: .94em;
	border-radius: 2px;
	vertical-align: -.12em;
	flex: none;
}

.toptr-sw .toptr-code {
	flex: none;
	padding: .1em .35em;
	border-radius: 4px;
	border: 1px solid var(--toptr-sw-line);
	background: var(--toptr-sw-track);
	color: inherit;
	font: 600 .62em/1.3 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	letter-spacing: .04em;
}

/* The padlock of a language in preparation (the people who translate see it, visitors never). */
.toptr-sw-ic--lock {
	width: .85em;
	height: .85em;
	opacity: .7;
}

/* ── 01 · Pills ───────────────────────────────────────────────────────── */
.toptr-switcher.toptr-sw .toptr-sw-track {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	padding: 3px;
	border-radius: 999px;
	background: var(--toptr-sw-track);
	box-shadow: inset 0 0 0 1px var(--toptr-sw-line);
	max-width: 100%;
	overflow-x: auto;
	scrollbar-width: none;
}

.toptr-switcher.toptr-sw .toptr-sw-track::-webkit-scrollbar {
	display: none;
}

.toptr-switcher.toptr-sw a.toptr-sw-pill {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	padding: .6em .95em;
	border-radius: 999px;
	font-size: .78em;
	font-weight: 600;
	letter-spacing: .05em;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--toptr-sw-muted);
	transition: background-color .16s var(--toptr-sw-ease), color .16s var(--toptr-sw-ease);
}

.toptr-sw--with-flags a.toptr-sw-pill {
	padding-left: .6em;
}

.toptr-switcher.toptr-sw a.toptr-sw-pill:hover {
	color: currentColor;
	background: var(--toptr-sw-hover);
}

/* The current pill takes the text's colour as its fill (on its item, where `currentColor` is
   still the text's), and the background's colour for its own text. */
.toptr-switcher.toptr-sw .toptr-sw-track li.is-current {
	border-radius: 999px;
	background: var(--toptr-sw-cur, currentColor);
}

.toptr-switcher.toptr-sw .toptr-sw-track li.is-current > a.toptr-sw-pill,
.toptr-switcher.toptr-sw .toptr-sw-track li.is-current > a.toptr-sw-pill:hover {
	color: var(--toptr-sw-on-cur, var(--toptr-sw-bg));
	background: transparent;
}

.toptr-sw a.toptr-sw-pill[aria-current] .toptr-flag {
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--toptr-sw-bg) 40%, transparent);
}

/* ── 03 · Flags ───────────────────────────────────────────────────────── */
.toptr-switcher.toptr-sw .toptr-sw-flags {
	display: inline-flex;
	align-items: center;
	gap: 1px;
}

.toptr-switcher.toptr-sw a.toptr-sw-round {
	position: relative;
	display: grid;
	place-items: center;
	width: 2.25em;
	height: 2.25em;
	border-radius: 50%;
	transition: box-shadow .16s var(--toptr-sw-ease);
}

.toptr-sw-disc {
	position: relative;
	display: block;
	width: 1.55em;
	height: 1.55em;
	border-radius: 50%;
	overflow: hidden;
	transition: transform .16s var(--toptr-sw-ease);
}

.toptr-sw-disc::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 16%, transparent);
}

.toptr-sw .toptr-sw-disc .toptr-flag {
	position: absolute;
	top: 0;
	bottom: 0;
	left: -23%;
	right: -23%;
	width: auto;
	height: auto;
	border-radius: 0;
	box-shadow: none;
}

.toptr-sw-disc--code {
	display: grid;
	place-items: center;
	background: var(--toptr-sw-track);
	font: 700 .52em/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	letter-spacing: .02em;
	width: calc(1.55em / .52);
	height: calc(1.55em / .52);
}

.toptr-switcher.toptr-sw a.toptr-sw-round:not([aria-current]):hover .toptr-sw-disc {
	transform: translateY(-1px);
}

.toptr-switcher.toptr-sw a.toptr-sw-round[aria-current] {
	box-shadow: inset 0 0 0 2px currentColor;
}

.toptr-sw-round .toptr-sw-ic--lock {
	position: absolute;
	right: -1px;
	bottom: -1px;
	width: .8em;
	height: .8em;
	padding: 1px;
	border-radius: 50%;
	background: var(--toptr-sw-bg);
	opacity: 1;
}

/* The name: transparent at rest, never removed (screen readers read it: it names the link). */
.toptr-sw-tip {
	position: absolute;
	z-index: 2;
	top: calc(100% + 5px);
	left: 50%;
	padding: .36em .62em;
	border-radius: 7px;
	white-space: nowrap;
	pointer-events: none;
	font-size: .78em;
	font-weight: 500;
	line-height: 1.2;
	background: var(--toptr-sw-bg);
	color: currentColor;
	box-shadow: var(--toptr-sw-shadow), inset 0 0 0 1px var(--toptr-sw-line);
	opacity: 0;
	transform: translate(-50%, -2px);
	transition: opacity .14s var(--toptr-sw-ease), transform .14s var(--toptr-sw-ease);
}

.toptr-sw--up .toptr-sw-tip {
	top: auto;
	bottom: calc(100% + 5px);
	transform: translate(-50%, 2px);
}

.toptr-sw-round:hover .toptr-sw-tip,
.toptr-sw-round:focus-visible .toptr-sw-tip {
	opacity: 1;
	transform: translate(-50%, 0);
}

.toptr-switcher.toptr-sw a.toptr-sw-round:focus-visible {
	outline-offset: 1px;
	border-radius: 50%;
}

/* ── 02 · Dropdown and 04 · Minimal ───────────────────────────────────── */
.toptr-sw-dd {
	position: relative;
	display: inline-block;
	margin: 0;
	padding: 0;
	border: 0;
}

.toptr-sw .toptr-sw-btn {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	height: 2.45em;
	margin: 0;
	padding: 0 .75em 0 .95em;
	border: 1px solid var(--toptr-sw-line);
	border-radius: 999px;
	background: none;
	cursor: pointer;
	list-style: none;
	font-size: 1em;
	font-weight: 500;
	line-height: 1.25;
	white-space: nowrap;
	color: inherit;
	user-select: none;
	transition: background-color .14s var(--toptr-sw-ease), border-color .14s var(--toptr-sw-ease);
}

.toptr-sw-btn::-webkit-details-marker,
.toptr-sw-btn::marker {
	display: none;
	content: "";
}

.toptr-sw--with-flags .toptr-sw-dd:not(.toptr-sw-dd--min) .toptr-sw-btn {
	padding-left: .7em;
}

.toptr-sw-btn:hover,
.toptr-sw-dd[open] > .toptr-sw-btn {
	background: var(--toptr-sw-hover);
	border-color: var(--toptr-sw-line-2);
}

.toptr-sw-btn:focus-visible {
	border-radius: 999px;
}

.toptr-sw-btn .toptr-sw-ic--chevron {
	width: .95em;
	height: .95em;
	margin-right: -.1em;
	opacity: .65;
	transition: transform .2s var(--toptr-sw-ease);
}

.toptr-sw-dd[open] > .toptr-sw-btn .toptr-sw-ic--chevron {
	transform: rotate(180deg);
}

/* Minimal: no frame, the voice of the menu. */
.toptr-sw-dd--min .toptr-sw-btn {
	gap: .3em;
	height: 2.3em;
	padding: 0 .4em;
	border-color: transparent;
	border-radius: 7px;
	font-weight: 600;
	letter-spacing: .04em;
}

.toptr-sw-dd--min .toptr-sw-btn:hover,
.toptr-sw-dd--min[open] > .toptr-sw-btn {
	background: transparent;
	border-color: transparent;
	color: inherit;
}

.toptr-sw-dd--min .toptr-sw-btn .toptr-sw-ic--chevron {
	width: .8em;
	height: .8em;
	stroke-width: 2.3;
}

/* The list: born from its button. */
.toptr-sw-panel {
	position: absolute;
	z-index: 100000;
	top: calc(100% + 8px);
	right: 0;
	min-width: max(100%, 12.5rem);
	padding: 6px;
	border-radius: 14px;
	background: var(--toptr-sw-bg);
	color: inherit;
	border: 1px solid var(--toptr-sw-line);
	box-shadow: var(--toptr-sw-shadow);
	text-align: start;
	animation: toptr-sw-in .18s var(--toptr-sw-ease) both;
	/* Across, inside the window (switcher.js). */
	translate: var(--toptr-sw-dx, 0px) 0;
}

[dir="rtl"] .toptr-sw-panel {
	right: auto;
	left: 0;
}

.toptr-sw--up .toptr-sw-panel {
	top: auto;
	bottom: calc(100% + 8px);
	animation-name: toptr-sw-up;
}

.toptr-sw--footer .toptr-sw-panel {
	right: auto;
	left: 50%;
	translate: calc(var(--toptr-sw-dx, 0px) - 50%) 0;
}

/* In a page, lined up with the text: the list opens from the start of its button, and never
   past the edge of the column (anchored on the right, it went off a phone's screen). */
.toptr-sw--shortcode .toptr-sw-panel {
	right: auto;
	left: 0;
}

[dir="rtl"] .toptr-sw--shortcode .toptr-sw-panel {
	right: 0;
	left: auto;
}

/* Where the room is (switcher.js): the other way round. */
.toptr-sw-panel.is-flipped {
	top: auto;
	bottom: calc(100% + 8px);
	animation-name: toptr-sw-up;
}

.toptr-sw--up .toptr-sw-panel.is-flipped {
	top: calc(100% + 8px);
	bottom: auto;
	animation-name: toptr-sw-in;
}

.toptr-sw-dd--min .toptr-sw-panel {
	min-width: 11rem;
	padding: 4px;
	border-radius: 10px;
}

@keyframes toptr-sw-in {
	from {
		opacity: 0;
		transform: translateY(-4px) scale(.98);
	}
}

@keyframes toptr-sw-up {
	from {
		opacity: 0;
		transform: translateY(4px) scale(.98);
	}
}

.toptr-switcher.toptr-sw .toptr-sw-menu {
	display: grid;
	gap: 1px;
	max-height: min(22rem, 60vh, var(--toptr-sw-room, 100vh));
	overflow-y: auto;
	overscroll-behavior: contain;
}

.toptr-switcher.toptr-sw a.toptr-sw-opt {
	display: flex;
	align-items: center;
	gap: .65em;
	padding: .55em .7em;
	border-radius: 9px;
	font-size: 1em;
	font-weight: 400;
	line-height: 1.25;
	white-space: nowrap;
	transition: background-color .12s var(--toptr-sw-ease);
}

.toptr-sw-dd--min a.toptr-sw-opt {
	padding: .45em .6em;
	border-radius: 6px;
}

.toptr-switcher.toptr-sw a.toptr-sw-opt:hover,
.toptr-switcher.toptr-sw a.toptr-sw-opt:focus-visible {
	background: var(--toptr-sw-hover);
}

.toptr-switcher.toptr-sw a.toptr-sw-opt:focus-visible {
	outline-offset: -2px;
}

.toptr-switcher.toptr-sw a.toptr-sw-opt[aria-current] {
	font-weight: 600;
}

.toptr-sw-end {
	display: grid;
	place-items: center end;
	margin-left: auto;
	padding-left: 1.2em;
}

.toptr-sw-end > * {
	grid-area: 1 / 1;
}

.toptr-sw-end .toptr-sw-code {
	font-size: .76em;
	font-weight: 500;
	letter-spacing: .06em;
	opacity: .6;
}

.toptr-sw-end .toptr-sw-ic--check {
	width: 1.05em;
	height: 1.05em;
	opacity: 0;
}

.toptr-sw-opt[aria-current] .toptr-sw-end .toptr-sw-code {
	opacity: 0;
}

.toptr-sw-opt[aria-current] .toptr-sw-end .toptr-sw-ic--check {
	opacity: 1;
}

/* ── Many languages ──────────────────────────────────────────────────────
   Beyond six, the pills and the flags fold (TOPTR_Switcher::FOLD_AFTER): five stay, the others
   wait behind a "+N" pill that opens the complete list, like the dropdown's. A long list gets a
   search field, shown by the script (without it, the list alone: every language still a link). */
.toptr-switcher.toptr-sw .toptr-sw-row {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	max-width: 100%;
	min-width: 0;
}

.toptr-switcher.toptr-sw .toptr-sw-row > .toptr-sw-track {
	flex: 0 1 auto;
	min-width: 0;
}

.toptr-sw .toptr-sw-btn.toptr-sw-plus {
	justify-content: center;
	height: auto;
	min-height: 2.45em;
	padding: 0 .85em;
	font-size: .78em;
	font-weight: 600;
	letter-spacing: .03em;
	background: var(--toptr-sw-track);
	font-variant-numeric: tabular-nums;
}

.toptr-sw--flags .toptr-sw-btn.toptr-sw-plus {
	min-width: 2.9em;
	min-height: 2.9em;
	padding: 0 .55em;
}

.toptr-sw-more .toptr-sw-panel {
	min-width: 13.5rem;
}

.toptr-sw-find[hidden],
.toptr-switcher.toptr-sw li[hidden] {
	display: none;
}

.toptr-sw-find {
	display: flex;
	align-items: center;
	gap: .5em;
	height: 2.5em;
	margin: 0 0 6px;
	padding: 0 .7em;
	border: 1px solid var(--toptr-sw-line);
	border-radius: 9px;
}

.toptr-sw-find:focus-within {
	border-color: var(--toptr-sw-line-2);
	box-shadow: 0 0 0 2px var(--toptr-sw-hover);
}

.toptr-sw-find .toptr-sw-ic--search {
	width: 1em;
	height: 1em;
	opacity: .6;
}

/* The themes dress their search fields (borders, padding, width): not this one. */
.toptr-switcher.toptr-sw .toptr-sw-find input {
	flex: 1;
	min-width: 0;
	width: auto;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	font: inherit;
	font-size: 1em;
	color: inherit;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
}

/* The field is empty in one gesture (select, delete) and Escape closes the list: no clear button. */
.toptr-switcher.toptr-sw .toptr-sw-find input::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
}

.toptr-switcher.toptr-sw .toptr-sw-find input::placeholder {
	color: var(--toptr-sw-muted);
	opacity: 1;
}

.toptr-sw-find .toptr-sw-count {
	font-size: .76em;
	opacity: .6;
	font-variant-numeric: tabular-nums;
}

/* The mention, when the administrator shows it. */
.toptr-switcher.toptr-sw a.toptr-sw-credit {
	display: block;
	font-size: .66em;
	line-height: 1.2;
	letter-spacing: .01em;
	white-space: nowrap;
	color: var(--toptr-sw-muted);
	text-align: center;
}

.toptr-switcher.toptr-sw a.toptr-sw-credit:hover {
	color: currentColor;
	text-decoration: underline;
}

.toptr-sw-panel .toptr-sw-credit {
	margin: 4px 0 0;
	padding: 7px 8px 3px;
	border-top: 1px solid var(--toptr-sw-line);
}

.toptr-sw--up.toptr-sw--pills,
.toptr-sw--up.toptr-sw--flags {
	flex-direction: column-reverse;
}

/* ── The places ───────────────────────────────────────────────────────── */

/* In a classic menu: one more item. */
.toptr-sw-item {
	display: flex;
	align-items: center;
	list-style: none;
}

/* In a navigation block: after the links; on a phone, before the menu button. */
.toptr-sw-slot {
	display: flex;
	align-items: center;
	order: 5;
	margin-inline-start: var(--wp--style--block-gap, 1.25em);
}

@media (min-width: 600px) {
	/* The block's links take the whole width by default: they make room for the switcher. */
	.wp-block-navigation:has(> .toptr-sw-slot) {
		flex-wrap: nowrap;
	}

	.wp-block-navigation:has(> .toptr-sw-slot) > .wp-block-navigation__responsive-container:not(.is-menu-open) {
		width: auto;
	}
}

@media (max-width: 599px) {
	.wp-block-navigation:has(> .toptr-sw-slot) {
		flex-wrap: nowrap;
	}

	.wp-block-navigation > .toptr-sw-slot {
		order: -1;
		margin-inline: 0 .75em;
	}

	.toptr-sw-slot .toptr-sw,
	.toptr-sw-item .toptr-sw {
		--toptr-sw-size: .82rem;
	}

	.toptr-sw-slot .toptr-sw a.toptr-sw-pill {
		gap: .35em;
		padding: .55em .6em;
	}

	/* On a phone, the header shares its line between the site's name, the switcher and the menu
	   button: the switcher takes what is left, and its row of pills scrolls sideways (six pills
	   pushed the menu button off a 375 px screen, 30/09). */
	.wp-block-navigation:has(> .toptr-sw-slot) {
		min-width: 0;
	}

	.wp-block-navigation > .toptr-sw-slot {
		flex: 0 1 auto;
		min-width: 0;
	}

	.toptr-sw-slot .toptr-sw,
	.toptr-sw-item .toptr-sw {
		max-width: 100%;
		min-width: 0;
	}

	/* Whatever the theme puts around it, the row leaves the site's name and the menu button
	   their place (each theme nests its header differently: the window is the one measure they
	   all share). */
	.toptr-switcher.toptr-sw.toptr-sw--menu .toptr-sw-track {
		max-width: calc(100vw - 11.5rem);
	}

	.toptr-switcher.toptr-sw.toptr-sw--menu .toptr-sw-row > .toptr-sw-track {
		max-width: calc(100vw - 15rem);
	}
}

/* A row of pills wider than its place scrolls; its edges fade where there is more to see (the
   script says which: is-scrolling, is-more-left, is-more-right). */
.toptr-switcher.toptr-sw .toptr-sw-track.is-scrolling {
	-webkit-mask-image: linear-gradient(90deg, var(--toptr-sw-fade-l, #000) 0, #000 1.5em, #000 calc(100% - 1.5em), var(--toptr-sw-fade-r, #000) 100%);
	mask-image: linear-gradient(90deg, var(--toptr-sw-fade-l, #000) 0, #000 1.5em, #000 calc(100% - 1.5em), var(--toptr-sw-fade-r, #000) 100%);
}

.toptr-switcher.toptr-sw .toptr-sw-track.is-more-left {
	--toptr-sw-fade-l: transparent;
}

.toptr-switcher.toptr-sw .toptr-sw-track.is-more-right {
	--toptr-sw-fade-r: transparent;
}

/* Floating, bottom right, always visible. */
.toptr-sw-float {
	--toptr-sw-bg: var(--wp--preset--color--base, var(--global--color-background, #fff));
	position: fixed;
	z-index: 99990;
	right: max(16px, env(safe-area-inset-right));
	bottom: max(16px, env(safe-area-inset-bottom));
	display: flex;
	padding: 5px;
	border-radius: 999px;
	background: var(--toptr-sw-bg);
	box-shadow: 0 1px 2px rgba(16, 22, 26, .1), 0 14px 34px -12px rgba(16, 22, 26, .36), inset 0 0 0 1px color-mix(in srgb, currentColor 12%, transparent);
}

[dir="rtl"] .toptr-sw-float {
	right: auto;
	left: max(16px, env(safe-area-inset-left));
}

.toptr-sw-float .toptr-sw-track {
	box-shadow: none;
	background: transparent;
}

.toptr-sw-float .toptr-sw-btn {
	border-color: transparent;
}

.toptr-sw-float .toptr-sw-panel {
	right: -5px;
}

/* On a page written from right to left, the capsule sits bottom left: its list opens from there
   (anchored on both sides, the Discreet's list was squeezed to its smallest width, and its names
   went past it, 05/10). */
[dir="rtl"] .toptr-sw-float .toptr-sw-panel {
	right: auto;
	left: -5px;
}

.admin-bar .toptr-sw-float {
	z-index: 99990;
}

/* At the very bottom of every page. */
.toptr-sw-footer {
	display: flex;
	justify-content: center;
	clear: both;
	padding: 18px 16px calc(20px + env(safe-area-inset-bottom));
	border-top: 1px solid color-mix(in srgb, currentColor 10%, transparent);
}

@media (pointer: coarse) {
	.toptr-switcher.toptr-sw a.toptr-sw-pill {
		min-height: 36px;
	}

	.toptr-sw-btn {
		min-height: 44px;
	}

	.toptr-switcher.toptr-sw a.toptr-sw-opt {
		min-height: 44px;
	}

	.toptr-switcher.toptr-sw .toptr-sw-flags {
		gap: 10px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.toptr-sw *,
	.toptr-sw-panel,
	.toptr-suggest-card {
		transition-duration: 1ms !important;
		animation-duration: 1ms !important;
	}
}

@media (forced-colors: active) {
	.toptr-switcher.toptr-sw a.toptr-sw-pill[aria-current],
	.toptr-switcher.toptr-sw a.toptr-sw-round[aria-current] {
		outline: 2px solid Highlight;
	}
}

/* ══ The collection of TOP TRANSLATE 8 (screen 17) ═══════════════════════════════
   Seventeen models join the four above (TOPTR_Switcher_Models), with the same grammar: the colours
   of the place where they sit — the text around them (currentColor) and the background really
   behind them (--toptr-sw-bg) —, so light on a light site and dark on a dark one; three durations
   and two curves for every move; a move only after a gesture; none for a visitor who asked his
   device for less motion (at the end of this section). */
.toptr-sw {
	--toptr-sw-t1: .14s;
	--toptr-sw-t2: .22s;
	--toptr-sw-t3: .42s;
	--toptr-sw-spring: cubic-bezier(.3, 1.32, .55, 1);
	--toptr-sw-press: color-mix(in srgb, currentColor 13%, transparent);
	--toptr-sw-shadow-1: 0 1px 2px rgba(16, 22, 26, .1), 0 1px 1px rgba(16, 22, 26, .05);
}

.toptr-switcher.toptr-sw summary {
	list-style: none;
}

.toptr-switcher.toptr-sw summary::-webkit-details-marker,
.toptr-switcher.toptr-sw summary::marker {
	display: none;
	content: "";
}

/* A row wider than its place scrolls sideways, like the track of the Pills, and fades on the side
   where there is more (switcher.js says which). Four pixels of air keep the focus ring in sight. */
.toptr-switcher.toptr-sw .toptr-sw-scroll {
	max-width: 100%;
	min-width: 0;
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: none;
	padding-block: 4px;
	margin-block: -4px;
}

.toptr-switcher.toptr-sw .toptr-sw-scroll::-webkit-scrollbar {
	display: none;
}

.toptr-switcher.toptr-sw .toptr-sw-scroll.is-scrolling {
	-webkit-mask-image: linear-gradient(90deg, var(--toptr-sw-fade-l, #000) 0, #000 1.5em, #000 calc(100% - 1.5em), var(--toptr-sw-fade-r, #000) 100%);
	mask-image: linear-gradient(90deg, var(--toptr-sw-fade-l, #000) 0, #000 1.5em, #000 calc(100% - 1.5em), var(--toptr-sw-fade-r, #000) 100%);
}

.toptr-switcher.toptr-sw .toptr-sw-scroll.is-more-left {
	--toptr-sw-fade-l: transparent;
}

.toptr-switcher.toptr-sw .toptr-sw-scroll.is-more-right {
	--toptr-sw-fade-r: transparent;
}

.toptr-switcher.toptr-sw .toptr-sw-row > .toptr-sw-scroll,
.toptr-switcher.toptr-sw .toptr-sw-row > .toptr-sw-glide {
	flex: 0 1 auto;
	min-width: 0;
}

/* What glides under the language shown (the Underline, the Spotlight, the Ink): placed by the
   script, which then says `is-glide`; without it, the language shown carries its own mark. */
.toptr-switcher.toptr-sw .toptr-sw-glide {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.toptr-sw-cursor {
	position: absolute;
	left: 0;
	top: 0;
	display: none;
	width: var(--w, 0px);
	height: var(--h, 0px);
	transform: translate(var(--x, 0px), var(--y, 0px));
	pointer-events: none;
}

.toptr-sw-glide.is-glide > .toptr-sw-cursor {
	display: block;
}

.toptr-sw-glide.is-ready > .toptr-sw-cursor {
	transition: transform var(--toptr-sw-t3) var(--toptr-sw-spring), width var(--toptr-sw-t3) var(--toptr-sw-spring), height var(--toptr-sw-t3) var(--toptr-sw-spring);
}

/* The name of a language in a small tooltip (the Fan, the Halo, the Orbit): the Flags' own. */
.toptr-sw-fan-l:hover .toptr-sw-tip,
.toptr-sw-fan-l:focus-visible .toptr-sw-tip,
.toptr-sw-halo-l:hover .toptr-sw-tip,
.toptr-sw-halo-l:focus-visible .toptr-sw-tip,
.toptr-sw-orb:hover .toptr-sw-tip,
.toptr-sw-orb:focus-visible .toptr-sw-tip {
	opacity: 1;
	transform: translate(-50%, 0);
}

/* ── 02 · Underline: the names in the menu, a line that glides ────────── */
.toptr-switcher.toptr-sw .toptr-sw-uline {
	padding-inline: 3px;
}

.toptr-switcher.toptr-sw ul.toptr-sw-names {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
}

.toptr-switcher.toptr-sw .toptr-sw-uline ul.toptr-sw-names {
	gap: 1.1em;
}

.toptr-switcher.toptr-sw .toptr-sw-uline.has-flags ul.toptr-sw-names {
	gap: .75em;
}

.toptr-switcher.toptr-sw a.toptr-sw-ul {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: .4em;
	padding: .6em 0;
	white-space: nowrap;
	line-height: 1.25;
	color: var(--toptr-sw-muted);
	transition: color var(--toptr-sw-t1) var(--toptr-sw-ease);
}

.toptr-switcher.toptr-sw a.toptr-sw-ul:hover {
	color: currentColor;
}

.toptr-switcher.toptr-sw a.toptr-sw-ul[aria-current] {
	color: var(--toptr-sw-cur, currentColor);
}

.toptr-switcher.toptr-sw a.toptr-sw-ul[aria-current] {
	font-weight: 600;
}

.toptr-switcher.toptr-sw a.toptr-sw-ul:focus-visible {
	outline-offset: 2px;
	border-radius: 4px;
}

/* The line: under the language shown, then at the foot of the box the script gives it. */
.toptr-sw-uline:not(.is-glide) a.toptr-sw-ul[aria-current]::after,
.toptr-sw-uline .toptr-sw-cursor::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: .3em;
	height: 2px;
	border-radius: 2px;
	background: var(--toptr-sw-cur, currentColor);
}

/* ── 07 · Switch: two languages, a knob that flips ─────────────────────── */
.toptr-switcher.toptr-sw .toptr-sw-switch {
	position: relative;
	display: inline-flex;
	padding: 3px;
	border-radius: 999px;
	background: var(--toptr-sw-track);
	box-shadow: inset 0 0 0 1px var(--toptr-sw-line);
}

.toptr-switcher.toptr-sw ul.toptr-sw-switch-l {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr 1fr;
}

.toptr-sw-knob {
	position: absolute;
	top: 3px;
	bottom: 3px;
	left: 3px;
	width: calc(50% - 3px);
	border-radius: 999px;
	background: var(--toptr-sw-cur, currentColor);
	box-shadow: 0 1px 2px rgba(16, 22, 26, .16), 0 3px 10px -4px rgba(16, 22, 26, .4);
	transition: transform var(--toptr-sw-t3) var(--toptr-sw-spring);
}

.toptr-sw-switch.is-second .toptr-sw-knob {
	transform: translateX(100%);
}

/* Aiming at the other language: the knob leans towards it. */
.toptr-sw-switch:not(.is-second):has(li + li > a:hover) .toptr-sw-knob {
	transform: translateX(8%);
}

.toptr-sw-switch.is-second:has(li:first-child > a:hover) .toptr-sw-knob {
	transform: translateX(92%);
}

[dir="rtl"] .toptr-sw-knob {
	left: auto;
	right: 3px;
}

[dir="rtl"] .toptr-sw-switch.is-second .toptr-sw-knob {
	transform: translateX(-100%);
}

[dir="rtl"] .toptr-sw-switch:not(.is-second):has(li + li > a:hover) .toptr-sw-knob {
	transform: translateX(-8%);
}

[dir="rtl"] .toptr-sw-switch.is-second:has(li:first-child > a:hover) .toptr-sw-knob {
	transform: translateX(-92%);
}

.toptr-switcher.toptr-sw a.toptr-sw-sw {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .45em;
	padding: .6em .95em;
	border-radius: 999px;
	font-size: .78em;
	font-weight: 600;
	letter-spacing: .05em;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--toptr-sw-muted);
	transition: color var(--toptr-sw-t2) var(--toptr-sw-ease);
}

.toptr-switcher.toptr-sw a.toptr-sw-sw:hover {
	color: currentColor;
}

.toptr-switcher.toptr-sw a.toptr-sw-sw[aria-current] {
	color: var(--toptr-sw-on-cur, var(--toptr-sw-bg));
}

.toptr-switcher.toptr-sw a.toptr-sw-sw:focus-visible {
	border-radius: 999px;
}

/* ── 08 · Large menu: a globe, the language shown, a large panel ────────── */
.toptr-sw .toptr-sw-mega > .toptr-sw-btn {
	gap: .45em;
	padding: 0 .65em;
	border-color: transparent;
	border-radius: 10px;
}

.toptr-sw .toptr-sw-mega > .toptr-sw-btn:hover,
.toptr-sw .toptr-sw-mega[open] > .toptr-sw-btn {
	border-color: transparent;
}

.toptr-sw-mega > .toptr-sw-btn .toptr-sw-ic--globe {
	width: 1.15em;
	height: 1.15em;
	stroke-width: 1.7;
	opacity: .75;
}

.toptr-sw .toptr-sw-mega > .toptr-sw-panel {
	width: min(37rem, calc(100vw - 2rem));
	padding: 8px;
}

.toptr-sw .toptr-sw-mega > .toptr-sw-panel[data-cols="2"] {
	width: min(24rem, calc(100vw - 2rem));
}

.toptr-sw .toptr-sw-mega > .toptr-sw-panel[data-cols="1"] {
	width: auto;
}

.toptr-switcher.toptr-sw .toptr-sw-mega-p .toptr-sw-menu {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2px 4px;
}

.toptr-switcher.toptr-sw .toptr-sw-mega-p[data-cols="2"] .toptr-sw-menu {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.toptr-switcher.toptr-sw .toptr-sw-mega-p[data-cols="1"] .toptr-sw-menu {
	grid-template-columns: minmax(0, 1fr);
}

.toptr-switcher.toptr-sw .toptr-sw-mega-p a.toptr-sw-opt {
	min-width: 0;
	gap: .55em;
}

.toptr-sw-mega-p a.toptr-sw-opt .toptr-sw-name {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}

.toptr-sw-mega-p .toptr-sw-end {
	padding-left: .6em;
}

/* The cases come in, one after the other, without moving. */
.toptr-sw-mega[open] a.toptr-sw-opt {
	animation: toptr-sw-fade var(--toptr-sw-t2) var(--toptr-sw-ease) backwards;
	animation-delay: calc(min(var(--i, 0), 18) * 12ms);
}

@media (max-width: 30rem) {
	.toptr-switcher.toptr-sw .toptr-sw-mega-p:not([data-cols="1"]) .toptr-sw-menu {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.toptr-sw-mega-p a.toptr-sw-opt:not([aria-current]) .toptr-sw-end {
		display: none;
	}
}

@keyframes toptr-sw-fade {
	from {
		opacity: 0;
	}
}

/* ── 09 · Glass: a capsule of frosted glass, for a header on a photo ──── */
.toptr-sw-glass {
	--toptr-sw-glass: color-mix(in srgb, var(--toptr-sw-bg) 60%, transparent);
	--toptr-sw-glass-2: color-mix(in srgb, var(--toptr-sw-bg) 80%, transparent);
	--toptr-sw-blur: blur(16px) saturate(1.6);
}

.toptr-sw .toptr-sw-glass > .toptr-sw-btn {
	gap: .45em;
	height: 2.35em;
	padding: 0 .7em 0 .8em;
	border-color: color-mix(in srgb, currentColor 18%, transparent);
	background: var(--toptr-sw-glass);
	-webkit-backdrop-filter: var(--toptr-sw-blur);
	backdrop-filter: var(--toptr-sw-blur);
	box-shadow: var(--toptr-sw-shadow-1);
	font-weight: 600;
	transition: background-color var(--toptr-sw-t1) var(--toptr-sw-ease), transform var(--toptr-sw-t2) var(--toptr-sw-spring);
}

.toptr-sw .toptr-sw-glass > .toptr-sw-btn:hover,
.toptr-sw .toptr-sw-glass[open] > .toptr-sw-btn {
	background: var(--toptr-sw-glass-2);
}

.toptr-sw .toptr-sw-glass > .toptr-sw-btn:active {
	transform: scale(.96);
}

.toptr-sw-glass > .toptr-sw-btn .toptr-sw-disc {
	width: 1.35em;
	height: 1.35em;
}

.toptr-sw-glass > .toptr-sw-btn .toptr-sw-code,
.toptr-sw-sheet > .toptr-sw-btn .toptr-sw-code,
.toptr-sw-pal > .toptr-sw-btn .toptr-sw-code,
.toptr-sw-mosaic > .toptr-sw-btn .toptr-sw-code,
.toptr-sw-cyl > .toptr-sw-btn .toptr-sw-code {
	font-size: .82em;
	letter-spacing: .05em;
}

.toptr-sw .toptr-sw-glass > .toptr-sw-panel {
	background: var(--toptr-sw-glass-2);
	-webkit-backdrop-filter: var(--toptr-sw-blur);
	backdrop-filter: var(--toptr-sw-blur);
	border-color: color-mix(in srgb, currentColor 16%, transparent);
}

/* Two columns as wide as their longest name (« Slovenščina SL » went past its column of the Glass,
   05/10); one column on a narrow screen. */
.toptr-switcher.toptr-sw .toptr-sw-glass-p[data-cols="2"],
.toptr-switcher.toptr-sw .toptr-sw-globe-p[data-cols="2"] {
	width: max-content;
}

.toptr-switcher.toptr-sw .toptr-sw-glass-p[data-cols="2"] .toptr-sw-menu,
.toptr-switcher.toptr-sw .toptr-sw-globe-p[data-cols="2"] .toptr-sw-menu {
	grid-template-columns: repeat(2, minmax(11rem, max-content));
	column-gap: 4px;
}

@media (max-width: 36rem) {
	.toptr-switcher.toptr-sw .toptr-sw-glass-p[data-cols="2"],
	.toptr-switcher.toptr-sw .toptr-sw-globe-p[data-cols="2"] {
		width: auto;
	}

	.toptr-switcher.toptr-sw .toptr-sw-glass-p[data-cols="2"] .toptr-sw-menu,
	.toptr-switcher.toptr-sw .toptr-sw-globe-p[data-cols="2"] .toptr-sw-menu {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Without a blur, or for a visitor who wants less transparency: a plain surface. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.toptr-sw-glass {
		--toptr-sw-glass: var(--toptr-sw-bg);
		--toptr-sw-glass-2: var(--toptr-sw-bg);
	}
}

@media (prefers-reduced-transparency: reduce) {
	.toptr-sw-glass {
		--toptr-sw-glass: var(--toptr-sw-bg);
		--toptr-sw-glass-2: var(--toptr-sw-bg);
		--toptr-sw-blur: none;
	}
}

/* ── 10 · Globe, 15 · Orbit: a round button in a corner of the screen ───── */
.toptr-sw .toptr-sw-orbtn {
	position: relative;
	display: grid;
	place-items: center;
	width: 3em;
	height: 3em;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	user-select: none;
	background: var(--toptr-sw-bg);
	color: inherit;
	box-shadow: 0 0 0 1px var(--toptr-sw-line), var(--toptr-sw-shadow);
	transition: transform var(--toptr-sw-t2) var(--toptr-sw-spring), background-color var(--toptr-sw-t1) var(--toptr-sw-ease);
}

.toptr-sw .toptr-sw-orbtn:active {
	transform: scale(.94);
}

.toptr-sw .toptr-sw-orbtn:focus-visible {
	border-radius: 50%;
	outline-offset: 3px;
}

.toptr-sw-orbtn > .toptr-sw-ic {
	grid-area: 1 / 1;
	width: 1.4em;
	height: 1.4em;
	stroke-width: 1.7;
	transition: opacity var(--toptr-sw-t2) var(--toptr-sw-ease), transform var(--toptr-sw-t3) var(--toptr-sw-spring);
}

.toptr-sw-globe > .toptr-sw-orbtn > .toptr-sw-ic--close {
	opacity: 0;
	transform: rotate(-45deg) scale(.6);
}

.toptr-sw-globe[open] > .toptr-sw-orbtn > .toptr-sw-ic--globe {
	opacity: 0;
	transform: rotate(45deg) scale(.6);
}

.toptr-sw-globe[open] > .toptr-sw-orbtn > .toptr-sw-ic--close {
	opacity: 1;
	transform: none;
}

/* The badge of the language shown: the text's colour as its fill, in the corner of the button
   (never past its edge). */
.toptr-sw-badge {
	position: absolute;
	top: 0;
	right: 0;
	display: inline-grid;
	place-items: center;
	min-width: 1.6em;
	height: 1.2em;
	padding: 0 .3em;
	border-radius: 999px;
	background: currentColor;
	box-shadow: 0 0 0 2px var(--toptr-sw-bg);
	transition: opacity var(--toptr-sw-t1) var(--toptr-sw-ease), transform var(--toptr-sw-t2) var(--toptr-sw-spring);
}

.toptr-sw-badge .toptr-sw-code {
	color: var(--toptr-sw-bg);
	font-size: .6em;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1;
}

.toptr-sw-globe[open] .toptr-sw-badge {
	opacity: 0;
	transform: scale(.4);
}

[dir="rtl"] .toptr-sw-badge {
	right: auto;
	left: 0;
}

.toptr-sw .toptr-sw-globe > .toptr-sw-panel {
	min-width: 13.5rem;
	transform-origin: bottom right;
}

/* The lines rise one after the other, the nearest to the button first. */
.toptr-sw--up .toptr-sw-globe[open] a.toptr-sw-opt {
	animation: toptr-sw-rise-l var(--toptr-sw-t2) var(--toptr-sw-ease) backwards;
	animation-delay: calc(min(var(--i, 0), 10) * 18ms);
}

@keyframes toptr-sw-rise-l {
	from {
		opacity: 0;
		transform: translateY(5px);
	}
}

/* Floating, the Globe, the Orbit and the Morph are their own frame. */
.toptr-sw-float.toptr-sw-float--bare {
	padding: 0;
	border-radius: 50%;
	background: transparent;
	box-shadow: none;
}

.toptr-sw-float--bare .toptr-sw-morph:not([open]) > .toptr-sw-btn {
	border-color: var(--toptr-sw-line);
	box-shadow: 0 1px 2px rgba(16, 22, 26, .1), 0 14px 34px -12px rgba(16, 22, 26, .36);
}

.toptr-sw-float--bare .toptr-sw-panel {
	right: 0;
}

[dir="rtl"] .toptr-sw-float--bare .toptr-sw-panel {
	right: auto;
	left: 0;
}

/* The Orbit: the button in the text's colour; the languages come out in an arc around it — up
   and to the left in its corner of the screen, down elsewhere, the other way on a page written
   from right to left. */
.toptr-sw .toptr-sw-orbit > .toptr-sw-orbtn {
	width: 3.3em;
	height: 3.3em;
	background: currentColor;
	box-shadow: var(--toptr-sw-shadow);
}

.toptr-sw-orbit > .toptr-sw-orbtn > .toptr-sw-ic--globe {
	width: 1.45em;
	height: 1.45em;
	color: var(--toptr-sw-bg);
}

.toptr-sw-orbit[open] > .toptr-sw-orbtn > .toptr-sw-ic--globe {
	transform: rotate(-90deg) scale(.9);
}

.toptr-switcher.toptr-sw ul.toptr-sw-arc {
	position: absolute;
	z-index: 1;
	left: 50%;
	top: 50%;
	width: 0;
	height: 0;
}

.toptr-switcher.toptr-sw a.toptr-sw-orb {
	--o: calc(360deg - var(--a));
	position: absolute;
	left: -1.35em;
	top: -1.35em;
	display: grid;
	place-items: center;
	width: 2.7em;
	height: 2.7em;
	border-radius: 50%;
	background: var(--toptr-sw-bg);
	box-shadow: 0 0 0 1px var(--toptr-sw-line), var(--toptr-sw-shadow);
	transform: rotate(var(--o)) translate(var(--r)) rotate(calc(-1 * var(--o)));
	transition: transform var(--toptr-sw-t2) var(--toptr-sw-spring);
	animation: toptr-sw-orbit var(--toptr-sw-t3) var(--toptr-sw-spring) backwards;
	animation-delay: calc(var(--i, 0) * 32ms);
}

.toptr-switcher.toptr-sw.toptr-sw--up a.toptr-sw-orb {
	--o: var(--a);
}

[dir="rtl"] .toptr-switcher.toptr-sw a.toptr-sw-orb {
	--o: calc(var(--a) - 180deg);
}

[dir="rtl"] .toptr-switcher.toptr-sw.toptr-sw--up a.toptr-sw-orb {
	--o: calc(540deg - var(--a));
}

.toptr-switcher.toptr-sw a.toptr-sw-orb:hover {
	transform: rotate(var(--o)) translate(var(--r)) rotate(calc(-1 * var(--o))) scale(1.1);
}

.toptr-switcher.toptr-sw a.toptr-sw-orb[aria-current] {
	box-shadow: 0 0 0 2px var(--toptr-sw-bg), 0 0 0 4px var(--toptr-sw-cur, currentColor), var(--toptr-sw-shadow);
}

.toptr-switcher.toptr-sw a.toptr-sw-orb:focus-visible {
	border-radius: 50%;
}

.toptr-sw-orb .toptr-sw-disc {
	width: 1.75em;
	height: 1.75em;
}

@keyframes toptr-sw-orbit {
	from {
		opacity: 0;
		transform: rotate(var(--o)) translate(0) rotate(calc(-1 * var(--o))) scale(.3);
	}
}

.toptr-sw-orbit .toptr-sw-credit {
	position: absolute;
	right: 0;
	bottom: calc(100% + 10.5em);
}

/* ── 11 · Footer: every language on one line, by its name ─────────────── */
.toptr-switcher.toptr-sw .toptr-sw-line {
	display: inline-flex;
	align-items: center;
	gap: .65em;
}

.toptr-sw-line > .toptr-sw-ic--globe {
	width: 1.1em;
	height: 1.1em;
	stroke-width: 1.7;
	opacity: .72;
}

.toptr-switcher.toptr-sw ul.toptr-sw-line-l {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	column-gap: 1.3em;
	min-width: 0;
}

/* In the footer, every language, the line going to the next when it is full. */
.toptr-switcher.toptr-sw .toptr-sw-line.is-all {
	align-items: flex-start;
	max-width: 100%;
}

.toptr-sw-line.is-all > .toptr-sw-ic--globe {
	margin-top: .55em;
}

.toptr-switcher.toptr-sw .toptr-sw-line.is-all ul.toptr-sw-line-l {
	flex-wrap: wrap;
}

.toptr-switcher.toptr-sw a.toptr-sw-la {
	display: inline-flex;
	align-items: center;
	height: 2.2em;
	white-space: nowrap;
	color: var(--toptr-sw-muted);
	transition: color var(--toptr-sw-t1) var(--toptr-sw-ease);
}

.toptr-switcher.toptr-sw a.toptr-sw-la:hover {
	color: currentColor;
}

.toptr-switcher.toptr-sw a.toptr-sw-la[aria-current] {
	color: var(--toptr-sw-cur, currentColor);
}

.toptr-switcher.toptr-sw a.toptr-sw-la:focus-visible {
	border-radius: 4px;
	outline-offset: 3px;
}

/* The line under a name: drawn under the mouse, there under the language shown. */
.toptr-sw-la .toptr-sw-name {
	position: relative;
}

.toptr-sw-la .toptr-sw-name::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -.3em;
	border-top: 1px solid color-mix(in srgb, currentColor 45%, transparent);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--toptr-sw-t2) var(--toptr-sw-ease);
}

.toptr-sw-la .toptr-sw-name[dir="rtl"]::after {
	transform-origin: right center;
}

.toptr-sw-la:hover .toptr-sw-name::after {
	transform: none;
}

.toptr-sw-la[aria-current] .toptr-sw-name::after {
	transform: none;
	border-top: 2px solid var(--toptr-sw-cur, currentColor);
}

/* ── 12 · Sheet: on a phone, a sheet rises under the thumb ─────────────── */
.toptr-sw .toptr-sw-sheet > .toptr-sw-btn {
	gap: .4em;
	height: 2.2em;
	padding: 0 .65em 0 .8em;
	background: var(--toptr-sw-bg);
	border-color: var(--toptr-sw-line-2);
}

.toptr-sw .toptr-sw-sheet > .toptr-sw-panel.toptr-sw-sheet-p {
	position: fixed;
	z-index: 100001;
	top: auto;
	right: 0;
	bottom: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	width: auto;
	min-width: 0;
	max-height: calc(100vh - 5rem);
	margin: 0;
	padding: 0 6px max(12px, env(safe-area-inset-bottom));
	border-width: 1px 0 0;
	border-radius: 20px 20px 0 0;
	translate: none;
	box-shadow: 0 -12px 34px -16px rgba(16, 22, 26, .4);
	animation: toptr-sw-sheet var(--toptr-sw-t3) var(--toptr-sw-spring) backwards;
}

@supports (height: 100dvh) {
	.toptr-sw .toptr-sw-sheet > .toptr-sw-panel.toptr-sw-sheet-p {
		max-height: calc(100dvh - 5rem);
	}
}

@keyframes toptr-sw-sheet {
	from {
		transform: translateY(100%);
	}
}

/* On a wide screen: a card at the bottom of the screen, in its middle. */
@media (min-width: 600px) {
	.toptr-sw .toptr-sw-sheet > .toptr-sw-panel.toptr-sw-sheet-p {
		bottom: 16px;
		width: min(26rem, calc(100vw - 2rem));
		margin: 0 auto;
		border-width: 1px;
		border-radius: 20px;
		box-shadow: var(--toptr-sw-shadow);
	}
}

.toptr-sw-sheet-h {
	position: relative;
	display: flex;
	flex: none;
	align-items: center;
	gap: .5em;
	min-height: 3.2em;
	padding: .7em .2em .3em .9em;
}

.toptr-sw-grip {
	position: absolute;
	top: .45em;
	left: 50%;
	width: 2.25em;
	height: 4px;
	margin-left: -1.125em;
	border-radius: 999px;
	background: var(--toptr-sw-line-2);
}

.toptr-sw-sheet-t {
	flex: 1;
	font-size: 1.05em;
	font-weight: 650;
}

.toptr-switcher.toptr-sw .toptr-sw-sheet-p .toptr-sw-menu {
	flex: 1 1 auto;
	max-height: none;
	min-height: 0;
}

.toptr-switcher.toptr-sw .toptr-sw-sheet-p a.toptr-sw-opt {
	min-height: 2.9em;
	padding: .65em .9em;
	font-size: 1.04em;
}

/* The cross of a sheet or a curtain: it works with the script only, and shows with it. Themes
   paint every <button>: this one keeps its own look whatever the theme says. */
.toptr-switcher.toptr-sw button.toptr-sw-x,
.toptr-switcher.toptr-sw button.toptr-sw-x:hover,
.toptr-switcher.toptr-sw button.toptr-sw-x:focus {
	display: grid;
	flex: none;
	place-items: center;
	width: 2.75em !important;
	height: 2.75em !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: transparent !important;
	box-shadow: none !important;
	color: inherit !important;
	cursor: pointer;
}

.toptr-switcher.toptr-sw button.toptr-sw-x:hover,
.toptr-switcher.toptr-sw button.toptr-sw-x:focus-visible {
	background: var(--toptr-sw-hover) !important;
}

.toptr-switcher.toptr-sw button.toptr-sw-x .toptr-sw-ic {
	width: 1.15em;
	height: 1.15em;
}

html:not(.toptr-sw-js) .toptr-switcher.toptr-sw button.toptr-sw-x {
	display: none;
}

/* The veil behind a sheet or a palette: with the script only (a click on it closes). */
.toptr-sw-veil {
	display: none;
}

html.toptr-sw-js .toptr-sw-dd[open] > .toptr-sw-veil {
	position: fixed;
	z-index: 100000;
	inset: 0;
	display: block;
	background: rgba(15, 19, 22, .38);
	animation: toptr-sw-fade var(--toptr-sw-t3) var(--toptr-sw-ease) backwards;
}

/* ── 14 · Morph: a pill that becomes a panel ─────────────────────────────── */
.toptr-switcher.toptr-sw .toptr-sw-morph-box {
	position: relative;
	display: inline-flex;
	vertical-align: middle;
}

/* A copy of the pill, never seen: it keeps the pill's place while the real one grows. */
.toptr-sw .toptr-sw-btn.toptr-sw-morph-size {
	visibility: hidden;
	pointer-events: none;
}

.toptr-sw .toptr-sw-morph-box > .toptr-sw-dd.toptr-sw-morph {
	position: absolute;
	z-index: 50;
	top: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	min-width: 100%;
	border-radius: 1.25em;
}

.toptr-sw .toptr-sw-morph > .toptr-sw-btn {
	justify-content: flex-start;
	gap: .45em;
	background: var(--toptr-sw-bg);
}

.toptr-sw .toptr-sw-morph[open] {
	min-width: max(100%, 14rem);
	border-radius: 16px;
	background: var(--toptr-sw-bg);
	box-shadow: inset 0 0 0 1px var(--toptr-sw-line), var(--toptr-sw-shadow);
	animation: toptr-sw-morph var(--toptr-sw-t3) var(--toptr-sw-spring) backwards;
}

.toptr-sw .toptr-sw-morph[open] > .toptr-sw-btn {
	border-color: transparent;
	background: transparent;
}

.toptr-sw .toptr-sw-morph[open] > .toptr-sw-btn .toptr-sw-ic--chevron {
	margin-left: auto;
}

.toptr-sw-morph-size .toptr-sw-disc,
.toptr-sw-morph > .toptr-sw-btn .toptr-sw-disc {
	width: 1.3em;
	height: 1.3em;
}

.toptr-sw .toptr-sw-morph > .toptr-sw-panel {
	position: static;
	min-width: 0;
	padding: 2px 6px 6px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	translate: none;
	animation: none;
}

.toptr-sw-morph[open] a.toptr-sw-opt {
	animation: toptr-sw-rise-d var(--toptr-sw-t2) var(--toptr-sw-ease) backwards;
	animation-delay: calc(70ms + min(var(--i, 0), 12) * 26ms);
}

@keyframes toptr-sw-morph {
	from {
		clip-path: inset(0 0 calc(100% - 2.45em) calc(100% - 7em) round 1.25em);
	}

	to {
		clip-path: inset(0 round 16px);
	}
}

@keyframes toptr-sw-rise-d {
	from {
		opacity: 0;
		transform: translateY(-5px);
	}
}

/* At the bottom of the screen, it grows upwards; in a page, from the start of the line. */
.toptr-sw--up .toptr-sw-morph-box > .toptr-sw-dd.toptr-sw-morph {
	top: auto;
	bottom: 0;
	flex-direction: column-reverse;
}

.toptr-sw--up .toptr-sw-morph[open] {
	animation-name: toptr-sw-morph-up;
}

.toptr-sw--shortcode .toptr-sw-morph-box > .toptr-sw-dd.toptr-sw-morph,
[dir="rtl"] .toptr-sw-morph-box > .toptr-sw-dd.toptr-sw-morph {
	right: auto;
	left: 0;
}

@keyframes toptr-sw-morph-up {
	from {
		clip-path: inset(calc(100% - 2.45em) 0 0 calc(100% - 7em) round 1.25em);
	}

	to {
		clip-path: inset(0 round 16px);
	}
}

/* ── 16 · Cylinder: the languages on a wheel ───────────────────────────── */
.toptr-sw .toptr-sw-cyl > .toptr-sw-btn {
	gap: .4em;
	height: 2.3em;
	padding: 0 .55em 0 .8em;
	border-color: transparent;
	border-radius: 12px;
	background: var(--toptr-sw-track);
	box-shadow: inset 0 0 0 1px var(--toptr-sw-line);
	font-weight: 600;
}

.toptr-sw .toptr-sw-cyl > .toptr-sw-panel.toptr-sw-wheel {
	width: 12.5em;
	min-width: 0;
	padding: 6px;
	border-radius: 16px;
}

/* The wheel: the line in the middle stays, the languages turn through it, the edges fade. */
.toptr-switcher.toptr-sw .toptr-sw-wheel .toptr-sw-menu {
	position: relative;
	height: 12em;
	max-height: none;
	padding-block: 4.8em;
	scroll-snap-type: y mandatory;
	overscroll-behavior: contain;
	scrollbar-width: none;
	perspective: 34em;
	background: linear-gradient(var(--toptr-sw-hover), var(--toptr-sw-hover)) center / 100% 2.4em no-repeat;
	border-radius: 10px;
	-webkit-mask-image: linear-gradient(transparent, #000 28%, #000 72%, transparent);
	mask-image: linear-gradient(transparent, #000 28%, #000 72%, transparent);
}

.toptr-switcher.toptr-sw .toptr-sw-wheel .toptr-sw-menu::-webkit-scrollbar {
	display: none;
}

.toptr-switcher.toptr-sw .toptr-sw-wheel .toptr-sw-menu > li {
	scroll-snap-align: center;
}

.toptr-switcher.toptr-sw .toptr-sw-wheel a.toptr-sw-opt {
	justify-content: center;
	height: 2.4em;
	padding: 0 .6em;
	gap: .55em;
	border-radius: 9px;
}

.toptr-sw-wheel .toptr-sw-end {
	order: -1;
	margin: 0;
	padding: 0;
}

.toptr-sw-wheel .toptr-sw-end .toptr-sw-ic--check {
	display: none;
}

.toptr-sw-wheel .toptr-sw-end .toptr-sw-code,
.toptr-sw-wheel .toptr-sw-opt[aria-current] .toptr-sw-end .toptr-sw-code {
	opacity: 1;
	font-weight: 700;
}

.toptr-sw-wheel a.toptr-sw-opt:not([aria-current]) {
	color: var(--toptr-sw-muted);
}

.toptr-sw-wheel a.toptr-sw-opt[aria-current] .toptr-sw-name {
	font-weight: 600;
}

/* Where the browser knows how, each line leans as it leaves the middle: a wheel. */
@supports (animation-timeline: view()) {
	.toptr-sw-wheel a.toptr-sw-opt {
		animation: toptr-sw-roll linear both;
		animation-timeline: view(block);
	}
}

@keyframes toptr-sw-roll {
	0% {
		transform: rotateX(58deg);
	}

	50% {
		transform: none;
	}

	100% {
		transform: rotateX(-58deg);
	}
}

/* ── 17 · Fan: the flags stacked like cards ────────────────────────────── */
.toptr-switcher.toptr-sw ul.toptr-sw-fan {
	--toptr-sw-d: 1.95em;
	--toptr-sw-step: .55em;
	--toptr-sw-open: 2.3em;
	position: relative;
	display: block;
	flex: none;
	width: calc(var(--toptr-sw-d) + (var(--n, 1) - 1) * var(--toptr-sw-step) + 6px);
	height: calc(var(--toptr-sw-d) + 6px);
	transition: width var(--toptr-sw-t3) var(--toptr-sw-spring);
}

.toptr-switcher.toptr-sw ul.toptr-sw-fan:hover,
.toptr-switcher.toptr-sw ul.toptr-sw-fan:focus-within {
	width: calc(var(--n, 1) * var(--toptr-sw-open) + 6px);
}

.toptr-switcher.toptr-sw ul.toptr-sw-fan > li {
	position: absolute;
	top: 3px;
	left: 3px;
}

[dir="rtl"] .toptr-switcher.toptr-sw ul.toptr-sw-fan > li {
	left: auto;
	right: 3px;
}

.toptr-switcher.toptr-sw a.toptr-sw-fan-l {
	--toptr-sw-dir: 1;
	position: relative;
	z-index: calc(10 - var(--i, 0));
	display: grid;
	place-items: center;
	width: var(--toptr-sw-d);
	height: var(--toptr-sw-d);
	border-radius: 50%;
	background: var(--toptr-sw-bg);
	box-shadow: 0 0 0 2px var(--toptr-sw-bg), var(--toptr-sw-shadow-1);
	transform: translateX(calc(var(--toptr-sw-dir) * var(--i, 0) * var(--toptr-sw-step))) rotate(calc(var(--toptr-sw-dir) * var(--i, 0) * -7deg));
	transition: transform var(--toptr-sw-t3) var(--toptr-sw-spring) calc(var(--i, 0) * 18ms), box-shadow var(--toptr-sw-t2) var(--toptr-sw-ease);
}

[dir="rtl"] .toptr-switcher.toptr-sw a.toptr-sw-fan-l {
	--toptr-sw-dir: -1;
}

.toptr-switcher.toptr-sw ul.toptr-sw-fan:hover a.toptr-sw-fan-l,
.toptr-switcher.toptr-sw ul.toptr-sw-fan:focus-within a.toptr-sw-fan-l {
	transform: translateX(calc(var(--toptr-sw-dir) * var(--i, 0) * var(--toptr-sw-open)));
}

.toptr-switcher.toptr-sw ul.toptr-sw-fan a.toptr-sw-fan-l:hover {
	transform: translateX(calc(var(--toptr-sw-dir) * var(--i, 0) * var(--toptr-sw-open))) translateY(-.2em) scale(1.08);
}

.toptr-switcher.toptr-sw a.toptr-sw-fan-l[aria-current] {
	z-index: 20;
	box-shadow: 0 0 0 2px var(--toptr-sw-bg), 0 0 0 4px currentColor, var(--toptr-sw-shadow-1);
}

.toptr-switcher.toptr-sw a.toptr-sw-fan-l:focus-visible {
	border-radius: 50%;
	outline-offset: 4px;
}

.toptr-sw-fan-l .toptr-sw-disc {
	width: 1.75em;
	height: 1.75em;
}

/* At the finger, nothing to hover: the fan stays open. */
@media (hover: none) {
	.toptr-switcher.toptr-sw ul.toptr-sw-fan {
		width: calc(var(--n, 1) * var(--toptr-sw-open) + 6px);
	}

	.toptr-switcher.toptr-sw ul.toptr-sw-fan a.toptr-sw-fan-l {
		transform: translateX(calc(var(--toptr-sw-dir) * var(--i, 0) * var(--toptr-sw-open)));
	}
}

/* ── 18 · Halo: a ring drawn around the language shown ──────────────────── */
.toptr-switcher.toptr-sw ul.toptr-sw-halo {
	display: flex;
	align-items: center;
	gap: .2em;
}

.toptr-switcher.toptr-sw a.toptr-sw-halo-l {
	position: relative;
	display: grid;
	place-items: center;
	width: 2.35em;
	height: 2.35em;
	border-radius: 50%;
}

.toptr-sw-halo-l .toptr-sw-disc {
	width: 1.6em;
	height: 1.6em;
	transition: transform var(--toptr-sw-t2) var(--toptr-sw-spring);
}

.toptr-switcher.toptr-sw a.toptr-sw-halo-l:hover .toptr-sw-disc {
	transform: scale(1.08);
}

.toptr-sw .toptr-sw-ring {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
	fill: none;
	transform: rotate(-90deg);
	pointer-events: none;
}

.toptr-sw .toptr-sw-ring circle {
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-dasharray: 100;
	stroke-dashoffset: 100;
	transition: stroke-dashoffset .52s var(--toptr-sw-ease), stroke var(--toptr-sw-t1) var(--toptr-sw-ease);
}

.toptr-sw .toptr-sw-halo-l:hover .toptr-sw-ring circle {
	stroke-dashoffset: 70;
	stroke: var(--toptr-sw-line-2);
}

.toptr-sw .toptr-sw-halo-l[aria-current] .toptr-sw-ring circle {
	stroke-dashoffset: 0;
	stroke: var(--toptr-sw-cur, currentColor);
}

.toptr-switcher.toptr-sw a.toptr-sw-halo-l:focus-visible {
	border-radius: 50%;
	outline-offset: 2px;
}

/* ── 19 · Spotlight: a light that follows the mouse over the names ──────── */
.toptr-switcher.toptr-sw .toptr-sw-spot {
	isolation: isolate;
	padding: .22em;
	margin-block: 0;
	border-radius: 12px;
	background: var(--toptr-sw-track);
	box-shadow: inset 0 0 0 1px var(--toptr-sw-line);
}

.toptr-sw-spot::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	border-radius: inherit;
	opacity: 0;
	pointer-events: none;
	background: radial-gradient(6em 3.2em at var(--mx, 50%) var(--my, 50%), color-mix(in srgb, currentColor 16%, transparent), transparent 72%);
	transition: opacity var(--toptr-sw-t2) var(--toptr-sw-ease);
}

.toptr-sw-spot:hover::before {
	opacity: 1;
}

.toptr-switcher.toptr-sw .toptr-sw-spot ul.toptr-sw-names {
	gap: .1em;
}

.toptr-switcher.toptr-sw a.toptr-sw-sp {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: .35em;
	padding: .45em .72em;
	border-radius: 9px;
	font-weight: 500;
	line-height: 1.25;
	white-space: nowrap;
	color: var(--toptr-sw-muted);
	transition: color var(--toptr-sw-t1) var(--toptr-sw-ease);
}

.toptr-switcher.toptr-sw a.toptr-sw-sp:hover {
	color: currentColor;
}

.toptr-switcher.toptr-sw a.toptr-sw-sp[aria-current] {
	color: var(--toptr-sw-cur, currentColor);
}

.toptr-switcher.toptr-sw a.toptr-sw-sp[aria-current] {
	font-weight: 600;
}

.toptr-switcher.toptr-sw a.toptr-sw-sp:focus-visible {
	outline-offset: -2px;
	border-radius: 9px;
}

.toptr-sw-spot .toptr-sw-cursor::after {
	content: "";
	position: absolute;
	left: 24%;
	right: 24%;
	bottom: .28em;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	box-shadow: 0 0 10px 1px color-mix(in srgb, currentColor 50%, transparent);
}

.toptr-switcher.toptr-sw .toptr-sw-spot:not(.is-glide) a.toptr-sw-sp[aria-current] {
	box-shadow: inset 0 -2px 0 currentColor;
}

/* ── 20 · Ink: a drop that stretches to the language chosen ─────────────── */
.toptr-switcher.toptr-sw .toptr-sw-ink {
	padding: 3px;
	margin-block: 0;
	border-radius: 999px;
	background: var(--toptr-sw-track);
	box-shadow: inset 0 0 0 1px var(--toptr-sw-line);
}

.toptr-switcher.toptr-sw ul.toptr-sw-inkl {
	display: flex;
	align-items: center;
	gap: 2px;
}

.toptr-switcher.toptr-sw a.toptr-sw-ik {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: .45em;
	padding: .6em .95em;
	border-radius: 999px;
	font-size: .78em;
	font-weight: 600;
	letter-spacing: .05em;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--toptr-sw-muted);
	transition: color var(--toptr-sw-t2) var(--toptr-sw-ease);
}

.toptr-sw--with-flags a.toptr-sw-ik {
	padding-left: .65em;
}

.toptr-switcher.toptr-sw a.toptr-sw-ik:hover {
	color: currentColor;
}

/* Without the script, the drop sits on the language shown itself (like the Pills). */
.toptr-switcher.toptr-sw .toptr-sw-ink:not(.is-glide) li.is-current {
	border-radius: 999px;
	background: var(--toptr-sw-cur, currentColor);
}

.toptr-switcher.toptr-sw .toptr-sw-ink li.is-current > a.toptr-sw-ik,
.toptr-switcher.toptr-sw .toptr-sw-ink li.is-current > a.toptr-sw-ik:hover {
	color: var(--toptr-sw-on-cur, var(--toptr-sw-bg));
}

.toptr-sw-ink > .toptr-sw-cursor {
	border-radius: 999px;
	background: var(--toptr-sw-cur, currentColor);
	box-shadow: 0 6px 16px -8px color-mix(in srgb, var(--toptr-sw-cur, currentColor) 70%, transparent);
}

.toptr-sw-ink.is-ready > .toptr-sw-cursor {
	transition: transform .56s cubic-bezier(.45, 1.55, .4, 1), width .56s cubic-bezier(.45, 1.55, .4, 1), height .56s cubic-bezier(.45, 1.55, .4, 1);
}

.toptr-sw-ink.is-press > .toptr-sw-cursor {
	animation: toptr-sw-drop .56s cubic-bezier(.3, .7, .2, 1);
}

@keyframes toptr-sw-drop {
	30% {
		scale: 1.3 .76;
	}

	65% {
		scale: .93 1.07;
	}
}

/* ── 21 · Palette: a search palette in the middle of the screen ─────────── */
.toptr-sw .toptr-sw-pal > .toptr-sw-btn {
	gap: .45em;
	height: 2.35em;
	padding: 0 .6em 0 .75em;
	border-radius: 10px;
	background: var(--toptr-sw-bg);
	box-shadow: var(--toptr-sw-shadow-1);
	font-weight: 600;
}

.toptr-sw-pal > .toptr-sw-btn .toptr-sw-ic--search {
	width: .95em;
	height: .95em;
	opacity: .7;
}

html.toptr-sw-js .toptr-sw .toptr-sw-pal > .toptr-sw-panel {
	position: fixed;
	z-index: 100001;
	top: 12vh;
	right: 0;
	bottom: auto;
	left: 0;
	width: min(28rem, calc(100vw - 2rem));
	min-width: 0;
	margin: 0 auto;
	padding: 0;
	overflow: hidden;
	border-radius: 16px;
	translate: none;
	animation: toptr-sw-pop var(--toptr-sw-t3) var(--toptr-sw-spring) backwards;
}

html.toptr-sw-js .toptr-sw-pal[open] > .toptr-sw-veil {
	-webkit-backdrop-filter: blur(7px);
	backdrop-filter: blur(7px);
}

html.toptr-sw-js .toptr-sw-pal-p .toptr-sw-find {
	height: 3.3em;
	margin: 0;
	padding: 0 1em;
	border-width: 0 0 1px;
	border-radius: 0;
}

html.toptr-sw-js .toptr-sw-pal-p .toptr-sw-find:focus-within {
	box-shadow: none;
}

html.toptr-sw-js .toptr-switcher.toptr-sw .toptr-sw-pal-p .toptr-sw-menu {
	max-height: min(16.5em, 60vh);
	padding: 6px;
}

@keyframes toptr-sw-pop {
	from {
		opacity: 0;
		transform: translateY(10px) scale(.96);
	}
}

/* ── 22 · Curtain: a curtain falls, the languages written large ─────────── */
.toptr-sw .toptr-sw-curtain > .toptr-sw-btn {
	gap: .45em;
	height: auto;
	min-height: 2.3em;
	padding: .35em .1em;
	border: 0;
	border-bottom: 1.5px solid var(--toptr-sw-line-2);
	border-radius: 0;
	background: transparent;
	font-weight: 600;
}

.toptr-sw .toptr-sw-curtain > .toptr-sw-btn:hover,
.toptr-sw .toptr-sw-curtain[open] > .toptr-sw-btn {
	border-bottom-color: currentColor;
	background: transparent;
}

.toptr-sw-curtain-h {
	display: flex;
	align-items: center;
	gap: .5em;
	padding: .3em .2em .5em .6em;
}

.toptr-sw-curtain-t {
	flex: 1;
	font-size: .72em;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	opacity: .8;
}

.toptr-sw-curtain-p .toptr-sw-end .toptr-sw-ic--check {
	display: none;
}

.toptr-sw-curtain-p .toptr-sw-end .toptr-sw-code,
.toptr-sw-curtain-p .toptr-sw-opt[aria-current] .toptr-sw-end .toptr-sw-code {
	opacity: 1;
}

html.toptr-sw-js .toptr-sw .toptr-sw-curtain > .toptr-sw-panel {
	position: fixed;
	z-index: 100001;
	inset: 0;
	display: flex;
	flex-direction: column;
	width: auto;
	min-width: 0;
	max-height: none;
	margin: 0;
	padding: max(1em, env(safe-area-inset-top)) 1.4em 1.4em;
	overflow-y: auto;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	translate: none;
	animation: toptr-sw-curtain .6s cubic-bezier(.7, 0, .2, 1) backwards;
}

html.toptr-sw-js .toptr-sw-curtain-h {
	position: sticky;
	top: 0;
	z-index: 1;
	background: var(--toptr-sw-bg);
}

html.toptr-sw-js .toptr-switcher.toptr-sw .toptr-sw-curtain-p .toptr-sw-menu {
	grid-template-columns: repeat(auto-fill, minmax(min(12rem, 100%), 1fr));
	gap: .1em 1em;
	max-height: none;
	margin-block: auto;
	overflow: visible;
	font-size: 1.55em;
}

html.toptr-sw-js .toptr-switcher.toptr-sw .toptr-sw-curtain-p a.toptr-sw-opt {
	padding: .18em .3em;
	font-weight: 600;
	letter-spacing: -.02em;
	animation: toptr-sw-write .46s var(--toptr-sw-spring) backwards;
	animation-delay: calc(180ms + min(var(--i, 0), 12) * 26ms);
}

html.toptr-sw-js .toptr-switcher.toptr-sw .toptr-sw-curtain-p a.toptr-sw-opt:not([aria-current]) {
	color: var(--toptr-sw-muted);
}

html.toptr-sw-js .toptr-switcher.toptr-sw .toptr-sw-curtain-p a.toptr-sw-opt:hover {
	color: currentColor;
}

html.toptr-sw-js .toptr-sw-curtain-p .toptr-sw-end {
	align-self: center;
	margin-left: .2em;
	padding-left: 0;
	font-size: .5em;
}

html.toptr-sw-js .toptr-switcher.toptr-sw .toptr-sw-curtain-p a.toptr-sw-opt {
	justify-content: flex-start;
}

@keyframes toptr-sw-curtain {
	from {
		clip-path: inset(0 0 100% 0);
	}

	to {
		clip-path: inset(0);
	}
}

@keyframes toptr-sw-write {
	from {
		opacity: 0;
		transform: translateY(.5em);
	}
}

/* ── 23 · Mosaic: a panel of tiles ──────────────────────────────────────── */
.toptr-sw .toptr-sw-mosaic > .toptr-sw-btn {
	gap: .45em;
	height: 2.35em;
	padding: 0 .55em 0 .7em;
	border-radius: 10px;
	background: var(--toptr-sw-bg);
	box-shadow: var(--toptr-sw-shadow-1);
	font-weight: 600;
}

.toptr-sw .toptr-sw-mosaic > .toptr-sw-panel {
	width: min(24rem, calc(100vw - 2rem));
	padding: 8px;
}

.toptr-switcher.toptr-sw .toptr-sw-mosaic-p .toptr-sw-menu {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 6px;
}

.toptr-switcher.toptr-sw .toptr-sw-mosaic-p a.toptr-sw-opt {
	flex-direction: column;
	align-items: flex-start;
	gap: .5em;
	min-width: 0;
	padding: .7em .7em .6em;
	border-radius: 12px;
	background: color-mix(in srgb, currentColor 4%, var(--toptr-sw-bg));
	box-shadow: inset 0 0 0 1px var(--toptr-sw-line);
	transition: transform var(--toptr-sw-t2) var(--toptr-sw-spring), box-shadow var(--toptr-sw-t2) var(--toptr-sw-ease);
}

.toptr-switcher.toptr-sw .toptr-sw-mosaic-p a.toptr-sw-opt:hover {
	transform: translateY(-2px);
	box-shadow: inset 0 0 0 1px var(--toptr-sw-line-2), var(--toptr-sw-shadow-1);
}

.toptr-switcher.toptr-sw .toptr-sw-mosaic-p a.toptr-sw-opt[aria-current] {
	background: color-mix(in srgb, currentColor 9%, var(--toptr-sw-bg));
	box-shadow: inset 0 0 0 1.5px var(--toptr-sw-cur, currentColor);
}

.toptr-sw-mosaic-p a.toptr-sw-opt .toptr-flag {
	width: 1.9em;
	height: 1.32em;
	border-radius: 4px;
}

.toptr-sw-mosaic-p a.toptr-sw-opt .toptr-sw-name {
	max-width: 100%;
	overflow: hidden;
	font-size: .9em;
	text-overflow: ellipsis;
}

.toptr-sw-mosaic-p .toptr-sw-end {
	display: none;
}

.toptr-sw-mosaic[open] a.toptr-sw-opt {
	animation: toptr-sw-wave var(--toptr-sw-t3) var(--toptr-sw-spring) backwards;
	animation-delay: calc(min(var(--i, 0), 18) * 24ms);
}

@keyframes toptr-sw-wave {
	from {
		opacity: 0;
		transform: translateY(7px) scale(.93);
	}
}

@media (max-width: 30rem) {
	.toptr-switcher.toptr-sw .toptr-sw-mosaic-p .toptr-sw-menu {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ── The collection on a phone, at the finger, without motion ─────────────── */
@media (max-width: 599px) {
	/* In the header, a row leaves the site's name and the menu button their place (like the
	   Pills' track). */
	.toptr-switcher.toptr-sw.toptr-sw--menu .toptr-sw-scroll {
		max-width: calc(100vw - 11.5rem);
	}

	.toptr-switcher.toptr-sw.toptr-sw--menu .toptr-sw-row > .toptr-sw-scroll {
		max-width: calc(100vw - 15rem);
	}
}

@media (pointer: coarse) {
	.toptr-switcher.toptr-sw a.toptr-sw-ul,
	.toptr-switcher.toptr-sw a.toptr-sw-la,
	.toptr-switcher.toptr-sw a.toptr-sw-sp,
	.toptr-switcher.toptr-sw a.toptr-sw-ik,
	.toptr-switcher.toptr-sw a.toptr-sw-sw {
		min-height: 44px;
	}

	.toptr-sw .toptr-sw-orbtn {
		min-width: 44px;
		min-height: 44px;
	}

	.toptr-switcher.toptr-sw ul.toptr-sw-halo {
		gap: 8px;
	}
}

/* A visitor who asked his device for less motion: the states stay, the journeys go — every
   duration and every delay, pseudo-elements included; the wheel's lean follows the scroll, it
   stops too. */
@media (prefers-reduced-motion: reduce) {
	.toptr-sw,
	.toptr-sw *,
	.toptr-sw *::before,
	.toptr-sw *::after {
		transition-duration: 1ms !important;
		transition-delay: 0s !important;
		animation-duration: 1ms !important;
		animation-delay: 0s !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
	}

	.toptr-sw-wheel a.toptr-sw-opt {
		animation: none !important;
	}
}

@media (forced-colors: active) {
	.toptr-switcher.toptr-sw a.toptr-sw-ul[aria-current],
	.toptr-switcher.toptr-sw a.toptr-sw-sw[aria-current],
	.toptr-switcher.toptr-sw a.toptr-sw-la[aria-current],
	.toptr-switcher.toptr-sw a.toptr-sw-fan-l[aria-current],
	.toptr-switcher.toptr-sw a.toptr-sw-halo-l[aria-current],
	.toptr-switcher.toptr-sw a.toptr-sw-sp[aria-current],
	.toptr-switcher.toptr-sw a.toptr-sw-ik[aria-current],
	.toptr-switcher.toptr-sw a.toptr-sw-orb[aria-current] {
		outline: 2px solid Highlight;
	}

	.toptr-sw-cursor,
	.toptr-sw-knob {
		background: Highlight !important;
	}
}

/* ── The suggestion: a discreet band, in the visitor's language ───────── */
.toptr-suggest {
	--toptr-sw-bg: var(--wp--preset--color--base, var(--global--color-background, #fff));
	position: fixed;
	z-index: 99991;
	left: 12px;
	right: 12px;
	bottom: calc(16px + env(safe-area-inset-bottom));
	display: flex;
	justify-content: center;
	pointer-events: none;
}

.toptr-suggest[hidden] {
	display: none;
}

/* The room the band takes at the end of the page, while it shows (switcher.js). */
.toptr-suggest-room {
	display: block;
	clear: both;
	margin: 0;
	padding: 0;
	pointer-events: none;
}

.toptr-suggest *,
.toptr-suggest *::before,
.toptr-suggest *::after {
	box-sizing: border-box;
}

.toptr-has-float .toptr-suggest {
	bottom: calc(80px + env(safe-area-inset-bottom));
}

.toptr-suggest-card {
	pointer-events: auto;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	width: 100%;
	max-width: 27rem;
	padding: 14px 12px 14px 16px;
	border-radius: 18px;
	background: var(--toptr-sw-bg);
	color: inherit;
	font-size: .95rem;
	line-height: 1.4;
	border: 1px solid color-mix(in srgb, currentColor 12%, transparent);
	box-shadow: 0 22px 44px -18px rgba(16, 22, 26, .45), 0 2px 8px rgba(16, 22, 26, .08);
	animation: toptr-sw-up .42s var(--toptr-sw-ease, ease) .3s both;
	transition: opacity .2s, transform .2s;
}

.toptr-suggest-card.is-leaving {
	opacity: 0;
	transform: translateY(8px);
}

.toptr-suggest-flag {
	flex: none;
	padding-top: 2px;
}

.toptr-suggest-flag .toptr-flag {
	display: block;
	width: 24px;
	height: 16px;
	border-radius: 3px;
}

.toptr-suggest-body {
	flex: 1;
	min-width: 0;
}

.toptr-suggest .toptr-suggest-text {
	margin: 0;
	padding: 0;
	font: inherit;
	color: inherit;
	text-wrap: balance;
}

/* The button: the text's colour as its fill, the background's for its words. */
.toptr-suggest a.toptr-suggest-go {
	display: inline-flex;
	align-items: center;
	margin-top: 10px;
	padding: 9px 14px;
	border-radius: 11px;
	color: inherit;
	background: currentColor;
	font-weight: 600;
	font-size: .9em;
	line-height: 1.2;
	text-decoration: none;
	box-shadow: none;
}

.toptr-suggest a.toptr-suggest-go:hover {
	text-decoration: none;
	opacity: .92;
}

.toptr-suggest .toptr-suggest-go-label {
	color: var(--toptr-sw-bg);
}

/* Themes paint every <button>: the cross keeps its own look whatever the theme says. */
.toptr-suggest button.toptr-suggest-x,
.toptr-suggest button.toptr-suggest-x:hover,
.toptr-suggest button.toptr-suggest-x:active,
.toptr-suggest button.toptr-suggest-x:focus {
	flex: none;
	display: grid;
	place-items: center;
	width: 32px !important;
	height: 32px !important;
	min-height: 0 !important;
	margin: -6px -2px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: transparent !important;
	color: inherit !important;
	opacity: .6;
	cursor: pointer;
	box-shadow: none !important;
	outline-offset: 2px;
}

.toptr-suggest button.toptr-suggest-x:hover,
.toptr-suggest button.toptr-suggest-x:focus-visible {
	opacity: 1;
	background: color-mix(in srgb, currentColor 8%, transparent) !important;
}

.toptr-suggest button.toptr-suggest-x svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
}

.toptr-suggest a.toptr-suggest-go:focus-visible,
.toptr-suggest button.toptr-suggest-x:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

@media (pointer: coarse) {
	.toptr-suggest button.toptr-suggest-x,
	.toptr-suggest button.toptr-suggest-x:hover,
	.toptr-suggest button.toptr-suggest-x:active,
	.toptr-suggest button.toptr-suggest-x:focus {
		width: 44px !important;
		height: 44px !important;
		margin: -12px -8px -8px 0 !important;
	}

	.toptr-suggest a.toptr-suggest-go {
		min-height: 44px;
	}
}

/* ── The places of screen 17 (TOPTR_Switcher::slot_defs()) ─────────────────
   The top bar: a thin bar above the header. The header photo: the switcher in the top corner of
   the first cover block. The phone's menu: a button at the bottom of a phone's screen only (the
   floating button of the other place leaves it the corner there). */
.toptr-sw-topbar {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-height: 2.2rem;
	padding: .2rem clamp(.75rem, 3vw, 2rem);
	border-bottom: 1px solid color-mix(in srgb, currentColor 12%, transparent);
	font-size: .9rem;
}

.wp-block-cover > .toptr-sw-photo {
	position: absolute;
	top: clamp(.6rem, 2vw, 1.25rem);
	inset-inline-end: clamp(.6rem, 2vw, 1.25rem);
	z-index: 5;
	max-width: calc(100% - 1.2rem);
}

.toptr-sw-float.toptr-sw-phone {
	display: none;
}

@media (max-width: 781px) {
	.toptr-sw-float.toptr-sw-phone {
		display: block;
	}

	body:has(.toptr-sw-phone) .toptr-sw-float:not(.toptr-sw-phone) {
		display: none;
	}
}
