.elementor-9006 .elementor-element.elementor-element-a8a0405{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9006 .elementor-element.elementor-element-d97d956{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}/* Start custom CSS for html, class: .elementor-element-f2ae427 */:root{
  --cream: #fffbe9;
  --navy-900:#0b0f2a;
  --navy-800:#0e1233;
  --navy-700:#141a45;
  --white:#ffffff;

  --blue:#3a66ff;
  --green:#15c26b;
  --orange:#ff9d2e;

  --ring: rgba(58,102,255,.25);
  --panel: rgba(255,255,255,.06);
}

/* SECTION “HERO” */
.hub-hero{
  background: radial-gradient(1200px 500px at 20% 0%, rgba(58,102,255,.15), transparent 60%),
              linear-gradient(180deg, var(--navy-800), var(--navy-900));
  border-radius: 28px;
  padding: clamp(28px, 5vw, 56px);
  box-shadow:
    0 10px 30px rgba(0,0,0,.25),
    inset 0 1px 0 rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  color: var(--white);
  position: relative;
  isolation: isolate;
}

/* halo doux sous le bloc, façon capture 1 */
.hub-hero::after{
  content:"";
  position:absolute;
  inset: auto 24px -28px 24px;
  height: 40px;
  filter: blur(20px);
  background: rgba(0,0,0,.35);
  border-radius: 24px;
  z-index:-1;
}

.hub-hero__inner{
  max-width: 1100px;
  margin: 0 auto;
}

/* TITRE */
.hub-title{
  font-family: ui-serif, "Georgia", "Times New Roman", serif;
  font-weight: 800;
  line-height: .95;
  letter-spacing: -0.02em;
  font-size: clamp(34px, 6vw, 74px);
  margin: 0 0 14px;
  text-shadow:
    0 2px 8px rgba(0,0,0,.35),
    0 8px 40px var(--ring);
  position: relative;
}

/* Soulignement lumineux animé */
.hub-title::after{
  content:"";
  display:block;
  width: clamp(160px, 25%, 320px);
  height: 6px;
  margin-top: 14px;
  border-radius: 999px;
  background:
    linear-gradient(90deg, rgba(255,255,255,.35), rgba(255,255,255,0)),
    linear-gradient(90deg, var(--blue), #6da8ff);
  box-shadow: 0 0 22px rgba(58,102,255,.55);
  position: relative;
  overflow: hidden;
}
.hub-title::after{
  animation: sheen 2.8s ease-in-out infinite;
}
@keyframes sheen{
  0%   { filter: brightness(1); opacity: .9; }
  50%  { filter: brightness(1.25); opacity: 1; }
  100% { filter: brightness(1); opacity: .9; }
}

/* SOUS-TITRE */
.hub-subtitle{
  margin: 4px 0 22px;
  font-size: clamp(14px, 2.2vw, 20px);
  color: rgba(255,255,255,.78);
}

/* PASTILLES/BOUTONS façon “My account / Home / Shop” */
.hub-cta,
.hub-note{
  display:flex;
  flex-wrap: wrap;
  gap: 12px;
}

.pill{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  padding: 10px 16px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.04));
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
  color: var(--white);
  text-decoration:none;
  font-weight: 600;
  backdrop-filter: blur(6px);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.pill:hover{
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(0,0,0,.25);
  border-color: rgba(255,255,255,.22);
}
.pill:active{ transform: translateY(0); }

.pill-ghost{
  background: var(--panel);
  font-weight: 700;
}
.pill-outline{
  background: transparent;
  border: 1.5px solid rgba(255,255,255,.35);
}

/* petits points colorés dans les pastilles */
.dot{
  width: 10px; height: 10px;
  border-radius: 999px;
  display:inline-block;
  box-shadow: 0 0 0 4px rgba(255,255,255,.08) inset, 0 0 12px currentColor;
}
.dot-blue{ color: var(--blue); background: var(--blue); }
.dot-green{ color: var(--green); background: var(--green); }
.dot-orange{ color: var(--orange); background: var(--orange); }

/* ACCESSIBILITÉ / RÉACTIF */
@media (max-width: 680px){
  .hub-hero{ padding: 24px; }
  .hub-title::after{ width: 55%; }
}
@media (prefers-reduced-motion: reduce){
  .hub-title::after{ animation: none; }
  .pill{ transition: none; }
}

/* Optionnel : fond crème du site pour matcher ta maquette */
body{ background: var(--cream); }
/* ======= Hero — centrage + respirations ======= */

/* centre tout le contenu du hero */
.hub-hero__inner{
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}

/* titre + sous-titre : plus d'air */
.hub-title{
  margin: 0 0 18px !important;
}
.hub-subtitle{
  margin: 8px 0 26px !important;   /* ↑ espace sous le sous-titre */
}

/* rangées de pastilles/boutons : centrées et espacées */
.hub-cta,
.hub-note{
  justify-content: center;          /* ← centre la rangée */
  row-gap: 14px;                    /* espace vertical si ça passe à la ligne */
  column-gap: 14px;                 /* espace horizontal entre pastilles */
  margin: 0 auto;
}

/* séparer visuellement les 2 rangées */
.hub-cta{ margin-bottom: 14px; }
.hub-note{ margin-top: 8px; }

/* pastilles un poil plus grandes pour respirer */
.pill{
  padding: 12px 18px !important;
  line-height: 1.15;
}

/* les deux grosses pastilles (texte long) prennent plus d'espace */
.hub-note .pill{
  padding: 14px 22px !important;
  font-weight: 700;
}

/* petits écrans : réduire légèrement l'espacement pour éviter la casse */
@media (max-width: 680px){
  .hub-title{ font-size: clamp(32px, 8vw, 52px); }
  .hub-subtitle{ margin: 6px 0 20px !important; }
  .hub-cta, .hub-note{
    column-gap: 10px;
    row-gap: 10px;
  }
  .hub-note .pill{ padding: 12px 18px !important; }
}
/* Centre la ligne bleue sous le titre */
.hub-title::after{
  margin: 14px auto 0 !important; /* centre horizontalement */
  left: auto !important;
  right: auto !important;
}
@media (max-width: 680px){
  .hub-title::after{
    width: 55%;
    margin: 12px auto 0 !important; /* centré aussi en mobile */
  }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-d97d956 *//* =========================
   WeChef — CV Hub (vitrine)
   ========================= */

.wechef-cv-hub-wrap{
  --ink:#fff; --muted:#bcd0ff; --line:rgba(255,255,255,.10);
  --bg1:#0b0f3a; --bg2:#060a28; --pill:rgba(255,255,255,.10); --pill-h:rgba(255,255,255,.16);
  --chip:rgba(255,255,255,.12); --chip-b:rgba(255,255,255,.18);
  --accent1:#7aa2ff; --accent2:#6a8fff; --accent3:#5b8cff;
  --ring:rgba(93,127,255,.45);

  max-width:1520px; margin:24px auto; padding:28px 32px 26px; border-radius:30px;
  background:radial-gradient(1200px 600px at 85% -220px,#2733a5 0%,#0b0f3a 40%,#060a28 100%);
  border:1px solid var(--line);
  box-shadow:0 35px 60px rgba(6,10,40,.45), 0 10px 24px rgba(6,10,40,.35);
  color:var(--ink); font-family:system-ui,-apple-system,"SF Pro Text",Segoe UI,Roboto,Arial,sans-serif;
}

/* =========================================================
   FILTRES — bulle + champs (corrigé & complet)
   ========================================================= */
.wechef-cv-hub-wrap .cv-filters{
  display:grid;
  /* search | country | availability | role | contract | exp-min | actions  */
  grid-template-columns: 1.25fr .9fr .9fr .9fr .9fr .7fr auto;
  grid-template-areas:
    "search country avail role contract expmin actions";
  gap:14px 16px;
  padding:18px;
  margin-bottom:18px; border-radius:24px;
  background:linear-gradient(180deg, rgba(16,26,60,.88), rgba(16,26,60,.78));
  border:1px solid var(--line);
  box-shadow:0 18px 46px rgba(0,0,0,.28);
}

/* mapping des zones */
#cv-q{ grid-area:search; }
#cv-country{ grid-area:country; }
#cv-loc{ grid-area:country; }             /* fallback si l’ID ancien existe */
#cv-avail{ grid-area:avail; }
#cv-role{ grid-area:role; }
#cv-contract{ grid-area:contract; }
#cv-contract-types{ grid-area:contract; } /* fallback si utilisé par le JS */
#cv-exp-min{ grid-area:expmin; }

/* conteneur des boutons APPLY/CLEAR si présent */
.wechef-cv-hub-wrap .cv-filters .cv-actions{
  grid-area:actions;
  display:flex; gap:10px;
  align-items:end; justify-content:flex-end;
}

/* libellés universels au-dessus des champs */
.wechef-cv-hub-wrap .cv-filters :is(label,.cv-f-l,.cv-label,strong){
  display:block;
  font-weight:900;
  font-size:15px;
  letter-spacing:.2px;
  color:#cfe0ff;
  opacity:.92;
  margin:0 0 6px;
}

/* champs (text, number, select) — look cohérent */
.wechef-cv-hub-wrap .cv-filters :is(input,select){
  height:58px; padding:12px 16px; border-radius:16px;
  background:var(--pill); color:#f6f8ff; border:1px solid var(--line);
  font-weight:800; letter-spacing:.02em; box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.wechef-cv-hub-wrap .cv-filters input::placeholder{color:#d6e1ff; opacity:.9;}
.wechef-cv-hub-wrap .cv-filters :is(input,select):focus{ outline:none; box-shadow:0 0 0 3px var(--ring); }

/* Search mis en avant */
#cv-q{ border:1.5px solid rgba(122,162,255,.35); background:rgba(122,162,255,.10); }

/* Availability/Role en “pill” sombre pour la hiérarchie visuelle */
#cv-avail, #cv-role{
  background:linear-gradient(180deg,#141d44,#0c1336);
  border:1px solid rgba(255,255,255,.16);
  font-weight:900;
}

/* Contract — forcer un vrai rendu “menu déroulant” même si multiple */
#cv-contract[multiple],
#cv-contract-types[multiple]{
  height:58px;
  overflow:hidden;
  padding-right:40px; /* place pour la pseudo flèche native */
}
#cv-contract[multiple]::-webkit-scrollbar,
#cv-contract-types[multiple]::-webkit-scrollbar{ width:0; height:0; }

/* Minimum experience (years) même style que les autres */
#cv-exp-min{
  -moz-appearance:textfield;
}
#cv-exp-min::-webkit-outer-spin-button,
#cv-exp-min::-webkit-inner-spin-button{
  -webkit-appearance: none; margin: 0;
}

/* Boutons (sans toucher aux cartes) */
.wechef-cv-hub-wrap .cv-filters .we-btn{
  height:58px; padding:0 18px; border-radius:16px; font-weight:800; letter-spacing:.5px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.14) !important;
  background:linear-gradient(135deg,var(--accent1),var(--accent2)) !important;
  color:#0a1533 !important; box-shadow:0 10px 22px rgba(77,163,255,.28);
}
.wechef-cv-hub-wrap .cv-filters .we-btn.we-btn-danger{
  background:rgba(255,255,255,.08) !important; color:var(--muted) !important;
  border-color:rgba(255,255,255,.10) !important; box-shadow:none !important;
}
/* Nudge des boutons uniquement en desktop */
@media (min-width: 1200px){
  .wechef-cv-hub-wrap .cv-filters .we-btn{
    transform: translateX(-52px); /* ajuste -8 / -14px selon ton œil */
  }
}

/* responsive filtres */
@media (max-width:1200px){
  .wechef-cv-hub-wrap .cv-filters{
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "search search"
      "country avail"
      "role contract"
      "expmin actions";
  }
}
@media (max-width:700px){
  .wechef-cv-hub-wrap .cv-filters{
    grid-template-columns: 1fr;
    grid-template-areas:
      "search"
      "country"
      "avail"
      "role"
      "contract"
      "expmin"
      "actions";
  }
}

/* =========================================================
   CARTES (vendeurs) — repris tels quels (inchangé)
   ========================================================= */
.wechef-cv-hub{display:grid;gap:22px}
.wechef-cv-hub.we-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.wechef-cv-hub.we-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.wechef-cv-hub.we-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:1280px){.wechef-cv-hub.we-cols-4{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:980px){.wechef-cv-hub.we-cols-4,.wechef-cv-hub.we-cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.wechef-cv-hub.we-cols-4,.wechef-cv-hub.we-cols-3,.wechef-cv-hub.we-cols-2{grid-template-columns:1fr}}

/* Bulle */
.wechef-cv-hub .cv-card{
  --line: rgba(255,255,255,.10);
  color:#eaf0ff;
  background: linear-gradient(180deg, rgba(16,26,60,.88), rgba(16,26,60,.78));
  border:1px solid var(--line);
  border-radius:26px;
  padding:26px 24px;
  text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:12px;
  box-shadow:0 22px 52px rgba(0,0,0,.32);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}

/* Nom */
.wechef-cv-hub .cv-card__name{
  margin:0;
  font-size:28px; line-height:1.15; font-weight:900; letter-spacing:.2px;
}
.wechef-cv-hub .cv-card__name a{ color:#fff; text-decoration:none }
.wechef-cv-hub .cv-card__name a:hover{ text-decoration:underline }

/* Photo */
.wechef-cv-hub .cv-card__cover img{
  width:132px; height:132px; object-fit:cover; border-radius:18px;
  border:2px solid rgba(255,255,255,.15); box-shadow:0 12px 26px rgba(0,0,0,.28);
}

/* Badge rôle */
.wechef-cv-hub .cv-badge{
  display:inline-block; padding:7px 12px; border-radius:12px;
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.16);
  font-weight:900; letter-spacing:.25px;
}

/* Mini-bulle d'infos centrée */
.wechef-cv-hub .cv-meta{
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px;
  padding:10px 14px; border-radius:999px;
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.14);
  font-weight:800; color:#eef3ff;
}
.wechef-cv-hub .cv-meta .m + .m::before{ content:"•"; margin:0 8px; opacity:.8 }

