/* ==========================================================
   style-front.css — Job50 Child Theme
   Refactored: couleurs via presets WP, doublons fusionnés.
   ========================================================== */

/* ── 0. @font-face ─────────────────────────────────────────
   Déclarés ici en complément de theme.json pour garantir
   le chargement dans tous les contextes WP (pages non-block,
   cache, ordre d'enqueue). Le navigateur déduplique si WP
   les charge aussi — aucun risque.
   Google Sans Flex : Thin (100) + Bold (700) uniquement.
   ─────────────────────────────────────────────────────── */
@font-face {
	font-family: "Inter";
	src: url("../fonts/Inter-VariableFont_opsz,wght.woff2") format("woff2");
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
}

@font-face {
	font-family: "Google Sans Flex";
	src: url("../fonts/GoogleSansFlex-Thin.woff2") format("woff2");
	font-style: normal;
	font-weight: 100;
	font-display: swap;
}

@font-face {
	font-family: "Google Sans Flex";
	src: url("../fonts/GoogleSansFlex-Bold.woff2") format("woff2");
	font-style: normal;
	font-weight: 700;
	font-display: swap;
}

/* ── 1. Tokens custom ──────────────────────────────────────
   Seuls les gris neutres, couleurs sémantiques, rayons et
   ombres ne sont pas couverts par la palette WP.
   ─────────────────────────────────────────────────────── */
:root {
	/* ── Polices — bridge WP preset + fallback explicite ──
	   Si WP ne génère pas les vars preset (child theme, cache),
	   les @font-face ci-dessus prennent le relais. */
	/* Définition explicite des vars WP — garantit leur présence
	   même si WP ne les génère pas (child theme, cache, etc.)
	   Si WP les génère aussi, ses valeurs prévalent. */
	--wp--preset--font-family--inter:            Inter, system-ui, sans-serif;
	--wp--preset--font-family--google-sans-flex: "Google Sans Flex", Inter, system-ui, sans-serif;

	/* Tokens j50 — wrappent les vars WP */
	--j50-font-body:    var(--wp--preset--font-family--inter);
	--j50-font-display: var(--wp--preset--font-family--google-sans-flex);

	--j50-gray-100: #FFF;
	--j50-gray-200: #efefef;
	--j50-gray-300: #dedede;
	--j50-gray-600: #8f8f8f;
	--j50-gray-700: #666666;
	--j50-gray-800: #5d5d5d;
	--j50-gray-900: #2a2a2a;

	--j50-color-success-bg:   #edf8f1;
	--j50-color-success-text: #1d7a3e;
	--j50-color-warning-bg:   #fff4e8;
	--j50-color-warning-text: #b85a00;
	--j50-color-role-bg:      #ffecee;

	--j50-radius-sm:   6px;
	--j50-radius-md:   12px;
	--j50-radius-lg:   18px;
	--j50-radius-xl:   22px;
	--j50-radius-pill: 9999em;

	--j50-shadow-card:  0 8px 20px rgba(0, 0, 0, .04);
	--j50-shadow-panel: 0 18px 40px rgba(0, 0, 0, .10);
}

/* ── 2. Application des polices ────────────────────────────
   theme.json couvre h1–h6, .wp-block-heading,
   .wp-block-button__link et body via Global Styles.
   Seules les classes spécifiques aux plugins ont besoin
   d'une déclaration explicite ici.
   ─────────────────────────────────────────────────────── */
html,
body,
input,
textarea,
select,
button {
	font-family: var(--j50-font-body);
}

.buttons,
.label-title,
.job50-overline,
.job50-action-tile strong,
.job50-dashboard-v2__title,
.job50-dashboard-v2__title-light,
.job50-dashboard-v2__title-strong,
.job50-dashboard-v2__eyebrow,
.job50-dashboard-v2__section-heading h2,
.job50-dashboard-panel__heading h2,
.job50-dashboard-card__header h3,
.job50-dashboard-shortcode-wrap th,
.job50-dashboard-shortcode-wrap .buttons,
.job50-job-card__title,
.job50-job-card h3,
.job50-job-card .buttons {
	font-family: var(--j50-font-display) !important;
}

.job50-dashboard-v2__title-light {
	font-weight: 100 !important;
	font-variation-settings: "wght" 100;
}
.job50-dashboard-v2__title-strong {
	font-weight: 700 !important;
	font-variation-settings: "wght" 700;
}

/* ── 3. Reset global ────────────────────────────────────── */
*,
::before,
::after {
	box-sizing: border-box;
}

html,
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* ── 4. Header sticky ───────────────────────────────────── */
header.main-header {
	position: fixed;
	width: 100%;
	background-color: var(--wp--preset--color--base);
	border-bottom: solid 1px var(--j50-gray-300);
	margin-block-start: 0;
	z-index: 500;
}
header.main-header .wp-block-site-logo img,
#nav-user-connect .wp-block-button__link {
	transition: all 0.3s ease-in-out;
}
header.main-header .user-jump a {
	display: inline-flex;
	justify-content: flex-end;
	align-items: center;
	text-transform: uppercase;
	font-size: 12px;
	border: solid 1px var(--j50-gray-300);
	border-radius: 4px;
	padding: 2px 2px 2px 6px;
	transition: all 1s ease-in;
}
header.main-header .user-jump a:hover {
	border-color: var(--wp--preset--color--accent-1);
}
header.main-header .user-jump a img {
	width: 32px;
	object-fit: contain;
	background-color: var(--wp--preset--color--base);
	margin-left: 6px;
	border-left: solid 1px #ededed;
	padding-left: 4px;
}
header.main-header.fixed .wp-block-site-logo img {
	width: 80px;
}
header.main-header.fixed .content {
	padding: 8px 0 !important;
	transition: all 0.3s ease-in;
}

/* ── 5. Material Symbols base — centralisé dans job50-core/dashboard-shared.css ── */

/* ── 6. Icônes de navigation header (::before) ─────────── */
header.main-header .wp-block-navigation-item.big-nav > a,
header.main-header li.j50-bell-nav-item > .j50-bell-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	text-decoration: none;
}

header.main-header .wp-block-navigation-item.big-nav > a::before,
header.main-header li.j50-bell-nav-item > .j50-bell-btn::before {
	position: absolute;
	inset: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: 'Material Symbols Outlined';
	font-weight: normal;
	font-style: normal;
	font-size: 30px;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-feature-settings: 'liga';
	font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;
	color: #e6e6e6;
	pointer-events: none;
	transition: color 0.22s ease, transform 0.22s ease;
}

header.main-header .wp-block-navigation-item.dashboard > a::before { content: "home_app_logo"; }
header.main-header .wp-block-navigation-item.alert-bell > a::before { content: "circle_notifications"; }
header.main-header .wp-block-navigation-item.add-job > a::before    { content: "add_circle"; }

header.main-header .wp-block-navigation-item.big-nav > a:hover::before,
header.main-header .wp-block-navigation-item.big-nav > a:focus-visible::before,
header.main-header li.j50-bell-nav-item > .j50-bell-btn:hover::before,
header.main-header li.j50-bell-nav-item > .j50-bell-btn:focus-visible::before {
	color: #d0d0d0;
	transform: translateY(-1px);
}

/* Bulle tooltip */
header.main-header .wp-block-navigation-item.big-nav > a > .wp-block-navigation-item__label,
header.main-header li.j50-bell-nav-item > .j50-bell-btn > .j50-bell-label {
	position: absolute;
	left: 50%;
	top: calc(100% + 8px);
	transform: translateX(-50%) translateY(-4px);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	white-space: nowrap;
	padding: 6px 10px;
	border-radius: var(--j50-radius-pill);
	background: rgba(255, 255, 255, 0.96);
	border: 1px solid var(--j50-gray-300);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
	font-size: 11px;
	line-height: 1;
	font-weight: 600;
	color: var(--j50-gray-900);
	transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
	z-index: 20;
}

