/* ==========================================================================
   BAARA KUMA — PAGES SPÉCIFIQUES  (v2.0)
   1. Détail d'une offre d'emploi (single-jobs)
   2. Appels d'offres  (page-appel-doffre.php)
   3. CVthèque          (page-cvtheque.php — réutilise la mise en page 2)
   4. Accueil (slider conservé)
   5. Pages de contenu (À propos, Contact, CGU…)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. DÉTAIL D'UNE OFFRE D'EMPLOI
   -------------------------------------------------------------------------- */
html body.single-jobs .cs-subheader{ text-align:center; padding-bottom:clamp(88px, 4rem + 3vw, 112px) !important; }
html body.single-jobs .cs-subheader :is(h1,p){ margin-left:auto !important; margin-right:auto !important; }
html body.single-jobs .cs-subheader .breadcrumb-nav{ justify-content:center; }

/* Carte « résumé » qui chevauche le bandeau */
html body.single-jobs .jobs-detail-4 > .page-section:first-child{ margin-top:-64px; position:relative; z-index:2; padding-top:0 !important; padding-bottom:0 !important; }
html body.single-jobs .jobs-info{
  display:flex !important; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 24px;
  background:#fff; border:1px solid var(--bk-border); border-radius:var(--bk-radius-lg); box-shadow:var(--bk-shadow-hover);
  padding:22px 26px !important;
}
html body.single-jobs .jobs-info::before, html body.single-jobs .jobs-info::after{ display:none !important; content:none !important; }
html body.single-jobs .jobs-info > .cs-text{ display:flex !important; flex-wrap:wrap; align-items:center; gap:12px 18px; flex:1 1 420px; width:auto !important; float:none !important; }
html body.single-jobs .jobs-info .post-options{ display:flex !important; flex-wrap:wrap; gap:6px 20px; margin:0 !important; padding:0; width:auto !important; }
html body.single-jobs .jobs-info .post-options li{
  display:inline-flex !important; align-items:center; gap:6px; float:none !important; width:auto !important;
  color:var(--bk-muted) !important; font-size:var(--bk-fs-sm); margin:0 !important; padding:0 !important; border:0 !important;
}
html body.single-jobs .jobs-info .post-options li span{ color:var(--bk-ink) !important; font-weight:var(--bk-fw-semi); }
html body.single-jobs .jobs-info .post-options i{ color:var(--bk-brand-orange) !important; }
html body.single-jobs .apply-buttons{ display:flex !important; flex-wrap:wrap; align-items:center; gap:10px; flex:0 0 auto; width:auto !important; float:none !important; margin:0 !important; }
html body.single-jobs .apply-buttons a{ display:inline-flex !important; align-items:center; gap:8px; float:none !important; margin:0 !important; border-radius:var(--bk-radius-md) !important; font-weight:var(--bk-fw-semi) !important; text-transform:none !important; }
html body.single-jobs .apply-buttons a.applied_icon{ min-height:var(--bk-control-h); padding:0 26px !important; }
html body.single-jobs .apply-buttons a:is(.linkedin, .social_login_login_linkedin){
  min-height:var(--bk-control-h); padding:0 16px !important; background:#fff !important; color:#0A66C2 !important; border:1.5px solid var(--bk-border-strong) !important;
}
html body.single-jobs .apply-buttons a.cs-add-wishlist{
  min-height:var(--bk-control-h); padding:0 16px !important; background:#fff !important; color:var(--bk-muted) !important; border:1.5px solid var(--bk-border-strong) !important;
}
html body.single-jobs .apply-buttons a:is(.linkedin, .cs-add-wishlist):hover{ border-color:var(--bk-blue-600) !important; color:var(--bk-blue-700) !important; }
/* Message « date limite dépassée » */
html body .expired-job-notice{ flex:1 1 100%; margin:0 !important; padding:0 !important; background:none !important; border:0 !important; text-align:left !important; }
html body .expired-job-notice span{
  display:inline-flex !important; align-items:center; gap:8px; padding:8px 14px !important; margin:0 !important;
  background:var(--bk-danger-bg) !important; color:var(--bk-danger) !important; border:1px solid #F6CFCB !important;
  border-radius:var(--bk-radius-md) !important; font-size:var(--bk-fs-sm) !important; font-weight:var(--bk-fw-medium) !important;
}
html body.single-jobs .jobs-detail-4 > .page-section + .page-section{ padding-top:28px !important; }