/* Actions */
.wechef-cv-hub .cv-card__actions{ display:flex; gap:10px; justify-content:center; margin-top:2px }
.wechef-cv-hub .we-btn{
  height:46px; padding:0 18px; border-radius:14px; font-weight:800; letter-spacing:.4px;
  display:inline-flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.14);
}
.wechef-cv-hub .we-btn-primary{
  background:linear-gradient(90deg,#7aa2ff,#6a8fff,#5b8cff); color:#0b1430 !important;
  box-shadow:0 12px 24px rgba(91,140,255,.25);
}
.wechef-cv-hub .we-btn-ghost{
  background:rgba(255,255,255,.08); color:#cfd6ff !important; border-color:rgba(255,255,255,.12);
}

/* Accessibilité focus */
.wechef-cv-hub .cv-card:focus-within{
  outline:none; box-shadow:0 0 0 3px rgba(122,162,255,.28), 0 24px 60px rgba(0,0,0,.40);
}

/* === PATCH — mini-bulle infos + bouton visibles === */

/* 1) Mini-bulle d’infos compacte & centrée */
.wechef-cv-hub .cv-meta{
  display:inline-flex; width: fit-content; max-width: 88%;
  margin: 6px auto 8px; padding: 8px 14px; border-radius: 18px;
  background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.14);
  font-weight: 800; font-size: 16px; line-height: 1.25; color: #eef3ff; gap: 8px;
}
.wechef-cv-hub .cv-meta .m + .m::before{ content:"•"; margin: 0 6px; opacity:.8; }