header.main-header .wp-block-navigation-item.big-nav > a > .wp-block-navigation-item__label::before,
header.main-header li.j50-bell-nav-item > .j50-bell-btn > .j50-bell-label::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -5px;
	width: 8px;
	height: 8px;
	transform: translateX(-50%) rotate(45deg);
	background: rgba(255, 255, 255, 0.96);
	border-left: 1px solid var(--j50-gray-300);
	border-top: 1px solid var(--j50-gray-300);
}

header.main-header .wp-block-navigation-item.big-nav > a:hover > .wp-block-navigation-item__label,
header.main-header .wp-block-navigation-item.big-nav > a:focus-visible > .wp-block-navigation-item__label,
header.main-header li.j50-bell-nav-item > .j50-bell-btn:hover > .j50-bell-label,
header.main-header li.j50-bell-nav-item > .j50-bell-btn:focus-visible > .j50-bell-label {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

/* ── 7. Sous-menu avatar ───────────────────────────────── */
li.job50-tools-avatar.wp-block-navigation-submenu {
	position: relative;
}

li.job50-tools-avatar.wp-block-navigation-submenu::after,
li.j50-bell-nav-item::after {
	content: "";
	position: absolute;
	top: calc(100% + 5px);
	right: 42px;
	width: 12px;
	height: 12px;
	background: var(--wp--preset--color--base);
	border-top: 1px solid var(--j50-gray-300);
	border-left: 1px solid var(--j50-gray-300);
	transform: rotate(45deg) scale(0.6);
	transform-origin: center;
	opacity: 0;
	pointer-events: none;
	z-index: 21;
	transition: opacity 0.12s ease-out, transform 0.18s cubic-bezier(0.33, 1, 0.68, 1);
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	text-decoration: none !important;
	min-height: auto !important;
	cursor: pointer;
	position: relative;
	z-index: 30;
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle {
	display: none !important;
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation-item__content > .wp-block-navigation-item__label,
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation-item__content > .wp-block-navigation-item__label.job50-tools-avatar__label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

li.job50-tools-avatar.wp-block-navigation-submenu .job50-user-avatar-shortcode,
li.job50-tools-avatar.wp-block-navigation-submenu .job50-avatar,
li.job50-tools-avatar.wp-block-navigation-submenu .job50-avatar-fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

li.job50-tools-avatar.wp-block-navigation-submenu .job50-avatar,
li.job50-tools-avatar.wp-block-navigation-submenu .job50-avatar-fallback {
	width: 56px;
	height: 56px;
	border-radius: var(--j50-radius-pill);
	transition: transform 0.22s ease, box-shadow 0.22s ease;
	transform-origin: center center;
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation-item__content:hover .job50-avatar,
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation-item__content:hover .job50-avatar-fallback,
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation-item__content:focus-visible .job50-avatar,
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation-item__content:focus-visible .job50-avatar-fallback,
li.job50-tools-avatar.wp-block-navigation-submenu.is-job50-open > .wp-block-navigation-item__content .job50-avatar,
li.job50-tools-avatar.wp-block-navigation-submenu.is-job50-open > .wp-block-navigation-item__content .job50-avatar-fallback {
	transform: scale(1.08);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
}

/* Panneau partagé avatar + bell */
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container,
li.j50-bell-nav-item > .j50-bell-dropdown {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	left: auto;
	min-width: 340px;
	width: max-content;
	max-width: 420px;
	padding: 16px;
	margin: 0;
	border: 1px solid var(--j50-gray-300);
	border-radius: var(--j50-radius-lg);
	background: linear-gradient(180deg, var(--wp--preset--color--base) 0%, #fbfbfb 100%);
	box-shadow: var(--j50-shadow-panel);
	list-style: none;
	z-index: 20;
	overflow: hidden;
	visibility: hidden;
	pointer-events: none;
	clip-path: inset(0 0 100% 0 round 18px);
	-webkit-clip-path: inset(0 0 100% 0 round 18px);
	will-change: clip-path;
	transition:
		clip-path 0.22s cubic-bezier(0.33, 1, 0.68, 1),
		-webkit-clip-path 0.22s cubic-bezier(0.33, 1, 0.68, 1),
		visibility 0s linear 0.22s;
}

/* Neutralise l'ouverture native WP au hover/focus */
li.job50-tools-avatar.wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-container,
li.job50-tools-avatar.wp-block-navigation-submenu:focus-within > .wp-block-navigation__submenu-container {
	visibility: hidden !important;
	pointer-events: none !important;
	clip-path: inset(0 0 100% 0 round 18px) !important;
	-webkit-clip-path: inset(0 0 100% 0 round 18px) !important;
}

/* Ouverture JS uniquement */
li.job50-tools-avatar.wp-block-navigation-submenu.is-job50-open::after,
li.j50-bell-nav-item.is-j50-bell-open::after {
	opacity: 1;
	transform: rotate(45deg) scale(1);
}

li.job50-tools-avatar.wp-block-navigation-submenu.is-job50-open > .wp-block-navigation__submenu-container,
li.j50-bell-nav-item.is-j50-bell-open > .j50-bell-dropdown {
	visibility: visible !important;
	pointer-events: auto !important;
	clip-path: inset(0 0 0 0 round 18px) !important;
	-webkit-clip-path: inset(0 0 0 0 round 18px) !important;
	transition:
		clip-path 0.24s cubic-bezier(0.33, 1, 0.68, 1),
		-webkit-clip-path 0.24s cubic-bezier(0.33, 1, 0.68, 1),
		visibility 0s linear 0s;
}


/* Identité utilisateur dans le sous-menu avatar */
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
	/* Override the shared avatar/bell dropdown sizing above. */
	width: 330px;
	min-width: 330px;
	max-width: calc(100vw - 32px);
	padding: 18px;
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > .job50-tools-avatar__identity {
	display: grid;
	gap: 3px;
	margin: 0 0 10px;
	padding: 8px 10px 16px;
	border-bottom: 1px solid var(--j50-gray-200);
	list-style: none;
}

.job50-tools-avatar__identity-name {
	font-family: var(--j50-font-display);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.15;
	color: var(--wp--preset--color--accent-1);
}

.job50-tools-avatar__identity-role {
	font-size: 10px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--j50-gray-700);
}


/* Items du sous-menu */
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.wp-block-navigation-item,
li.j50-bell-nav-item > .j50-bell-dropdown .j50-bell-item {
	list-style: none;
	margin: 0;
	padding: 0;
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.wp-block-navigation-item + li.wp-block-navigation-item {
	margin-top: 2px;
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.wp-block-navigation-item > a,
li.j50-bell-nav-item > .j50-bell-dropdown .j50-bell-item__link {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	min-height: 42px;
	padding: 8px 10px;
	border-radius: var(--j50-radius-md);
	text-decoration: none;
	white-space: normal;
	color: var(--j50-gray-900);
	background: transparent;
	transition: background-color 0.14s ease-out, transform 0.14s ease-out, color 0.14s ease-out;
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.wp-block-navigation-item > a:hover,
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.wp-block-navigation-item > a:focus-visible,
li.j50-bell-nav-item > .j50-bell-dropdown .j50-bell-item__link:hover,
li.j50-bell-nav-item > .j50-bell-dropdown .j50-bell-item__link:focus-visible {
	background: var(--j50-gray-100);
	color: #111;
	transform: translateX(2px);
	outline: none;
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.wp-block-navigation-item > a > .wp-block-navigation-item__label,
li.j50-bell-nav-item > .j50-bell-dropdown .j50-bell-item__text {
	position: static !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	pointer-events: auto !important;
	white-space: normal;
	word-break: break-word;
	padding: 2px 0;
	border: 0;
	box-shadow: none;
	background: transparent;
	font-size: 13px;
	line-height: 1.35;
	color: inherit;
	text-transform: none;
}

/* Avatar dropdown: keep every menu label on one line */
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.wp-block-navigation-item > a {
	align-items: center;
	width: 100%;
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.wp-block-navigation-item > a > .wp-block-navigation-item__label,
.job50-tools-avatar__identity-name,
.job50-tools-avatar__identity-role {
	white-space: nowrap !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
	overflow: hidden;
	text-overflow: ellipsis;
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.wp-block-navigation-item > a > .wp-block-navigation-item__label::before {
	content: none !important;
	display: none !important;
}

/* Icônes Material Symbols dans le sous-menu */
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.wp-block-navigation-item > a::before,
li.j50-bell-nav-item > .j50-bell-dropdown .j50-bell-item__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	flex: 0 0 22px;
	font-family: 'Material Symbols Outlined';
	font-weight: normal;
	font-style: normal;
	font-size: 22px;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-feature-settings: 'liga';
	font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
	color: var(--wp--preset--color--accent-1);
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.dashboard > a::before    { content: "home_app_logo"; }
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.organization > a::before { content: "corporate_fare"; }
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.billing > a::before      { content: "receipt_long"; }
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.profile > a::before      { content: "account_circle"; }
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.add-job > a::before      { content: "note_add"; }
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.history > a::before       { content: "restore_from_trash"; }
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.logout > a::before       { content: "power_settings_circle"; }

/* État actif */
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.current-menu-item > a,
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container > li.current-menu-ancestor > a {
	background: var(--j50-color-role-bg);
	color: #111;
	font-weight: 600;
}

/* ── 8. Utilitaires ─────────────────────────────────────── */
.align-center {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.hvr-shrink,
.wp-block-button__link,
.buttons {
	display: flex;
	vertical-align: middle;
	transform: perspective(1px) translateZ(0);
	transition-duration: 0.3s;
	transition-property: transform;
}
.hvr-shrink:hover,
.wp-block-button__link:hover,
.buttons:hover {
	transform: scale(0.9);
}

/* ── 9. Animations ──────────────────────────────────────── */
.animate-box.fade-in {
	opacity: 0;
	transition: all 0.5s ease-in-out;
	transform: translateY(100px);
}
.animate-box.visible.fade-in {
	opacity: 1;
	transform: translateY(0);
}
.right-left-animate {
	animation: rightLeft 1.5s ease-out forwards;
}

/* Home hero — badge synchronisé au loader + personnage responsive.
   Le background existant reste sur le vrai bloc du hero : aucun pseudo-calque,
   aucune duplication d'image et aucune modification du contenu Gutenberg. */
.banner-home {
	position: relative;
	overflow: visible !important;
}

.banner-home > .wp-block-group.has-background {
	--j50-home-person-x: -3vw;
	position: relative;
	background-repeat: no-repeat !important;
	background-position: var(--j50-home-person-x) bottom !important;
	background-size: auto 100% !important;
	animation: none;
}

/* Ajouter la classe CSS “job50-home-award” au bloc Figure du badge. */
.banner-home .job50-home-award {
	--j50-home-award-y: clamp(40px, 3.5vw, 58px);
	position: relative;
	z-index: 20;
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
	opacity: 0;
	transform: translate3d(0, -90px, 0);
	will-change: transform, opacity;
}

.banner-home .job50-home-award img {
	display: block;
	height: auto !important;
}

/* La classe est ajoutée uniquement lorsque le loader a réellement disparu. */
body.job50-page-ready .banner-home .job50-home-award {
	animation: job50HomeAwardDrop 0.95s cubic-bezier(.22, .78, .2, 1) 80ms both;
}

body.job50-page-ready .banner-home > .wp-block-group.has-background {
	animation: job50HomePersonIn 1.05s cubic-bezier(.22, .7, .18, 1) both;
}

@keyframes job50HomeAwardDrop {
	0% {
		opacity: 0;
		transform: translate3d(0, -90px, 0);
	}
	100% {
		opacity: 1;
		transform: translate3d(0, var(--j50-home-award-y), 0);
	}
}

@keyframes job50HomePersonIn {
	0% {
		background-position: calc(var(--j50-home-person-x) - 70px) bottom;
	}
	100% {
		background-position: var(--j50-home-person-x) bottom;
	}
}

/* Plus l'écran se resserre, plus l'image entière glisse vers la gauche.
   Sa hauteur reste égale au hero : pas de rectangle bleu visible autour d'elle. */
@media (max-width: 1600px) {
	.banner-home > .wp-block-group.has-background {
		--j50-home-person-x: -8vw;
	}
}

@media (max-width: 1400px) {
	.banner-home > .wp-block-group.has-background {
		--j50-home-person-x: -12vw;
	}

	.banner-home .job50-home-award {
		--j50-home-award-y: clamp(38px, 3.5vw, 50px);
	}
}

@media (max-width: 1200px) {
	.banner-home > .wp-block-group.has-background {
		--j50-home-person-x: -18vw;
	}
}

@media (max-width: 1024px) {
	.banner-home > .wp-block-group.has-background {
		--j50-home-person-x: -25vw;
	}

	.banner-home .job50-home-award {
		--j50-home-award-y: 36px;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.job50-page-ready .banner-home .job50-home-award,
	body.job50-page-ready .banner-home > .wp-block-group.has-background {
		animation: none;
	}

	.banner-home .job50-home-award {
		opacity: 1;
		transform: translate3d(0, var(--j50-home-award-y), 0);
	}
}
@keyframes rightLeft {
	0%   { animation-timing-function: ease-in;  opacity: 0; transform: translateX(250px); }
	38%  { animation-timing-function: ease-out; opacity: 1; transform: translateX(0); }
	55%  { animation-timing-function: ease-in;  transform: translateX(68px); }
	72%  { animation-timing-function: ease-out; transform: translateX(0); }
	81%  { animation-timing-function: ease-in;  transform: translateX(32px); }
	90%  { animation-timing-function: ease-out; transform: translateX(0); }
	95%  { animation-timing-function: ease-in;  transform: translateX(8px); }
	100% { animation-timing-function: ease-out; transform: translateX(0); }
}

/* ── 10. Block styles ───────────────────────────────────── */
.sexy-counter-wrapper {
	display: flex;
	gap: var(--wp--preset--spacing--50);
}
.sexy-counter-wrapper .sexy-counter-card {
	flex-basis: 0;
	flex-grow: 1;
}
.sexy-counter-wrapper .animated-counter {
	font-size: 36px;
	font-weight: 700;
	margin-top: -16px;
	color: var(--wp--preset--color--accent-1);
}

/* ── 11. Boutons ────────────────────────────────────────── */
.buttons {
	font-family: var(--j50-font-display);
	background-color: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
	border: none;
	padding: 12px 24px;
	border-radius: var(--j50-radius-pill);
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
	transition: all 0.3s ease-in-out;
	text-transform: uppercase;
}
.buttons:hover { color: var(--wp--preset--color--base); }
.buttons.buttons--secondary:hover { color: inherit; }
.buttons.small,
.job-wizard-admin-actions .buttons {
	font-size: 10px;
	text-align: center;
	justify-content: center;
	padding: 5px 10px;
	margin: 5px;
}

.buttons.buttons--secondary,
.buttons.buttons--ghost,
.buttons.buttons--sm {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	border: solid 1px var(--j50-gray-300);
}
.buttons.buttons--ghost {
	background: var(--wp--preset--gradient--custom-light-gray);
}
.buttons.buttons--sm {
	padding: 10px 16px;
	font-size: 14px;
}


/* ── 11b. Focus Job50 — neutralise les cadres noirs navigateur ─────────
   Les composants Job50 gèrent leurs états visuels eux-mêmes. Cette règle
   supprime les outlines/borders natifs noirs sur les boutons et éléments
   interactifs Job50, tout en gardant un focus doux pour les vrais CTA. */
button:focus,
button:focus-visible,
.buttons:focus,
.buttons:focus-visible,
.wp-block-button__link:focus,
.wp-block-button__link:focus-visible,
[class^="job50-"][tabindex]:focus,
[class*=" job50-"][tabindex]:focus,
[class^="job50-"][tabindex]:focus-visible,
[class*=" job50-"][tabindex]:focus-visible,
[class^="job50-"] button:focus,
[class*=" job50-"] button:focus,
[class^="job50-"] button:focus-visible,
[class*=" job50-"] button:focus-visible {
	outline: none !important;
}

[class^="job50-"][tabindex]:focus,
[class*=" job50-"][tabindex]:focus,
[class^="job50-"] button:focus,
[class*=" job50-"] button:focus,
[class^="job50-"] button:focus-visible,
[class*=" job50-"] button:focus-visible {
	box-shadow: none !important;
}

.buttons:focus-visible,
.wp-block-button__link:focus-visible,
button.buttons:focus-visible,
a.buttons:focus-visible {
	box-shadow: 0 0 0 3px rgba(237, 28, 36, .16) !important;
}

button.job50-job-card__desc:focus,
button.job50-job-card__desc:focus-visible,
button.job50-match-offer-card__description:focus,
button.job50-match-offer-card__description:focus-visible,
button.job50-match-sidebar-description:focus,
button.job50-match-sidebar-description:focus-visible {
	border-color: transparent !important;
	box-shadow: none !important;
}

/* ── 12. Formulaires — global ───────────────────────────── */
input:-webkit-autofill       { -webkit-box-shadow: inset 0 0 0px 9999px white; }
input:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 50px white inset; }
::-webkit-input-placeholder  { color: rgba(51, 51, 51, .53); }
::-moz-placeholder           { color: rgba(51, 51, 51, .53); }
select:invalid,
select option[value=""]      { color: rgba(51, 51, 51, .53); }

form { position: relative; }

form fieldset, .register_links, .login_status, .job50-dashboard-card, .job50-profile-card, .company-logo-upload, .avatar-field, #wpmem_reg form fieldset, #wpmem_login form fieldset {
    position: relative;
    max-width: 960px;
    margin: 3% auto;
    border: solid 1px var(--j50-gray-300);
    border-radius: 24px;
    padding: 32px;
    background: var(--wp--preset--color--base);
    box-shadow: 0 8px 16px rgba(0, 0, 0, .03);
}
form fieldset{padding: 54px 32px 32px 48px;}
#wpmem_login_form fieldset,
#wpmem_register_form fieldset {
	padding: 33px;
}
form fieldset > div {
	margin-bottom: 12px;
	position: relative;
}
form#wpmem_register_form fieldset > .div_radio {
	margin-bottom: 0;
}
.div_radio br:last-child {
	display: none;
}
form label { font-size: 14px; }
form fieldset > .button_div {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	bottom: 0;
}
.req-text,
form fieldset > label,
form fieldset > legend {
	display: none !important;
}

/* ── 13. Champs — gradient border (bloc canonique unique) ──
   Fusionne les 3 blocs dupliqués de l'original.
   Aucun !important ici — la cascade suffit.
   ─────────────────────────────────────────────────────── */
   input[type="text"], input[type="email"], input[type="url"], input[type="password"], textarea, select, .ts-wrapper.single:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-control, .ts-wrapper.multi:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-control {
    font-family: var(--j50-font-body);
    font-weight: 300;
    box-sizing: border-box;
    min-width: 100%;
    font-size: 16px;
    color: var(--wp--preset--color--contrast);
    border: 1px solid #e3e3e3;
    border-radius: var(--j50-radius-sm);
    box-shadow: 0 4px 8px rgba(0, 0, 0, .03);
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
textarea,
select {
	padding: 14px 18px;
	margin-bottom: 16px;
}

/* État focus */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus,
.ts-wrapper:not(.job50-ts-wrapper):not(.j50-vat-tomselect).focus .ts-control,
.ts-wrapper:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-control:focus-within {
	outline: none;
	border: 1px solid var(--j50-gray-600);
}

/* ── 14. Tom Select ─────────────────────────────────────── */
.ts-wrapper { width: 100%; }

.ts-wrapper:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-control {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 54px;
	padding: 14px 18px;
}

.ts-wrapper:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-control > input {
	font-family: var(--j50-font-body);
	font-weight: 300;
	box-sizing: border-box;
	padding: 0;
	min-width: 0;
	min-height: 0;
	max-width: 100%;
	margin: 0;
	border: 0;
	background: transparent;
	font-size: 16px;
	line-height: 1.4;
	color: var(--wp--preset--color--contrast);
	text-indent: 0;
	border-radius: 0;
	box-shadow: none;
}

.ts-wrapper.single:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-control::after { display: none !important; }

.ts-wrapper.single:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-control .item,
.ts-wrapper.multi:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-control > div,
.ts-wrapper:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-dropdown,
.ts-wrapper:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-dropdown .option,
.ts-wrapper:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-dropdown .create {
	font-family: var(--j50-font-body);
	font-size: 16px;
	color: var(--wp--preset--color--contrast);
}

.ts-wrapper.multi:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-control > div {
	display: inline-flex;
	align-items: center;
	padding: 4px 8px;
	border-radius: 2px;
	background: #f5f5f5;
}

.ts-wrapper.plugin-remove_button:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .item .remove,
.ts-wrapper.plugin-remove_button:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .item .remove-single {
	border-left: 0;
}

.ts-wrapper:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-dropdown {
	margin-top: 8px;
	border: 1px solid #ececec;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .08);
}

.ts-wrapper:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-dropdown .active,
.ts-wrapper:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-dropdown .option:hover {
	background: var(--j50-gray-100);
	color: #111;
}

/* Champ job title — moved to job50-core/assets/shared-wizard.css. */


/* COMPANY NAME — focus / open / input actif */
#company_name_tomselect + .ts-wrapper:not(.job50-ts-wrapper):not(.j50-vat-tomselect).focus .ts-control,
#company_name_tomselect + .ts-wrapper.single:not(.job50-ts-wrapper):not(.j50-vat-tomselect).input-active .ts-control,
#company_name_tomselect + .ts-wrapper.single:not(.job50-ts-wrapper):not(.j50-vat-tomselect).dropdown-active .ts-control,
#company_name_tomselect + .ts-wrapper:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-control:focus-within {
	border: 1px solid var(--wp--preset--color--accent-1);
}

#company_name_tomselect + .ts-wrapper:not(.job50-ts-wrapper):not(.j50-vat-tomselect) .ts-control,
#company_name_tomselect + .ts-wrapper.single:not(.job50-ts-wrapper):not(.j50-vat-tomselect).input-active .ts-control {
	cursor: text;
}

/* ── 15. Toggle visibilité mot de passe ─────────────────── */
#wpmem_register_form .wpmem-pw-field { position: relative; }
#wpmem_register_form .wpmem-pw-field input[type="password"],
#wpmem_register_form .wpmem-pw-field input[type="text"] { padding-right: 44px; }

.wpmem-pw-toggle {
    position: absolute;
    display: block;
    width: 24px;
    height: 50px;
    right: 10px;
    top: 0;
    background-image: url(../images/ic-visibility.svg);
    background-repeat: no-repeat;
    background-size: contain;
	background-position-y: center;
    background-color: transparent;
    cursor: pointer;
}
.wpmem-pw-toggle::before { content: none !important; display: none !important; }
.wpmem-pw-toggle:focus,
.wpmem-pw-toggle:focus-visible,
.wpmem-pw-toggle:hover,
.wpmem-pw-toggle:active {
	filter: brightness(0) saturate(100%) invert(10%) sepia(95%) saturate(5580%) hue-rotate(353deg) brightness(121%) contrast(87%);
}

/* Edge / IE native password reveal — keep only the Job50 custom eye. */
#wpmem_login_form input[type="password"]::-ms-reveal,
#wpmem_login_form input[type="password"]::-ms-clear,
#wpmem_register_form input[type="password"]::-ms-reveal,
#wpmem_register_form input[type="password"]::-ms-clear,
#wpmem_pwdreset_form input[type="password"]::-ms-reveal,
#wpmem_pwdreset_form input[type="password"]::-ms-clear,
#wpmem_pwdchange_form input[type="password"]::-ms-reveal,
#wpmem_pwdchange_form input[type="password"]::-ms-clear,
#wpmem_profile_form input[type="password"]::-ms-reveal,
#wpmem_profile_form input[type="password"]::-ms-clear {
	display: none;
	width: 0;
	height: 0;
}

/* ── 16. Login / Register ───────────────────────────────── */
#wpmem_login .link-text { font-size: 14px; }
#wpmem_login .link-text-register,
.link-text-username { display: none; }

.wpmem-register-intro {
	text-align: center;
	color: var(--wp--preset--color--base);
	padding: 0 16px;
}
.wpmem-register-intro h3,
.register_status {
	font-family: var(--j50-font-display);
	font-style: normal;
	font-weight: 700;
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--base);
	text-align: center;
	letter-spacing: -0.1px;
	line-height: 1.125;
	text-transform: uppercase;
	margin-bottom: 0;
}
.wpmem-register-intro p { margin-top: 8px; }

#wpmem_pwdreset_form fieldset,
#wpmem_pwdchange_form fieldset { max-width: 480px; }

#wpmem_profile_form fieldset .div_text,
#wpmem_profile_form fieldset .div_textarea {
	width: 42%;
	float: left;
	margin: 10px 4%;
}
#wpmem_profile_form fieldset .div_textarea { width: 92%; }
#wpmem_profile_form fieldset .field { position: relative; }
#wpmem_profile_form fieldset .field input,
#wpmem_profile_form fieldset .field textarea { padding-left: 32px; }
#wpmem_profile_form fieldset .div_checkbox {
	display: flex;
	gap: 8px;
	clear: both;
	align-items: center;
}

#wpmem_profile_form fieldset .field::before {
	content: "";
	position: absolute;
	display: block;
	z-index: 1;
	top: 8px;
	left: 0;
	width: 24px;
	height: 24px;
	background-repeat: no-repeat;
	background-position: left center;
	background-size: contain;
	opacity: 0.2;
}
#wpmem_profile_form fieldset .field.field--my_compny_right::before,
#wpmem_profile_form fieldset .field.field--wpmem_reg_page::before,
#wpmem_profile_form fieldset .field.field--a::before { display: none; }

.field--company_name::before     { background-image: url(../images/ic-company.svg); }
.field--business_number::before  { background-image: url(../images/ic-business-number.svg); }
.field--user_url::before         { background-image: url(../images/ic-website.svg); }
.field--description::before      { background-image: url(../images/ic-desc.svg); }
.field--first_name::before,
.field--last_name::before        { background-image: url(../images/ic-person.svg); }
.field--billing_address_1::before,
.field--billing_city::before,
.field--billing_postcode::before,
.field--billing_country::before  { background-image: url(../images/ic-address.svg); }
.field--billing_phone::before    { background-image: url(../images/ic-phone.svg); }
.field--user_email::before       { background-image: url(../images/ic-mail.svg); }



/* ── 16b. WP-Members login status — logged-in state ─────────
   Keeps the "already logged in" panel visually aligned with the
   register card and turns the logout link into a Job50 CTA. */
.login_status {
	width: min(480px, calc(100% - 32px));
	max-width: 480px;
	padding: 32px;
	font-size: 18px;
	line-height: 1.45;
	color: var(--wp--preset--color--contrast);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.login_status a[href*="a=logout"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: fit-content;
	margin: 14px auto 0;
	padding: 12px 22px;
	border: 0;
	border-radius: var(--j50-radius-pill);
	background: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base) !important;
	font-family: var(--j50-font-display);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none !important;
	box-shadow: 0 10px 20px rgba(237, 28, 36, .18);
	transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease;
}

.login_status a[href*="a=logout"]::after {
	content: "close";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: 'Material Symbols Outlined';
	font-size: 20px;
	font-weight: normal;
	font-style: normal;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-feature-settings: 'liga';
	font-variation-settings: 'FILL' 0, 'wght' 600, 'GRAD' 0, 'opsz' 24;
}

.login_status a[href*="a=logout"]:hover,
.login_status a[href*="a=logout"]:focus-visible {
	color: var(--wp--preset--color--base) !important;
	transform: translateY(-1px) scale(.98);
	box-shadow: 0 12px 24px rgba(237, 28, 36, .24);
	outline: none;
}

@media (max-width: 600px) {
	.login_status {
		width: min(100% - 24px, 480px);
		padding: 26px 24px;
		font-size: 16px;
	}

	.login_status a[href*="a=logout"] {
		width: 100%;
	}
}

/* ── 17. Messages WP-Members ────────────────────────────── */
.wpmem_msg,
#wpmem_restricted_msg,
.safe-box {
	position: fixed;
	right: 0;
	bottom: 0;
	width: 100%;
	max-width: 100%;
	z-index: 100;
	display: flex;
	align-items: center;
	color: var(--wp--preset--color--base);
	padding: 16px;
	transition: all 0.3s ease-in-out;
}
.wpmem_msg.success { background-color: var(--wp--preset--color--accent-2); }
.wpmem_msg.error,
#wpmem_restricted_msg { background-color: var(--wp--preset--color--accent-1); }

.wpmem_msg.success::before,
.wpmem_msg.error::before,
.wpmem_msg .close-btn,
#wpmem_restricted_msg::before,
#wpmem_restricted_msg .close-btn {
	content: "";
	display: block;
	width: 68px;
	height: 68px;
	background-image: url(../images/ic-error.svg);
	background-repeat: no-repeat;
	background-size: contain;
	margin-right: 16px;
	flex: 0 0 68px;
}
.wpmem_msg.success::before { background-image: url(../images/ic-success.svg); }
.wpmem_msg .close-btn {
	position: absolute;
	right: 0;
	top: 16px;
	width: 32px;
	height: 32px;
	font-size: 0;
	background-image: url(../images/ic-close.svg);
	background-color: transparent;
	cursor: pointer;
}
.wpmem_msg,
#wpmem_restricted_msg {
	bottom: -9999px;
	animation: slideUp 1s ease forwards;
}
.wpmem_msg.close { display: none; }

