/* Les six renseignements occupent toujours les mêmes positions sur ordinateur.
   Les cases sans renseignement sont discrètes et masquées sur petit écran. */
.job-offer-panel { border-top: 3px solid var(--job-category-color, var(--primary)); }
.job-offer-panel .job-facts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-areas: "category type" "discipline title" "added deadline";
  gap: 12px;
}
.job-offer-panel .job-fact {
  min-width: 0; min-height: 88px; padding: 14px 16px;
  border: 1px solid var(--border); border-radius: 12px;
  background: var(--surface, #fff); box-sizing: border-box;
}
.job-fact--category { grid-area: category; }
.job-fact--type { grid-area: type; }
.job-fact--discipline { grid-area: discipline; }
.job-fact--title { grid-area: title; }
.job-fact--added { grid-area: added; }
.job-fact--deadline { grid-area: deadline; }
.job-fact--tags { grid-column: 1 / -1; }
.job-offer-panel .job-fact--empty { background: #f8fafc; border-style: dashed; }
.job-fact-missing { color: var(--muted-foreground, #536782); font-weight: 400; font-size: .9rem; }
.job-offer-panel .job-fact dt { margin-bottom: 7px; }
.job-offer-panel .job-fact dd { line-height: 1.5; }
.job-category-dot { display: inline-block; width: 9px; height: 9px; margin-right: 8px; border-radius: 50%; background: var(--job-category-color, var(--primary)); }
.job-discipline-icon { display: inline-block; margin-right: 6px; font-size: 1.15em; vertical-align: middle; line-height: 1; }
.job-fact--tags .job-fact-links { gap: 7px; }
.job-fact--tags a { display: inline-block; padding: 3px 9px; border: 1px solid var(--border); border-radius: 999px; font-size: .86rem; font-weight: 500; text-decoration: none; }
.job-fact--tags a:hover { background: var(--accent-soft, #e4f3f1); text-decoration: underline; }
.job-description p:first-of-type { font-size: 1.04rem; }
.job-offer-panel .job-description p + p { margin-top: 16px; }
.job-fact.job-deadline--soon { background: #fff8e6; border-color: #d9ac45; }
.job-fact.job-deadline--expired { background: #f8eded; border-color: #cf9397; }
.job-deadline-label { display: block; width: fit-content; margin-top: 7px; color: #775100; font-size: .82rem; font-weight: 650; }
.job-deadline--expired .job-deadline-label { color: #94363d; }
.job-deadline-note { margin: 0 30px 24px; padding: 10px 12px; border-left: 3px solid #d9ac45; background: #fff8e6; border-radius: 0 8px 8px 0; font-size: .88rem; line-height: 1.6; color: #725729; }
@media (min-width: 861px) {
  /* Utilise la largeur du panneau plutôt que la limite générale de 24 caractères. */
  .job-offer-heading .landing-title { max-width: none; overflow-wrap: anywhere; }
}
@media (max-width: 560px) {
  .job-offer-panel .job-facts { grid-template-columns: minmax(0, 1fr); grid-template-areas: none; gap: 10px; }
  .job-offer-panel .job-fact { grid-area: auto; min-height: 0; padding: 13px 14px; }
  .job-offer-panel .job-fact--empty { display: none; }
  .job-deadline-note { margin: 0 18px 20px; }
}
@media print {
  .job-offer-panel .job-fact { break-inside: avoid; }
}
