/* Offres d emploi : /carrieres/offres/ et les pages d offre.
 *
 * Les classes de cette feuille existent pour que le CONTENU n ait aucun style.
 * L annonce arrivait en HTML avec ses couleurs et ses tailles de police en
 * ligne ; elles vivent desormais ici, exprimees avec les variables de la
 * charte, et le contenu ne porte plus que des classes.
 *
 * Aucune couleur litterale dans ce fichier : tout vient de --navy, --yellow,
 * --light, --gray, --border et --white, definies par styles.css. Une couleur
 * ecrite ici serait une seconde charte.
 *
 * Les points de rupture sont montants (min-width), comme partout ailleurs :
 * une regle max-width est le defaut recurrent qui a fait s effondrer la grille
 * des cartes a 768 px. */

/* MISE EN AVANT DE L ANNONCE ---------------------------------------- */
/* L encart reprend la citation du blog : filet jaune a gauche, fond clair.
   Il attire l oeil sans introduire une couleur de plus. */
.offre-encart {
  margin: 28px 0;
  padding: 20px 24px;
  border-left: 5px solid var(--yellow);
  border-radius: 0 10px 10px 0;
  background: var(--light);
}

.offre-encart p:last-child { margin-bottom: 0; }

/* Le manifeste : la phrase que l offre veut laisser en memoire. */
.offre-manifeste {
  margin: 36px 0 0;
  padding: 24px 26px;
  border-radius: 10px;
  background: var(--navy);
  color: var(--white);
}

.offre-manifeste-surtitre {
  margin: 0 0 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--yellow);
}

.offre-manifeste-texte {
  margin: 0;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.5;
}

/* CARACTERISTIQUES D UNE OFFRE -------------------------------------- */
/* Lieu, type de contrat et date de publication. Ces trois valeurs viennent de
   la source et sont les memes que celles du balisage JobPosting : une liste de
   definitions dit explicitement laquelle est laquelle. */
.offre-champs {
  display: grid;
  gap: 4px 20px;
  margin: 0 0 28px;
  padding: 18px 20px;
  border: 1px solid var(--border);
  border-radius: 12px;
}

.offre-champs dt {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--gray);
}

.offre-champs dd {
  margin: 0 0 10px;
  font-weight: 600;
  color: var(--navy);
}

.offre-champs dd:last-child { margin-bottom: 0; }

@media (min-width: 640px) {
  .offre-champs { grid-template-columns: auto 1fr; align-items: baseline; }
  .offre-champs dd { margin-bottom: 0; }
}

/* UNE OFFRE CLOSE --------------------------------------------------- */
/* Sa page reste servie : tout lien pose ailleurs continue d aboutir. Le filet
   rose est celui que la charte emploie pour ce qui est ferme ou refuse. */
.offre-close {
  margin: 0 0 28px;
  padding: 20px 24px;
  border-left: 5px solid var(--pink);
  border-radius: 0 10px 10px 0;
  background: var(--light);
}

.offre-close p { margin: 0 0 12px; }
.offre-close p:last-child { margin-bottom: 0; }

/* L INDEX ----------------------------------------------------------- */
/* Les cartes reprennent .cards-grid et .card de la charte : leurs points de
   rupture sont deja eprouves. Seule la ligne de caracteristiques est propre
   aux offres. */
.offre-carte-champs {
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
  font-size: 14px;
  color: var(--gray);
}

.offre-carte-champs li { margin-bottom: 4px; }

.offres-vide {
  max-width: 760px;
  padding: 24px 26px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--light);
}

.offres-vide p:last-child { margin-bottom: 0; }
