/*
 * Studio Hub Emploi — visuel des offres (refonte du 13/10, d'après les références de Lulu).
 * Charte du site : Space Grotesk, noir #202020, gris #6b7280, jaune #ffd800.
 * Cartes blanches à bord fin et ombre douce sur fond chaud, boutons jaunes en dégradé, repères en pastilles
 * colorées. Contrastes AA, cibles tactiles ≥ 44 px, mobile d'abord.
 */

:root {
	--shub-jaune: #ffd800;
	--shub-jaune-fonce: #ffc900;
	--shub-jaune-pale: #fff6cc;
	--shub-jaune-texte: #7a5a00;      /* sur jaune pâle : 6,1:1 */
	--shub-noir: #202020;
	--shub-texte: #202020;
	--shub-gris: #6b7280;             /* 4,8:1 sur blanc */
	--shub-trait: #ebeae4;
	--shub-trait-fort: #d9d8d0;
	--shub-fond: #faf9f6;
	--shub-fond-2: #f3f2ed;
	--shub-blanc: #ffffff;
	--shub-vert: #15803d;
	--shub-vert-pale: #e7f6ed;
	--shub-erreur: #b42318;
	--shub-succes: #15803d;
	--shub-rayon: 16px;
	--shub-rayon-grand: 20px;
	--shub-rayon-champ: 12px;
	--shub-ombre: 0 1px 2px rgba(32, 32, 32, .04), 0 8px 24px -10px rgba(32, 32, 32, .10);
	--shub-ombre-forte: 0 2px 4px rgba(32, 32, 32, .04), 0 22px 44px -18px rgba(32, 32, 32, .22);
	--shub-transition: 180ms cubic-bezier(.2, .8, .2, 1);
	--shub-police: "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* ---------- Communs ---------- */

.shub-piege { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.fieldset-job_description { display: none; } /* remplacé par les trois blocs Missions, Profil, Conditions */
.shub-ico { flex: 0 0 auto; width: 1.05em; height: 1.05em; vertical-align: -0.15em; }
.shub-fiche, .shub-candidature, .shub-depot, .shub-filtres, ul.job_listings, .shub-entete-liste, .shub-barre-postuler { font-family: var(--shub-police); }

/* Bouton principal : jaune en dégradé, ombre dorée, flèche qui avance au survol. */
.shub-bouton,
.shub-candidature .shub-envoyer,
.shub-depot-form input[type="submit"],
#job_preview input[type="submit"],
.shub-filtres input[type="submit"] {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	min-height: 48px; padding: .75em 1.5em;
	border: 0; border-radius: var(--shub-rayon-champ);
	background: linear-gradient(180deg, #ffe24d 0%, #ffcf0f 100%); color: var(--shub-noir) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 1px 2px rgba(32, 32, 32, .14), 0 10px 22px -10px rgba(230, 170, 0, .8);
	font-family: var(--shub-police); font-size: 16px; font-weight: 700; line-height: 1.2;
	text-decoration: none !important; cursor: pointer; touch-action: manipulation;
	transition: transform var(--shub-transition), box-shadow var(--shub-transition), filter var(--shub-transition);
}
.shub-bouton:hover,
.shub-candidature .shub-envoyer:hover,
.shub-depot-form input[type="submit"]:hover,
#job_preview input[type="submit"]:hover,
.shub-filtres input[type="submit"]:hover {
	transform: translateY(-1px); filter: saturate(1.08);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 2px 4px rgba(32, 32, 32, .14), 0 16px 30px -12px rgba(230, 170, 0, .9);
}
.shub-bouton:active,
.shub-candidature .shub-envoyer:active,
.shub-depot-form input[type="submit"]:active { transform: translateY(0); }
.shub-bouton .shub-ico { transition: transform var(--shub-transition); }
.shub-bouton:hover .shub-ico-fleche { transform: translateX(3px); }
.shub-bouton-plein { width: 100%; }
/* Bouton secondaire (« Modifier » de l'aperçu, « Plus d'offres ») */
#job_preview input[name="edit_job"] {
	background: var(--shub-blanc); box-shadow: inset 0 0 0 1px var(--shub-trait-fort), 0 1px 2px rgba(32, 32, 32, .06);
}

.shub-fiche :focus-visible, .shub-depot :focus-visible, .shub-filtres :focus-visible,
.shub-carte-lien:focus-visible, .shub-candidature :focus-visible, .shub-barre-postuler :focus-visible,
.shub-entete-liste a:focus-visible {
	outline: 2px solid var(--shub-noir); outline-offset: 2px; box-shadow: 0 0 0 5px rgba(255, 216, 0, .55);
}

/* Étiquette en pastille (« ● Offre d'emploi · Hier ») */
.shub-etiquette {
	display: inline-flex; align-items: center; gap: 8px; margin: 0 0 12px; padding: 4px 12px;
	border: 1px solid var(--shub-trait); border-radius: 999px; background: var(--shub-blanc);
	font-size: 13px; font-weight: 600; line-height: 1.5; color: var(--shub-gris);
}
.shub-point { width: 8px; height: 8px; border-radius: 50%; background: var(--shub-jaune-fonce); box-shadow: 0 0 0 3px rgba(255, 201, 0, .22); flex: 0 0 auto; }
.shub-point-gris { background: #9ca3af; box-shadow: 0 0 0 3px rgba(156, 163, 175, .22); }

/* Champs (dépôt, candidature, filtres) : 48 px, texte 16 px (pas de zoom automatique sur iPhone). */
.shub-depot-form input[type="text"], .shub-depot-form input[type="email"], .shub-depot-form input[type="url"],
.shub-depot-form input[type="tel"], .shub-depot-form select, .shub-depot-form textarea,
.shub-candidature input[type="text"], .shub-candidature input[type="email"], .shub-candidature input[type="tel"],
.shub-candidature textarea, .shub-filtres input[type="text"], .shub-filtres select {
	width: 100%; max-width: 100%; box-sizing: border-box; min-height: 48px;
	padding: .65em .9em; border: 1px solid var(--shub-trait-fort); border-radius: var(--shub-rayon-champ);
	background: var(--shub-blanc); color: var(--shub-texte); font-family: var(--shub-police); font-size: 16px; line-height: 1.4;
	box-shadow: 0 1px 2px rgba(32, 32, 32, .04);
	transition: border-color var(--shub-transition), box-shadow var(--shub-transition);
}
.shub-depot-form textarea, .shub-candidature textarea { min-height: 120px; resize: vertical; }
.shub-depot-form input:hover, .shub-depot-form select:hover, .shub-depot-form textarea:hover,
.shub-candidature input:hover, .shub-candidature textarea:hover { border-color: #b9b8ae; }
.shub-depot-form input:focus, .shub-depot-form select:focus, .shub-depot-form textarea:focus,
.shub-candidature input:focus, .shub-candidature textarea:focus, .shub-filtres input:focus, .shub-filtres select:focus {
	border-color: var(--shub-noir); outline: none; box-shadow: 0 0 0 4px rgba(255, 216, 0, .45);
}
.shub-depot-form ::placeholder, .shub-candidature ::placeholder, .shub-filtres ::placeholder { color: #8a8f98; }

/* ---------- Liste : bandeau « Vous recrutez ? » ---------- */

.shub-entete-liste {
	position: relative; overflow: hidden;
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px;
	margin: 0 0 24px; padding: 22px 24px; border-radius: var(--shub-rayon-grand);
	background: radial-gradient(420px 160px at 100% 0%, rgba(255, 216, 0, .28), transparent 70%), #1c1c1c;
	color: var(--shub-blanc); box-shadow: var(--shub-ombre-forte);
}
.shub-entete-liste p { margin: 0; }
.shub-entete-liste strong { color: var(--shub-blanc); font-size: 1.08em; font-weight: 700; }
.shub-entete-liste a {
	display: inline-flex; align-items: center; min-height: 48px; padding: .6em 1.3em;
	border-radius: var(--shub-rayon-champ); background: linear-gradient(180deg, #ffe24d 0%, #ffcf0f 100%);
	color: var(--shub-noir) !important; font-weight: 700; text-decoration: none;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 10px 22px -10px rgba(255, 200, 0, .7);
	transition: transform var(--shub-transition);
}
.shub-entete-liste a:hover { transform: translateY(-1px); }
.shub-entete-liste a::after { content: "→"; margin-left: .5em; }

/* ---------- Liste : filtres ---------- */

.shub-filtres {
	margin: 0 0 20px; padding: 16px; border: 1px solid var(--shub-trait); border-radius: var(--shub-rayon-grand);
	background: var(--shub-blanc); box-shadow: var(--shub-ombre);
}
.shub-filtres .search_jobs { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 0; background: none; border: 0; }
.shub-filtres .search_jobs > div { float: none !important; width: auto !important; padding: 0 !important; margin: 0; }
.shub-filtres label { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--shub-texte); }
.shub-filtres .shub-filtre-bouton { align-self: end; }
.shub-filtres .shub-filtre-bouton input { width: 100%; }
.shub-filtres .select2-container { width: 100% !important; }
.shub-filtres .job_types {
	display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; background: none; border: 0;
}
.shub-filtres .job_types li { float: none; width: auto; margin: 0; padding: 0; border: 0; }
.shub-filtres .job_types label {
	display: inline-flex; align-items: center; gap: .45em; min-height: 40px; margin: 0; padding: .35em .95em;
	border: 1px solid var(--shub-trait-fort); border-radius: 999px; background: var(--shub-blanc);
	font-size: 14px; font-weight: 600; cursor: pointer;
}
.shub-filtres .job_types input { accent-color: var(--shub-noir); width: 16px; height: 16px; margin: 0; }
.shub-filtres .showing_jobs { margin: 12px 0 0; padding: 0; background: none; border: 0; font-size: 14px; color: var(--shub-gris); }
.shub-filtres .showing_jobs a { color: var(--shub-noir); font-weight: 600; }

@media (min-width: 768px) {
	.shub-filtres { padding: 20px; }
	.shub-filtres .search_jobs { grid-template-columns: 1.3fr 1fr 1fr auto; align-items: end; }
	.shub-filtres .shub-filtre-bouton input { width: auto; }
}

/* ---------- Liste : cartes ---------- */

ul.job_listings { margin: 0; padding: 0; border: 0; display: grid; gap: 12px; list-style: none; }
ul.job_listings li.shub-carte { margin: 0; padding: 0; border: 0; background: none; list-style: none; }
ul.job_listings li.shub-carte::before { display: none; }
.shub-carte-lien {
	display: grid; grid-template-columns: 56px 1fr; gap: 14px 16px; align-items: start;
	padding: 18px; border: 1px solid var(--shub-trait); border-radius: var(--shub-rayon-grand);
	background: var(--shub-blanc); color: var(--shub-texte) !important; text-decoration: none !important;
	box-shadow: var(--shub-ombre);
	transition: border-color var(--shub-transition), transform var(--shub-transition), box-shadow var(--shub-transition);
}
.shub-carte-lien:hover { border-color: var(--shub-trait-fort); transform: translateY(-2px); box-shadow: var(--shub-ombre-forte); }
.shub-carte-corps { min-width: 0; }
.shub-carte-titre { margin: 0 0 2px; font-size: 18px; font-weight: 700; line-height: 1.3; letter-spacing: -.01em; color: var(--shub-noir); }
.shub-carte-entreprise { margin: 0 0 10px; font-size: 15px; color: var(--shub-gris); }
.shub-carte-fin {
	grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding-top: 12px; border-top: 1px solid var(--shub-trait); font-size: 14px; color: var(--shub-gris);
}
.shub-carte-voir { display: inline-flex; align-items: center; gap: .35em; font-weight: 700; color: var(--shub-noir); }
.shub-carte-lien:hover .shub-carte-voir .shub-ico { transform: translateX(3px); }
.shub-carte-voir .shub-ico { transition: transform var(--shub-transition); }
ul.job_listings li.job_position_featured .shub-carte-lien { border-color: #f3e3a0; background: linear-gradient(180deg, #fffbea, #fff); }
ul.job_listings li.job_position_filled .shub-carte-lien { opacity: .65; }

@media (min-width: 768px) {
	.shub-carte-lien { grid-template-columns: 56px 1fr auto; padding: 20px 22px; }
	.shub-carte-fin { grid-column: auto; flex-direction: column; align-items: flex-end; justify-content: space-between; align-self: stretch; padding: 0; border: 0; }
	.shub-carte-titre { font-size: 19px; }
}

/* Monogramme / logo */
.shub-vignette {
	display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px;
	border-radius: 14px; background: linear-gradient(140deg, #ffe55c 0%, #ffc900 100%); color: var(--shub-noir);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), 0 6px 14px -8px rgba(230, 170, 0, .9);
	font-size: 24px; font-weight: 700; line-height: 1; flex: 0 0 auto;
}
.shub-vignette-logo { background: var(--shub-blanc); border: 1px solid var(--shub-trait); box-shadow: 0 1px 2px rgba(32, 32, 32, .05); overflow: hidden; }
.shub-vignette-logo img { width: 100%; height: 100%; object-fit: contain; }

/* Pastilles (cartes de la liste) : neutres, salaire en jaune pâle */
.shub-pastilles { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.shub-pastilles li { margin: 0; padding: 0; list-style: none; }
.shub-pastilles li::before { display: none; }
.shub-pastille {
	display: inline-flex; align-items: center; gap: .4em; min-height: 28px; padding: .2em .7em;
	border-radius: 999px; background: var(--shub-fond-2); color: var(--shub-texte);
	font-size: 13.5px; font-weight: 600; line-height: 1.3;
}
.shub-pastille .shub-ico { width: 14px; height: 14px; color: var(--shub-gris); }
.shub-pastille.shub-salaire { background: var(--shub-jaune-pale); color: var(--shub-jaune-texte); font-weight: 700; }
.shub-pastille.shub-salaire .shub-ico { color: var(--shub-jaune-texte); }

/* Pagination « Plus d'offres » de WP Job Manager */
.job_listings + .load_more_jobs, a.load_more_jobs {
	display: flex; align-items: center; justify-content: center; min-height: 48px; margin: 16px 0 0;
	border: 1px solid var(--shub-trait-fort); border-radius: var(--shub-rayon-champ); background: var(--shub-blanc);
	color: var(--shub-noir) !important; font-weight: 700; text-decoration: none; box-shadow: var(--shub-ombre);
}
a.load_more_jobs:hover { border-color: var(--shub-noir); }
.no_job_listings_found { padding: 24px; border: 1px dashed var(--shub-trait-fort); border-radius: var(--shub-rayon-grand); text-align: center; color: var(--shub-gris); }

/* ---------- Fiche offre ---------- */

/* Le titre du thème est remplacé par celui de l'en-tête de la fiche (un seul h1). */
body.single-job_listing .hero-section { display: none !important; }

.shub-fil { margin: 4px 0 14px; }
.shub-fil a {
	display: inline-flex; align-items: center; gap: 6px; min-height: 44px;
	font-size: 14px; font-weight: 600; color: var(--shub-gris) !important; text-decoration: none !important;
	transition: color var(--shub-transition);
}
.shub-fil a:hover { color: var(--shub-noir) !important; }
.shub-fil a .shub-ico { transition: transform var(--shub-transition); }
.shub-fil a:hover .shub-ico { transform: translateX(-3px); }

.shub-hero {
	position: relative; margin: 0 0 24px; padding: 22px; border: 1px solid var(--shub-trait); border-radius: var(--shub-rayon-grand);
	background: radial-gradient(640px 220px at 0% 0%, rgba(255, 216, 0, .16), transparent 70%), var(--shub-blanc);
	box-shadow: var(--shub-ombre);
}
.shub-hero-haut { display: flex; gap: 16px; align-items: flex-start; }
.shub-hero-corps { min-width: 0; }
.shub-hero-titre {
	margin: 0 0 6px !important; padding: 0; font-family: var(--shub-police);
	font-size: clamp(26px, 5vw, 40px); font-weight: 700; line-height: 1.1; letter-spacing: -.025em; color: var(--shub-noir);
	overflow-wrap: anywhere;
}
.shub-hero-entreprise { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin: 0; font-size: 16px; font-weight: 600; color: var(--shub-texte); }
.shub-hero-entreprise a { font-size: 14px; font-weight: 500; color: var(--shub-gris) !important; text-underline-offset: 3px; }
.shub-hero-entreprise a:hover { color: var(--shub-noir) !important; }

/* Repères : contrat, temps, lieu, salaire */
.shub-faits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 20px 0 0; padding: 0; }
.shub-fait {
	display: grid; grid-template-columns: 36px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 10px; align-items: center;
	padding: 12px; border: 1px solid var(--shub-trait); border-radius: 14px; background: var(--shub-fond);
}
.shub-fait-ico {
	grid-row: 1 / 3; display: inline-flex; align-items: center; justify-content: center;
	width: 36px; height: 36px; border-radius: 10px; background: var(--shub-fond-2); color: var(--shub-texte);
}
.shub-fait-ico .shub-ico { width: 18px; height: 18px; }
.shub-fait dt { margin: 0; font-size: 12.5px; font-weight: 500; line-height: 1.3; color: var(--shub-gris); }
.shub-fait dd { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--shub-noir); overflow-wrap: anywhere; }
.shub-fait-contrat .shub-fait-ico { background: #e8efff; color: #2f5bd3; }
.shub-fait-temps .shub-fait-ico { background: #efeaff; color: #6b46e0; }
.shub-fait-lieu .shub-fait-ico { background: var(--shub-vert-pale); color: var(--shub-vert); }
.shub-fait-salaire { background: #fffbea; border-color: #f3e3a0; }
.shub-fait-salaire .shub-fait-ico { background: var(--shub-jaune-pale); color: var(--shub-jaune-texte); }

.shub-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin: 20px 0 0; }

/* Téléphone : initiale au-dessus du titre (toute la largeur pour le titre), repères en liste d'une colonne. */
@media (max-width: 767px) {
	.shub-hero { padding: 20px 18px; }
	.shub-hero-haut { flex-direction: column; gap: 12px; }
	.shub-hero .shub-vignette { width: 48px; height: 48px; font-size: 21px; border-radius: 13px; }
	.shub-faits { grid-template-columns: 1fr; gap: 8px; margin-top: 18px; }
	.shub-fait { padding: 10px 12px; }
	.shub-hero-actions .shub-bouton { width: 100%; }
	.shub-hero-actions { justify-content: center; }
	.shub-bloc, .shub-candidature { padding: 22px 18px; }
}
.shub-hero-note { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--shub-gris); }
.shub-hero-note .shub-ico { color: var(--shub-vert); }

/* Corps : description en carte, encart « Postuler » à côté sur ordinateur */
.shub-fiche-grille { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: start; }
.shub-fiche-principal { min-width: 0; }
.shub-bloc {
	padding: 24px 22px; border: 1px solid var(--shub-trait); border-radius: var(--shub-rayon-grand);
	background: var(--shub-blanc); box-shadow: var(--shub-ombre);
}
.shub-bloc-info p { margin: 0; color: var(--shub-gris); }
.shub-fiche-description { font-size: 16.5px; line-height: 1.7; color: var(--shub-texte); }
.shub-fiche-description > * { max-width: 72ch; }
.shub-fiche-description p { margin: 0 0 1em; }
.shub-fiche-description > :last-child { margin-bottom: 0; }
.shub-intertitre {
	display: flex; align-items: center; gap: 12px; margin: 28px 0 14px !important; padding: 26px 0 0 !important;
	border-top: 1px solid var(--shub-trait); font-family: var(--shub-police);
	font-size: 20px !important; font-weight: 700; line-height: 1.25; letter-spacing: -.015em; color: var(--shub-noir);
}
.shub-fiche-description > .shub-intertitre:first-child { margin-top: 0 !important; padding-top: 0 !important; border-top: 0; }
.shub-intertitre-ico {
	display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
	width: 34px; height: 34px; border-radius: 10px; background: var(--shub-jaune-pale); color: var(--shub-jaune-texte);
}
.shub-intertitre-ico .shub-ico { width: 18px; height: 18px; }
/* Listes : coche verte dans un rond */
.shub-fiche-description ul { margin: 0 0 1.1em; padding: 0; list-style: none; }
.shub-fiche-description li { position: relative; margin: 0 0 .55em; padding-left: 32px; }
.shub-fiche-description li::before {
	content: ""; position: absolute; left: 0; top: .2em; width: 22px; height: 22px; border-radius: 50%;
	background: var(--shub-vert-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315803d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.shub-fiche-description ol { padding-left: 1.3em; }

.shub-fiche-cote { display: none; }
.shub-encart {
	padding: 22px; border: 1px solid var(--shub-trait); border-radius: var(--shub-rayon-grand);
	background: var(--shub-blanc); box-shadow: var(--shub-ombre-forte);
}
.shub-encart-titre { margin: 0 0 14px; font-size: 18px; font-weight: 700; letter-spacing: -.01em; color: var(--shub-noir); }
.shub-encart-liste { display: grid; gap: 10px; margin: 0 0 18px; padding: 0; list-style: none; }
.shub-encart-liste li { display: flex; gap: 10px; align-items: flex-start; margin: 0; font-size: 14.5px; line-height: 1.45; color: var(--shub-texte); }
.shub-encart-liste li::before { display: none; }
.shub-encart-liste .shub-ico {
	width: 20px; height: 20px; padding: 3px; box-sizing: border-box; margin-top: 1px;
	border-radius: 50%; background: var(--shub-vert-pale); color: var(--shub-vert);
}

@media (min-width: 768px) {
	.shub-hero { padding: 30px 32px; }
	.shub-hero-haut { gap: 20px; }
	.shub-hero .shub-vignette { width: 64px; height: 64px; font-size: 28px; border-radius: 16px; }
	.shub-faits { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.shub-bloc { padding: 32px; }
}
@media (min-width: 1024px) {
	.shub-fiche-grille { grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; }
	.shub-fiche-cote { display: block; position: sticky; top: 100px; }
	.shub-hero-actions { display: none; } /* l'encart à droite porte le bouton */
}

/* Thème : les méta de WP Job Manager ne sont plus utilisées par la fiche. */
.shub-fiche .job-listing-meta { border: 0; margin: 0; padding: 0; }

/* ---------- Candidature ---------- */

.shub-candidature {
	margin: 24px 0; padding: 24px 22px; border: 1px solid var(--shub-trait); border-radius: var(--shub-rayon-grand);
	background: var(--shub-blanc); box-shadow: var(--shub-ombre); scroll-margin-top: 90px;
}
.shub-candidature h2 { margin: 0 0 6px; font-family: var(--shub-police); font-size: 26px; font-weight: 700; line-height: 1.15; letter-spacing: -.02em; color: var(--shub-noir); }
.shub-candidature-intro { margin: 0 0 22px; font-size: 15px; color: var(--shub-gris); }
.shub-candidature .shub-champ { margin: 0 0 16px; }
.shub-candidature .shub-champ label { display: block; margin-bottom: 6px; font-size: 14.5px; font-weight: 600; color: var(--shub-texte); }
.shub-candidature .shub-aide { font-weight: 500; color: var(--shub-gris); font-size: 13.5px; }

/* Zone du CV : toute la zone est cliquable (le vrai champ la recouvre, transparent). */
.shub-zone-cv {
	position: relative; display: flex; align-items: center; gap: 14px; padding: 16px;
	border: 1.5px dashed var(--shub-trait-fort); border-radius: 14px; background: var(--shub-fond);
	transition: border-color var(--shub-transition), background-color var(--shub-transition);
}
.shub-zone-cv:hover { border-color: var(--shub-noir); background: var(--shub-blanc); }
.shub-zone-cv:focus-within { border-color: var(--shub-noir); box-shadow: 0 0 0 4px rgba(255, 216, 0, .45); }
.shub-zone-cv input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.shub-zone-cv-ico {
	display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
	width: 42px; height: 42px; border-radius: 12px; background: var(--shub-jaune-pale); color: var(--shub-jaune-texte);
}
.shub-zone-cv-ico .shub-ico { width: 20px; height: 20px; }
.shub-zone-cv-texte { display: grid; gap: 2px; min-width: 0; }
.shub-zone-cv-texte strong { font-size: 15px; font-weight: 700; color: var(--shub-noir); overflow-wrap: anywhere; }
.shub-zone-cv.est-rempli { border-style: solid; border-color: #9fd8b4; background: #f3fbf6; }
.shub-zone-cv.est-rempli .shub-zone-cv-ico { background: var(--shub-vert-pale); color: var(--shub-vert); }

.shub-candidature .shub-case {
	display: flex; gap: 12px; align-items: flex-start; margin: 0 0 10px; padding: 14px;
	border: 1px solid var(--shub-trait); border-radius: 14px; background: var(--shub-fond);
	font-size: 14.5px; line-height: 1.5;
}
.shub-candidature .shub-case label { cursor: pointer; }
.shub-candidature .shub-case input { flex: 0 0 auto; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--shub-noir); cursor: pointer; }
.shub-candidature .shub-envoyer { width: 100%; margin-top: 10px; }
.shub-candidature .shub-envoyer[disabled] { opacity: .55; cursor: progress; transform: none; }
.shub-candidature .shub-mentions { margin: 14px 0 0; font-size: 13px; line-height: 1.55; color: var(--shub-gris); }
.shub-candidature .shub-mentions a { color: var(--shub-noir); }
.shub-erreurs { margin: 0 0 18px; padding: 14px 16px; border: 1px solid #f5c2bd; border-radius: 14px; background: #fef3f2; color: #7a271a; }
.shub-erreurs p, .shub-erreurs ul { margin: 0; }
.shub-erreurs ul { padding-left: 1.2em; margin-top: 4px; }
.shub-merci { border-color: #bfe5cc; background: linear-gradient(180deg, #f3fbf6, #fff 60%); }
.shub-merci > p:first-child strong { display: block; margin-bottom: 4px; font-size: 22px; font-weight: 700; color: var(--shub-succes); }
.shub-indisponible { background: var(--shub-fond); box-shadow: none; }
@media (min-width: 768px) {
	.shub-candidature { padding: 32px; }
	.shub-form-candidature { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; }
	.shub-form-candidature > * { grid-column: 1 / -1; }
	.shub-form-candidature > .shub-champ:nth-of-type(1), .shub-form-candidature > .shub-champ:nth-of-type(2),
	.shub-form-candidature > .shub-champ:nth-of-type(3), .shub-form-candidature > .shub-champ:nth-of-type(4) { grid-column: auto; }
	.shub-candidature .shub-envoyer { width: auto; min-width: 260px; justify-self: start; }
}

/* Bloc bilan de compétences (T10) */
.shub-bdc {
	margin: 24px 0 8px; padding: 18px 22px; border: 1px solid #f3e3a0; border-radius: var(--shub-rayon-grand);
	background: linear-gradient(135deg, #fffbea 0%, #ffffff 100%); font-size: 15px; line-height: 1.6; color: var(--shub-texte);
}
.shub-bdc p { margin: 0; }
.shub-bdc a { color: var(--shub-noir); font-weight: 700; text-decoration: underline; text-decoration-color: var(--shub-jaune-fonce); text-decoration-thickness: 3px; text-underline-offset: 3px; }

/* Barre « Postuler » sur téléphone */
.shub-barre-postuler {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, .88); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	border-top: 1px solid var(--shub-trait); box-shadow: 0 -10px 30px -16px rgba(32, 32, 32, .25);
	transition: transform 220ms ease-out;
}
.shub-barre-postuler .shub-bouton { width: 100%; }
.shub-barre-postuler.est-cachee { transform: translateY(110%); }
@media (min-width: 1024px) { .shub-barre-postuler { display: none; } }
body.single-job_listing { padding-bottom: 76px; }
@media (min-width: 1024px) { body.single-job_listing { padding-bottom: 0; } }

/* ---------- Dépôt d'offre ---------- */

.shub-depot { max-width: 780px; }
.shub-depot-intro {
	position: relative; overflow: hidden; margin: 0 0 24px; padding: 24px 24px 20px; border-radius: var(--shub-rayon-grand);
	background: radial-gradient(420px 180px at 100% 0%, rgba(255, 216, 0, .28), transparent 70%), #1c1c1c;
	color: var(--shub-blanc); box-shadow: var(--shub-ombre-forte);
}
.shub-depot-accroche { margin: 0 0 14px; font-size: 24px; font-weight: 700; line-height: 1.2; letter-spacing: -.02em; color: var(--shub-blanc); }
.shub-depot-atouts { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.shub-depot-atouts li { display: flex; gap: .6em; align-items: flex-start; margin: 0; font-size: 15px; font-weight: 500; color: #e9e9e4; }
.shub-depot-atouts li::before { display: none; }
.shub-depot-atouts .shub-ico { width: 20px; height: 20px; padding: 3px; box-sizing: border-box; border-radius: 50%; background: rgba(255, 216, 0, .18); color: var(--shub-jaune); margin-top: .05em; }

.shub-depot-form h2 { border: 0; }
.shub-etape {
	margin: 0 0 16px; padding: 22px; border: 1px solid var(--shub-trait); border-radius: var(--shub-rayon-grand);
	background: var(--shub-blanc); box-shadow: var(--shub-ombre);
}
.shub-etape-titre { display: flex; align-items: center; gap: 12px; margin: 0 0 16px !important; padding: 0 !important; font-size: 20px !important; font-weight: 700; letter-spacing: -.015em; color: var(--shub-noir); }
.shub-etape-num {
	display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 32px; height: 32px;
	border-radius: 10px; background: var(--shub-jaune-pale); color: var(--shub-jaune-texte); font-size: 15px; font-weight: 700;
}
.shub-etape-aide { margin: -6px 0 14px; font-size: 14px; color: var(--shub-gris); }
.shub-etape-champs { display: grid; grid-template-columns: 1fr; gap: 0 16px; }
.shub-depot-form fieldset { margin: 0 0 16px; padding: 0; border: 0; }
.shub-depot-form fieldset:last-child { margin-bottom: 0; }
.shub-depot-form fieldset > label { display: block; float: none; width: auto; margin: 0 0 6px; padding: 0; font-size: 14.5px; font-weight: 600; color: var(--shub-texte); }
.shub-depot-form fieldset > label small { font-weight: 500; color: var(--shub-gris); }
.shub-depot-form fieldset .field { float: none; width: auto; margin: 0; }
.shub-depot-form .field .description { display: block; margin-top: 6px; font-size: 13.5px; line-height: 1.45; color: var(--shub-gris); }
.shub-depot-form .fieldset-type-checkbox { display: flex; flex-direction: row-reverse; justify-content: flex-end; align-items: flex-start; gap: 12px; }
.shub-depot-form .fieldset-type-checkbox > label { margin: 0; font-weight: 600; line-height: 1.5; }
.shub-depot-form .fieldset-type-checkbox input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--shub-noir); }
.shub-depot-form .fieldset-type-file input[type="file"] { width: 100%; padding: 12px; border: 1.5px dashed var(--shub-trait-fort); border-radius: 14px; background: var(--shub-fond); }
.shub-depot-form .select2-container .select2-selection--single { min-height: 48px; border: 1px solid var(--shub-trait-fort); border-radius: var(--shub-rayon-champ); }
.shub-depot-form .select2-container .select2-selection__rendered { line-height: 46px; font-size: 16px; }
.shub-depot-form .select2-container .select2-selection__arrow { height: 46px; }
.shub-depot-envoi { margin: 24px 0 6px; }
.shub-depot-envoi input[type="submit"] { width: 100%; }
.shub-depot-suite { margin: 0; font-size: 14px; color: var(--shub-gris); }
.shub-depot .job-manager-error, .job-manager-error {
	margin: 0 0 16px; padding: 14px 16px; border: 1px solid #f5c2bd; border-radius: 14px; background: #fef3f2; color: #7a271a;
}
.shub-depot .job-manager-message, .job-manager-message {
	margin: 0 0 16px; padding: 14px 16px; border: 1px solid #bfe5cc; border-radius: 14px; background: #f3fbf6; color: #10391d;
}

@media (min-width: 768px) {
	.shub-etape { padding: 28px 30px; }
	.shub-etape-champs { grid-template-columns: 1fr 1fr; }
	.shub-etape-champs > fieldset { grid-column: 1 / -1; }
	.shub-etape-champs > .fieldset-job_category, .shub-etape-champs > .fieldset-job_type,
	.shub-etape-champs > .fieldset-shub_commune, .shub-etape-champs > .fieldset-shub_code_postal,
	.shub-etape-champs > .fieldset-shub_salaire_min, .shub-etape-champs > .fieldset-shub_salaire_max,
	.shub-etape-champs > .fieldset-company_name, .shub-etape-champs > .fieldset-shub_siret,
	.shub-etape-champs > .fieldset-shub_contact_nom, .shub-etape-champs > .fieldset-shub_contact_tel { grid-column: auto; }
	.shub-depot-envoi input[type="submit"] { width: auto; min-width: 260px; }
}

/* Aperçu avant envoi (étape 2 de WP Job Manager) */
#job_preview .job_listing_preview_title {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
	margin: 0 0 20px; padding: 16px 20px; border-radius: var(--shub-rayon-grand); background: #1c1c1c; color: var(--shub-blanc);
}
#job_preview .job_listing_preview_title h2 { margin: 0; color: var(--shub-blanc); font-size: 20px; font-weight: 700; }
#job_preview .job_listing_preview_title input[type="submit"] { min-height: 44px; margin: 0; }
#job_preview .job_listing_preview { padding: 0; border: 0; }

/* ---------- Mouvement réduit ---------- */

@media (prefers-reduced-motion: reduce) {
	.shub-carte-lien, .shub-carte-voir .shub-ico, .shub-bouton, .shub-bouton .shub-ico, .shub-barre-postuler,
	.shub-candidature .shub-envoyer, .shub-fil a .shub-ico, .shub-entete-liste a { transition: none !important; }
	.shub-carte-lien:hover, .shub-bouton:hover, .shub-bouton:active, .shub-entete-liste a:hover,
	.shub-bouton:hover .shub-ico-fleche, .shub-fil a:hover .shub-ico { transform: none; }
}

/* Entreprise confidentielle (D26) : pictogramme au lieu d'une initiale trompeuse. */
.shub-vignette-confidentielle { background: #1c1c1c; color: var(--shub-jaune); box-shadow: none; }
.shub-vignette-confidentielle .shub-ico { width: 26px; height: 26px; }

/* Filtres : neutralise la mise en page de WP Job Manager (clearfix compté comme case de grille, libellés masqués). */
.shub-filtres .search_jobs::before, .shub-filtres .search_jobs::after { display: none !important; content: none !important; }
.job_filters.shub-filtres .search_jobs .shub-filtre label { display: block; }
.job_filters.shub-filtres { background: var(--shub-blanc); }
.job_filters.shub-filtres ul.job_types { background: none; border: 0; padding: 0; }
.job_filters.shub-filtres ul.job_types li { border: 0 !important; background: none !important; padding: 0 !important; }
.job_filters.shub-filtres ul.job_types label { transition: background-color var(--shub-transition), color var(--shub-transition), border-color var(--shub-transition); }
.job_filters.shub-filtres ul.job_types label:has(input:checked) { border-color: var(--shub-noir); background: var(--shub-noir); color: var(--shub-blanc); }
.job_filters.shub-filtres ul.job_types input { accent-color: var(--shub-jaune); }
.job_filters.shub-filtres .select2-container .select2-selection--single,
.job_filters.shub-filtres .select2-container .select2-selection--multiple {
	min-height: 48px; border: 1px solid var(--shub-trait-fort); border-radius: var(--shub-rayon-champ); background: var(--shub-blanc);
}
.job_filters.shub-filtres .select2-container .select2-selection__rendered { line-height: 46px; padding-left: .9em; font-size: 16px; color: var(--shub-texte); }
.job_filters.shub-filtres .select2-container .select2-selection__arrow { height: 46px; }
.job_filters.shub-filtres .select2-container .select2-search__field { min-height: 40px; margin: 3px 0 0 .6em; font-size: 16px; }

/* Cartes : sélecteurs aussi précis que ceux de WP Job Manager (frontend.css : ul.job_listings li.job_listing a…). */
ul.job_listings li.job_listing.shub-carte { border: 0; padding: 0; margin: 0; background: none; }
ul.job_listings li.job_listing.shub-carte a.shub-carte-lien {
	display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 14px 16px; align-items: start;
	padding: 18px; overflow: visible; line-height: 1.4;
	border: 1px solid var(--shub-trait); border-radius: var(--shub-rayon-grand); background: var(--shub-blanc);
}
ul.job_listings li.job_listing.shub-carte a.shub-carte-lien:hover { border-color: var(--shub-trait-fort); }
ul.job_listings li.job_listing.shub-carte a.shub-carte-lien .shub-carte-titre { margin: 0 0 2px; padding: 0; font-size: 18px; line-height: 1.3; }
ul.job_listings li.job_listing.shub-carte .shub-pastilles li.shub-pastille { display: inline-flex; padding: .2em .7em; margin: 0; border: 0; }
ul.job_listings li.job_listing.shub-carte .shub-carte-fin { grid-column: 1 / -1; }
@media (min-width: 768px) {
	ul.job_listings li.job_listing.shub-carte a.shub-carte-lien { grid-template-columns: 56px minmax(0, 1fr) auto; padding: 20px 22px; }
	ul.job_listings li.job_listing.shub-carte .shub-carte-fin { grid-column: auto; }
}
.shub-filtres .showing_jobs { border: 0; }
.shub-filtres .showing_jobs .job_filters_links, .shub-filtres .showing_jobs a.rss_link { font-size: 13px; }

/* Fiche : le thème affiche l'auteur (« admin ») et la date sous le titre ; la date est dans l'en-tête de la fiche. */
body.single-job_listing .entry-header .entry-meta, body.single-job_listing .hero-section .entry-meta,
body.single-job_listing .page-title + .entry-meta { display: none !important; }
/* Liste de repères : dl du thème neutralisée (marges, puces). */
.single_job_listing.shub-fiche dl.shub-faits div.shub-fait { margin: 0; }
.single_job_listing.shub-fiche dl.shub-faits dt::before, .single_job_listing.shub-fiche dl.shub-faits dd::before { display: none; content: none; }

/* Dépôt : libellé au-dessus du champ (WP Job Manager les met côte à côte, 29 % / 70 %, avec des traits). */
.job-manager-form.shub-depot-form fieldset { border: 0; margin: 0 0 18px; padding: 0; line-height: 1.4; }
.job-manager-form.shub-depot-form fieldset::before, .job-manager-form.shub-depot-form fieldset::after { display: none; content: none; }
.job-manager-form.shub-depot-form fieldset label:not(.full-line-checkbox-field label) { float: none; width: auto; display: block; margin: 0 0 6px; }
.job-manager-form.shub-depot-form fieldset div.field:not(.full-line-checkbox-field) { float: none; width: auto; }
.job-manager-form.shub-depot-form fieldset small.description { margin: 6px 0 0; line-height: 1.45; font-size: 13.5px; opacity: 1; color: var(--shub-gris); }
.job-manager-form.shub-depot-form .fieldset-type-checkbox { display: flex; flex-direction: row-reverse; justify-content: flex-end; align-items: flex-start; gap: 12px; }
.job-manager-form.shub-depot-form .fieldset-type-checkbox label:not(.full-line-checkbox-field label) { margin: 0; font-weight: 600; line-height: 1.5; flex: 1 1 auto; }
.job-manager-form.shub-depot-form .fieldset-type-checkbox div.field:not(.full-line-checkbox-field) { flex: 0 0 auto; }
.job-manager-form.shub-depot-form .fieldset-type-file small.description { white-space: normal; }
.shub-depot { margin: 0; max-width: none; }
.shub-depot-form .fieldset-company_logo small.description { display: none; } /* consignes en anglais de WP Job Manager */
.shub-depot-form input[type="file"]::file-selector-button {
	margin-right: 12px; padding: .55em 1.1em; border: 0; border-radius: 10px;
	background: linear-gradient(180deg, #ffe24d 0%, #ffcf0f 100%); color: var(--shub-noir); font-weight: 700; cursor: pointer;
}

/* Liste, retouches du 13/10 : contrats cochés en jaune pâle (une rangée de pastilles noires pesait trop),
   bande « RSS » de WP Job Manager retirée, vignette confidentielle claire. */
.job_filters.shub-filtres ul.job_types label:has(input:checked) { border-color: #f0d76a; background: var(--shub-jaune-pale); color: var(--shub-noir); }
.job_filters.shub-filtres ul.job_types input { accent-color: var(--shub-noir); }
.job_filters.shub-filtres div.showing_jobs { background: none !important; border: 0 !important; padding: 0 !important; margin: 8px 0 0 !important; min-height: 0; box-shadow: none; }
.job_filters.shub-filtres a.rss_link { display: none !important; }
.shub-vignette.shub-vignette-confidentielle { background: var(--shub-fond-2); color: var(--shub-noir); border: 1px solid var(--shub-trait); box-shadow: none; }

/* ---------- Liste : en-tête de page et carte « Vous recrutez ? » (13/10, remplace le titre du thème et le bandeau noir) ---------- */
body.shub-page-offres .hero-section { display: none !important; }
.shub-liste-entete { display: grid; grid-template-columns: 1fr; gap: 20px; align-items: end; margin: 8px 0 24px; font-family: var(--shub-police); }
.shub-liste-titre {
	margin: 0 0 10px !important; padding: 0; font-family: var(--shub-police);
	font-size: clamp(32px, 6vw, 52px); font-weight: 700; line-height: 1.05; letter-spacing: -.03em; color: var(--shub-noir);
}
.shub-surligne { position: relative; white-space: nowrap; z-index: 0; }
.shub-surligne::after {
	content: ""; position: absolute; z-index: -1; left: -.06em; right: -.06em; bottom: .04em; height: .38em;
	border-radius: 6px; background: linear-gradient(180deg, #ffe24d, #ffd000);
}
.shub-liste-accroche { margin: 0; max-width: 56ch; font-size: 17px; line-height: 1.55; color: var(--shub-gris); }
.shub-recruteur {
	display: grid; grid-template-columns: 44px 1fr; gap: 12px 14px; align-items: center;
	padding: 18px; border: 1px solid #f3e3a0; border-radius: var(--shub-rayon-grand);
	background: linear-gradient(135deg, #fffbea 0%, #ffffff 100%); box-shadow: var(--shub-ombre);
}
.shub-recruteur-ico {
	display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px;
	border-radius: 12px; background: var(--shub-jaune-pale); color: var(--shub-jaune-texte);
}
.shub-recruteur-ico .shub-ico { width: 22px; height: 22px; }
.shub-recruteur-texte p { margin: 0; }
.shub-recruteur-titre { font-size: 15.5px; font-weight: 700; line-height: 1.35; color: var(--shub-noir); }
.shub-recruteur-sous { margin-top: 2px !important; font-size: 14px; line-height: 1.45; color: var(--shub-gris); }
.shub-recruteur .shub-bouton { grid-column: 1 / -1; width: 100%; }
@media (min-width: 1024px) {
	.shub-liste-entete { grid-template-columns: minmax(0, 1fr) 380px; gap: 32px; margin-top: 16px; }
}

/* ---------- Espace recruteur (lot 5) ---------- */
body.shub-page-espace .hero-section { display: none !important; }
.shub-espace { font-family: var(--shub-police); }
.shub-espace-etroit { max-width: 680px; margin: 0 auto; }
.shub-espace .shub-liste-entete { grid-template-columns: 1fr; }
.shub-espace-deux { display: grid; grid-template-columns: 1fr; gap: 20px; margin: 24px 0; align-items: start; }
@media (min-width: 900px) { .shub-espace-deux { grid-template-columns: 1fr 1fr; } }
.shub-bloc-titre { margin: 0 0 14px !important; font-size: 20px !important; font-weight: 700; letter-spacing: -.015em; color: var(--shub-noir); }
.shub-bloc-jaune { border-color: #f3e3a0; background: linear-gradient(135deg, #fffbea 0%, #ffffff 100%); }
.shub-petit { font-size: 14px; color: var(--shub-gris); }
.shub-petit a, .shub-espace-pied a { color: var(--shub-noir); }
.shub-espace-pied { margin-top: 8px; }
.shub-liste-simple { margin: 0 0 16px; padding: 0; list-style: none; }
.shub-liste-simple li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; margin: 0; padding: 12px 0; border-bottom: 1px solid var(--shub-trait); font-weight: 600; }
.shub-liste-simple li::before { display: none; }
.shub-liste-simple li:last-child { border-bottom: 0; }
.shub-liste-simple a { color: var(--shub-noir); }
.shub-espace-message { margin: 0 0 16px; padding: 14px 16px; border-radius: 14px; font-size: 15px; line-height: 1.55; }
.shub-espace-message-info { border: 1px solid var(--shub-trait-fort); background: var(--shub-fond); color: var(--shub-texte); }
.shub-espace-message-succes { border: 1px solid #bfe5cc; background: #f3fbf6; color: #10391d; }
.shub-espace-message-erreur { border: 1px solid #f5c2bd; background: #fef3f2; color: #7a271a; }
.shub-resultats-total { margin: 4px 0 12px; font-size: 15px; color: var(--shub-gris); }
.shub-resultats-total strong { color: var(--shub-noir); }
.shub-pagination { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 20px 0; font-size: 15px; }
.shub-pagination a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--shub-trait-fort); border-radius: var(--shub-rayon-champ); background: var(--shub-blanc); color: var(--shub-noir); font-weight: 600; text-decoration: none; }
.shub-vignette.shub-vignette-profil { background: #e8efff; color: #2f5bd3; box-shadow: none; }
.shub-competences { gap: 8px; }
.shub-competences .shub-pastille { min-height: 32px; padding: .3em .9em; font-size: 14px; }
/* Champs de l'espace : listes déroulantes et connexion */
.shub-espace select, .shub-candidature select, #shub-connexion input[type="text"], #shub-connexion input[type="password"] {
	width: 100%; max-width: 100%; box-sizing: border-box; min-height: 48px; padding: .6em .9em;
	border: 1px solid var(--shub-trait-fort); border-radius: var(--shub-rayon-champ); background: var(--shub-blanc);
	color: var(--shub-texte); font-family: var(--shub-police); font-size: 16px;
}
.shub-espace select:focus, #shub-connexion input:focus { border-color: var(--shub-noir); outline: none; box-shadow: 0 0 0 4px rgba(255, 216, 0, .45); }
#shub-connexion p { margin: 0 0 14px; }
#shub-connexion label { display: block; margin: 0 0 6px; font-size: 14.5px; font-weight: 600; }
#shub-connexion .login-remember label { display: inline-flex; gap: 8px; align-items: center; font-weight: 500; }
#shub-connexion input[type="submit"] {
	min-height: 48px; padding: .75em 1.5em; border: 0; border-radius: var(--shub-rayon-champ); cursor: pointer;
	background: linear-gradient(180deg, #ffe24d 0%, #ffcf0f 100%); color: var(--shub-noir); font-family: var(--shub-police); font-size: 16px; font-weight: 700;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 10px 22px -10px rgba(230, 170, 0, .8);
}
.shub-recherche .search_jobs { grid-template-columns: 1fr; }
@media (min-width: 900px) { .shub-recherche .search_jobs { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; align-items: end; } }
.shub-espace .shub-candidature .shub-envoyer { width: 100%; }
@media (min-width: 768px) { .shub-espace .shub-candidature .shub-envoyer { width: auto; } }
@media (min-width: 768px) { .shub-inscription .shub-form-candidature > .shub-champ { grid-column: auto; } }
.shub-candidature .shub-case a, .shub-espace .shub-bloc a:not(.shub-bouton) { color: var(--shub-noir); text-decoration: underline; text-underline-offset: 3px; }
.shub-profils .shub-carte-titre, .shub-profils .shub-carte-entreprise { display: block; }
.shub-profils .shub-carte-titre { font-size: 18px; font-weight: 700; color: var(--shub-noir); }
.shub-bloc > .shub-intertitre:first-child { margin-top: 0 !important; padding-top: 0 !important; border-top: 0; }
.shub-candidature input[type="password"] {
	width: 100%; max-width: 100%; box-sizing: border-box; min-height: 48px; padding: .65em .9em;
	border: 1px solid var(--shub-trait-fort); border-radius: var(--shub-rayon-champ); background: var(--shub-blanc);
	color: var(--shub-texte); font-family: var(--shub-police); font-size: 16px; box-shadow: 0 1px 2px rgba(32, 32, 32, .04);
}
.shub-candidature input[type="password"]:focus { border-color: var(--shub-noir); outline: none; box-shadow: 0 0 0 4px rgba(255, 216, 0, .45); }
.shub-connexion .shub-envoyer { width: 100%; }

/* ---------- CVthèque de l'espace recruteur (13/10 : liste d'emblée, filtres avec leurs nombres) ---------- */
.shub-onglets { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0 0 18px; padding: 6px; border: 1px solid var(--shub-trait); border-radius: 14px; background: var(--shub-fond); }
.shub-onglets a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 10px; font-size: 15px; font-weight: 600; color: var(--shub-gris) !important; text-decoration: none !important; }
.shub-onglets a:hover { color: var(--shub-noir) !important; background: var(--shub-blanc); }
.shub-onglets a.est-actif { background: var(--shub-blanc); color: var(--shub-noir) !important; box-shadow: 0 1px 2px rgba(32, 32, 32, .08); }
.shub-onglets .shub-onglet-sortie { margin-left: auto; font-weight: 500; font-size: 14px; }
.shub-cvt-recherche { display: flex; gap: 10px; margin: 0 0 20px; }
.shub-cvt-recherche input[type="search"] {
	flex: 1 1 auto; min-width: 0; min-height: 52px; padding: .6em 1em; border: 1px solid var(--shub-trait-fort); border-radius: 14px;
	background: var(--shub-blanc); font-family: var(--shub-police); font-size: 16px; box-shadow: var(--shub-ombre);
}
.shub-cvt-recherche input[type="search"]:focus { border-color: var(--shub-noir); outline: none; box-shadow: 0 0 0 4px rgba(255, 216, 0, .45); }
.shub-cvt-recherche .shub-bouton { min-height: 52px; }
.shub-cvt-grille { display: grid; grid-template-columns: 1fr; gap: 20px; align-items: start; }
@media (min-width: 960px) { .shub-cvt-grille { grid-template-columns: 260px minmax(0, 1fr); gap: 28px; } .shub-cvt-filtres { position: sticky; top: 100px; } }
.shub-cvt-filtres { padding: 18px; border: 1px solid var(--shub-trait); border-radius: var(--shub-rayon-grand); background: var(--shub-blanc); box-shadow: var(--shub-ombre); }
.shub-facette + .shub-facette { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--shub-trait); }
.shub-facette-titre { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; color: var(--shub-gris); }
.shub-facette ul { margin: 0; padding: 0; list-style: none; }
.shub-facette li { margin: 0; }
.shub-facette li::before { display: none; }
.shub-facette a { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 38px; padding: 4px 10px; border-radius: 10px; font-size: 14.5px; color: var(--shub-texte) !important; text-decoration: none !important; }
.shub-facette a:hover { background: var(--shub-fond); }
.shub-facette a.est-actif { background: var(--shub-jaune-pale); font-weight: 700; }
.shub-facette-n { flex: 0 0 auto; min-width: 26px; padding: 1px 8px; border-radius: 999px; background: var(--shub-fond-2); font-size: 12.5px; font-weight: 600; text-align: center; color: var(--shub-gris); }
.shub-facette a.est-actif .shub-facette-n { background: var(--shub-blanc); color: var(--shub-noir); }
.shub-cvt-barre p { margin: 0 0 12px; font-size: 15px; color: var(--shub-gris); }
.shub-cvt-barre strong { color: var(--shub-noir); }
.shub-cvt-barre a { color: var(--shub-noir); }
.shub-profils-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.shub-profils-grille > li { margin: 0; }
.shub-profils-grille > li::before { display: none; }
.shub-profil-carte a {
	display: flex; flex-direction: column; gap: 10px; height: 100%; box-sizing: border-box; padding: 18px;
	border: 1px solid var(--shub-trait); border-radius: var(--shub-rayon-grand); background: var(--shub-blanc); box-shadow: var(--shub-ombre);
	color: var(--shub-texte) !important; text-decoration: none !important;
	transition: transform var(--shub-transition), box-shadow var(--shub-transition), border-color var(--shub-transition);
}
.shub-profil-carte a:hover { transform: translateY(-2px); box-shadow: var(--shub-ombre-forte); border-color: var(--shub-trait-fort); }
.shub-profil-haut { display: flex; gap: 12px; align-items: center; }
.shub-profil-haut .shub-vignette { width: 46px; height: 46px; font-size: 19px; border-radius: 12px; }
.shub-profil-metier { display: block; font-size: 17px; font-weight: 700; line-height: 1.25; color: var(--shub-noir); }
.shub-profil-qui { display: block; margin-top: 2px; font-size: 14px; color: var(--shub-gris); }
.shub-profil-famille { align-self: flex-start; padding: 3px 10px; border-radius: 999px; background: #e8efff; color: #2f5bd3; font-size: 13px; font-weight: 600; }
.shub-profil-carte .shub-pastilles .shub-pastille { min-height: 26px; font-size: 13px; }
.shub-profil-comp { font-size: 13.5px; line-height: 1.45; color: var(--shub-gris); }
.shub-profil-pied { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--shub-trait); font-size: 13px; color: var(--shub-gris); }
.shub-profil-pied .shub-carte-voir { font-size: 14px; }
.shub-profil-carte a:hover .shub-carte-voir .shub-ico { transform: translateX(3px); }
.shub-fiche-cote.shub-fiche-cote-visible { display: block; }
.shub-contact h2 { font-size: 22px !important; }
@media (prefers-reduced-motion: reduce) { .shub-profil-carte a { transition: none; } .shub-profil-carte a:hover { transform: none; } }
.shub-cvt-details > summary { display: none; }
@media (max-width: 959px) {
	.shub-cvt-filtres { padding: 0; }
	.shub-cvt-details > summary {
		display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 0 18px;
		font-weight: 700; cursor: pointer; list-style: none;
	}
	.shub-cvt-details > summary::-webkit-details-marker { display: none; }
	.shub-cvt-details > summary::after { content: "▾"; color: var(--shub-gris); }
	.shub-cvt-details[open] > summary::after { content: "▴"; }
	.shub-cvt-details[open] { padding-bottom: 14px; }
	.shub-cvt-details .shub-facette { padding: 0 18px; }
	.shub-onglets { flex-wrap: nowrap; overflow-x: auto; }
	.shub-onglets a { white-space: nowrap; }
}
/* CV en aperçu (Teddy, 13/10) */
.shub-cv-entete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px; margin: 0 0 14px; }
.shub-cv-entete .shub-intertitre { margin: 0 !important; padding: 0 !important; border: 0; }
.shub-cv-grand { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--shub-noir) !important; }
.shub-cv-apercu { display: block; width: 100%; height: min(80vh, 900px); border: 1px solid var(--shub-trait); border-radius: 14px; background: var(--shub-fond); }
.shub-cv .shub-petit { margin: 12px 0 0; }
.shub-profil-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.shub-profil-cv { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; background: var(--shub-vert-pale); color: var(--shub-vert); font-size: 13px; font-weight: 700; }
.shub-profil-cv .shub-ico { width: 14px; height: 14px; }
@media (max-width: 767px) { .shub-cv-apercu { height: 70vh; } }
.shub-cv-cadre { position: relative; }
.shub-cv-cadre::before { content: attr(data-chargement); position: absolute; inset: 0; display: grid; place-items: center; font-size: 15px; color: var(--shub-gris); }
.shub-cv-cadre .shub-cv-apercu { position: relative; background: transparent; }

/* ---------- CVthèque façon HelloWork (13/10) : filtres en haut, liste à gauche, aperçu à droite ---------- */
.shub-cvt-filtres-haut {
	display: grid; grid-template-columns: 1fr; gap: 10px; margin: 0 0 14px; padding: 16px;
	border: 1px solid var(--shub-trait); border-radius: var(--shub-rayon-grand); background: var(--shub-blanc); box-shadow: var(--shub-ombre);
}
.shub-cvt-champ label { display: block; margin: 0 0 4px; font-size: 13px; font-weight: 600; color: var(--shub-gris); }
.shub-cvt-champ input[type="search"], .shub-cvt-champ select {
	width: 100%; box-sizing: border-box; min-height: 46px; padding: .5em .8em; border: 1px solid var(--shub-trait-fort); border-radius: 12px;
	background: var(--shub-blanc); font-family: var(--shub-police); font-size: 15px; color: var(--shub-texte);
}
.shub-cvt-champ input:focus, .shub-cvt-champ select:focus { border-color: var(--shub-noir); outline: none; box-shadow: 0 0 0 4px rgba(255, 216, 0, .45); }
.shub-cvt-champ-ok { align-self: end; }
.shub-cvt-champ-ok .shub-bouton { width: 100%; min-height: 46px; }
@media (min-width: 960px) { .shub-cvt-filtres-haut { grid-template-columns: 2fr repeat(4, minmax(0, 1fr)) auto; align-items: end; } }

.shub-cvt-split { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: start; }
.shub-cvt-liste { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.shub-cvt-liste > li { margin: 0; }
.shub-cvt-liste > li::before { display: none; }
.shub-cvt-ligne {
	display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 12px 14px;
	border: 1px solid var(--shub-trait); border-radius: 14px; background: var(--shub-blanc);
	color: var(--shub-texte) !important; text-decoration: none !important; transition: border-color var(--shub-transition), background-color var(--shub-transition);
}
.shub-cvt-ligne:hover { border-color: var(--shub-trait-fort); background: var(--shub-fond); }
.shub-cvt-ligne.est-actif { border-color: #f0d76a; background: var(--shub-jaune-pale); box-shadow: inset 4px 0 0 var(--shub-jaune-fonce); }
.shub-cvt-ligne .shub-vignette { width: 40px; height: 40px; font-size: 17px; border-radius: 11px; }
.shub-cvt-ligne-corps { min-width: 0; }
.shub-cvt-ligne-metier { display: block; font-size: 15.5px; font-weight: 700; line-height: 1.25; color: var(--shub-noir); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.shub-cvt-ligne-qui, .shub-cvt-ligne-plus { display: block; font-size: 13px; color: var(--shub-gris); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.shub-cvt-apercu { display: none; }
@media (min-width: 960px) {
	.shub-cvt-split { grid-template-columns: 340px minmax(0, 1fr); gap: 20px; }
	.shub-cvt-liste { max-height: calc(100vh - 140px); overflow-y: auto; position: sticky; top: 100px; padding-right: 4px; }
	.shub-cvt-apercu {
		display: block; position: sticky; top: 100px; max-height: calc(100vh - 120px); overflow-y: auto; padding: 22px 24px;
		border: 1px solid var(--shub-trait); border-radius: var(--shub-rayon-grand); background: var(--shub-blanc); box-shadow: var(--shub-ombre-forte);
	}
}
.shub-apercu-nav { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 0 0 16px; font-size: 14px; color: var(--shub-gris); }
.shub-apercu-nav button {
	min-height: 40px; padding: 0 14px; border: 1px solid var(--shub-trait-fort); border-radius: 10px; background: var(--shub-blanc);
	font-family: var(--shub-police); font-size: 14px; font-weight: 600; color: var(--shub-noir); cursor: pointer;
}
.shub-apercu-nav button:hover:not([disabled]) { border-color: var(--shub-noir); }
.shub-apercu-nav button[disabled] { opacity: .4; cursor: default; }
.shub-apercu-tete { display: flex; gap: 14px; align-items: center; margin: 0 0 12px; }
.shub-apercu-tete .shub-vignette { width: 52px; height: 52px; font-size: 22px; }
.shub-apercu-tete h2 { margin: 0 !important; font-size: 24px !important; font-weight: 700; letter-spacing: -.02em; line-height: 1.15; }
.shub-apercu-tete p { margin: 2px 0 0; font-size: 15px; color: var(--shub-gris); }
.shub-apercu-cles { margin: 0 0 14px !important; }
.shub-apercu-bloc { margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--shub-trait); border-radius: 14px; background: var(--shub-fond); }
.shub-apercu-bloc h3 { margin: 0 0 8px !important; font-size: 14px !important; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--shub-gris); }
.shub-apercu-bloc p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--shub-texte); }
.shub-apercu-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin: 0 0 16px; }
.shub-apercu-cv { background: var(--shub-blanc); }
.shub-apercu-cv .shub-cv-apercu { height: 70vh; }
.shub-fiche-haut { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; }
.shub-voisins { display: flex; gap: 14px; align-items: center; font-size: 14px; color: var(--shub-gris); }
.shub-voisins a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border: 1px solid var(--shub-trait-fort); border-radius: 10px; color: var(--shub-noir) !important; font-weight: 600; text-decoration: none !important; }
.shub-cvt-apercu ul.shub-pastilles { display: flex; flex-wrap: wrap; gap: 6px; padding: 0; list-style: none; }
.shub-cvt-apercu ul.shub-pastilles li.shub-pastille { display: inline-flex; align-items: center; margin: 0; padding: .3em .8em; border: 0; border-radius: 999px; background: var(--shub-fond-2); font-size: 13.5px; font-weight: 600; }
.shub-cvt-apercu ul.shub-pastilles li.shub-pastille::before { display: none; content: none; }
.shub-cvt-apercu .shub-apercu-bloc ul.shub-pastilles li.shub-pastille { background: var(--shub-blanc); border: 1px solid var(--shub-trait); }
.shub-cvt-apercu ul.shub-pastilles li.shub-profil-cv { background: var(--shub-vert-pale); color: var(--shub-vert); }
.shub-cvt-plus { display: none; }
@media (max-width: 959px) {
	.shub-cvt-champ-ok { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
	.shub-cvt-plus {
		display: inline-flex; align-items: center; justify-content: center; min-height: 46px; border: 1px solid var(--shub-trait-fort); border-radius: 12px;
		background: var(--shub-blanc); font-family: var(--shub-police); font-size: 15px; font-weight: 600; color: var(--shub-noir); cursor: pointer;
	}
	.shub-cvt-filtres-haut:not(.est-ouvert) .shub-cvt-champ:not(.shub-cvt-champ-q):not(.shub-cvt-champ-ok) { display: none; }
}
/* Rendez-vous proposé au candidat après sa candidature (13/10) */
.shub-bloc-rdv { display: grid; gap: 12px; margin: 18px 0 8px; padding: 18px 20px; border: 1px solid #bfe5cc; border-radius: var(--shub-rayon-grand); background: linear-gradient(135deg, #f3fbf6 0%, #ffffff 100%); }
.shub-bloc-rdv p { margin: 0; font-size: 15px; line-height: 1.6; }
.shub-bloc-rdv .shub-bouton { justify-self: start; }
.shub-recruteur-espace { grid-column: 1 / -1; justify-self: center; font-size: 14px; font-weight: 600; color: var(--shub-noir) !important; text-underline-offset: 3px; }