@keyframes slideUp { to { bottom: 0; } }

/* ── 18. Toasts ─────────────────────────────────────────── */

/* ── Animations ──────────────────────────────────────────── */
@keyframes j50ToastIn {
	0%   { transform: translateY(100%); opacity: 0; }
	100% { transform: translateY(0);    opacity: 1; }
}
@keyframes j50ToastOut {
	0%   { transform: translateY(0);    opacity: 1; }
	100% { transform: translateY(100%); opacity: 0; }
}

/* ── Toast plein-écran bas de page ───────────────────────── */
.job50-toast {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	z-index: 99999;
	display: flex;
	align-items: center;
	gap: 16px;
	color: var(--wp--preset--color--base, #fff);
	padding: 20px 24px;
	pointer-events: none;
	opacity: 0;
	transform: translateY(100%);
	transition: none;
	border-radius: 0 !important;
}

.job50-toast.is-success,
.job50-toast--success {
	background-color: var(--wp--preset--color--accent-2, #22b573);
}
.job50-toast.is-error,
.job50-toast--error {
	background-color: var(--wp--preset--color--accent-1, #ed1c24);
}

/* Icône à gauche (legacy WP-Members) */
.job50-toast::before {
	content: "";
	display: block;
	width: 52px;
	height: 52px;
	flex: 0 0 52px;
	background-image: url(../images/ic-error.svg);
	background-repeat: no-repeat;
	background-size: contain;
}
.job50-toast.is-success::before { background-image: url(../images/ic-success.svg); }

/* Texte */
.job50-toast__message {
	flex: 1;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
}

/* ── État visible — animation entrée ─────────────────────── */
.job50-toast.is-visible,
.job50-toast[data-job50-toast] {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
	animation: j50ToastIn 0.34s cubic-bezier(.22, .61, .36, 1) both;
}

/* ── Sortie douce (slide bas + fondu) ────────────────────── */
.job50-toast--hiding {
	animation: j50ToastOut 0.42s cubic-bezier(.4, 0, .8, 0) forwards !important;
	pointer-events: none !important;
}

/* ── Bouton close — Material Symbols cancel, blanc, à droite ─ */
.job50-toast__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-left: auto;
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	padding: 0;
	border: none;
	background: transparent;
	cursor: pointer;
	color: rgba(255, 255, 255, .85);
	transition: color 0.15s ease, transform 0.15s ease;
	font-size: 0;
}
.job50-toast__close:hover {
	color: #fff;
	transform: scale(1.12);
}
.job50-toast__close::after {
	content: "cancel";
	font-family: 'Material Symbols Outlined';
	font-size: 28px;
	line-height: 1;
	color: inherit;
	font-weight: normal;
	font-style: normal;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-feature-settings: 'liga';
	font-variation-settings: 'FILL' 1, 'wght' 300, 'GRAD' 0, 'opsz' 24;
}

/* ── Container (pages dashboard — toast positionné par PHP) ─ */
.job50-toast-container {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 99999;
	pointer-events: none;
}

/* ── 19. Upload logo société ────────────────────────────── */
.company-logo-upload {
	max-width: 480px;
	margin: 0 auto;
}
.company-logo-upload fieldset > p {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 8px;
}
.company-logo-upload .logo-box {
	position: relative;
	display: flex;
	width: 240px;
	height: 120px;
	border: solid 1px var(--j50-gray-300);
	border-radius: 8px;
	margin-right: 16px;
	padding: 10px;
	background-image: url(../images/ic-picture-add.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 36px;
}
.company-logo-upload .logo-box:hover { border-color: var(--wp--preset--color--accent-1); }
.company-logo-upload .logo-box img {
	width: 100%;
	height: auto;
	object-fit: contain;
	background-color: var(--wp--preset--color--base);
}
.company-logo-upload .logo-box input[type="file"] {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
}
.company-logo-upload label {
	font-family: var(--j50-font-display);
	font-size: 16px;
}

/* ── 20–22. Wizard layout / range / radio-checkbox — moved to job50-core/assets/shared-wizard.css. ── */

/* ── 23. Dashboard ───────────────────────────────────────── */
.job50-dashboard-shell,
.job50-dashboard { display: grid; gap: 24px; }

.job50-dashboard { margin: 32px auto 64px; }

.job50-dashboard .job50-dashboard-card {
	max-width: none;
	margin: 0;
	padding: 28px;
	box-shadow: var(--j50-shadow-card);
}

/* En-tête carte */
.job50-dashboard-card__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 20px;
}
.job50-dashboard-card__header h3 { margin: 0; }
.job50-dashboard-card__header a {
	font-size: 14px;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-1);
}

/* Overline */
.job50-overline {
	margin: 0 0 6px;
	font-family: var(--j50-font-display);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--j50-gray-600);
}

