.formations-ui a{ color:var(--accent); text-underline-offset:3px; }

  /* ===== Archive hero ===== */
  .formations-ui .formation-archive__hero{ padding:1.8rem 1.5rem 1.4rem; }
  .formations-ui .formation-archive__title{
    margin:0 0 .6rem;
    font-size:clamp(2.05rem,2.0vw + 1.15rem,3.05rem);
    font-weight:950;
    letter-spacing:-.05em;
    line-height:1.06;
    color:var(--c-ink);
  }
  .formations-ui .formation-archive__intro{
    margin:0;
    max-width:76rem;
    font-size:1.05rem;
    color:var(--c-muted);
  }
  .formations-ui .formation-archive__brochure{
    margin-top:1.1rem;
    display:flex;
    align-items:center;
    gap:.8rem;
    padding:1rem 1.2rem;
    border-radius:1rem;
    text-decoration:none;
    font-weight:900;
    font-size:.95rem;
    letter-spacing:.02em;
    color:var(--c-ink);
    background:var(--c-surface);
    border:1px solid var(--c-overlay-12);
    box-shadow:var(--sh-1);
    max-width:420px;
    position:relative;
    transition:transform var(--t), box-shadow var(--t), filter var(--t);
  }
  .formations-ui .formation-archive__brochure:hover{
    transform:translateY(-2px);
    box-shadow:var(--sh-2), 0 0 18px color-mix(in srgb, var(--accent) 18%, transparent);
    border-color:color-mix(in srgb, var(--accent) 40%, var(--c-overlay-18));
    filter:saturate(1.05);
  }
  .formations-ui .formation-archive__brochure::before{
    content:"";
    width:36px;
    height:36px;
    border-radius:12px;
    flex:0 0 36px;
    background:
      radial-gradient(circle at 30% 30%, rgba(255,255,255,0.95), rgba(255,255,255,0.45) 55%, transparent 60%),
      linear-gradient(135deg, var(--accent), var(--accent-700));
    box-shadow:0 8px 22px color-mix(in srgb, var(--accent) 24%, transparent);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    position:relative;
  }
  .formations-ui .formation-archive__brochure::after{
    content:"";
    position:absolute;
    left:calc(1.2rem + 18px);
    top:50%;
    transform:translate(-50%, -50%);
    width:16px;
    height:16px;
    background-repeat:no-repeat;
    background-position:center;
    background-size:contain;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/><polyline points='7 10 12 15 17 10'/><line x1='12' y1='15' x2='12' y2='3'/></svg>");
  }

  /* BLOCKQUOTE enterprise */
  .formations-ui.is-enterprise blockquote{
    border-inline-start: 4px solid var(--c-enterprise) !important;
  }

  /* ===== Filters ===== */
  .formations-ui .formation-filters{ padding:1.1rem 1.5rem 1.8rem; }

  /* séparation "filtres -> résultats" */
  .formations-ui .formation-filters{ position:relative; }
  .formations-ui .formation-filters::after{
    content:"";
    display:block;
    height:1px;
    margin:1.35rem auto 0;
    max-width:var(--container);
    background:linear-gradient(to right, transparent, var(--c-overlay-22), transparent);
    opacity:.9;
  }

  .formations-ui .formation-filters__top{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:1rem;
    margin-bottom:1rem;
    flex-wrap:wrap;
  }

  /* CHIPS */
  .formations-ui .formation-filters__chips{
    display:flex;
    flex-wrap:wrap;
    gap:.55rem;
  }

  /* RESET */
  .formations-ui .formation-filters__reset{
    display:inline-flex;
    align-items:center;
    gap:.55rem;

    padding:.7rem 1.1rem;
    border-radius:999px;
    text-decoration:none;

    font-weight:950;
    letter-spacing:.02em;

    color:var(--accent);
    background:color-mix(in srgb, var(--accent) 10%, var(--c-panel-1));
    border:1px solid color-mix(in srgb, var(--accent) 34%, var(--c-overlay-18));

    box-shadow:var(--sh-1);
    transition:transform var(--t), box-shadow var(--t), border-color var(--t), background var(--t), color var(--t), filter var(--t);
  }
  .formations-ui .formation-filters__reset:hover{
    transform:translateY(-2px) scale(1.01);
    box-shadow:var(--sh-2), var(--neon-glow);
    background:linear-gradient(135deg, var(--accent), var(--accent-700));
    border-color:transparent;
    color:var(--c-surface) !important;
    filter:saturate(1.25);
  }
  .formations-ui .formation-filters__reset:focus-visible{
    outline:none;
    box-shadow:var(--ring-active), var(--sh-2);
  }

  /* BAR grid */
  .formations-ui .formation-filters__bar{
    display:grid;
    grid-template-columns:1.4fr repeat(4,minmax(160px,1fr)) minmax(150px,.75fr);
    gap:1rem;
    align-items:end;
  }
  .formations-ui .formation-filters__bar:not(:has(.filter-field--price)){
    grid-template-columns:1.4fr repeat(4,minmax(160px,1fr));
  }

  @media (max-width:1050px){
    .formations-ui .formation-filters__bar{ grid-template-columns:1fr 1fr; }
  }
  @media (max-width:640px){
    .formations-ui .formation-filters__bar{ grid-template-columns:1fr; }
  }

  /* Fields */
  .formations-ui .filter-label{
    display:block;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.18em;
    color:var(--c-muted);
    font-weight:850;
    margin-bottom:.45rem;
  }

  .formations-ui .filter-field input[type="search"],
  .formations-ui .filter-field select,
  .formations-ui .filter-field--dropdown .filter-dd-btn{
    width:100%;
    min-height:50px;
    border-radius:1rem;
    border:1px solid var(--c-overlay-14);
    background:var(--c-panel-1);
    padding:.75rem .95rem;
    box-shadow:0 10px 22px var(--c-shadow-45);
    transition:border-color var(--t), box-shadow var(--t), transform var(--t), background var(--t), filter var(--t);
    font-weight:800;
    color:var(--c-ink);
  }

  .formations-ui .filter-field input[type="search"]:focus,
  .formations-ui .filter-field select:focus{
    outline:none;
    border-color:color-mix(in srgb, var(--accent) 65%, var(--c-overlay-22));
    box-shadow:var(--ring-active), 0 22px 60px color-mix(in srgb, var(--accent) 20%, transparent);
    transform:translateY(-2px);
    filter:saturate(1.15);
  }

  /* dropdown */
  .formations-ui .filter-field--dropdown{ position:relative; }
  .formations-ui .filter-field--dropdown .filter-dd-btn{
    text-align:left;
    cursor:pointer;
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-weight:900;
    position:relative;
    z-index:1;
  }
  .formations-ui .filter-field--dropdown .filter-dd-btn::after{
    content:"▾";
    font-weight:950;
    opacity:.9;
  }
  .formations-ui .filter-field--dropdown .filter-dd-btn[aria-expanded="true"]{
    border-color:color-mix(in srgb, var(--accent) 55%, var(--c-overlay-22));
    box-shadow:var(--ring-active), 0 22px 60px color-mix(in srgb, var(--accent) 18%, transparent);
  }

  /* panel */
  .formations-ui .filter-dd-panel{
    position:absolute;
    left:0;
    top:calc(100% + 10px);
    width:100%;
    z-index:50;
    background:var(--c-panel-5);
    border:1px solid var(--c-overlay-14);
    border-radius:1.1rem;
    box-shadow:var(--sh-2);
    padding:.75rem .85rem;
    max-height:280px;
    overflow:auto;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  .formations-ui .filter-check{
    display:flex;
    gap:.65rem;
    align-items:flex-start;
    padding:.55rem .45rem;
    border-radius:.9rem;
    cursor:pointer;
    transition:background var(--t), transform var(--t);
    font-weight:850;
    color:var(--c-ink);
  }
  .formations-ui .filter-check:hover{
    background:color-mix(in srgb, var(--accent) 12%, transparent);
    transform:translateX(2px);
  }

  /* CHECK / RADIO custom (filtres) */
  .formations-ui .filter-check input:is([type="checkbox"],[type="radio"]){
    appearance:none;
    -webkit-appearance:none;
    width:18px;
    height:18px;
    margin-top:.25rem;
    flex:0 0 18px;

    border-radius:5px;
    border:1.6px solid var(--c-control-border);
    background:var(--c-control-bg);

    display:grid;
    place-items:center;
    cursor:pointer;

    transition:border-color var(--t), background var(--t), box-shadow var(--t), transform var(--t), filter var(--t);
  }
  .formations-ui .filter-check input:is([type="checkbox"],[type="radio"])::before{
    content:"";
    width:10px;
    height:10px;
    border-radius:3px;
    background:var(--accent);
    transform:scale(0);
    transition:transform 160ms ease;
  }
  .formations-ui .filter-check input:is([type="checkbox"],[type="radio"]):checked{
    border-color:var(--accent);
    background:color-mix(in srgb, var(--accent) 14%, var(--c-panel-1));
    box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent);
  }
  .formations-ui .filter-check input:is([type="checkbox"],[type="radio"]):checked::before{ transform:scale(1); }
  .formations-ui .filter-check:hover input:is([type="checkbox"],[type="radio"]){
    border-color:color-mix(in srgb, var(--accent) 55%, var(--c-overlay-22));
    transform:translateY(-1px);
    filter:saturate(1.2);
  }
  .formations-ui .filter-check input:is([type="checkbox"],[type="radio"]):focus-visible{
    outline:none;
    box-shadow:var(--ring-active);
  }

  /* PRICE */
  .formations-ui .filter-field--price{ display:flex; flex-direction:column; }
  .formations-ui .price-inputs{ display:grid; grid-template-columns:1fr; gap:.75rem; align-items:stretch; }
  .formations-ui .price-input{ position:relative; }
  .formations-ui .price-prefix{
    position:absolute;
    left:.85rem;
    top:50%;
    transform:translateY(-50%);
    font-size:.75rem;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--c-ink-72);
    pointer-events:none;
  }
  .formations-ui .filter-field--price input[type="number"]{
    width:100%;
    min-height:50px;
    border-radius:1rem;
    border:1px solid var(--c-overlay-14);
    background:var(--c-panel-1);
    padding:.75rem .95rem .75rem 3.25rem;

    box-shadow:0 10px 22px var(--c-shadow-45);
    transition:border-color var(--t), box-shadow var(--t), transform var(--t), background var(--t), filter var(--t);
    font-weight:900;
    color:var(--c-ink);
    appearance:textfield;
    -moz-appearance:textfield;
  }
  .formations-ui .filter-field--price input[type="number"]::-webkit-outer-spin-button,
  .formations-ui .filter-field--price input[type="number"]::-webkit-inner-spin-button{
    -webkit-appearance:none;
    margin:0;
  }
  .formations-ui .filter-field--price input[type="number"]:focus{
    outline:none;
    border-color:color-mix(in srgb, var(--accent) 65%, var(--c-overlay-22));
    box-shadow:var(--ring-active), 0 22px 60px color-mix(in srgb, var(--accent) 20%, transparent);
    transform:translateY(-2px);
    filter:saturate(1.15);
  }
  .formations-ui .price-sep{ display:none; }
  .formations-ui .price-hint{ margin-top:.15rem; font-size:.82rem; color:var(--c-ink-82); }
  .formations-ui .price-hint strong{ color:var(--c-ink); }

  /* ============================================================
     1.1) LISTING CONTACT CARD (MATCH EXACT DU SINGLE)
     ============================================================ */

  .formations-ui{
    /* on reprend EXACTEMENT les variables contact du single */
    --contact-bg:
      linear-gradient(180deg, var(--c-panel-8) 0%, var(--c-panel-9) 42%, var(--c-panel-10) 100%);
    --contact-card-bg:var(--c-panel-3);
    --contact-halo:
      radial-gradient(circle at 25% 20%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 60%),
      radial-gradient(circle at 80% 35%, color-mix(in srgb, var(--c-accent) 10%, transparent), transparent 60%);
    --contact-left:color-mix(in srgb, var(--accent) 65%, transparent);
    --contact-border:var(--c-overlay-14);

    --contact-left-enterprise:var(--c-enterprise);
  }

  /* wrapper section */
  .formations-ui .formation-contact{
    padding:3.6rem 1.5rem 4.2rem;
    background:var(--contact-bg);
    position:relative;
    isolation:isolate;
  }

  /* inner EXACT single */
  .formations-ui .formation-contact__inner{
    max-width:var(--container);
    margin:0 auto;

    background:var(--contact-card-bg);
    border-radius:var(--r-xl);
    padding:2.65rem 2.85rem;

    border:1px solid var(--contact-border);
    border-left:7px solid var(--contact-left);
    box-shadow:var(--sh-2);

    position:relative;
    overflow:hidden;
    isolation:isolate;

    transition:transform var(--t), box-shadow var(--t), filter var(--t), border-color var(--t);
  }
  .formations-ui .formation-contact__inner::before{
    content:"";
    position:absolute;
    inset:-2px;
    border-radius:inherit;
    padding:2px;
    background:
      conic-gradient(
        from var(--n-angle),
        transparent,
        color-mix(in srgb, var(--accent) 80%, transparent),
        color-mix(in srgb, var(--c-accent) 65%, transparent),
        color-mix(in srgb, var(--accent-700) 70%, transparent),
        color-mix(in srgb, var(--accent) 80%, transparent),
        transparent
      );
    -webkit-mask:linear-gradient(var(--c-mask) 0 0) content-box, linear-gradient(var(--c-mask) 0 0);
            mask:linear-gradient(var(--c-mask) 0 0) content-box, linear-gradient(var(--c-mask) 0 0);
    -webkit-mask-composite:xor;
            mask-composite:exclude;
    opacity:.55;
    animation:neonSpin var(--neon-speed) linear infinite;
    pointer-events:none;
  }
  .formations-ui .formation-contact__inner::after{
    content:"";
    position:absolute;
    inset:-35%;
    background:var(--contact-halo);
    opacity:.9;
    pointer-events:none;
  }
  .formations-ui .formation-contact__inner > *{ position:relative; z-index:1; }

  .formations-ui .formation-contact__inner:hover{
    transform:translateY(-8px) scale(1.01);
    box-shadow:var(--sh-3), 0 0 26px color-mix(in srgb, var(--accent) 22%, transparent);
    border-color:color-mix(in srgb, var(--accent) 55%, var(--c-overlay-18));
    filter:saturate(1.2);
  }

  /* intro & spacing (match single) */
  .formations-ui .formation-contact__intro{
    max-width:80rem;
    margin-bottom:1.4rem;
    color:var(--c-muted);
  }
  .formations-ui .formation-contact__form{ margin-top:1.2rem; }

  /* Enterprise on listing */
  .formations-ui.is-enterprise .formation-contact__inner{
    border-left-color:var(--contact-left-enterprise);
  }
  .formations-ui.is-enterprise .formation-contact__inner:hover{
    box-shadow:var(--sh-3), 0 0 26px color-mix(in srgb, var(--c-enterprise) 22%, transparent);
  }

  /* title style (si ton listing réutilise .formation-section-title) */
  .formations-ui .formation-section-title{
    margin:0 0 .9rem;
    font-size:clamp(1.35rem,1.1vw + 1.05rem,1.85rem);
    font-weight:950;
    letter-spacing:-.03em;
    color:var(--c-ink);
  }

  /* séparation "résultats -> formulaire" */
  .formations-ui .formation-results{
    padding:1.2rem 1.5rem 2.25rem;
    position:relative;
  }
  .formations-ui .formation-results::after{
    content:"";
    display:block;
    height:1px;
    margin:2.25rem auto 0;
    max-width:var(--container);
    background:linear-gradient(to right, transparent, var(--c-overlay-22), transparent);
    opacity:.9;
  }

  /* ============================================================
     1.2) Results + cards (archive) – HOVER AGRESSIF
     ============================================================ */

  .formations-ui .formation-results__meta{
    margin:0 auto 1rem;
    color:var(--c-muted);
    font-weight:850;
  }
  .formations-ui .formation-results__grid{
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
    gap:1.5rem;
  }

  /* Default formations cards: align with blog cards */
  :where(.formations-ui, .single-formation) .formation-card{
    border-radius:1.75rem;
    height:100%;
  }

  :where(.formations-ui, .single-formation) .formation-card__link{
    display:flex;
    flex-direction:column;
    min-height:100%;
    height:100%;
    text-decoration:none;
    color:inherit;
  }

  :where(.formations-ui, .single-formation) .formation-card__thumb{
    position:relative;
    aspect-ratio:16/9;
    overflow:hidden;
    border-radius:1.55rem;
    margin:1.05rem 1.1rem 0;
    border:1px solid var(--c-overlay-12);
    background:var(--c-overlay-06);
    box-shadow:0 10px 22px var(--c-shadow-45);
    transition:transform var(--t), box-shadow var(--t), border-color var(--t), filter var(--t);
  }

  :where(.formations-ui, .single-formation) .formation-card:hover .formation-card__thumb{
    transform:translateY(-2px) scale(1.03);
    border-color:color-mix(in srgb, var(--accent) 45%, var(--c-overlay-18));
    box-shadow:0 18px 40px var(--c-shadow-60), var(--neon-glow);
    filter:saturate(1.15);
  }

  :where(.formations-ui, .single-formation) .formation-card__thumb::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, var(--c-transparent) 0%, var(--c-shadow-35) 65%, var(--c-shadow-75) 100%);
  }

  :where(.formations-ui, .single-formation) .formation-card__thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }

  :where(.formations-ui, .single-formation) .formation-card__thumb--placeholder{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--c-muted);
    background:
      radial-gradient(circle at top left, color-mix(in srgb, var(--accent) 14%, var(--c-panel-1)), var(--c-panel-1));
  }

  :where(.formations-ui, .single-formation) .formation-card__body{
    padding:1.05rem 1.2rem 1.15rem;
    display:flex;
    flex-direction:column;
    min-width:0;
    flex:1 1 auto;
  }

  :where(.formations-ui, .single-formation) .formation-card__tags{
    display:flex;
    flex-wrap:wrap;
    gap:.45rem;
    margin-bottom:.65rem;
  }

  :where(.formations-ui, .single-formation) .formation-card__title{
    margin:0 0 .45rem;
    font-size:1.08rem;
    color:var(--c-ink);
    font-weight:950;
    letter-spacing:-.02em;
  }

  :where(.formations-ui, .single-formation) .formation-card__meta{
    margin:0 0 .55rem;
    font-size:.82rem;
    font-weight:850;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--c-muted);
  }

  :where(.formations-ui, .single-formation) .formation-card__excerpt{
    margin:0 0 .75rem;
    font-size:.95rem;
    line-height:1.7;
    color:var(--c-muted);
  }