/* Grille 2/3 – 1/3 */
@media (min-width:992px){
  html body.single-jobs .jobs-detail-4 > .page-section:nth-child(2) > .container > .row{ display:flex; align-items:flex-start; }
  html body.single-jobs .jobs-detail-4 .section-content.col-lg-6{ width:66.6667% !important; }
  html body.single-jobs .jobs-detail-4 .section-sidebar.col-lg-6{ width:33.3333% !important; position:sticky; top:96px; }
}

/* Texte de l'offre : carte de lecture */
html body.single-jobs .rich-editor-text{
  background:#fff; border:1px solid var(--bk-border); border-radius:var(--bk-radius-lg); box-shadow:var(--bk-shadow-card);
  padding:clamp(22px, 1rem + 1.5vw, 38px); margin-top:28px; color:var(--bk-text);
}
html body.single-jobs .rich-editor-text > h6:first-child{
  font-size:var(--bk-fs-h4) !important; font-weight:var(--bk-fw-bold) !important; color:var(--bk-ink) !important;
  margin:0 0 18px !important; padding-bottom:14px; border-bottom:1px solid var(--bk-border);
}
html body.single-jobs .rich-editor-text p{ margin:0 0 12px !important; }
html body.single-jobs .rich-editor-text :is(li, li span, td){ font-size:var(--bk-fs-body) !important; line-height:var(--bk-lh-body) !important; color:var(--bk-text); }
html body.single-jobs .rich-editor-text :is(strong,b){ color:var(--bk-ink); }
html body.single-jobs .rich-editor-text .bk-subtitle,
html body.single-jobs .rich-editor-text .bk-subtitle :is(strong,b){
  display:block; font-size:var(--bk-fs-h5) !important; font-weight:var(--bk-fw-bold); color:var(--bk-ink) !important;
  margin:24px 0 10px !important; padding-left:12px; border-left:3px solid var(--bk-brand-orange); line-height:1.4 !important;
}
html body.single-jobs .rich-editor-text .bk-subtitle :is(strong,b){ display:inline; margin:0 !important; padding:0; border:0; }
html body.single-jobs .rich-editor-text ul{ margin:6px 0 16px !important; padding:0 !important; list-style:none !important; }
html body.single-jobs .rich-editor-text ul li{ position:relative; padding:3px 0 3px 22px !important; margin:0 !important; list-style:none !important; }
html body.single-jobs .rich-editor-text ul li::before{
  content:""; position:absolute; left:4px; top:.8em; width:7px; height:7px; border-radius:50%; background:var(--bk-brand-orange);
}
html body.single-jobs .rich-editor-text li.bk-subtitle::before{ display:none; }