/* Hero */
#job50-card-hero { overflow: hidden; position: relative; }
.job50-dashboard__hero {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(280px, .85fr);
	gap: 24px;
	align-items: stretch;
}
.job50-dashboard__hero-main,
.job50-dashboard__hero-side { position: relative; z-index: 1; }

.job50-dashboard__identity {
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	gap: 24px;
}

/* Avatar */
.job50-avatar {
	position: relative;
	overflow: hidden;
	background: var(--wp--preset--color--base);
	border: solid 1px #ececec;
}
.job50-avatar--circle { border-radius: var(--j50-radius-pill); }
.job50-avatar--xl     { width: 112px; height: 112px; }
.job50-dashboard-avatar { width: 100%; height: 100%; object-fit: cover; }

/* Badges */
.job50-dashboard-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.job50-badge {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 0 12px;
	border-radius: var(--j50-radius-pill);
	font-size: 13px;
	font-weight: 700;
	background-color: var(--j50-gray-100);
	color: var(--wp--preset--color--contrast);
}
.job50-badge--role    { background-color: var(--j50-color-role-bg); color: var(--wp--preset--color--accent-1); }
.job50-badge--success { background-color: var(--j50-color-success-bg); color: var(--j50-color-success-text); }
.job50-badge--warning { background-color: var(--j50-color-warning-bg); color: var(--j50-color-warning-text); }