/* 2) Forcer le vrai style du CTA (thème met .button en noir) */
.wechef-cv-hub .cv-card__actions .we-btn{
  height: 46px; padding: 0 18px; border-radius: 14px; font-weight: 800; letter-spacing: .4px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid #5b8cff !important;
  background: linear-gradient(90deg,#7aa2ff,#6a8fff,#5b8cff) !important;
  color: #0b1430 !important;
  box-shadow: 0 12px 24px rgba(91,140,255,.25);
  text-transform: none;
}
.wechef-cv-hub .cv-card__actions .we-btn:hover{ filter: brightness(1.05); transform: translateY(-1px); }
.wechef-cv-hub .cv-card__actions .we-btn:active{ transform: translateY(0); }

/* 3) Ajustes visuels doux */
.wechef-cv-hub .cv-card{ gap: 10px; padding: 22px 20px; }
.wechef-cv-hub .cv-card__cover img{ width: 120px; height: 120px; }

/* ===== Card hover polish ===== */
.wechef-cv-hub .cv-card{ position: relative; transition: transform .18s ease, box-shadow .22s ease, border-color .22s ease; }
.wechef-cv-hub .cv-card::after{
  content:""; position:absolute; inset:-1px; border-radius:26px; pointer-events:none;
  box-shadow: 0 0 0 0 rgba(91,140,255,.0); transition: box-shadow .22s ease;
}
.wechef-cv-hub .cv-card__cover img{ transition: transform .25s ease, box-shadow .22s ease; will-change: transform; }
.wechef-cv-hub .cv-card__actions .we-btn{ transition: transform .15s ease, filter .15s ease, box-shadow .22s ease; }

.wechef-cv-hub .cv-card:hover,
.wechef-cv-hub .cv-card:focus-within{
  transform: translateY(-4px); box-shadow: 0 26px 56px rgba(0,0,0,.38); border-color: rgba(122,162,255,.28);
}
.wechef-cv-hub .cv-card:hover::after,
.wechef-cv-hub .cv-card:focus-within::after{
  box-shadow: 0 0 0 2px rgba(122,162,255,.25), 0 12px 40px rgba(91,140,255,.22), 0 0 80px rgba(91,140,255,.12) inset;
}
.wechef-cv-hub .cv-card:hover .cv-card__cover img,
.wechef-cv-hub .cv-card:focus-within .cv-card__cover img{
  transform: scale(1.03); box-shadow: 0 16px 30px rgba(0,0,0,.32);
}
.wechef-cv-hub .cv-card:hover .cv-card__actions .we-btn,
.wechef-cv-hub .cv-card:focus-within .cv-card__actions .we-btn{
  filter: brightness(1.06); box-shadow: 0 14px 28px rgba(91,140,255,.30);
}
.wechef-cv-hub .cv-card:hover .cv-meta{
  box-shadow: 0 8px 22px rgba(0,0,0,.22), 0 0 0 1px rgba(122,162,255,.16) inset;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .wechef-cv-hub .cv-card,
  .wechef-cv-hub .cv-card::after,
  .wechef-cv-hub .cv-card__cover img,
  .wechef-cv-hub .cv-card__actions .we-btn{
    transition: none !important;
  }
}
/* --- Contraste des selects (country / availability / role) --- */
#cv-country, #cv-avail, #cv-role {
  color:#ffffff !important;
  background: rgba(255,255,255,.12) !important;   /* même fond que les autres champs */
  border:1px solid rgba(255,255,255,.18) !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.25);           /* boost de lisibilité du texte clair */
  font-weight:900;
}

