/* PRCPB – page Appels d’offres et recrutements */
main { width:min(100% - 2rem, 71.25rem); max-width:1140px; margin:0 auto; padding:clamp(7rem, 14vw, 9rem) 0 4rem; }
.section-label { color:var(--green-mid); display:block; margin-bottom:.8rem; font-size:11px; font-weight:500; letter-spacing:2.5px; text-transform:uppercase; }
h1 { color:var(--green-deep); font:500 clamp(2.5rem,5vw,4.2rem)/1.1 'Cormorant Garamond',serif; margin-bottom:1rem; }
.lead { max-width:700px; color:var(--text-mid); font-weight:300; margin-bottom:2.5rem; }
.table-wrap { width:100%; overflow-x:auto; background:#fff; border:1px solid var(--border); border-radius:8px; box-shadow:0 2px 12px rgba(0,0,0,.06); }
table { width:100%; min-width:0; border-collapse:collapse; }
th { padding:.7rem .75rem; background:var(--green-deep); color:#fff; font-size:11px; font-weight:600; letter-spacing:1px; text-align:left; }
td { padding:.7rem .75rem; border-bottom:1px solid #f0f0f0; font-size:13px; vertical-align:middle; }
tr:last-child td { border-bottom:0; }
tbody tr { transition:background .15s; }
tbody tr:hover { background:#f8faf9; }
.number, .date { font-variant-numeric:tabular-nums; font-weight:500; color:#52665e; white-space:nowrap; }
.tag { display:inline-flex; align-items:center; margin-right:10px; padding:3px 10px; border-radius:999px; border:none; font-size:11px; font-weight:600; letter-spacing:.2px; white-space:nowrap; }
.tag-brown { background:#fef3c7; color:#92400e; }
.tag-green { background:#dcfce7; color:#166534; }
.tag-purple { background:#e0e7ff; color:#3730a3; }
.tag-teal { background:#ccfbf1; color:#115e59; }
.tag-gold { background:#f1f5f9; color:#334155; border:1px solid #cbd5e1; }
.title { color:var(--green-deep); font-weight:500; overflow-wrap:anywhere; }
.links { white-space:nowrap; display:flex; gap:6px; align-items:center; }
.links a { display:inline-flex; align-items:center; gap:5px; margin-right:0; padding:5px 10px; border-radius:6px; font-size:11.5px; font-weight:600; text-decoration:none; background:#f0f4f8; color:#1e3a8a; border:1px solid #dbeafe; transition:all .2s ease; }
.links a:hover { background:#1e3a8a; color:#fff; border-color:#1e3a8a; transform:translateY(-1px); }
.links a.site { background:rgba(45,122,110,.08); color:var(--green-deep); border:1px solid rgba(45,122,110,.2); }
.links a.site:hover { background:var(--green-deep); color:#fff; border-color:var(--green-deep); }
.links i { margin-right:4px; }
.filter-bar { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem; }
.filter-btn { padding:.55rem .9rem; border:1px solid var(--border); border-radius:999px; background:#fff; color:var(--text-mid); font:500 12px/1.2 'DM Sans',sans-serif; cursor:pointer; transition:all .2s ease; }
.filter-btn:hover, .filter-btn.active { background:var(--green-deep); color:#fff; border-color:var(--green-deep); }
.notice { margin-top:1.2rem; padding:.8rem 1.2rem; background:#fff; border:1px solid rgba(45,122,110,.2); border-left:4px solid var(--gold); box-shadow:0 2px 8px rgba(0,0,0,.04); border-radius:6px; color:var(--text-mid); font-size:13px; }
.notice a { color:#4267b2; font-weight:600; }
.notice i { color:var(--gold); margin-right:8px; }
@media (max-width:75rem) { main { width:min(100% - 1.5rem, 71.25rem); } }
@media (max-width:43.75rem) {
  main { width:calc(100% - 1.5rem); padding-top:5rem; }
  h1 { font-size:clamp(2.2rem, 12vw, 3.4rem); }
  .lead { margin-bottom:1.5rem; }
  .table-wrap { overflow:visible; background:transparent; border:0; box-shadow:none; }
  table, thead, tbody, tr, th, td { display:block; }
  thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  tbody { display:grid; gap:.75rem; }
  tr { padding:.85rem; background:#fff; border:1px solid var(--border); border-radius:.5rem; box-shadow:0 2px 8px rgba(0,0,0,.05); }
  td { padding:.25rem 0; border:0; }
  td:first-child::before { content:"N° "; color:#888; }
  td:nth-child(3)::before { content:"Date de publication : "; color:#888; }
  .links { display:flex; flex-wrap:wrap; gap:.5rem; white-space:normal; }
  .links a { margin:0; }
  .notice { padding:.8rem; }
}