/* Titre / méta */
.job50-dashboard-title {
	margin: 16px 0 8px;
	font-size: clamp(2rem, 3vw, 3rem);
	line-height: 1;
	text-transform: none;
}
.job50-dashboard-subtitle,
.job50-dashboard-meta,
.job50-dashboard-text { color: var(--j50-gray-800); }
.job50-dashboard-subtitle { margin: 0 0 18px; font-size: 1rem; }

/* Actions */
.job50-dashboard-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.job50-dashboard-actions .buttons { display: inline-flex; align-items: center; justify-content: center; }

/* Côté hero */
.job50-dashboard__hero-side { display: flex; flex-direction: column; align-items: flex-end; }
.job50-logo {
	display: grid;
	place-items: center;
	background-color: var(--wp--preset--color--base);
	border: solid 1px #ececec;
}
.job50-logo--org { width: 96px; height: 96px; border-radius: 24px; padding: 14px; }
.job50-dashboard-logo { max-width: 100%; max-height: 100%; object-fit: contain; }
.job50-dashboard__hero-side-copy h3 { margin: 0 0 8px; font-size: 1.25rem; }
.job50-dashboard__hero-side-copy p  { margin: 0; }

/* Actions rapides */
#job50-card-quick-actions h3 { margin: 0; }
.job50-dashboard-quick-actions {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.job50-action-tile {
	display: grid;
	gap: 8px;
	padding: 20px;
	border-radius: var(--j50-radius-xl);
	border: solid 1px #ececec;
	background: var(--wp--preset--color--base);
	text-decoration: none;
	box-shadow: var(--j50-shadow-card);
	transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.job50-action-tile:hover {
	transform: translateY(-2px);
	border-color: #d6d6d6;
	box-shadow: 0 14px 28px rgba(0, 0, 0, .07);
}
.job50-action-tile strong {
	font-family: var(--j50-font-display);
	font-size: 1rem;
	text-transform: uppercase;
}
.job50-action-tile span:last-child { font-size: 14px; color: var(--j50-gray-700); }
.job50-action-tile__eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-1);
}
.job50-action-tile.is-disabled { opacity: .82; cursor: default; pointer-events: none; }