/* Placeholder/option "—" visible */
#cv-country:invalid, #cv-avail:invalid, #cv-role:invalid { color:#e9f1ff !important; opacity:1; }

/* Couleur de texte interne du select */
.wechef-cv-hub-wrap .cv-filters select { color:#f6f8ff !important; }

/* (facultatif) liste déroulante plus lisible sous blink/webkit */
.wechef-cv-hub-wrap .cv-filters select option{
  color:#0b1430;                   /* texte foncé dans la liste ouverte */
  background:#eaf1ff;              /* fond clair dans la liste ouverte */
}
/* ===== Hub filters — 1re ligne alignée + boutons à droite ===== */
.wechef-cv-hub-wrap .cv-f-grid{
  display:grid;
  /* 7 colonnes : Search occupe 2, puis Country / Avail / Role / Contract / Actions */
  grid-template-columns: repeat(2, minmax(180px,1fr)) /* search */
                          repeat(4, minmax(180px,1fr)) /* country..contract */
                          auto;                        /* actions */
  gap:16px;
  align-items:end;
}

/* blocs field (label + input) */
.wechef-cv-hub-wrap .cv-f-row{ display:flex; flex-direction:column; gap:8px; }

/* mapping de la 1re rangée */
.wechef-cv-hub-wrap .cv-f-grid > .cv-f-row:nth-child(1){ grid-column: 1 / span 2; } /* Search */
.wechef-cv-hub-wrap .cv-f-grid > .cv-f-row:nth-child(2){ grid-column: 3 / span 1; } /* Country */
.wechef-cv-hub-wrap .cv-f-grid > .cv-f-row:nth-child(3){ grid-column: 4 / span 1; } /* Availability */
.wechef-cv-hub-wrap .cv-f-grid > .cv-f-row:nth-child(4){ grid-column: 5 / span 1; } /* Target role */
.wechef-cv-hub-wrap .cv-f-grid > .cv-f-row:nth-child(5){ grid-column: 6 / span 1; } /* Contract type */

/* 2e rangée : Min experience à gauche */
.wechef-cv-hub-wrap .cv-f-grid > .cv-f-row:nth-child(6){ grid-column: 1 / span 2; }

/* Boutons APPLY / CLEAR — sur la 1re ligne, à droite de Contract type */
.wechef-cv-hub-wrap .cv-f-actions{
  grid-column: 7 / span 1;     /* nouvelle colonne “actions” */
  display:flex; gap:12px; justify-content:flex-end; align-self:end;
}

/* Responsive : repasse en 3 colonnes puis 1 colonne */
@media (max-width: 1200px){
  .wechef-cv-hub-wrap .cv-f-grid{
    grid-template-columns: repeat(3, minmax(180px,1fr));
  }
  .wechef-cv-hub-wrap .cv-f-grid > .cv-f-row:nth-child(1){ grid-column: 1 / span 3; } /* Search full */
  .wechef-cv-hub-wrap .cv-f-grid > .cv-f-row:nth-child(2){ grid-column: 1 / span 1; } /* Country */
  .wechef-cv-hub-wrap .cv-f-grid > .cv-f-row:nth-child(3){ grid-column: 2 / span 1; } /* Availability */
  .wechef-cv-hub-wrap .cv-f-grid > .cv-f-row:nth-child(4){ grid-column: 3 / span 1; } /* Role */
  .wechef-cv-hub-wrap .cv-f-grid > .cv-f-row:nth-child(5){ grid-column: 1 / span 1; } /* Contract */
  .wechef-cv-hub-wrap .cv-f-grid > .cv-f-row:nth-child(6){ grid-column: 2 / span 2; } /* Min exp */
  .wechef-cv-hub-wrap .cv-f-actions{ grid-column: 2 / span 2; justify-content:flex-end; }
}

@media (max-width: 720px){
  .wechef-cv-hub-wrap .cv-f-grid{ grid-template-columns: 1fr; }
  .wechef-cv-hub-wrap .cv-f-grid > *{ grid-column: 1 / -1 !important; }
  .wechef-cv-hub-wrap .cv-f-actions{ justify-content:stretch; }
  .wechef-cv-hub-wrap .cv-f-actions .we-btn{ flex:1; }
}
/* === Ensure page can scroll on the Hub when no modal is open === */
html:not(.wechef-modal-open):not(.modal-open),
body:not(.wechef-modal-open):not(.modal-open){
  overflow-y: auto !important;
}

html, body{
  /* safety: avoid any frozen height from a popup script */
  min-height: 100%;
  overflow-x: hidden; /* keep horizontal scroll off on the Hub */
}
/* ===== Unfreeze du scroll mobile (lock global) ===== */
@media (max-width: 768px){
  html, body{
    height:auto !important;
    min-height:100% !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch !important;
  }

  /* Neutralise les classes de lock posées au load */
  html.e-scroll-lock, body.e-scroll-lock,
  html.modal-open,   body.modal-open,
  html.no-scroll,    body.no-scroll,
  html.overflow-hidden, body.overflow-hidden,
  html.elementor-dialog-open, body.elementor-dialog-open{
    overflow-y:auto !important;
    height:auto !important;
    position:static !important;
  }

  /* Evite qu’un sticky/fixed plein écran fige iOS */
  .elementor-sticky--active{ position:sticky !important; top:0 !important; }

  /* Empêche un overlay invisible de capturer le toucher */
  .dialog-widget, .elementor-popup-modal, .elementor-lightbox,
  .mfp-wrap, .mfp-bg, .lity, .lity-wrap{ pointer-events:none !important; }

  /* Le wrap du Hub ne doit jamais piéger le scroll */
  .wechef-cv-hub-wrap{ position:static !important; overflow:visible !important; }
}
/* =========================
   UNFREEZE — Scroll mobile (iOS/Android) 100% CSS
   Cible : page Hub uniquement
   ========================= */
@media (max-width: 1024px){
  /* 1) Le document doit scroller, quoi qu'il arrive */
  html, body{
    position: static !important;
    height: auto !important;
    min-height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: auto !important;
  }

  /* 2) Neutralise TOUTES les classes de “lock” posées par le thème/Elementor */
  html.e-scroll-lock, body.e-scroll-lock,
  html.modal-open,   body.modal-open,
  html.no-scroll,    body.no-scroll,
  html.overflow-hidden, body.overflow-hidden,
  html.elementor-dialog-open, body.elementor-dialog-open{
    position: static !important;
    height: auto !important;
    overflow-y: auto !important;
  }

  /* 3) Aucun ancêtre du Hub ne doit créer un conteneur scroll bloqué */
  .elementor, .elementor-section, .elementor-container,
  .site, #page, #content, .content-area, .entry-content{
    overflow: visible !important;
    height: auto !important;
  }

  /* 4) Le wrap du HUB ne doit jamais capturer/figer le scroll */
  .wechef-cv-hub-wrap{
    position: relative !important;
    overflow: visible !important;
    max-height: none !important;
    -webkit-overflow-scrolling: auto !important;
  }

  /* 5) Empêche qu’un overlay (popup/lightbox) invisible bouffe les touch events */
  .elementor-popup-modal, .elementor-lightbox, .dialog-widget,
  .mfp-wrap, .mfp-bg, .lity, .lity-wrap{
    pointer-events: none !important;
  }

  /* 6) Les sections “collantes/fixed” deviennent inoffensives sur mobile */
  .elementor-sticky--active{ position: sticky !important; top: 0 !important; }
  [style*="position:fixed"][style*="100vh"], [style*="position:fixed"][style*="100%"]{
    position: sticky !important; top: 0 !important;
  }

  /* 7) Bordures arrondies/overflows : pas de clipping qui fige iOS */
  .wechef-cv-hub-wrap,
  .wechef-cv-hub-wrap *{
    overscroll-behavior: auto;
  }
  .wechef-cv-hub-wrap{ overscroll-behavior: auto; }
}

