/* ===========================================================
   R.V. — Rubrique « Offres d'emploi » (liste + détail)
   Chargé APRÈS styles.css — réutilise les variables :root
   (palette violet/mauve/rose/pink + glass morphism R.V.)
   =========================================================== */

/* ---------- Page commune ---------- */
.jobs-page { padding: 150px 24px 80px; }
@media (max-width: 768px) { .jobs-page { padding: 138px 16px 64px; } }
.jobs-container { max-width: 1100px; margin: 0 auto; }

/* styles.css (bloc GLOBAL COLOR OVERRIDE) force color + -webkit-text-fill-color
   en !important sur body/h1-h6/p/li/a → le fill hérité écrase nos couleurs locales
   (ex. texte blanc des tags illisible). Ici, le fill suit TOUJOURS la couleur
   déclarée — sauf les textes en dégradé (clip), qui restent transparents. */
.jobs-page *, .apply-modal *, .od-sticky-cta, .od-sticky-cta * { -webkit-text-fill-color: currentColor !important; }
.jobs-page .grad-text { -webkit-text-fill-color: transparent !important; }
/* Bloc CTA recruteur : blanc sur dégradé (h2/p sinon re-forcés violet) */
.jobs-cta h2, .jobs-cta p { color: #fff !important; -webkit-text-fill-color: #fff !important; }
/* Lien bouton blanc : id requis pour battre la règle a:not(...) de styles.css */
#jobs-cta-btn { color: #4C1D95 !important; -webkit-text-fill-color: #4C1D95 !important; }

/* ---------- Hero liste ---------- */
.jobs-hero { text-align: center; margin-bottom: 30px; }
.jobs-hero h1 { font-size: clamp(34px, 5vw, 54px); font-weight: 900; line-height: 1.12; margin: 14px 0 16px; color: var(--ink-2, #4C1D95); }
.jobs-hero h1 .grad-text { background: var(--grad, linear-gradient(135deg, #7C3AED 0%, #DB2777 100%)); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.jobs-hero .lead { font-size: clamp(16px, 2.1vw, 19px); line-height: 1.7; color: #5b2ea3; font-weight: 500; max-width: 640px; margin: 0 auto; }

/* Barre de recherche */
.jobs-search { position: relative; max-width: 620px; margin: 28px auto 0; }
.jobs-search svg.search-ic { position: absolute; left: 20px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; color: #8b6fc7; pointer-events: none; }
.jobs-search input {
  width: 100%; box-sizing: border-box; padding: 17px 52px 17px 52px;
  border-radius: 999px; border: 1px solid var(--glass-border, rgba(124,58,237,0.18));
  background: linear-gradient(145deg, rgba(255,255,255,0.88), rgba(245,235,255,0.62));
  backdrop-filter: blur(18px) saturate(170%); -webkit-backdrop-filter: blur(18px) saturate(170%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6), 0 14px 40px rgba(124,58,237,0.14);
  font: inherit; font-size: 16px; color: var(--ink, #1F0A33); outline: none;
  transition: box-shadow .25s, border-color .25s;
}
.jobs-search input::placeholder { color: #a78fd6; }
.jobs-search input:focus { border-color: rgba(124,58,237,0.45); box-shadow: inset 0 1px 0 rgba(255,255,255,0.6), 0 14px 44px rgba(124,58,237,0.22); }
.jobs-search-clear {
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  width: 30px; height: 30px; border-radius: 50%; border: none; cursor: pointer;
  background: rgba(124,58,237,0.10); color: #6B46C1; display: none; align-items: center; justify-content: center;
}
.jobs-search-clear.show { display: flex; }
.jobs-search-clear svg { width: 14px; height: 14px; }

/* ---------- Barre de filtres ---------- */
.jobs-filterbar {
  position: sticky; top: 86px; z-index: 40;
  margin: 26px 0 18px; padding: 14px 18px; border-radius: 20px;
  background: linear-gradient(145deg, rgba(255,255,255,0.85), rgba(245,235,255,0.60));
  border: 1px solid rgba(255,255,255,0.55);
  backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6), 0 14px 40px rgba(124,58,237,0.12);
  display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between;
}
@media (max-width: 768px) { .jobs-filterbar { position: static; } }

.jobs-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.job-chip {
  padding: 8px 16px; border-radius: 999px; font: inherit; font-size: 13.5px; font-weight: 700;
  color: #6B46C1; background: rgba(124,58,237,0.08); border: 1px solid rgba(124,58,237,0.16);
  cursor: pointer; transition: all .2s;
}
.job-chip:hover { background: rgba(124,58,237,0.14); }
.job-chip.active { color: #fff; background: var(--grad, linear-gradient(135deg, #7C3AED, #DB2777)); border-color: transparent; box-shadow: 0 8px 20px rgba(124,58,237,0.30); }

.jobs-controls { display: flex; flex-wrap: wrap; gap: 8px; }
.jobs-select {
  padding: 9px 34px 9px 14px; border-radius: 12px; font: inherit; font-size: 13.5px; font-weight: 600;
  color: var(--ink-2, #4C1D95); border: 1px solid rgba(124,58,237,0.16);
  background: rgba(255,255,255,0.75) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B46C1' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 14px;
  appearance: none; -webkit-appearance: none; cursor: pointer; outline: none;
}
.jobs-select:focus { border-color: rgba(124,58,237,0.45); }

.jobs-meta { display: flex; align-items: center; justify-content: space-between; margin: 0 4px 16px; }
.jobs-count { font-size: 14px; font-weight: 700; color: #6B46C1; }
.jobs-reset { border: none; background: none; font: inherit; font-size: 13.5px; font-weight: 700; color: var(--link, #7C3AED); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Grille de cartes ---------- */
.jobs-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
@media (max-width: 760px) { .jobs-grid { grid-template-columns: 1fr; } }

.job-card {
  display: flex; flex-direction: column; gap: 14px; padding: 26px 28px;
  border-radius: 22px; text-decoration: none;
  background: linear-gradient(145deg, rgba(255,255,255,0.85), rgba(245,235,255,0.55));
  border: 1px solid rgba(255,255,255,0.55);
  backdrop-filter: blur(18px) saturate(170%); -webkit-backdrop-filter: blur(18px) saturate(170%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.60), 0 18px 50px rgba(124,58,237,0.12);
  transition: transform .25s, box-shadow .25s;
}
.job-card:hover { transform: translateY(-4px); box-shadow: 0 26px 60px rgba(124,58,237,0.22); }
.job-card.hidden { display: none; }

.job-card-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.job-tag { font-size: 11.5px; font-weight: 800; letter-spacing: .02em; padding: 5px 12px; border-radius: 999px; }
.job-tag-contract { color: #fff; background: var(--grad, linear-gradient(135deg, #7C3AED, #DB2777)); }
.job-tag-sector { color: #6B46C1; background: rgba(124,58,237,0.10); border: 1px solid rgba(124,58,237,0.18); }

.job-card-title { font-size: 20px; font-weight: 800; color: var(--ink-2, #4C1D95); line-height: 1.28; margin: 0; }
.job-card-cabinet { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 700; color: #8b6fc7; margin-top: -6px; }
.job-card-cabinet svg { width: 14px; height: 14px; flex: 0 0 14px; }

.job-card-info { display: flex; flex-direction: column; gap: 8px; }
.job-card-row { display: flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 600; color: #3a2a6b; }
.job-card-row svg { width: 16px; height: 16px; flex: 0 0 16px; color: var(--violet, #7c3aed); }

.job-card-footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 14px; border-top: 1px solid rgba(124,58,237,0.10); }
.job-card-date { font-size: 12.5px; font-weight: 600; color: #8b6fc7; }
.job-card-cta { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 800; color: var(--link, #7C3AED); }
.job-card-cta svg { width: 15px; height: 15px; transition: transform .2s; }
.job-card:hover .job-card-cta svg { transform: translateX(4px); }

/* État vide */
.jobs-empty { display: none; text-align: center; padding: 60px 24px; }
.jobs-empty.show { display: block; }
.jobs-empty-icon { width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 20px; display: grid; place-items: center; color: #fff; background: var(--grad, linear-gradient(135deg, #7C3AED, #DB2777)); box-shadow: 0 16px 40px rgba(124,58,237,0.30); }
.jobs-empty-icon svg { width: 30px; height: 30px; }
.jobs-empty h3 { font-size: 22px; font-weight: 800; color: var(--ink-2, #4C1D95); margin: 0 0 8px; }
.jobs-empty p { font-size: 15px; color: #5b2ea3; margin: 0; }

/* CTA recruteur (bas de liste) */
.jobs-cta {
  margin-top: 44px; padding: 38px 40px; border-radius: 26px; text-align: center;
  background: var(--grad, linear-gradient(135deg, #7C3AED 0%, #DB2777 100%));
  box-shadow: 0 24px 60px rgba(124,58,237,0.35);
}
.jobs-cta h2 { color: #fff; font-size: clamp(22px, 3vw, 30px); font-weight: 900; margin: 0 0 10px; }
.jobs-cta p { color: rgba(255,255,255,0.92); font-size: 15.5px; line-height: 1.65; margin: 0 auto 22px; max-width: 560px; }
.jobs-cta .btn-white { display: inline-flex; align-items: center; gap: 8px; padding: 13px 26px; border-radius: 999px; background: #fff; color: var(--ink-2, #4C1D95); font-weight: 800; font-size: 15px; text-decoration: none; box-shadow: 0 12px 30px rgba(0,0,0,0.18); transition: transform .2s; }
.jobs-cta .btn-white:hover { transform: translateY(-2px); }

/* ---------- Page détail ---------- */
.od-back { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--link, #7C3AED); text-decoration: none; margin-bottom: 18px; }
.od-back svg { width: 16px; height: 16px; }
.od-back:hover { text-decoration: underline; text-underline-offset: 3px; }
.od-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; font-size: 13px; font-weight: 600; margin-bottom: 18px; color: #8b6fc7; }
.od-breadcrumb a { color: var(--link, #7C3AED); text-decoration: none; }
.od-breadcrumb a:hover { text-decoration: underline; text-underline-offset: 3px; }
.od-breadcrumb .od-bc-sep { opacity: .55; }
.od-breadcrumb [aria-current="page"] { color: #6b5b95; font-weight: 700; min-width: 0; max-width: 48ch; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 560px) { .od-breadcrumb [aria-current="page"] { max-width: 22ch; } }

.od-hero {
  padding: 36px 40px; border-radius: 26px; margin-bottom: 26px;
  background: linear-gradient(145deg, rgba(255,255,255,0.88), rgba(245,235,255,0.58));
  border: 1px solid rgba(255,255,255,0.55);
  backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.60), 0 22px 60px rgba(124,58,237,0.16);
}
@media (max-width: 600px) { .od-hero { padding: 26px 22px; } }
.od-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 16px; }
.od-date { font-size: 12.5px; font-weight: 600; color: #8b6fc7; }
.od-title { font-size: clamp(28px, 4.4vw, 44px); font-weight: 900; line-height: 1.14; color: var(--ink-2, #4C1D95); margin: 0 0 10px; }
.od-cabinet { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; color: #6B46C1; margin-bottom: 20px; }
.od-cabinet svg { width: 17px; height: 17px; color: var(--violet, #7c3aed); }

.od-pills { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 24px; }
.od-pill {
  display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 999px;
  font-size: 13.5px; font-weight: 700; color: var(--ink-2, #4C1D95);
  background: rgba(255,255,255,0.72); border: 1px solid rgba(124,58,237,0.16);
}
.od-pill svg { width: 15px; height: 15px; color: var(--violet, #7c3aed); }

.od-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.od-apply-btn {
  display: inline-flex; align-items: center; gap: 9px; padding: 14px 28px; border: none; cursor: pointer;
  border-radius: 999px; font: inherit; font-size: 15.5px; font-weight: 800; color: #fff;
  background: var(--grad, linear-gradient(135deg, #7C3AED 0%, #DB2777 100%));
  box-shadow: 0 14px 36px rgba(124,58,237,0.38); transition: transform .2s, box-shadow .2s;
}
.od-apply-btn:hover { transform: translateY(-2px); box-shadow: 0 18px 44px rgba(124,58,237,0.46); }
.od-apply-btn svg { width: 17px; height: 17px; }
.od-share {
  display: inline-flex; align-items: center; gap: 8px; padding: 13px 22px; cursor: pointer;
  border-radius: 999px; font: inherit; font-size: 14px; font-weight: 700; color: var(--ink-2, #4C1D95);
  background: rgba(255,255,255,0.72); border: 1px solid rgba(124,58,237,0.20); transition: background .2s;
}
.od-share:hover { background: rgba(255,255,255,0.95); }
.od-share svg { width: 16px; height: 16px; color: var(--violet, #7c3aed); }

/* Corps : contenu + sidebar */
.od-grid { display: grid; grid-template-columns: 1fr 330px; gap: 24px; align-items: start; }
@media (max-width: 920px) { .od-grid { grid-template-columns: 1fr; } }

.od-content { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.od-section {
  padding: 30px 34px; border-radius: 22px;
  background: linear-gradient(145deg, rgba(255,255,255,0.85), rgba(245,235,255,0.55));
  border: 1px solid rgba(255,255,255,0.55);
  backdrop-filter: blur(18px) saturate(170%); -webkit-backdrop-filter: blur(18px) saturate(170%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.60), 0 18px 50px rgba(124,58,237,0.10);
}
@media (max-width: 600px) { .od-section { padding: 24px 20px; } }
.od-section h2 { font-size: 21px; font-weight: 800; color: var(--ink-2, #4C1D95); margin: 0 0 16px; }
.od-desc { font-size: 15px; line-height: 1.8; color: #3a2a6b; margin: 0 0 12px; }
.od-desc:last-child { margin-bottom: 0; }

.od-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 11px; }
.od-list li { display: flex; gap: 12px; font-size: 15px; line-height: 1.65; color: #3a2a6b; }
.od-bullet { flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; margin-top: 8px; background: var(--grad, linear-gradient(135deg, #7C3AED, #DB2777)); }

.od-chips { display: flex; flex-wrap: wrap; gap: 9px; }
.od-chip { font-size: 13.5px; font-weight: 700; color: #6B46C1; background: rgba(124,58,237,0.09); border: 1px solid rgba(124,58,237,0.18); padding: 7px 14px; border-radius: 999px; }

.od-benefits { display: grid; grid-template-columns: repeat(2, 1fr); gap: 11px; }
@media (max-width: 600px) { .od-benefits { grid-template-columns: 1fr; } }
.od-benefit { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; line-height: 1.55; color: #3a2a6b; }
.od-benefit-check { flex: 0 0 20px; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-size: 11px; font-weight: 900; background: var(--grad, linear-gradient(135deg, #7C3AED, #DB2777)); margin-top: 1px; }

.od-rome { display: flex; align-items: center; gap: 14px; }
.od-rome svg { width: 22px; height: 22px; color: var(--violet, #7c3aed); flex: 0 0 22px; }
.od-rome-label { font-size: 12px; font-weight: 700; color: #8b6fc7; text-transform: uppercase; letter-spacing: .04em; }
.od-rome-value { font-size: 15px; font-weight: 700; color: var(--ink-2, #4C1D95); }

/* Sidebar */
.od-sidebar { display: flex; flex-direction: column; gap: 18px; position: sticky; top: 96px; }
@media (max-width: 920px) { .od-sidebar { position: static; } }
.od-info-card {
  padding: 26px 26px; border-radius: 22px;
  background: linear-gradient(145deg, rgba(255,255,255,0.88), rgba(245,235,255,0.58));
  border: 1px solid rgba(255,255,255,0.55);
  backdrop-filter: blur(18px) saturate(170%); -webkit-backdrop-filter: blur(18px) saturate(170%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.60), 0 18px 50px rgba(124,58,237,0.12);
}
.od-info-title { font-size: 16px; font-weight: 800; color: var(--ink-2, #4C1D95); margin: 0 0 16px; }
.od-info-row { display: flex; gap: 12px; align-items: flex-start; padding: 9px 0; border-bottom: 1px solid rgba(124,58,237,0.08); }
.od-info-row:last-child { border-bottom: none; padding-bottom: 0; }
.od-info-row svg { width: 17px; height: 17px; color: var(--violet, #7c3aed); flex: 0 0 17px; margin-top: 2px; }
.od-info-label { font-size: 11.5px; font-weight: 700; color: #8b6fc7; text-transform: uppercase; letter-spacing: .04em; }
.od-info-value { font-size: 14px; font-weight: 700; color: var(--ink, #1F0A33); }

.od-rv-note { display: flex; gap: 10px; align-items: flex-start; padding: 16px 18px; border-radius: 16px; background: rgba(124,58,237,0.07); border: 1px dashed rgba(124,58,237,0.25); font-size: 12.5px; line-height: 1.6; color: #6B46C1; }
.od-rv-note a { color: var(--link, #7C3AED); font-weight: 700; }

/* CTA sticky mobile — [popover] : top layer, échappe le containing block créé
   par le filter du body (animation pageIn) qui casse position:fixed (cf. pattern
   beta-fab / cookie-banner dans partials.js). */
.od-sticky-cta {
  position: fixed; left: 16px; right: 16px; bottom: 16px; top: auto; z-index: 60;
  width: auto; margin: 0;
  display: none; align-items: center; justify-content: center; gap: 9px;
  padding: 15px 22px; border: none; border-radius: 999px; cursor: pointer;
  font: inherit; font-size: 15.5px; font-weight: 800; color: #fff;
  background: var(--grad, linear-gradient(135deg, #7C3AED 0%, #DB2777 100%));
  box-shadow: 0 16px 44px rgba(124,58,237,0.45);
}
.od-sticky-cta svg { width: 17px; height: 17px; }
@media (max-width: 920px) {
  .od-sticky-cta.show { display: inline-flex; }
}

/* ---------- Modale candidature ----------
   [popover] aussi (top layer) : neutralise les styles UA popover
   (fond blanc, fit-content, margin auto, border). */
.apply-modal {
  position: fixed; inset: 0; z-index: 200; display: none;
  width: 100%; height: 100%; max-width: none; max-height: none;
  margin: 0; border: 0; padding: 0; background: transparent; overflow: visible;
}
.apply-modal.open { display: block; }
.apply-modal-backdrop { position: absolute; inset: 0; background: rgba(31,10,51,0.45); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.apply-modal-card {
  position: relative; max-width: 560px; margin: 5vh auto; max-height: 90vh; overflow-y: auto;
  padding: 34px 36px 30px; border-radius: 26px;
  background: linear-gradient(160deg, rgba(255,255,255,0.96), rgba(248,240,255,0.92));
  border: 1px solid rgba(255,255,255,0.7);
  box-shadow: 0 40px 100px rgba(31,10,51,0.35);
}
@media (max-width: 620px) { .apply-modal-card { margin: 0; max-height: 100vh; height: 100%; border-radius: 0; padding: 28px 20px; } }
.apply-modal-close { position: absolute; top: 16px; right: 16px; width: 36px; height: 36px; border-radius: 50%; border: none; cursor: pointer; display: grid; place-items: center; background: rgba(124,58,237,0.08); color: #6B46C1; }
.apply-modal-close svg { width: 16px; height: 16px; }
.apply-eyebrow { font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--link, #7C3AED); }
.apply-title { font-size: 22px; font-weight: 900; color: var(--ink-2, #4C1D95); margin: 8px 0 4px; line-height: 1.25; }
.apply-sub { font-size: 13.5px; color: #8b6fc7; font-weight: 600; margin: 0 0 22px; }

.af-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
@media (max-width: 520px) { .af-row { grid-template-columns: 1fr; } }
.af-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.af-row .af-field { margin-bottom: 0; }
.af-field label { font-size: 12.5px; font-weight: 800; color: var(--ink-2, #4C1D95); }
.af-field input, .af-field textarea {
  width: 100%; box-sizing: border-box; padding: 12px 14px; border-radius: 12px;
  border: 1px solid rgba(124,58,237,0.20); background: rgba(255,255,255,0.85);
  font: inherit; font-size: 14.5px; color: var(--ink, #1F0A33); outline: none; transition: border-color .2s;
}
.af-field input:focus, .af-field textarea:focus { border-color: rgba(124,58,237,0.55); }

.af-file { display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 20px 16px; border-radius: 14px; border: 1.5px dashed rgba(124,58,237,0.35); background: rgba(124,58,237,0.05); cursor: pointer; text-align: center; transition: background .2s; }
.af-file:hover { background: rgba(124,58,237,0.09); }
.af-file svg { width: 22px; height: 22px; color: var(--violet, #7c3aed); }
.af-file-text { font-size: 14px; font-weight: 800; color: var(--ink-2, #4C1D95); }
.af-file-hint { font-size: 12px; color: #8b6fc7; font-weight: 600; }
.af-file input[type="file"] { display: none; }
.af-file.has-file { border-style: solid; background: rgba(124,58,237,0.10); }

.af-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 12.5px; line-height: 1.55; color: #5b2ea3; margin: 14px 0 18px; cursor: pointer; }
.af-consent input { margin-top: 2px; accent-color: var(--violet, #7c3aed); }
.af-consent a { color: var(--link, #7C3AED); }

.af-submit { width: 100%; justify-content: center; }
.af-submit[disabled] { opacity: .6; cursor: wait; transform: none !important; }

.af-feedback { display: none; margin-top: 14px; padding: 12px 16px; border-radius: 12px; font-size: 13.5px; font-weight: 700; }
.af-feedback.error { display: block; color: #b91c1c; background: rgba(220,38,38,0.08); border: 1px solid rgba(220,38,38,0.25); }

.af-success { display: none; text-align: center; padding: 28px 10px 10px; }
.af-success.show { display: block; }
.af-success-icon { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: var(--grad, linear-gradient(135deg, #7C3AED, #DB2777)); box-shadow: 0 16px 40px rgba(124,58,237,0.35); }
.af-success-icon svg { width: 30px; height: 30px; }
.af-success h4 { font-size: 20px; font-weight: 900; color: var(--ink-2, #4C1D95); margin: 0 0 8px; }
.af-success p { font-size: 14px; line-height: 1.65; color: #5b2ea3; margin: 0; }

/* Hauteur honeypot (anti-spam) — champ invisible pour les humains */
.hp-field { position: absolute; left: -9999px; top: -9999px; height: 0; overflow: hidden; }

/* ---------- Pagination du listing ---------- */
.jobs-pagination { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 30px 0 6px; }
.jobs-page-link {
  display: inline-flex; align-items: center; padding: 9px 16px; border-radius: 999px;
  font-size: 13.5px; font-weight: 700; text-decoration: none;
  color: #6B46C1; background: rgba(124,58,237,0.08); border: 1px solid rgba(124,58,237,0.16);
  transition: background .2s;
}
.jobs-page-link:hover { background: rgba(124,58,237,0.14); }
.jobs-page-link.active { color: #fff !important; -webkit-text-fill-color: #fff !important; background: var(--grad, linear-gradient(135deg, #7C3AED, #DB2777)); border-color: transparent; }
.jobs-page-note { font-weight: 600; color: #8b6fc7; }

/* ---------- Page « Offre pourvue » (tombstone, noindex) ---------- */
.job-tag-closed { color: #fff; -webkit-text-fill-color: #fff !important; background: linear-gradient(135deg, #6B7280, #4B5563); font-size: 11.5px; font-weight: 800; padding: 5px 12px; border-radius: 999px; }
.od-hero-closed { text-align: left; }
.od-closed-text { font-size: 15.5px; line-height: 1.7; color: #5b2ea3; max-width: 620px; margin: 0 0 22px; }
.od-similar-title { font-size: 22px; font-weight: 800; color: var(--ink-2, #4C1D95); margin: 34px 0 18px; }
/* Lien-bouton du tombstone : id requis pour battre la règle a:not(...) de styles.css */
#tombstone-cta { color: #fff !important; -webkit-text-fill-color: #fff !important; text-decoration: none; }