/* Offres similaires */
html body.single-jobs .cs-featured-jobs{ background:#fff; border:1px solid var(--bk-border); border-radius:var(--bk-radius-lg); padding:24px 28px; margin-top:22px; }
html body.single-jobs .cs-featured-jobs :is(h3,h4){ font-size:var(--bk-fs-h5) !important; margin-bottom:10px !important; }
html body.single-jobs .cs-company-jobs li{ border-bottom:1px solid var(--bk-border) !important; padding:12px 0 !important; }
html body.single-jobs .cs-company-jobs li:last-child{ border-bottom:0 !important; }
html body.single-jobs .cs-company-jobs a{ color:var(--bk-ink) !important; font-weight:var(--bk-fw-semi); }
html body.single-jobs .cs-company-jobs a:hover{ color:var(--bk-blue-600) !important; }

/* Colonne de droite */
html body.single-jobs :is(.bk-apply-card, .jobs-detail-listing, .company-info, .bk-map-card){
  background:#fff !important; border:1px solid var(--bk-border); border-radius:var(--bk-radius-lg); box-shadow:var(--bk-shadow-card);
  padding:22px !important; margin-top:20px;
}
html body.single-jobs .bk-apply-card{ margin-top:28px; }
html body.single-jobs .bk-apply-card a.bk-apply-btn{ display:flex; width:100%; min-height:52px; font-size:1.0625rem !important; }
html body.single-jobs .bk-apply-card .bk-deadline{ display:block; text-align:center; margin-top:10px; color:var(--bk-muted); font-size:var(--bk-fs-sm); }
html body.single-jobs .bk-apply-card .bk-deadline strong{ color:var(--bk-ink); }
html body.single-jobs .jobs-detail-listing{ padding-bottom:8px !important; }
html body.single-jobs .jobs-detail-listing::before{ content:"Aperçu du poste"; display:block; font-weight:var(--bk-fw-bold); color:var(--bk-ink); font-size:var(--bk-fs-h5); margin-bottom:14px; }
html body.single-jobs .jobs-detail-listing ul.row{ margin:0 !important; }
html body.single-jobs .jobs-detail-listing ul.row > li{ width:100% !important; float:none !important; padding:0 !important; margin:0 0 14px !important; }
html body.single-jobs .jobs-detail-listing .listing-inner{ display:flex; align-items:center; gap:14px; border:0 !important; background:transparent !important; padding:0 !important; min-height:0 !important; }
html body.single-jobs .jobs-detail-listing .listing-inner > i{
  flex:0 0 44px; width:44px; height:44px; border-radius:var(--bk-radius-md); background:var(--bk-blue-50); color:var(--bk-blue-600) !important;
  display:flex !important; align-items:center; justify-content:center; font-size:20px !important; position:static !important; margin:0 !important;
}
html body.single-jobs .jobs-detail-listing .cs-text{ padding:0 !important; margin:0 !important; }
html body.single-jobs .jobs-detail-listing .cs-text span{ display:block; color:var(--bk-muted) !important; font-size:var(--bk-fs-xs); }
html body.single-jobs .jobs-detail-listing .cs-text strong{ display:block; color:var(--bk-ink) !important; font-size:var(--bk-fs-body); font-weight:var(--bk-fw-bold); }
html body.single-jobs .company-info{ text-align:center; }
html body.single-jobs .company-info .cs-media{
  float:none !important; margin:0 auto 12px !important; width:104px; height:104px; border:1px solid var(--bk-border); border-radius:var(--bk-radius-lg);
  overflow:hidden; display:flex; align-items:center; justify-content:center;
}
html body.single-jobs .company-info .cs-media img{ max-width:88%; max-height:88%; width:auto; height:auto; }
html body.single-jobs .company-info .cs-text{ float:none !important; padding:0 !important; }
html body.single-jobs .company-info .cs-text strong a{ color:var(--bk-ink) !important; font-size:var(--bk-fs-h5); }
html body.single-jobs .company-info .cs-text > a{ margin-top:10px; }
html body.single-jobs .company-info .admin-contect{ border-top:1px solid var(--bk-border); margin-top:16px !important; padding-top:14px !important; text-align:left; }
html body.single-jobs .company-info .admin-contect li{ display:flex; align-items:center; gap:10px; border:0 !important; padding:4px 0 !important; }
html body.single-jobs .company-info .admin-contect i{ color:var(--bk-blue-600) !important; }
html body.single-jobs .company-info .admin-contect p{ margin:0 !important; word-break:break-all; font-size:var(--bk-fs-sm) !important; }
html body.single-jobs .bk-map-title{ font-weight:var(--bk-fw-bold); color:var(--bk-ink); font-size:var(--bk-fs-h5); }
html body.single-jobs .bk-map-place{ color:var(--bk-muted); font-size:var(--bk-fs-sm); margin-top:2px; }
html body.single-jobs .bk-map-frame{ margin-top:12px; border-radius:var(--bk-radius-md); overflow:hidden; border:1px solid var(--bk-border); aspect-ratio:4/3; background:var(--bk-surface); }
html body.single-jobs .bk-map-frame iframe{ display:block; width:100%; height:100%; border:0; }
html body.single-jobs .bk-map-link{ display:inline-block; margin-top:10px; font-weight:var(--bk-fw-semi); font-size:var(--bk-fs-sm); }

@media (max-width:991px){
  html body.single-jobs .jobs-info{ padding:18px !important; }
  html body.single-jobs .apply-buttons{ width:100% !important; }
  html body.single-jobs .apply-buttons a.applied_icon{ flex:1 1 auto; justify-content:center; }
}
@media (max-width:767px){
  html body.single-jobs .jobs-info > :is(.cs-text,.apply-buttons){ flex:1 1 100% !important; max-width:100%; }
  html body.single-jobs .apply-buttons a{ flex:1 1 100%; justify-content:center; }
  html body.single-jobs .apply-buttons a.applied_icon{ order:-1; }
}

/* --------------------------------------------------------------------------
   2. APPELS D'OFFRES  (et structure commune avec la CVthèque)
   -------------------------------------------------------------------------- */
.bk-ao{ padding:clamp(28px, 1rem + 2vw, 48px) 0 var(--bk-section-y); }
.bk-ao-layout{ display:grid; grid-template-columns:300px minmax(0,1fr); gap:32px; align-items:start; }

/* Colonne de filtres */
.bk-ao-filters{ position:sticky; top:96px; display:flex; flex-direction:column; gap:20px; }
.bk-ao-filters form{ background:#fff; border:1px solid var(--bk-border); border-radius:var(--bk-radius-lg); box-shadow:var(--bk-shadow-card); padding:22px 20px; }
.bk-ao-filter{ margin-bottom:20px; }
html body :is(.bk-ao-filter > label, .bk-ao-label){
  display:block; font-weight:var(--bk-fw-bold); color:var(--bk-ink); font-size:var(--bk-fs-sm); margin-bottom:8px;
}
.bk-ao-input{ position:relative; }
.bk-ao-input i{ position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--bk-subtle); font-size:16px; pointer-events:none; z-index:1; }
html body .bk-ao-input :is(input,select){
  width:100%; height:var(--bk-control-h); background:var(--bk-surface) !important; border:1px solid transparent !important;
  padding:0 14px 0 42px !important; box-shadow:none !important; appearance:none; -webkit-appearance:none;
}
html body .bk-ao-input :is(input,select):focus{ background:#fff !important; border-color:var(--bk-blue-600) !important; box-shadow:var(--bk-focus-ring) !important; }
html body .bk-ao-input select, html body .bk-ao-sorts select{
  cursor:pointer; padding-right:36px !important;
  background-image:linear-gradient(45deg,transparent 50%,var(--bk-muted) 50%),linear-gradient(135deg,var(--bk-muted) 50%,transparent 50%) !important;
  background-position:calc(100% - 20px) 50%, calc(100% - 15px) 50% !important; background-size:5px 5px,5px 5px !important; background-repeat:no-repeat !important;
}
.bk-ao-radios{ display:flex; flex-direction:column; gap:10px; }
html body .bk-ao-radio{ display:flex; align-items:center; gap:10px; font-weight:var(--bk-fw-regular) !important; color:var(--bk-text); font-size:var(--bk-fs-sm); cursor:pointer; margin:0 !important; }
html body .bk-ao-radio input{ margin:0 !important; }
html body .bk-ao-submit{ width:100%; }
html body .bk-ao-reset{ display:block; text-align:center; margin-top:12px; font-size:var(--bk-fs-sm); font-weight:var(--bk-fw-semi); color:var(--bk-blue-600) !important; }
.bk-ao-promo{
  position:relative; overflow:hidden; display:flex; flex-direction:column; gap:8px;
  background:var(--bk-orange-50); border:1px solid var(--bk-orange-100); border-radius:var(--bk-radius-lg); padding:22px 20px; color:var(--bk-text);
}
.bk-ao-promo i{ font-size:26px; color:var(--bk-brand-orange); }
html body .bk-ao-promo strong{ font-size:var(--bk-fs-h5); color:var(--bk-ink); }
html body .bk-ao-promo p{ color:var(--bk-text) !important; font-size:var(--bk-fs-sm) !important; margin:0 !important; line-height:1.6 !important; }
html body .bk-ao-promo a{ align-self:flex-start; margin-top:8px; min-height:var(--bk-control-h-sm); padding:0 16px !important; font-size:var(--bk-fs-sm) !important; }

/* Barre d'outils */
.bk-ao-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:18px; }
html body .bk-ao-count{ margin:0 !important; color:var(--bk-muted) !important; font-size:var(--bk-fs-sm) !important; }
html body .bk-ao-count strong{ color:var(--bk-ink); }
.bk-ao-sorts{ display:flex; gap:10px; }
html body .bk-ao-sorts select{
  height:42px; min-height:42px; border:1px solid var(--bk-border) !important; background-color:#fff !important; box-shadow:none !important;
  padding:0 36px 0 14px !important; font-size:var(--bk-fs-sm) !important; color:var(--bk-ink); appearance:none; -webkit-appearance:none;
}

/* Cartes de résultats */
.bk-ao-list{ display:flex; flex-direction:column; gap:16px; }
.bk-ao-card{
  position:relative; display:flex; gap:18px; align-items:flex-start;
  background:#fff; border:1px solid var(--bk-border); border-radius:var(--bk-radius-lg); box-shadow:var(--bk-shadow-card);
  padding:22px 24px; transition:box-shadow var(--bk-t-base), border-color var(--bk-t-base), transform var(--bk-t-base);
}
.bk-ao-card:hover{ box-shadow:var(--bk-shadow-hover); border-color:var(--bk-border-strong); transform:translateY(-2px); }
.bk-ao-cardlink{ position:absolute; inset:0; z-index:1; border-radius:inherit; }
.bk-ao-cardlink:focus-visible{ outline-offset:-2px !important; }
.bk-ao-icon{
  flex:0 0 52px; width:52px; height:52px; border-radius:var(--bk-radius-md); background:var(--bk-blue-50); color:var(--bk-blue-600);
  display:flex; align-items:center; justify-content:center; font-size:24px; overflow:hidden;
}
.bk-ao-icon img{ width:100%; height:100%; object-fit:cover; }
.bk-ao-body{ flex:1 1 auto; min-width:0; }
html body .bk-ao-title{
  font-size:var(--bk-fs-h5) !important; line-height:var(--bk-lh-snug) !important; font-weight:var(--bk-fw-bold) !important;
  color:var(--bk-ink) !important; letter-spacing:0 !important; margin:0 0 8px !important;
}
.bk-ao-card:hover .bk-ao-title{ color:var(--bk-blue-600) !important; }
.bk-ao-meta{ display:flex; flex-wrap:wrap; gap:4px 18px; color:var(--bk-muted); font-size:var(--bk-fs-sm); margin-bottom:8px; }
.bk-ao-meta:empty{ display:none; }
.bk-ao-meta i{ color:var(--bk-subtle); margin-right:6px; }
html body .bk-ao-excerpt{ color:var(--bk-text) !important; font-size:var(--bk-fs-sm) !important; line-height:1.6 !important; margin:0 0 12px !important; }
.bk-ao-tags{ display:flex; flex-wrap:wrap; gap:8px; }
.bk-ao-arrow{ flex:0 0 auto; align-self:center; color:var(--bk-border-strong); font-size:22px; transition:color var(--bk-t-base), transform var(--bk-t-base); }
.bk-ao-card:hover .bk-ao-arrow{ color:var(--bk-blue-600); transform:translateX(3px); }

/* Pagination */
.bk-ao-pager{ display:flex; justify-content:center; align-items:center; gap:6px; margin-top:34px; flex-wrap:wrap; }
html body .bk-ao-pager :is(a,span){
  min-width:42px; height:42px; padding:0 10px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:var(--bk-radius-md); border:1px solid var(--bk-border); background:#fff;
  font-weight:var(--bk-fw-semi); font-size:var(--bk-fs-sm); color:var(--bk-ink) !important;
}
html body .bk-ao-pager a:hover{ border-color:var(--bk-blue-600); color:var(--bk-blue-600) !important; }
html body .bk-ao-pager .is-current{ background:var(--bk-blue-600); border-color:var(--bk-blue-600); color:#fff !important; }
html body .bk-ao-pager .bk-ao-dots{ min-width:20px; border:0; background:none; color:var(--bk-muted) !important; }

.bk-ao-empty{ text-align:center; background:var(--bk-surface); border-radius:var(--bk-radius-lg); padding:48px 24px; color:var(--bk-text); }
.bk-ao-empty i{ font-size:34px; color:var(--bk-brand-blue); }
html body .bk-ao-empty a{ font-weight:var(--bk-fw-semi); }

/* --------------------------------------------------------------------------
   3. CVTHÈQUE
   -------------------------------------------------------------------------- */
.bk-cv-card{ align-items:center; }
.bk-cv-avatar{
  flex:0 0 64px; width:64px; height:64px; border-radius:50%; overflow:hidden;
  background:var(--bk-blue-50); display:flex; align-items:center; justify-content:center;
  box-shadow:0 0 0 3px #fff, 0 0 0 4px var(--bk-border);
}
.bk-cv-avatar img{ width:100% !important; height:100% !important; max-width:none !important; object-fit:cover; display:block; }
.bk-cv-avatar span{ color:var(--bk-blue-600); font-weight:var(--bk-fw-bold); font-size:24px; text-transform:uppercase; line-height:1; }
html body .bk-cv-role{ color:var(--bk-blue-600) !important; font-weight:var(--bk-fw-semi); }
html body .bk-cv-btn{ position:relative; z-index:2; flex:0 0 auto; align-self:center; white-space:nowrap; }
html body .bk-cv-btn-locked, html body .bk-cv-btn-locked:hover{ background:var(--bk-surface) !important; color:var(--bk-muted) !important; border-color:var(--bk-border) !important; cursor:default; }

/* Responsive appels d'offres + CVthèque */
@media (max-width:991px){
  .bk-ao-layout{ grid-template-columns:1fr; gap:24px; }
  .bk-ao-filters{ position:static; }
  .bk-ao-promo{ display:none; }
}
@media (max-width:767px){
  .bk-ao-card{ padding:16px; gap:14px; }
  .bk-ao-icon{ flex-basis:44px; width:44px; height:44px; font-size:20px; }
  .bk-ao-arrow{ display:none; }
  .bk-ao-sorts{ width:100%; }
  .bk-ao-sorts select{ flex:1; min-width:0; }
  .bk-cv-card{ flex-wrap:wrap; align-items:flex-start; }
  .bk-cv-card .bk-ao-body{ flex:1 1 calc(100% - 70px); min-width:0; }
  .bk-cv-avatar{ flex-basis:52px; width:52px; height:52px; }
  .bk-cv-avatar span{ font-size:20px; }
  html body .bk-cv-btn{ width:100%; }
}

/* --------------------------------------------------------------------------
   4. ACCUEIL — le slider (Revolution Slider) est conservé tel quel
   -------------------------------------------------------------------------- */
html body.home .cs-banner{ display:block !important; position:relative; z-index:1; }
html body.home .cs-banner + .main-section > .page-section:first-child{ padding-top:var(--bk-section-y) !important; }

/* --------------------------------------------------------------------------
   5. PAGES DE CONTENU (À propos, Contact, CGU, Packs…)
   -------------------------------------------------------------------------- */
/* Texte libre du constructeur : largeur de lecture limitée, rythme régulier */
html body.page:not(.home) .main-section .cs_flex_editor > .row > [class*="col-"] > :is(p,ul,ol,h2,h3,h4,h5,h6),
html body.page:not(.home) .main-section .rich-editor-text,
html body.page:not(.home) .main-section .lightbox > :is(p,ul,ol,h1,h2,h3,h4,h5,h6,blockquote,hr){ max-width:820px; }
html body.page:not(.home) .main-section .lightbox > :is(ul,ol){ padding-left:1.25em; }
html body.page:not(.home) .main-section .lightbox li{ margin-bottom:.4em; color:var(--bk-text); }
html body.page:not(.home) .main-section .lightbox hr{ margin:var(--bk-space-6) 0; }
html body.page:not(.home) .main-section .cs_flex_editor :is(h2,h3,h4){ margin-top:1.6em; }
html body.page:not(.home) .main-section .cs_flex_editor ul li{ margin-bottom:.4em; }

/* Formulaire Contact Form 7 */
html body .wpcf7 form{ display:grid; gap:14px; max-width:720px; }
html body .wpcf7 form p{ margin:0 !important; }
html body .wpcf7 form label{ display:block; }
html body .wpcf7 form :is(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),select,textarea){ width:100%; margin-top:6px; }