/* Sécurité : aucune hauteur figée pleine-vue sur le Hub */
.wechef-cv-hub-wrap [style*="height:100vh"],
.wechef-cv-hub-wrap [style*="height: 100vh"]{
  height: auto !important;
  min-height: 0 !important;
}

/* Si un parent a un overflow caché, ouvre-le (iOS + sticky = freeze) */
.wechef-cv-hub-wrap :where(.elementor-section, .elementor-container, .elementor-widget){
  overflow: visible !important;
}





/* ====== Card — container ====== */
.cv-card{
  position: relative;
  border-radius: 22px;
  background: linear-gradient(180deg,#0e1233,#0b0f2a);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 18px 50px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.05);
  color: #e6eeff;
  padding: 16px 12px;                 /* + d'espace utile en largeur */
  display: block;
  overflow: hidden;                   /* important pour le back */
  min-height: 460px;                  /* look harmonieux dans la grille */
}

/* ====== Flip – core ====== */
.cv-flip{ perspective: 1200px; }
.cv-card__inner{
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform .6s cubic-bezier(.2,.7,.2,1);
}
.cv-flip:hover .cv-card__inner,
.cv-flip.is-flipped .cv-card__inner,
.cv-flip:focus-within .cv-card__inner{
  transform: rotateY(180deg);
}

/* Faces */
.cv-card__front,
.cv-card__back{
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  display: flex;
  flex-direction: column;
}
.cv-card__front{ z-index: 2; }

.cv-card__back{
  transform: rotateY(180deg);
  background: linear-gradient(180deg,#0b1030,#0a0e2a);
  border-radius: inherit;
  /* on supprime la bordure interne pour grappiller quelques px visuellement */
  border: none;
}

/* ====== Front content ====== */
.cv-card__name{
  margin: 2px 0 10px;
  font-size: clamp(18px,2.2vw,24px);
  font-weight: 800;
}
.cv-card__name a{ color: #fff; text-decoration: none; }
.cv-card__cover{
  display:block; margin: 0 auto 12px; width: 140px; height: 140px;
  border-radius: 18px; overflow: hidden;
  box-shadow: 0 10px 28px rgba(0,0,0,.35);
}
.cv-card__cover img{ width:100%; height:100%; object-fit: cover; display:block; }
.cv-badge{
  margin: 6px auto 8px;
  display:inline-block;
  padding:8px 14px;
  border-radius:14px;
  background: linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.05));
  border:1px solid rgba(255,255,255,.16);
  font-weight:800;
  font-size: 0.98rem;
}
.cv-meta{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }
.cv-meta .m{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:8px 12px; border-radius:12px;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  font-weight:800;
  font-size: .96rem;
}
.cv-card__actions{
  margin-top:auto; display:flex; gap:10px; justify-content:center; flex-wrap:wrap;
}

/* ====== Back content (scroll vertical only) ====== */
.cv-back__head{
  flex: 0 0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 12px;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.cv-back__title{ font-weight: 800; font-size: 1.02rem; }

.cv-back__body{
  flex: 1 1 auto; min-height: 0;
  overflow-y: auto; overflow-x: hidden;    /* pas de H-scroll */
  -webkit-overflow-scrolling: touch;
  padding: 10px 12px 12px;
  display: grid; gap: 8px;
  box-sizing: border-box;
}
.cv-back__foot{
  flex: 0 0 auto;
  display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap;
  padding:10px 12px;
  border-top:1px solid rgba(255,255,255,.10);
}

/* Lignes/colonnes du dos — tout rentre sur la largeur */
.cv-row{
  display: grid;
  grid-template-columns: minmax(108px, 30%) 1fr; /* label | valeur : + compact */
  column-gap: .6rem;
  align-items: start;
}
@media (max-width: 680px){
  .cv-row{ grid-template-columns: 1fr; } /* label au-dessus en mobile */
}
.cv-row strong{
  min-width: 0;                  /* aucune contrainte rigide */
  white-space: nowrap;
  font-weight: 900;
  color:#dbe6ff;
  font-size: clamp(14px,1.6vw,18px); /* un poil plus petit = ça tient */
  line-height: 1.25;
}
.cv-row span, .cv-row em{
  overflow-wrap: anywhere;       /* valeurs longues = jamais de dépassement */
  word-break: break-word;
  line-height: 1.35;
}

/* Petit grid 2 colonnes (mobility/relocation/team…) */
.cv-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
@media (max-width: 640px){
  .cv-grid-2{ grid-template-columns: 1fr; }
}

/* ====== Buttons ====== */
.we-btn{ 
  appearance:none;
  background:#1b2b55; border:1px solid #2b3a66; color:#cfe1ff;
  padding:10px 16px; border-radius:12px; font-weight:800; text-decoration:none;
  display:inline-flex; align-items:center; justify-content:center; /* ← centre le texte */
  gap:.5rem; text-align:center;
  min-width: 132px;                /* largeur mini élégante */
}
.we-btn:hover{ filter:brightness(1.05); transform: translateY(-1px); }
.we-btn:active{ transform: translateY(0); }
.we-btn-small{ padding:8px 12px; font-size:.92rem; min-width:auto; }
.we-btn.we-btn-primary{
  background:#3a66ff !important;
  border-color:#3a66ff !important;
  color:#fff !important;
  box-shadow: 0 6px 20px rgba(58,102,255,.35);
}
.we-btn.we-btn-ghost{
  background:transparent !important;
  border-color:rgba(255,255,255,.22) !important;
  color:#e6eeff !important;
}
.cv-card .button.we-btn:visited{ color: inherit; }

/* ====== Accessibility & polish ====== */
.cv-flip:focus-within{ outline: none; }
.cv-card a:focus-visible,
.cv-flip .cv-flip-toggle:focus-visible{
  outline: 2px solid #7aa2ff; outline-offset: 2px;
  border-radius: 10px;
}

/* Evite que le flip parte trop vite en desktop (optionnel) */
.cv-flip:hover .cv-card__inner{ transition-duration: .55s; }

/* Motion reduced */
@media (prefers-reduced-motion: reduce){
  .cv-card__inner{ transition: none; transform: none !important; }
  .cv-flip:hover .cv-card__inner{ transform: none; }
}

/* Scrollbar douce (WebKit) */
.cv-back__body::-webkit-scrollbar{ width: 8px; }
.cv-back__body::-webkit-scrollbar-track{ background: rgba(255,255,255,.06); }
.cv-back__body::-webkit-scrollbar-thumb{ background: rgba(255,255,255,.28); border-radius: 6px; }
.cv-back__body::-webkit-scrollbar-thumb:hover{ background: rgba(255,255,255,.4); }
/* Firefox */
.cv-back__body{ scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.34) rgba(255,255,255,.08); }

/* Sécurité anti overflow partout dans le dos */
.cv-back__body, .cv-back__body *{ max-width: 100%; }
/* --- Centrage parfait du bouton "VIEW PAGE" --- */
.cv-card .button.we-btn{
  display: inline-flex !important;
  align-items: center !important;   /* centre vertical */
  justify-content: center !important;/* centre horizontal */
  text-align: center !important;
  line-height: 1 !important;        /* pas de décalage vertical */
  padding: 12px 18px !important;    /* hit area propre */
  min-width: 150px;                  /* largeur cohérente */
}

/* Si ton thème ajoute une icône avant/après les boutons, on la supprime ici */
.cv-card .button.we-btn::before,
.cv-card .button.we-btn::after{
  content: none !important;
}

/* Optionnel : arrondis et poids visuel homogènes */
.cv-card .button.we-btn.we-btn-primary{
  border-radius: 14px;
}
/* --- Empile le groupe Mobility / Relocation / Managed / Max team --- */
.cv-back__body .cv-stack .cv-row{
  display: grid;
  grid-template-columns: minmax(90px, 26%) 1fr; /* label | valeur */
  align-items: start;
  column-gap: .4rem;                           /* moins d'espace entre label et valeur */
  row-gap: 0;
  margin: 2px 0;
}

/* On neutralise l'ancien layout 2 colonnes si des cartes ont encore cv-grid-2 */
.cv-back__body .cv-grid-2{ grid-template-columns: 1fr !important; }
.cv-back__body .cv-grid-2 .cv-row{ grid-template-columns: minmax(90px, 26%) 1fr !important; }

/* --- Réduit l'espace label → valeur pour TOUTES les lignes (Location / Last role, etc.) --- */
.cv-back__body .cv-row{
  grid-template-columns: minmax(90px, 26%) 1fr; /* avant: ~30% */
  column-gap: .4rem;                            /* avant: .6+ */
}

/* Labels un peu plus compacts, mais lisibles */
.cv-back__body .cv-row strong{
  white-space: nowrap;
  font-size: clamp(14px,1.45vw,17px);
  line-height: 1.2;
}

/* Valeurs: jamais de dépassement horizontal */
.cv-back__body .cv-row span,
.cv-back__body .cv-row em{
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.35;
}

/* Headline en mode stack (si pas déjà fait) : label puis texte centré sous le label */
.cv-back__body .cv-row.cv-row--stack{
  grid-template-columns: 1fr !important;
  row-gap: .4rem;
}
.cv-back__body .cv-row.cv-row--stack .cv-value--headline{
  text-align: center;
  max-width: 100%;
}

/* Anti H-scroll global (sécu) */
.cv-back__body{ overflow-x: hidden !important; }
.cv-back__body, .cv-back__body *{ max-width: 100%; }
.cv-back__foot{ justify-content: center; }
/* MOBILE — réduire la hauteur de la bulle des filtres */
@media (max-width: 700px){
  .wechef-cv-hub-wrap .cv-filters{
    /* gardes un peu d'air en haut/latéraux, quasi rien en bas */
    padding: 4px 6px 1px !important;
    gap: 2px 6px !important; /* (optionnel) compacter l’espacement interne */
  }
}
/* Fix photo: l'image remplit le cadre 140x140 */
.wechef-cv-hub .cv-card__cover img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  display: block;
}
/* Micro-espace entre le nom et la photo */
.wechef-cv-hub .cv-card__name{
  margin: 2px 0 14px !important; /* +4px par rapport à ton 10px */
}
.wechef-cv-hub .cv-back__head{
  border-radius: 8px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
}
/* Arrondi + fond léger sur le footer du dos */
.wechef-cv-hub .cv-back__foot{
  border-radius: 8px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-top: none;          /* on remplace la bordure supérieure existante */
  padding: 12px;             /* optionnel : un soupçon d’air */
}
/* Boutons : côte à côte, centrés, et un peu plus bas */
.wechef-cv-hub .cv-card__actions{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:12px;
  flex-wrap:nowrap;                 /* reste sur une seule ligne */
  margin-top: clamp(18px, 3.2vh, 36px); /* ↓ descendre un peu (ajuste au besoin) */
}

