/* Page de détail d'une offre d'emploi (templates/cpt/single-offre-emploi.php).
   Classes préfixées « component- », tokens --component-* uniquement (voir CLAUDE.md §6). Chargée par inc/jobs.php. */

.component-job-single {
	padding-top: clamp(48px, 6vw, 88px);
	padding-bottom: clamp(48px, 6.5vw, 96px);
}

.component-job-single__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 48px;
	align-items: start;
}

/* ---- Texte de l'annonce ---- */
.component-job-single__content {
	min-width: 0;
	max-width: 760px;
	font-size: var(--component-font-size-md);
	line-height: 1.72;
	color: var(--component-color-text);
}

.component-job-single__content > :first-child { margin-top: 0; }
.component-job-single__content > :last-child { margin-bottom: 0; }

.component-job-single__content p { margin: 0 0 1.1em; }

/* Les titres du texte (« Missions », « Profil »…) : police des titres, filet en haut comme les colonnes du site. */
body#top .component-job-single__content :is(h2, h3, h4) {
	margin: 1.9em 0 0.6em;
	font-family: var(--component-font-family-heading);
	font-size: var(--component-font-size-title-xs);
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	color: var(--component-color-dark);
}

body#top .component-job-single__content :is(h2, h3, h4):first-child { margin-top: 0; }

body#top .component-job-single__content h4 {
	font-family: var(--component-font-family);
	font-size: var(--component-font-size-md);
	font-weight: 600;
}

.component-job-single__content :is(ul, ol) {
	margin: 0 0 1.4em;
	padding-left: 1.3em;
	list-style: disc;
}

.component-job-single__content li { margin: 0 0 0.5em; padding-left: 0.2em; }

.component-job-single__content li::marker { color: var(--component-color-primary); }

.component-job-single__content strong { color: var(--component-color-dark); }

body#top .component-job-single__content a {
	color: var(--component-color-primary);
	text-decoration: underline;
	text-underline-offset: 3px;
}

body#top .component-job-single__content a:hover,
body#top .component-job-single__content a:focus { color: var(--component-color-secondary); }

.component-job-single__notice {
	margin: 0 0 2em;
	padding: 16px 20px;
	border-left: 3px solid var(--component-color-primary);
	background: var(--component-color-bg2);
	font-weight: 600;
	color: var(--component-color-dark);
}

/* ---- Encart « L'essentiel » ---- */
.component-job-single__panel {
	display: flex;
	flex-direction: column;
	gap: 28px;
	padding: clamp(24px, 3.2vw, 40px);
	background: var(--component-color-bg2);
	border-top: 2px solid var(--component-color-primary);
}

body#top .component-job-single__panel-title {
	margin: 0;
	font-family: var(--component-font-family);
	font-size: var(--component-font-size-xs);
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--component-color-primary);
}

.component-job-single__facts {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin: 0;
}

.component-job-single__fact {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.component-job-single__fact-label {
	margin: 0;
	font-size: var(--component-font-size-sm);
	color: var(--component-color-meta);
}

.component-job-single__fact-value {
	margin: 0;
	font-size: var(--component-font-size-md);
	font-weight: 600;
	line-height: 1.5;
	color: var(--component-color-dark);
}

.component-job-single__block {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding-top: 22px;
	border-top: 1px solid var(--component-color-border);
}

body#top .component-job-single__block-title {
	margin: 0;
	font-family: var(--component-font-family);
	font-size: var(--component-font-size-sm);
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: var(--component-color-meta);
}

.component-job-single__list {
	margin: 0;
	padding: 0 0 0 1.2em;
	list-style: disc;
	font-size: var(--component-font-size-md);
	line-height: 1.6;
	color: var(--component-color-dark);
}

.component-job-single__list li { margin: 0 0 4px; }
.component-job-single__list li::marker { color: var(--component-color-primary); }

.component-job-single__address {
	font-style: normal;
	font-size: var(--component-font-size-md);
	line-height: 1.6;
	color: var(--component-color-dark);
}

.component-job-single__contact {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	font-size: var(--component-font-size-md);
	line-height: 1.6;
}

body#top .component-job-single__contact-name { color: var(--component-color-dark); }

.component-job-single__contact-role { color: var(--component-color-meta); }

body#top .component-job-single__phone {
	margin-top: 4px;
	font-weight: 600;
	text-decoration: none;
	color: var(--component-color-primary);
}

body#top a.component-job-single__phone:hover,
body#top a.component-job-single__phone:focus { color: var(--component-color-secondary); }

.component-job-single__actions { margin: 0; }

.component-job-single__apply { text-align: center; }

/* ---- Retour à la liste ---- */
.component-job-single__footer { margin-top: clamp(32px, 4vw, 56px); }

body#top .component-job-single__back {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: var(--component-font-size-md);
	font-weight: 600;
	text-decoration: none;
	color: var(--component-color-primary);
}

/* Flèche vers la gauche : masque SVG coloré par currentColor (aucune couleur en dur). */
.component-job-single__back::before {
	content: '';
	width: 18px;
	height: 18px;
	background: currentcolor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H6'/%3E%3Cpath d='M11 6l-6 6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H6'/%3E%3Cpath d='M11 6l-6 6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform var(--component-transition);
}

body#top .component-job-single__back:hover,
body#top .component-job-single__back:focus { color: var(--component-color-secondary); }

.component-job-single__back:hover::before,
.component-job-single__back:focus::before { transform: translateX(-4px); }

.component-job-single__back:focus-visible {
	outline: 3px solid var(--component-color-primary);
	outline-offset: 3px;
}

@media (min-width: 992px) {
	.component-job-single__inner {
		grid-template-columns: minmax(0, 1fr) 380px;
		gap: 80px;
	}

	/* L'encart suit la lecture sur grand écran. */
	.component-job-single__panel {
		position: sticky;
		top: 32px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.component-job-single__back::before { transition: none; }
}

/* Enfold ajoute des flèches « article précédent / suivant » : sans objet pour des offres. */
body.single-offre-emploi .avia-post-nav { display: none; }

/* Formulaire de candidature sous l'annonce (Ninja Forms, choisi dans l'offre). */
.component-job-single__apply-form { scroll-margin-top: 32px; }

/* Le composant est posé dans la colonne de texte : pas de double marge ni de largeur propre. */
.component-job-single__apply-form .component-ninja-form { padding-bottom: 0; }
.component-job-single__apply-form .component-ninja-form__inner { max-width: none; padding-inline: 0; }

/* Le titre réglé dans Ninja Forms (« Candidature spontanée ») ne convient pas à une offre précise : le nôtre le remplace. */
.component-job-single__apply-form .nf-form-title { display: none; }