/* Grille principale */
.job50-dashboard__main {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(320px, .9fr);
	gap: 24px;
	align-items: start;
}
.job50-dashboard__stack { display: grid; gap: 24px; font-size: 16px; }

/* Liste méta */
.job50-dashboard-meta-list { display: grid; gap: 12px; margin: 0; }
.job50-dashboard-meta-list > div {
	display: grid;
	grid-template-columns: minmax(120px, 150px) minmax(0, 1fr);
	gap: 12px;
	padding-bottom: 12px;
	border-bottom: solid 1px var(--j50-gray-200);
}
.job50-dashboard-meta-list dt {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--j50-gray-600);
}
.job50-dashboard-meta-list dd { margin: 0; word-break: break-word; }

.job50-dashboard-list,
.job50-dashboard-steps { display: grid; gap: 10px; margin: 0; padding-left: 18px; }

/* Alertes */
.job50-dashboard-alert {
	margin-top: 18px;
	padding: 64px 16px;
	border-radius: var(--j50-radius-lg);
	font-family: var(--wp--preset--font-family--google-sans-flex);
	font-weight: 700;
	font-size: 48px;
	text-align: center;
}
.job50-dashboard-alert--warning { background-color: var(--j50-color-warning-bg); color: var(--j50-color-warning-text); }
.job50-dashboard-alert--success { background-color: var(--j50-color-success-bg); color: var(--j50-color-success-text); }

/* Liste membres */
.job50-dashboard-members { display: grid; gap: 12px; }
.job50-dashboard-member {
	padding: 16px 18px;
	border-radius: var(--j50-radius-lg);
	border: solid 1px #ececec;
	background: var(--wp--preset--color--base);
}
.job50-dashboard-member__copy p { margin: 6px 0 0; font-size: 14px; color: var(--j50-gray-700); }