/* Petite marge bas de carte pour équilibrer visuellement */
.wechef-cv-hub .cv-card{
  padding-bottom: 26px;             /* ajuste 22–30px selon ton œil */
}

/* Sécurité: s’ils manquent de place sur très petit écran */
@media (max-width: 420px){
  .wechef-cv-hub .cv-card__actions .we-btn{
    flex: 1 1 0;
    min-width: 0;
  }
}
/* === Ghost background : même photo en fond de la face avant === */

/* Sécurité : la carte (et la face avant si présente) doivent clipper le fond */
.cv-card,
.cv-card__front{ position: relative; overflow: hidden; }

/* Version “face avant” si tu utilises le flip .cv-card__front/.cv-card__back */
.cv-card__front::before{
  content:"";
  position:absolute; inset:0;
  /* la photo + un voile pour garder la lisibilité */
  background:
    linear-gradient(180deg, rgba(6,10,40,.50), rgba(6,10,40,.70)),
    var(--cv-ava);
  background-size: cover;
  background-position: center;
  pointer-events: none;
  z-index: 0;
  transform: scale(1.03);       /* micro zoom = plus doux */
  filter: saturate(.95);
  opacity: .85;                 /* règle la transparence globale du fond */
}

/* Fallback : si ta carte n’a PAS de face avant (markup simple) */
.cv-card:not(:has(.cv-card__front))::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(6,10,40,.50), rgba(6,10,40,.70)),
    var(--cv-ava);
  background-size: cover;
  background-position: center;
  pointer-events: none;
  z-index: 0;
  transform: scale(1.03);
  filter: saturate(.95);
  opacity: .85;
}

/* Le contenu doit passer devant le fond */
.cv-card__front > *,
.cv-card > *{ position: relative; z-index: 1; }
/* Léger dégradé sombre par-dessus l’image de fond */
.cv-card__front::after{
  content:"";
  position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(180deg, rgba(10,14,40,.45), rgba(10,14,40,.2) 30%, rgba(10,14,40,.55));
  border-radius: inherit;
}
/* Faux gradient stroke around the card */
.wechef-cv-hub .cv-card::before{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  padding:1.5px;                                 /* stroke width */
  background: linear-gradient(135deg,#ffffff66,#7aa2ff80 40%,#5b8cff66);
  -webkit-mask: 
    linear-gradient(#000 0 0) content-box, 
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;  /* show only the border */
  opacity:.5; transition:opacity .2s ease;
}
.wechef-cv-hub .cv-card:hover::before{ opacity:.75; }/* End custom CSS */