:where(.formations-ui, .single-formation) .formation-card__more{
    margin-top:auto;
    display:inline-flex;
    align-items:center;
    gap:.55rem;
    padding:.62rem 1rem;
    border-radius:999px;
    font-weight:950;
    font-size:.86rem;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--c-ink-inverse);
    background:linear-gradient(135deg,var(--accent),var(--accent-700));
    border:1px solid transparent;
    box-shadow:0 18px 56px color-mix(in srgb, var(--accent) 22%, transparent);
    transition:transform var(--t), box-shadow var(--t), filter var(--t);
    position:relative;
    overflow:hidden;
    align-self:flex-start;
  }

  .theme-light.single-formation .formation-card__more,
  .theme-light .single-formation .formation-card__more,
  .theme-light.formations-ui .formation-card__more,
  .theme-light .formations-ui .formation-card__more{
    color:var(--c-surface);
  }
  :where(.formations-ui, .single-formation) .formation-card__more::after{
    content:"→";
    font-size:1.05rem;
    opacity:.95;
    transform:translateY(-.5px);
    transition:transform var(--t);
  }
  @media (hover:hover) and (pointer:fine){
    :where(.formations-ui, .single-formation) .formation-card:hover .formation-card__more{
      transform:translateY(-2px) scale(1.03);
      box-shadow:0 30px 95px color-mix(in srgb, var(--accent) 34%, transparent),
                 0 0 22px color-mix(in srgb, var(--accent) 28%, transparent);
      filter:saturate(1.2) contrast(1.04);
    }
    :where(.formations-ui, .single-formation) .formation-card:hover .formation-card__more::after{
      transform:translate(2px,-.5px);
    }
  }

  /* pagination */
  .formations-ui .formation-results__pagination{ margin:2rem auto 0; }
  .theme-light.formations-ui .page-numbers.current,
  .theme-light .formations-ui .page-numbers.current{
    color:var(--c-surface);
  }

  /* empty */
  .formations-ui .formation-results__empty{
    margin:0 auto;
    padding:2.1rem 2.2rem;
    border-radius:var(--r-xl);
    border:1px solid var(--c-overlay-14);
    background:var(--c-panel-3);
    box-shadow:var(--sh-1);
    position:relative;
    overflow:hidden;
    isolation:isolate;
  }
  .formations-ui .formation-results__empty::before{
    content:"";
    position:absolute;
    inset:-40%;
    background:
      radial-gradient(circle at 22% 18%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 58%),
      radial-gradient(circle at 78% 32%, color-mix(in srgb, var(--c-accent) 10%, transparent), transparent 60%);
    opacity:.85;
    pointer-events:none;
  }
  .formations-ui .formation-results__empty > *{ position:relative; z-index:1; }

  .formations-ui .formation-results__empty h2,
  .formations-ui .formation-results__empty h3{
    margin-top:0;
    color:var(--c-ink);
    letter-spacing:-.02em;
  }
  .formations-ui .formation-results__empty .btn,
  .formations-ui .formation-results__empty a.button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.6rem;
    margin-top:.85rem;
    padding:1rem 1.35rem;
    border-radius:999px;
    font-weight:950;
    text-decoration:none;
    background:linear-gradient(135deg,var(--accent),var(--accent-700));
    color:var(--c-ink-inverse);
    box-shadow:0 18px 56px color-mix(in srgb, var(--accent) 22%, transparent);
  }

  /* ============================================================
     2) BREADCRUMB – SINGLE + LISTING (UNIFIÉ)
     ============================================================ */

  :where(.single-formation, .formations-ui) .breadcrumb{
    padding:1.15rem 1.5rem 0;
    --bc-accent: var(--accent);
    --bc-accent-hover: var(--accent-700);
  }

  :where(.single-formation, .formations-ui) .breadcrumb__inner{
    max-width:var(--container);
    margin:0 auto;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:.8rem;
    font-size:.92rem;
    line-height:1.2;
  }

  :where(.single-formation, .formations-ui) .breadcrumb__back{
    flex:0 0 auto;
    width:40px;
    height:40px;
    padding:0;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    line-height:1;

    background:linear-gradient(135deg,var(--bc-accent),var(--bc-accent-hover));
    box-shadow:0 14px 30px var(--c-shadow-55), var(--neon-glow);

    text-decoration:none;
    transition:transform var(--t), box-shadow var(--t), filter var(--t);
  }
  :where(.single-formation, .formations-ui) .breadcrumb__back svg{
    width:20px;
    height:20px;
    display:block;
    fill:var(--c-ink-inverse);
  }
  .theme-light.single-formation .breadcrumb__back svg,
  .theme-light .single-formation .breadcrumb__back svg,
  .theme-light.formations-ui .breadcrumb__back svg,
  .theme-light .formations-ui .breadcrumb__back svg{
    fill:var(--c-surface);
  }
  :where(.single-formation, .formations-ui) .breadcrumb__back:hover{
    transform:translateY(-2px) scale(1.03);
    box-shadow:0 20px 44px var(--c-shadow-65), 0 0 22px color-mix(in srgb, var(--accent) 28%, transparent);
    filter:saturate(1.2);
  }

  :where(.single-formation, .formations-ui) .breadcrumb__link{
    color:var(--c-breadcrumb-link);
    text-decoration:none;
    font-weight:800;
    transition:color var(--t), opacity var(--t);
  }
  :where(.single-formation, .formations-ui) .breadcrumb__link:hover{ color:var(--bc-accent); }

  :where(.single-formation, .formations-ui) .breadcrumb__sep{
    color:var(--c-breadcrumb-sep);
    font-weight:900;
    opacity:.9;
    transform:translateY(-.5px);
  }
  :where(.single-formation, .formations-ui) .breadcrumb__current{
    color:var(--c-ink);
    font-weight:950;
    letter-spacing:-.01em;
  }

  @media (max-width:640px){
    :where(.single-formation, .formations-ui) .breadcrumb{ padding:1rem 1.25rem 0; }
    :where(.single-formation, .formations-ui) .breadcrumb__inner{ font-size:.9rem; }
  }

  /* ============================================================
     3) SINGLE – TITLES / BASE
     ============================================================ */

  .single-formation .formation-section-title{
    margin:0 0 .9rem;
    font-size:clamp(1.35rem,1.1vw + 1.05rem,1.85rem);
    font-weight:950;
    letter-spacing:-.03em;
    color:var(--c-ink);
  }

  /* ============================================================
     4) SINGLE – HERO
     ============================================================ */

  .single-formation .formation-hero{
    padding:1.8rem 1.5rem 3.9rem;
    position:relative;
    isolation:isolate;
  }

  /* Surfaces hero (dark) */
  .single-formation{
    --hero-bg:
      radial-gradient(560px 320px at 12% 22%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 64%),
      radial-gradient(520px 260px at 88% 26%, color-mix(in srgb, var(--c-accent) 10%, transparent), transparent 62%),
      linear-gradient(180deg, var(--c-panel-1), var(--c-panel-2));
    --hero-edge:
      linear-gradient(120deg, color-mix(in srgb, var(--accent) 35%, transparent), var(--c-overlay-12), color-mix(in srgb, var(--c-accent) 18%, transparent));
    --hero-left:color-mix(in srgb, var(--accent) 65%, transparent);

    --hero-bg-enterprise:
      radial-gradient(560px 320px at 12% 22%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 64%),
      radial-gradient(520px 260px at 88% 26%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 62%),
      linear-gradient(180deg, var(--c-panel-1), var(--c-panel-2));
    --hero-edge-enterprise:
      linear-gradient(120deg, color-mix(in srgb, var(--accent) 40%, transparent), var(--c-overlay-12), color-mix(in srgb, var(--accent) 12%, transparent));
    --hero-left-enterprise:var(--c-enterprise);
  }

  /* single hero card */
  .single-formation .formation-hero__inner{
    max-width:var(--container);
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
    gap:3.1rem;
    align-items:center;

    background:var(--hero-bg);
    border:1px solid var(--c-overlay-14);
    border-left:7px solid var(--hero-left);
    border-radius:var(--r-xl);
    padding:2.75rem 2.85rem;
    box-shadow:var(--sh-2);
    position:relative;
    overflow:hidden;
    isolation:isolate;

    transition:transform var(--t), box-shadow var(--t), filter var(--t), border-color var(--t);
    will-change:transform;
  }
  .single-formation .formation-hero__inner::before{
    content:"";
    position:absolute;
    inset:-2px;
    border-radius:inherit;
    padding:2px;
    background:
      conic-gradient(
        from var(--n-angle),
        transparent,
        color-mix(in srgb, var(--accent) 80%, transparent),
        color-mix(in srgb, var(--c-accent) 65%, transparent),
        color-mix(in srgb, var(--accent-700) 70%, transparent),
        color-mix(in srgb, var(--accent) 80%, transparent),
        transparent
      );
    -webkit-mask:linear-gradient(var(--c-mask) 0 0) content-box, linear-gradient(var(--c-mask) 0 0);
            mask:linear-gradient(var(--c-mask) 0 0) content-box, linear-gradient(var(--c-mask) 0 0);
    -webkit-mask-composite:xor;
            mask-composite:exclude;
    opacity:.55;
    animation:neonSpin var(--neon-speed) linear infinite;
    pointer-events:none;
  }
  .single-formation .formation-hero__inner::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    border-radius:inherit;
    background:
      radial-gradient(700px 260px at 25% 0%, var(--c-overlay-10), transparent 60%),
      radial-gradient(520px 220px at 70% 0%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 62%);
    opacity:.85;
  }
  .single-formation .formation-hero__inner > *{ position:relative; z-index:1; }

  .single-formation .formation-hero__inner:hover{
    transform:translateY(-8px) scale(1.01) rotateX(2deg);
    box-shadow:var(--sh-3), 0 0 28px color-mix(in srgb, var(--accent) 22%, transparent);
    border-color:color-mix(in srgb, var(--accent) 50%, var(--c-overlay-18));
    filter:saturate(1.2);
  }
  .single-formation .formation-hero__inner:hover::before{ opacity:.85; }

  /* Enterprise */
  .single-formation.is-enterprise .formation-hero__inner{
    background:var(--hero-bg-enterprise);
    border-left-color:var(--hero-left-enterprise);
  }
  .single-formation.is-enterprise .formation-hero__inner::after{ opacity:.9; }

  /* Tags */
  .single-formation .formation-hero__tags{
    display:flex;
    flex-wrap:wrap;
    gap:.6rem;
    margin-bottom:1.25rem;
  }
  .single-formation .formation-tag{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    padding:.38rem .95rem;
    border-radius:999px;
    font-size:.72rem;
    font-weight:950;
    letter-spacing:.13em;
    text-transform:uppercase;
    background:var(--c-overlay-06);
    border:1px solid var(--c-overlay-14);
    color:var(--c-ink-88);
  }
  .single-formation .formation-tag::before{
    content:"";
    width:7px;
    height:7px;
    border-radius:999px;
    background:var(--c-ink-92);
  }
  .single-formation .formation-tag--type{
    background:color-mix(in srgb, var(--accent) 14%, var(--c-panel-1));
    border-color:color-mix(in srgb, var(--accent) 45%, var(--c-overlay-14));
    color:var(--accent-text);
  }
  .single-formation .formation-tag--type::before{ background:var(--accent-text); }
  .single-formation .formation-tag--cat{
    background:color-mix(in srgb, var(--c-accent) 20%, var(--c-panel-1));
    border-color:color-mix(in srgb, var(--c-accent) 45%, transparent);
    color:var(--c-accent-ink);
  }
  .single-formation .formation-tag--cat::before{ background:var(--c-accent); }

  /* Title / Subtitle */
  .single-formation .formation-hero__title{
    font-size:clamp(2.25rem,2.6vw + 1.25rem,3.55rem);
    margin:0 0 .9rem;
    font-weight:950;
    letter-spacing:-.05em;
    line-height:1.06;
    color:var(--c-ink);
  }
  .single-formation .formation-hero__subtitle{
    font-size:1.06rem;
    max-width:80rem;
    line-height:1.85;
    color:var(--c-muted);
  }
  .single-formation .formation-hero__cta{
    margin-top:2.2rem;
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
  }

  /* Buttons (single) – hover agressif */
  .single-formation .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.6rem;

    padding:1rem 2.25rem;
    border-radius:999px;

    font-weight:950;
    font-size:.95rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    text-decoration:none;

    border:1px solid transparent;
    cursor:pointer;

    transition:transform var(--t), box-shadow var(--t), background var(--t), color var(--t), border-color var(--t), filter var(--t);
    will-change:transform;
    position:relative;
    overflow:hidden;
  }
  .single-formation .btn::after{ content:"→"; font-size:1.05rem; opacity:.9; }

  .single-formation .btn::before{
    content:"";
    position:absolute;
    inset:-40%;
    background:
      radial-gradient(circle at 30% 30%, var(--c-overlay-20), transparent 55%),
      radial-gradient(circle at 70% 50%, color-mix(in srgb, var(--accent) 30%, transparent), transparent 60%);
    opacity:0;
    transition:opacity var(--t);
  }
  .single-formation .btn:hover::before{ opacity:.9; }

  .single-formation .btn-primary{
    background:linear-gradient(135deg,var(--btn-primary-bg-1),var(--btn-primary-bg-2));
    color:var(--btn-primary-text);
    box-shadow:0 18px 56px color-mix(in srgb, var(--accent) 24%, transparent);
  }
  .single-formation .btn-primary:hover{
    transform:translateY(-3px) scale(1.03);
    box-shadow:0 28px 90px color-mix(in srgb, var(--accent) 34%, transparent), 0 0 24px color-mix(in srgb, var(--accent) 28%, transparent);
    filter:saturate(1.25) contrast(1.05);
  }
  .single-formation .btn-outline{
    background:var(--c-panel-3);
    color:var(--c-ink);
    border-color:var(--c-overlay-18);
    box-shadow:0 10px 26px var(--c-shadow-45);
  }
  .single-formation .btn-outline:hover{
    transform:translateY(-3px) scale(1.02);
    background:linear-gradient(135deg,
      color-mix(in srgb, var(--c-accent) 22%, transparent),
      color-mix(in srgb, var(--accent-700) 18%, transparent)
    );
    color:var(--c-ink);
    border-color:color-mix(in srgb, var(--accent) 55%, var(--c-overlay-18));
    box-shadow:0 22px 70px var(--c-shadow-65), var(--neon-glow);
    filter:saturate(1.2);
  }

  /* Hero media */
  .single-formation .formation-hero__media img{
    max-width:100%;
    border-radius:var(--r-lg);
    box-shadow:var(--sh-1);
    object-fit:cover;
    border:1px solid var(--c-overlay-14);
    background:var(--c-panel-3);
    transition:transform var(--t), box-shadow var(--t), filter var(--t), border-color var(--t);
  }
  .single-formation .formation-hero__inner:hover .formation-hero__media img{
    transform:translateY(-2px) scale(1.02);
    box-shadow:var(--sh-2), var(--neon-glow);
    border-color:color-mix(in srgb, var(--accent) 45%, var(--c-overlay-18));
    filter:saturate(1.15);
  }

  /* ============================================================
     5) SINGLE – INFOS CLÉS
     ============================================================ */

  .single-formation .formation-keyfacts{
    padding:3rem 1.5rem 3.2rem;
    background:linear-gradient(180deg, var(--c-shadow-65), var(--c-panel-10));
    position:relative;
    isolation:isolate;
  }

  .single-formation .formation-keyfacts__inner{
    max-width:var(--container);
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:1.65rem;
    position:relative;
  }

  .single-formation .formation-keyfacts__item{
    position:relative;
    background:linear-gradient(180deg, var(--c-panel-1), var(--c-panel-2));
    border-radius:1.45rem;
    padding:1.35rem 1.5rem;
    border:1px solid var(--c-overlay-14);
    box-shadow:var(--sh-1);
    transition:transform var(--t), box-shadow var(--t), border-color var(--t), filter var(--t);
    overflow:hidden;
    isolation:isolate;
    will-change:transform;
  }
  .single-formation .formation-keyfacts__item::before{
    content:"";
    position:absolute;
    inset:-2px;
    border-radius:inherit;
    padding:2px;
    background:
      conic-gradient(
        from var(--n-angle),
        transparent,
        color-mix(in srgb, var(--accent) 80%, transparent),
        color-mix(in srgb, var(--c-accent) 65%, transparent),
        color-mix(in srgb, var(--accent-700) 70%, transparent),
        color-mix(in srgb, var(--accent) 80%, transparent),
        transparent
      );
    -webkit-mask:linear-gradient(var(--c-mask) 0 0) content-box, linear-gradient(var(--c-mask) 0 0);
            mask:linear-gradient(var(--c-mask) 0 0) content-box, linear-gradient(var(--c-mask) 0 0);
    -webkit-mask-composite:xor;
            mask-composite:exclude;
    opacity:.35;
    animation:neonSpin var(--neon-speed) linear infinite;
    pointer-events:none;
  }
  .single-formation .formation-keyfacts__item:hover{
    transform:translateY(-8px) scale(1.02) rotateX(2deg);
    box-shadow:var(--sh-3), 0 0 28px color-mix(in srgb, var(--accent) 22%, transparent);
    border-color:color-mix(in srgb, var(--accent) 55%, var(--c-overlay-18));
    filter:saturate(1.25);
  }
  .single-formation .formation-keyfacts__item:hover::before{ opacity:.75; }

  .single-formation .formation-keyfacts__item--highlight{
    border-color:color-mix(in srgb, var(--c-accent) 50%, transparent);
  }
  .single-formation .formation-keyfacts__item .label{
    font-size:.76rem;
    text-transform:uppercase;
    letter-spacing:.18em;
    color:var(--c-muted);
    font-weight:850;
  }
  .single-formation .formation-keyfacts__item .value{
    display:block;
    margin-top:.55rem;
    font-weight:950;
    font-size:1.12rem;
    color:var(--c-ink);
  }

  /* ============================================================
     6) SINGLE – MAIN CONTENT + ACCORDION
     ============================================================ */

  .single-formation .formation-main{
    padding:3.25rem 1.5rem 3.9rem;
    background:linear-gradient(180deg, var(--c-panel-8), var(--c-panel-10));
    position:relative;
    isolation:isolate;
  }
  .single-formation .formation-main__inner{
    max-width:var(--container);
    margin:0 auto;
    background:var(--c-panel-3);
    border-radius:var(--r-xl);
    padding:2.65rem 2.85rem;
    border:1px solid var(--c-overlay-14);
    box-shadow:var(--sh-2);
    position:relative;
    overflow:hidden;
    isolation:isolate;
  }
  .single-formation .formation-main__inner::before{
    content:"";
    position:absolute;
    inset:-2px;
    border-radius:inherit;
    padding:2px;
    background:
      conic-gradient(
        from var(--n-angle),
        transparent,
        color-mix(in srgb, var(--accent) 80%, transparent),
        color-mix(in srgb, var(--c-accent) 65%, transparent),
        color-mix(in srgb, var(--accent-700) 70%, transparent),
        color-mix(in srgb, var(--accent) 80%, transparent),
        transparent
      );
    -webkit-mask:linear-gradient(var(--c-mask) 0 0) content-box, linear-gradient(var(--c-mask) 0 0);
            mask:linear-gradient(var(--c-mask) 0 0) content-box, linear-gradient(var(--c-mask) 0 0);
    -webkit-mask-composite:xor;
            mask-composite:exclude;
    opacity:.45;
    animation:neonSpin var(--neon-speed) linear infinite;
    pointer-events:none;
  }
  .single-formation .formation-main__inner::after{
    content:"";
    position:absolute;
    inset:-35%;
    background:
      radial-gradient(circle at 25% 20%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 60%),
      radial-gradient(circle at 80% 35%, color-mix(in srgb, var(--c-accent) 10%, transparent), transparent 60%);
    opacity:.85;
    pointer-events:none;
  }
  .single-formation .formation-main__inner > *{ position:relative; z-index:1; }

  .single-formation .formation-accordion{
    border-radius:1.55rem;
    border:1px solid var(--c-overlay-14);
    background:var(--c-panel-3);
    overflow:hidden;
    box-shadow:var(--sh-1);
  }
  .single-formation .formation-accordion__item + .formation-accordion__item{
    border-top:1px solid var(--c-overlay-10);
  }
  .single-formation .formation-accordion__item{
    border-left:4px solid var(--c-transparent);
    transition:background var(--t), border-left-color var(--t), filter var(--t);
  }
  .single-formation .formation-accordion__header{
    width:100%;
    padding:1.1rem 1.65rem 1.2rem;
    background:transparent;
    border:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    cursor:pointer;
    text-align:left;
  }
  .single-formation .formation-accordion__title{
    margin:0;
    font-size:1.03rem;
    color:var(--c-ink);
    font-weight:950;
    letter-spacing:-.01em;
  }
  .single-formation .formation-accordion__icon{
    position:relative;
    width:26px;
    height:26px;
    flex:0 0 26px;
    border-radius:999px;
    border:1px solid var(--c-overlay-18);
    background:var(--c-overlay-06);
    box-shadow:0 10px 22px var(--c-shadow-45);
    transition:transform var(--t), background var(--t), border-color var(--t), box-shadow var(--t), filter var(--t);
  }
  .single-formation .formation-accordion__icon::before,
  .single-formation .formation-accordion__icon::after{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:12px;
    height:2px;
    background:var(--c-ink-85);
    border-radius:999px;
    transform:translate(-50%,-50%);
    transition:transform 350ms ease, opacity 350ms ease, background var(--t);
  }
  .single-formation .formation-accordion__icon::after{ transform:translate(-50%,-50%) rotate(90deg); }
  .single-formation .formation-accordion__item.is-open .formation-accordion__icon::after{
    transform:translate(-50%,-50%) rotate(0deg);
    opacity:0;
  }
  .single-formation .formation-accordion__panel{
    overflow:hidden;
    height:0;
    transition:height 360ms cubic-bezier(.22,.61,.36,1);
  }
  .single-formation .formation-accordion__content{
    padding:0 1.65rem 1.25rem;
    font-size:.98rem;
    line-height:1.85;
    color:var(--c-muted);
  }
  .single-formation .formation-accordion__content p{ margin-bottom:.85rem; }

  .single-formation .formation-accordion__header:hover .formation-accordion__icon{
    box-shadow:0 18px 40px var(--c-shadow-60), var(--neon-glow);
    transform:translateY(-2px) scale(1.04);
    border-color:color-mix(in srgb, var(--accent) 45%, var(--c-overlay-18));
    filter:saturate(1.2);
  }

  /* OPEN */
  .single-formation .formation-accordion__item.is-open{
    background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 16%, transparent), transparent 60%);
    border-left-color:color-mix(in srgb, var(--accent) 75%, transparent);
    filter:saturate(1.1);
  }
  .single-formation .formation-accordion__item.is-open .formation-accordion__icon{
    background:color-mix(in srgb, var(--accent) 14%, var(--c-overlay-06));
    border-color:color-mix(in srgb, var(--accent) 45%, var(--c-overlay-18));
  }
  .single-formation .formation-accordion__item.is-open .formation-accordion__icon::before,
  .single-formation .formation-accordion__item.is-open .formation-accordion__icon::after{
    background:var(--accent);
  }

  /* ============================================================
     7) SINGLE – RELATED (cards agressives)
     ============================================================ */

  .single-formation .formation-related{
    padding:3.25rem 1.5rem 3.75rem;
    background:
      radial-gradient(760px 360px at 15% 0%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 62%),
      radial-gradient(650px 340px at 90% 12%, color-mix(in srgb, var(--c-accent) 10%, transparent), transparent 58%),
      linear-gradient(180deg, var(--c-shadow-65), var(--c-panel-10));
    position:relative;
    isolation:isolate;
  }
  .single-formation .formation-related__inner{
    max-width:var(--container);
    margin:0 auto;
    position:relative;
  }
  .single-formation .formation-related__grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:1.9rem;
    margin-top:1.7rem;
  }

  /* ============================================================
     8) SINGLE + ARCHIVE – CONTACT (structure identique)
     (les styles listing sont déjà alignés dans 1.1)
     ============================================================ */

  .single-formation{
    --contact-bg:
      linear-gradient(180deg, var(--c-panel-8) 0%, var(--c-panel-9) 42%, var(--c-panel-10) 100%);
    --contact-card-bg:var(--c-panel-3);
    --contact-halo:
      radial-gradient(circle at 25% 20%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 60%),
      radial-gradient(circle at 80% 35%, color-mix(in srgb, var(--c-accent) 10%, transparent), transparent 60%);
    --contact-left:color-mix(in srgb, var(--accent) 65%, transparent);
    --contact-border:var(--c-overlay-14);

    --contact-left-enterprise:var(--c-enterprise);
    --contact-border-enterprise:var(--c-overlay-14);
  }

  .single-formation .formation-contact{
    padding:3.6rem 1.5rem 4.2rem;
    background:var(--contact-bg);
    position:relative;
    isolation:isolate;
  }
  .single-formation .formation-contact__inner{
    max-width:var(--container);
    margin:0 auto;

    background:var(--contact-card-bg);
    border-radius:var(--r-xl);
    padding:2.65rem 2.85rem;

    border:1px solid var(--contact-border);
    border-left:7px solid var(--contact-left);
    box-shadow:var(--sh-2);

    position:relative;
    overflow:hidden;
    isolation:isolate;

    transition:transform var(--t), box-shadow var(--t), filter var(--t), border-color var(--t);
  }
  .single-formation .formation-contact__inner::before{
    content:"";
    position:absolute;
    inset:-2px;
    border-radius:inherit;
    padding:2px;
    background:
      conic-gradient(
        from var(--n-angle),
        transparent,
        color-mix(in srgb, var(--accent) 80%, transparent),
        color-mix(in srgb, var(--c-accent) 65%, transparent),
        color-mix(in srgb, var(--accent-700) 70%, transparent),
        color-mix(in srgb, var(--accent) 80%, transparent),
        transparent
      );
    -webkit-mask:linear-gradient(var(--c-mask) 0 0) content-box, linear-gradient(var(--c-mask) 0 0);
            mask:linear-gradient(var(--c-mask) 0 0) content-box, linear-gradient(var(--c-mask) 0 0);
    -webkit-mask-composite:xor;
            mask-composite:exclude;
    opacity:.55;
    animation:neonSpin var(--neon-speed) linear infinite;
    pointer-events:none;
  }
  .single-formation .formation-contact__inner::after{
    content:"";
    position:absolute;
    inset:-35%;
    background:var(--contact-halo);
    opacity:.9;
    pointer-events:none;
  }
  .single-formation .formation-contact__inner > *{ position:relative; z-index:1; }

  .single-formation .formation-contact__inner:hover{
    transform:translateY(-8px) scale(1.01);
    box-shadow:var(--sh-3), 0 0 26px color-mix(in srgb, var(--accent) 22%, transparent);
    border-color:color-mix(in srgb, var(--accent) 55%, var(--c-overlay-18));
    filter:saturate(1.2);
  }
  .single-formation .formation-contact__intro{
    max-width:80rem;
    margin-bottom:1.4rem;
    color:var(--c-muted);
  }
  .single-formation .formation-contact__form{ margin-top:1.2rem; }

  /* Enterprise */
  .single-formation.is-enterprise .formation-contact__inner{
    border-left-color:var(--contact-left-enterprise);
  }
  .single-formation.is-enterprise .formation-contact__inner:hover{
    box-shadow:var(--sh-3), 0 0 26px color-mix(in srgb, var(--c-enterprise) 22%, transparent);
  }

  /* ============================================================
     9) FLUENT FORMS – UNIFIÉ (dark) + CHECKBOX/RADIO
     ============================================================ */

  :where(.single-formation, .formations-ui) .formation-contact{
    --ff-bg:var(--c-panel-1);
    --ff-bd:var(--c-overlay-14);
    --ff-shadow:0 10px 22px var(--c-shadow-45);
    --ff-focus-shadow:0 22px 60px color-mix(in srgb, var(--accent) 20%, transparent);
  }

  /* inputs */
  :where(.single-formation, .formations-ui) .formation-contact__form .ff-el-form-control{
    background:var(--ff-bg) !important;
    border:1px solid var(--ff-bd) !important;
    border-radius:1rem !important;
    box-shadow:var(--ff-shadow) !important;

    min-height:50px !important;
    display:flex;
    align-items:center;

    color:var(--c-ink) !important;

    transition:box-shadow var(--t), border-color var(--t), transform var(--t), filter var(--t) !important;
  }

  :where(.single-formation, .formations-ui) .formation-contact__form .ff-el-form-control:focus{
    outline:none !important;
    border-color:color-mix(in srgb, var(--accent) 65%, var(--c-overlay-22)) !important;
    box-shadow:var(--ring-active), var(--ff-focus-shadow) !important;
    transform:translateY(-2px);
    filter:saturate(1.15);
  }

  /* labels */
  :where(.single-formation, .formations-ui) .formation-contact__form
  :where(.ff-el-input--label label, .ff-el-section-title){
    color:var(--c-ink) !important;
    font-weight:850 !important;
  }

  /* submit */
  :where(.single-formation, .formations-ui) .formation-contact__form .ff-btn-submit{
    border-radius:999px !important;
    padding:1rem 2.2rem !important;
    font-weight:950 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
    border:1px solid transparent !important;

    background:linear-gradient(135deg,var(--accent),var(--accent-700)) !important;
    color:var(--c-ink-inverse) !important;
    box-shadow:0 18px 56px color-mix(in srgb, var(--accent) 24%, transparent) !important;
    transition:transform var(--t), box-shadow var(--t), filter var(--t) !important;
    position:relative;
    overflow:hidden;
  }
  .theme-light.single-formation .formation-contact__form :is(.ff-btn-submit, .ff-btn.ff-btn-submit, .ff-btn.ff-btn-lg, .ff_btn_style),
  .theme-light .single-formation .formation-contact__form :is(.ff-btn-submit, .ff-btn.ff-btn-submit, .ff-btn.ff-btn-lg, .ff_btn_style),
  .theme-light.formations-ui .formation-contact__form :is(.ff-btn-submit, .ff-btn.ff-btn-submit, .ff-btn.ff-btn-lg, .ff_btn_style),
  .theme-light .formations-ui .formation-contact__form :is(.ff-btn-submit, .ff-btn.ff-btn-submit, .ff-btn.ff-btn-lg, .ff_btn_style){
    color:var(--c-surface) !important;
  }
  :where(.single-formation, .formations-ui) .formation-contact__form .ff-btn-submit::before{
    content:"";
    position:absolute;
    inset:-40%;
    background:
      radial-gradient(circle at 30% 30%, var(--c-overlay-22), transparent 55%),
      radial-gradient(circle at 70% 50%, color-mix(in srgb, var(--accent) 30%, transparent), transparent 60%);
    opacity:0;
    transition:opacity var(--t);
  }
  :where(.single-formation, .formations-ui) .formation-contact__form .ff-btn-submit:hover{
    transform:translateY(-3px) scale(1.03) !important;
    box-shadow:0 30px 95px color-mix(in srgb, var(--accent) 34%, transparent), 0 0 24px color-mix(in srgb, var(--accent) 28%, transparent) !important;
    filter:saturate(1.25) contrast(1.05);
  }
  :where(.single-formation, .formations-ui) .formation-contact__form .ff-btn-submit:hover::before{ opacity:.95; }

  /* Checkbox/Radio Fluent Forms */
  :where(.single-formation, .formations-ui) .formation-contact__form
  :where(.ff-el-form-check, .ff-el-form-check-inline, .ff-el-checkbox, .ff-el-radio){
    display:block !important;
    margin:0 0 .55rem !important;
    padding:0 !important;
  }

  :where(.single-formation, .formations-ui) .formation-contact__form
  :where(.ff-el-form-check-label, .ff_tc_label, .ff-el-form-check label, .ff-el-checkbox label, .ff-el-radio label){
    display:flex !important;
    align-items:flex-start !important;
    gap:.65rem !important;
    padding:0 !important;
    margin:0 !important;
    line-height:1.35 !important;
    cursor:pointer;
    font-weight:850;
    color:var(--c-ink);
  }

  :where(.single-formation, .formations-ui) .formation-contact__form
  :where(.ff-el-form-check-label, .ff_tc_label)::before,
  :where(.single-formation, .formations-ui) .formation-contact__form
  :where(.ff-el-form-check-label, .ff_tc_label)::after{
    content:none !important;
    display:none !important;
  }

  :where(.single-formation, .formations-ui) .formation-contact__form
  input:is([type="checkbox"],[type="radio"]){
    appearance:none;
    -webkit-appearance:none;
    width:18px;
    height:18px;
    flex:0 0 18px;
    margin:0 !important;
    margin-top:.22rem !important;

    border-radius:5px;
    border:1.6px solid var(--c-control-border);
    background:var(--c-control-bg);

    display:grid !important;
    place-items:center !important;
    cursor:pointer;

    transition:border-color var(--t), background var(--t), box-shadow var(--t), transform var(--t), filter var(--t);
  }
  :where(.single-formation, .formations-ui) .formation-contact__form
  input:is([type="checkbox"],[type="radio"])::before{
    content:"";
    width:10px;
    height:10px;
    border-radius:3px;
    background:var(--accent);
    transform:scale(0);
    transform-origin:center;
    transition:transform 160ms ease;
  }
  :where(.single-formation, .formations-ui) .formation-contact__form
  input:is([type="checkbox"],[type="radio"]):checked{
    border-color:var(--accent);
    background:color-mix(in srgb, var(--accent) 14%, var(--c-panel-1));
    box-shadow:var(--ring-active), 0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent);
  }
  :where(.single-formation, .formations-ui) .formation-contact__form
  input:is([type="checkbox"],[type="radio"]):checked::before{ transform:scale(1); }

  :where(.single-formation, .formations-ui) .formation-contact__form
  :where(label, .ff-el-form-check-label, .ff_tc_label, .ff-el-form-check, .ff-el-checkbox, .ff-el-radio):hover
  input:is([type="checkbox"],[type="radio"]){
    border-color:color-mix(in srgb, var(--accent) 55%, var(--c-overlay-22));
    transform:translateY(-1px);
    filter:saturate(1.2);
  }

  :where(.single-formation, .formations-ui) .formation-contact__form
  input:is([type="checkbox"],[type="radio"]):focus-visible{
    outline:none;
    box-shadow:var(--ring-active), 0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent);
  }

  /* FIX CONSENTEMENT (GDPR) */
  :where(.single-formation, .formations-ui) .formation-contact__form
  .ff-el-form-check.ff-el-tc{ margin-top:.35rem !important; }

  :where(.single-formation, .formations-ui) .formation-contact__form
  .ff-el-form-check.ff-el-tc .ff_tc_label{
    align-items:center !important;
    gap:.75rem !important;
  }
  :where(.single-formation, .formations-ui) .formation-contact__form
  .ff-el-form-check.ff-el-tc .ff_tc_checkbox{
    display:flex !important;
    align-items:center !important;
    flex:0 0 18px !important;
  }
  :where(.single-formation, .formations-ui) .formation-contact__form
  .ff-el-form-check.ff-el-tc .ff_tc_checkbox input[type="checkbox"]{
    margin:0 !important;
    transform:none !important;
  }
  :where(.single-formation, .formations-ui) .formation-contact__form
  .ff-el-form-check.ff-el-tc .ff_t_c{
    margin:0 !important;
    line-height:1.35 !important;
  }

  /* ============================================================
     10) VERTICAL THREAD (unifié + suit l’accent)
     ============================================================ */

  .single-formation .formation-hero__inner,
  .single-formation .formation-keyfacts__inner,
  .single-formation .formation-main__inner,
  .single-formation .formation-related__inner,
  .single-formation .formation-contact__inner{ position:relative; }

  .single-formation .formation-keyfacts__inner::before,
  .single-formation .formation-main__inner::before,
  .single-formation .formation-related__inner::before,
  .single-formation .formation-contact__inner::before{
    content:"";
    position:absolute;
    top:-28px;
    bottom:-28px;
    left:-18px;
    width:2px;
    background:linear-gradient(
      to bottom,
      transparent,
      color-mix(in srgb, var(--accent) 40%, transparent),
      color-mix(in srgb, var(--c-accent) 14%, transparent),
      transparent
    );
    border-radius:999px;
    opacity:.85;
  }

  /* ============================================================
     11) ACCESSIBILITY / MOTION
     ============================================================ */

  @media (prefers-reduced-motion: reduce){
    .single-formation *{ transition:none !important; scroll-behavior:auto !important; }
    .formations-ui *{ transition:none !important; scroll-behavior:auto !important; }
    :where(.single-formation, .formations-ui) *{ animation:none !important; }
  }

  /* ============================================================
     12) RESPONSIVE
     ============================================================ */

  @media (max-width:900px){
    .single-formation .formation-hero__inner{
      grid-template-columns:1fr;
      padding:2.15rem 2rem;
      gap:2.1rem;
    }
    .single-formation .formation-hero__media{ order:-1; }

    .single-formation .formation-main__inner,
    .single-formation .formation-contact__inner{
      padding:2.1rem 2rem;
      border-radius:1.8rem;
    }

    .single-formation .formation-keyfacts__inner::before,
    .single-formation .formation-main__inner::before,
    .single-formation .formation-related__inner::before,
    .single-formation .formation-contact__inner::before{
      left:-10px;
      opacity:.65;
    }

    /* listing contact match single */
    .formations-ui .formation-contact__inner{
      padding:2.1rem 2rem;
      border-radius:1.8rem;
    }
  }

  @media (max-width:640px){
    .single-formation .formation-hero{ padding-top:3.4rem; }
    .single-formation .formation-hero__title{ font-size:2.15rem; }

    .single-formation .btn{ width:100%; justify-content:center; }
  }

  /* ============================================================
     GLOBAL BACKGROUND (single + archive) – ONE PIECE + SPOTLIGHT
     -> Un seul background continu + séparateurs + hover light
     ============================================================ */

  /* 1) Wrapper global : on pose un seul background + overlay */
  :where(.single-formation, .formations-ui){
    position:relative;
    isolation:isolate;
    overflow:hidden;

    /* position souris (fallback center) */
    --mx:50%;
    --my:20%;

    /* intensité spotlight */
    --spot-opacity:0;
    --spot-size:520px;
  }

  /* Background “continu” en dessous de tout */
  :where(.single-formation, .formations-ui)::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-2;

    background:
      radial-gradient(900px 420px at 8% 0%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 62%),
      radial-gradient(760px 360px at 92% 10%, color-mix(in srgb, var(--c-accent) 12%, transparent), transparent 58%),
      radial-gradient(980px 520px at 50% 120%, color-mix(in srgb, var(--accent-700) 14%, transparent), transparent 60%),
      linear-gradient(180deg, var(--c-bg-1), var(--c-bg-2));
  }

  /* Spotlight qui suit la souris (overlay au-dessus du fond mais sous le contenu) */
  :where(.single-formation, .formations-ui)::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    pointer-events:none;

    background:
      radial-gradient(
        var(--spot-size) var(--spot-size) at var(--mx) var(--my),
        color-mix(in srgb, var(--accent) 22%, transparent),
        transparent 62%
      ),
      radial-gradient(
        calc(var(--spot-size) * 1.2) calc(var(--spot-size) * 1.2) at var(--mx) var(--my),
        color-mix(in srgb, var(--c-accent) 12%, transparent),
        transparent 70%
      );

    opacity:var(--spot-opacity);
    transition:opacity 180ms ease;
    filter:saturate(1.2);
  }

  /* Active le spotlight quand on survole la page (mais pas sur mobile) */
  @media (hover:hover){
    :where(.single-formation, .formations-ui):hover{
      --spot-opacity:.95;
    }
  }

  /* 2) IMPORTANT : on enlève les backgrounds par section (on garde juste padding) */
  .single-formation .formation-hero,
  .single-formation .formation-keyfacts,
  .single-formation .formation-main,
  .single-formation .formation-related,
  .single-formation .formation-contact{
    background:transparent !important;
  }

  /* 3) Séparateurs propres entre sections (ligne glow + petite brume) */
  .single-formation :is(.formation-keyfacts, .formation-main, .formation-related, .formation-contact){
    position:relative;
  }

  .single-formation :is(.formation-keyfacts, .formation-main, .formation-related, .formation-contact)::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:1px;
    background:linear-gradient(to right, transparent, var(--c-overlay-22), transparent);
    opacity:.9;
  }

  .single-formation :is(.formation-keyfacts, .formation-main, .formation-related, .formation-contact)::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:-40px;
    height:80px;
    pointer-events:none;
    background:
      radial-gradient(60% 80px at 50% 50%,
        color-mix(in srgb, var(--accent) 10%, transparent),
        transparent 70%
      );
    opacity:.65;
  }

  /* 4) BONUS : évite l’effet “saccade” de contrastes entre sections */
  .single-formation :is(.formation-hero, .formation-keyfacts, .formation-main, .formation-related, .formation-contact){
    padding-top:3.2rem;
    padding-bottom:3.2rem;
  }

  /* Hero garde son spacing custom si tu veux */
  .single-formation .formation-hero{
    padding-top:1.8rem;
    padding-bottom:3.9rem;
  }

  /* 5) Smooth hover light même quand on est sur des éléments (sans casser tes hovers) */
  @media (hover:hover){
    :where(.single-formation, .formations-ui) *{
      /* rien de violent, juste un confort */
      scroll-margin-top:90px;
    }
  }

/* ============================================================