/* Tableau shortcode */
.job50-dashboard-shortcode-wrap table { width: 100%; border-collapse: collapse; }
.job50-dashboard-shortcode-wrap th,
.job50-dashboard-shortcode-wrap td {
	padding: 14px 12px;
	border-bottom: solid 1px var(--j50-gray-200);
	text-align: left;
	vertical-align: middle;
}
.job50-dashboard-shortcode-wrap .buttons,
.job50-dashboard-shortcode-wrap button { margin-right: 8px; }
.job50-dashboard-shortcode-wrap .job-wizard-panel,
.job50-dashboard-shortcode-wrap .job50-dashboard-card { background: transparent; }

/* Responsive dashboard */
@media screen and (max-width: 1080px) {
	.job50-dashboard__main,
	.job50-dashboard__hero { grid-template-columns: 1fr; }
}
@media screen and (max-width: 781px) {
	.job50-toast-container             { top: 16px; right: 16px; left: 16px; }
	.job50-dashboard .job50-dashboard-card { padding: 22px; border-radius: var(--j50-radius-xl); }
	.job50-dashboard__identity         { grid-template-columns: 1fr; }
	.job50-dashboard-quick-actions     { grid-template-columns: 1fr; }
	.job50-dashboard-meta-list > div   { grid-template-columns: 1fr; gap: 6px; }
	.job50-dashboard-actions           { flex-direction: column; }
	.job50-dashboard-actions .buttons  { width: 100%; }
}

/* ── 24. Modal reset mot de passe ───────────────────────── */
.jquery-modal.blocker { 
	background-color: rgba(255, 255, 255, 0.9) !important;
	z-index: 50000 !important;
}
.modal a.close-modal {
	background-image: url(../images/ic-close.svg);
	background-color: var(--wp--preset--color--accent-1);
	border-radius: var(--j50-radius-pill);
}
#job50-pwdreset-modal {
	width: 460px;
	max-width: 94vw;
	padding: 32px 36px 28px;
	border-radius: 20px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .16);
}
.job50-pwdreset-loading { text-align: center; color: #999; padding: 24px 0; margin: 0; }

.job50-page-modal .trp-language-switcher{display: none;}

/* ── 25. Textarea bulle — moved to job50-core/assets/shared-wizard.css. ── */

/* ── 26. Fond bridge (espaces recruiter / seeker) ─────────
   Version statique performante + halo Job50+ one-shot.
   Le fond bleu/blanc reste présent en permanence, sans animation infinie.
   Le halo rouge/orangé joue une seule fois à l'ouverture puis se stabilise. */
body.job50-bridge-bg {
	background:
		linear-gradient(180deg, #f6fbff 0%, #e9f5fb 42%, #d9edf6 100%);
	background-attachment: fixed;
	isolation: isolate;
}

body.job50-bridge-bg::before,
body.job50-bridge-bg::after {
	content: "";
	position: fixed;
	inset: -8vh -8vw;
	pointer-events: none;
}

/* Fond aurora bleu/blanc — statique, sans blur ni animation permanente. */
body.job50-bridge-bg::before {
	z-index: -2;
	background:
		linear-gradient(116deg,
			transparent 0%,
			rgba(255, 255, 255, 0.62) 16%,
			rgba(136, 207, 231, 0.34) 30%,
			rgba(255, 255, 255, 0.30) 43%,
			transparent 61%),
		linear-gradient(34deg,
			transparent 4%,
			rgba(82, 171, 207, 0.22) 27%,
			rgba(255, 255, 255, 0.28) 41%,
			transparent 66%),
		linear-gradient(156deg,
			transparent 18%,
			rgba(111, 190, 220, 0.18) 39%,
			rgba(255, 255, 255, 0.18) 52%,
			transparent 72%),
		radial-gradient(ellipse 66% 34% at 15% 13%, rgba(130, 204, 226, 0.28) 0%, transparent 70%),
		radial-gradient(ellipse 82% 42% at 88% 78%, rgba(86, 167, 200, 0.24) 0%, transparent 74%);
	background-size:
		190% 160%,
		175% 150%,
		155% 145%,
		135% 120%,
		150% 125%;
	background-position:
		36% 24%,
		66% 62%,
		58% 32%,
		9% 7%,
		88% 86%;
	opacity: 1;
}

/* Halo Job50+ — coucher de soleil discret, une seule animation au chargement. */
body.job50-bridge-bg::after {
	z-index: -1;
	background:
		radial-gradient(ellipse 44% 30% at 78% 78%,
			rgba(237, 28, 36, 0.28) 0%,
			rgba(241, 92, 42, 0.17) 18%,
			rgba(255, 177, 94, 0.11) 34%,
			rgba(255, 255, 255, 0.10) 48%,
			transparent 72%),
		radial-gradient(ellipse 34% 24% at 63% 88%,
			rgba(237, 28, 36, 0.13) 0%,
			rgba(255, 255, 255, 0.08) 42%,
			transparent 74%);
	opacity: 0.38;
	transform: translate3d(0, 10px, 0) scale(0.985);
	transform-origin: 78% 78%;
	animation: job50BridgeSunsetHalo 2100ms cubic-bezier(.22, .7, .18, 1) 120ms 1 both;
}

body.job50-bridge-bg .wp-site-blocks,
body.job50-bridge-bg main,
body.job50-bridge-bg .entry-content { background: transparent; overflow: hidden; }

footer.wp-block-template-part > .has-base-background-color { background-color: transparent !important; }
footer.wp-block-template-part > .has-base-background-color .footer-nav::before { opacity: .5; }

@keyframes job50BridgeSunsetHalo {
	0% {
		opacity: 0;
		transform: translate3d(28px, 34px, 0) scale(0.72);
	}
	38% {
		opacity: 0.70;
		transform: translate3d(0, 0, 0) scale(1.04);
	}
	100% {
		opacity: 0.38;
		transform: translate3d(0, 10px, 0) scale(0.985);
	}
}

@media (prefers-reduced-motion: reduce) {
	body.job50-bridge-bg::after {
		animation: none;
		opacity: 0.34;
		transform: none;
	}
}



/* ── 26c. Footer logo arrow on animated bridge background ─────────
   The arrow is a CSS background on .footer-nav::before, not an <img>.
   Keep the existing PNG and opacity, but render it as white only on
   animated bridge pages. */
body.job50-bridge-bg .footer-nav::before {
	filter: brightness(0) invert(1);
	opacity: .5;
}

/* ── 26b. Job cards publiques — alignement All Jobs / Latest Jobs ── */
.job50-job-card__location .material-symbols-outlined {
	color: var(--wp--preset--color--accent-1, #ed1c24) !important;
}

.job50-job-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.job50-job-card__date {
	display: inline-flex !important;
	align-items: center;
	justify-content: flex-start;
	gap: 6px;
	margin-right: auto;
	text-align: left;
	white-space: nowrap;
}

.job50-job-card__date::before {
	content: "event";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	font-family: 'Material Symbols Outlined';
	font-weight: normal;
	font-style: normal;
	font-size: 18px;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-feature-settings: 'liga';
	font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
	color: var(--wp--preset--color--accent-1, #ed1c24);
}

.job50-job-card__apply {
	margin-left: auto;
}

/* ── 27. Alert Bell ─────────────────────────────────────── */
li.j50-bell-nav-item { position: relative; }

header.main-header li.j50-bell-nav-item > .j50-bell-btn {
	background: none;
	border: none;
	cursor: pointer;
	outline: none;
}
header.main-header li.j50-bell-nav-item > .j50-bell-btn::before {
	content: "circle_notifications";
}
header.main-header li.j50-bell-nav-item.has-alerts > .j50-bell-btn::before {
	color: var(--wp--preset--color--accent-3);
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}
header.main-header li.j50-bell-nav-item.has-alerts > .j50-bell-btn:hover::before,
header.main-header li.j50-bell-nav-item.has-alerts > .j50-bell-btn:focus-visible::before {
	color: #f07a20;
}
header.main-header li.j50-bell-nav-item.is-j50-bell-open > .j50-bell-btn > .j50-bell-label {
	opacity: 0 !important;
	visibility: hidden !important;
}

li.j50-bell-nav-item::after { right: 14px; }
li.j50-bell-nav-item > .j50-bell-dropdown {
	min-width: 300px;
	width: max-content;
	max-width: 380px;
	padding: 0;
	right: 0;
}

/* En-tête dropdown */
.j50-bell-dropdown__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 13px 16px 10px;
	border-bottom: 1px solid #f0f0f0;
}
.j50-bell-dropdown__title {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #1d2327;
}
.j50-bell-dismiss-all {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	font-size: 12px;
	font-family: inherit;
	color: #aaa;
	text-decoration: underline;
	transition: color .14s;
}
.j50-bell-dismiss-all:hover { color: var(--wp--preset--color--accent-1); }

/* Liste de notifications */
.j50-bell-list {
	list-style: none;
	margin: 0;
	padding: 6px 0 8px;
	max-height: 360px;
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: var(--j50-gray-300) transparent;
}
.j50-bell-empty {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 20px 16px;
	color: #888;
	font-size: 13px;
	font-weight: 400;
}
.j50-bell-empty .material-symbols-outlined {
	font-size: 22px;
	color: var(--wp--preset--color--accent-2);
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}
.j50-bell-item {
	display: flex;
	align-items: stretch;
	margin: 1px 8px;
	border-radius: var(--j50-radius-md);
	overflow: hidden;
	border-left: 3px solid transparent;
}
.j50-bell-item__icon { font-size: 20px; flex-shrink: 0; }
.j50-bell-dismiss {
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px 10px;
	color: #ccc;
	display: flex;
	align-items: center;
	font-family: inherit;
	transition: color .14s;
}
.j50-bell-dismiss:hover { color: var(--wp--preset--color--accent-1); }
.j50-bell-dismiss .material-symbols-outlined {
	font-size: 16px;
	font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}
.j50-bell-badge { display: none !important; }

@media (max-width: 520px) {
	li.j50-bell-nav-item > .j50-bell-dropdown {
		min-width: calc(100vw - 24px);
		right: -12px;
	}
}

/* ── 28. Header dropdown overflow / connector fix ─────────
   Keep WP navigation dropdowns above the bridge background and connect the
   avatar/bell arrow cleanly to its panel. */
body.job50-bridge-bg .wp-site-blocks {
	overflow: visible !important;
}

body.job50-bridge-bg main,
body.job50-bridge-bg .entry-content {
	overflow: clip;
}

@supports not (overflow: clip) {
	body.job50-bridge-bg main,
	body.job50-bridge-bg .entry-content {
		overflow: hidden;
	}
}

header.main-header,
header.main-header .wp-block-group,
header.main-header .wp-block-navigation,
header.main-header .wp-block-navigation__responsive-container,
header.main-header .wp-block-navigation__container,
header.main-header .wp-block-navigation-item,
header.main-header .wp-block-navigation-submenu {
	overflow: visible !important;
}

header.main-header {
	z-index: 100000;
}

li.job50-tools-avatar.wp-block-navigation-submenu::after,
li.j50-bell-nav-item::after {
	top: calc(100% + 4px);
	z-index: 100004;
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container,
li.j50-bell-nav-item > .j50-bell-dropdown {
	top: calc(100% + 10px);
	z-index: 100003;
}

/* Cover the dropdown top border exactly under the arrow, so no separator line
   appears between the triangle and the panel. */
li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container::before,
li.j50-bell-nav-item > .j50-bell-dropdown::before {
	content: "";
	position: absolute;
	top: 0;
	height: 1px;
	width: 30px;
	background: var(--wp--preset--color--base);
	z-index: 2;
	pointer-events: none;
}

li.job50-tools-avatar.wp-block-navigation-submenu > .wp-block-navigation__submenu-container::before {
	right: 33px;
}

li.j50-bell-nav-item > .j50-bell-dropdown::before {
	right: 5px;
}

/* Senior Friendly Company label login notice */
.job50-sfc-login-intent {
    position: relative;
    width: min(960px, calc(100% - 32px));
    max-width: 960px;
    margin: 3% auto;
    border: solid 1px var(--j50-gray-300);
    border-radius: 24px;
    padding: 32px;
    background: var(--wp--preset--color--base);
    box-shadow: 0 8px 16px rgba(0, 0, 0, .03);
}

.job50-sfc-login-intent p {
    max-width: none;
    margin: 0;
    font-size: var(--wp--preset--font-size--medium);
    line-height: 1.45;
    color: var(--wp--preset--color--contrast);
    text-align: center;
}


/* ── TranslatePress floating switcher — Job50 fix ───────── */

.trp-floating-switcher {
	overflow: visible !important;
}

.trp-floating-switcher .trp-language-switcher-inner {
	overflow: visible !important;
}

/* Closed state */
.trp-ls-dropdown .trp-language-item__current[aria-expanded="false"] + .trp-switcher-dropdown-list,
.trp-ls-dropdown .trp-switcher-dropdown-list[hidden],
.trp-ls-dropdown .trp-switcher-dropdown-list[inert] {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
	height: 0 !important;
	max-height: 0 !important;
	overflow: hidden !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Open state */
.trp-ls-dropdown .trp-language-item__current[aria-expanded="true"] + .trp-switcher-dropdown-list {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	pointer-events: auto !important;
	height: auto !important;
	max-height: none !important;
	padding-top: 5px !important;
	padding-bottom: 6px !important;
	overflow-x: hidden !important;
	overflow-y: visible !important;
	scrollbar-width: none !important;
}

.trp-ls-dropdown .trp-language-item__current[aria-expanded="true"] + .trp-switcher-dropdown-list::-webkit-scrollbar {
	display: none !important;
}

/* Current flag */
.trp-floating-switcher .trp-language-item__current.job50-trp-language-item {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: var(--switcher-width, 49px) !important;
	min-width: var(--switcher-width, 49px) !important;
	max-width: var(--switcher-width, 49px) !important;
	min-height: 34px !important;
	padding: 8px 0 !important;
	margin: 0 !important;
	box-sizing: border-box !important;
	text-decoration: none !important;
	white-space: nowrap !important;
	overflow: hidden !important;
}

/* Dropdown items */
.trp-floating-switcher .trp-switcher-dropdown-list .trp-language-item.job50-trp-language-item {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: var(--switcher-width, 49px) !important;
	min-width: var(--switcher-width, 49px) !important;
	max-width: var(--switcher-width, 49px) !important;
	min-height: 30px !important;
	padding: 6px 0 !important;
	margin: 0 !important;
	box-sizing: border-box !important;
	text-decoration: none !important;
	white-space: nowrap !important;
	overflow: hidden !important;
}

/* Flags */
.trp-floating-switcher .trp-language-item.job50-trp-language-item img.trp-flag-image,
.trp-floating-switcher .trp-language-item__current.job50-trp-language-item img.trp-flag-image {
	display: block !important;
	width: var(--flag-size, 18px) !important;
	height: auto !important;
	aspect-ratio: var(--aspect-ratio, 4 / 3) !important;
	object-fit: cover !important;
	border-radius: var(--flag-radius, 2px) !important;
	margin: 0 !important;
	flex: 0 0 auto !important;
}

/* Remove old inline label if present */
.trp-floating-switcher .job50-trp-language-label {
	display: none !important;
}

/* External tooltip */
.job50-trp-language-tooltip {
	position: fixed;
	z-index: 1000000;
	left: 0;
	top: 0;
	transform: translateY(-50%) translateX(-4px);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	padding: 7px 11px;
	border-radius: var(--j50-radius-pill, 9999em);
	background: rgba(255, 255, 255, 0.96);
	border: 1px solid var(--j50-gray-300, #dedede);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.10);
	color: var(--j50-gray-900, #2a2a2a);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	transition:
		opacity 0.16s ease,
		transform 0.16s ease,
		visibility 0.16s ease;
}

.job50-trp-language-tooltip.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(-50%) translateX(0);
}