/* RC3 : masque la couche GrowCareer avant que le Display Engine soit prêt. */
body.single-jobs:not(.frde-ready):not(.frde-fallback) .job-detail-content,
body.single-jobs:not(.frde-ready):not(.frde-fallback) .job-detail,
body.single-jobs:not(.frde-ready):not(.frde-fallback) .single-job-content,
body.single-jobs:not(.frde-ready):not(.frde-fallback) .single-jobs,
body.single-jobs:not(.frde-ready):not(.frde-fallback) article.type-jobs,
body.single-job:not(.frde-ready):not(.frde-fallback) .job-detail-content,
body.single-job:not(.frde-ready):not(.frde-fallback) .job-detail,
body.single-job:not(.frde-ready):not(.frde-fallback) article.type-job{visibility:hidden!important;}
.frde-app,.frde-app *{font-family:var(--frde-font,inherit)!important}.frde-app h1,.frde-app h2,.frde-app h3,.frde-app h4,.frde-app h5,.frde-app h6{font-family:var(--frde-heading-font,var(--frde-font,inherit))!important}

.frde-app{--r:#ff2627;--t:#202124;--m:#666b73;--l:#e7e8eb;max-width:1240px;margin:auto;padding:20px 18px 70px;color:var(--t)}
.frde-hide-original{display:none!important}
.frde-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:34px;align-items:start}
.frde-hero{padding:12px 0 32px}
.frde-kicker{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--m);margin-bottom:14px}
.frde-kicker b{background:var(--r);color:#fff;border-radius:20px;padding:5px 12px;font-size:12px}
.frde-hero h1{font-size:clamp(38px,4.2vw,60px);line-height:.98;letter-spacing:-.045em;margin:0;max-width:850px}
.frde-company-inline{font-size:20px;font-weight:700;margin-top:15px}.frde-company-inline i{color:#1687ff;font-style:normal;font-size:12px}
.frde-facts{display:flex;flex-wrap:wrap;margin-top:26px}
.frde-fact{display:flex;gap:8px;align-items:center;padding:4px 20px 4px 0;margin-right:20px;border-right:1px solid var(--l)}
.frde-fact span{font-size:12px;color:var(--m)}.frde-fact strong{font-size:14px}.frde-fact:last-child{border-right:0}
.frde-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--l);border-radius:14px;overflow:hidden;margin-top:25px}
.frde-card{min-height:66px;padding:14px 16px;border-right:1px solid var(--l);display:flex;flex-direction:column;gap:5px}
.frde-card:last-child{border-right:0}.frde-card span{font-size:11px;color:var(--m)}.frde-card strong{font-size:14px;line-height:1.3}
.frde-actions{display:flex;gap:14px;margin-top:28px}
.frde-primary,.frde-secondary{min-height:50px;padding:0 25px;border-radius:8px;font-weight:800;border:0;cursor:pointer}
.frde-primary{background:var(--r);color:#fff}.frde-secondary{background:#fff;border:1px solid var(--l);color:var(--t)}
.frde-section{border-top:1px solid var(--l);padding:34px 0}.frde-section h2{position:relative;font-size:25px;margin:0 0 25px;padding-left:16px;letter-spacing:-.02em}.frde-section h2:before{content:"";position:absolute;left:0;top:.15em;width:4px;height:1.15em;border-radius:99px;background:var(--r)}
.frde-content h2,.frde-content h3{font-size:21px;margin:25px 0 8px}.frde-content p,.frde-content li{line-height:1.65;color:#484c54}
.frde-skills{display:flex;flex-wrap:wrap;gap:10px}.frde-skills span{padding:8px 14px;border:1px solid #d9dce1;border-radius:999px}
.frde-extra{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.frde-extra .frde-card{border:1px solid var(--l);border-radius:10px}
.frde-bottom{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:28px 30px;border:1px solid rgba(255,38,39,.13);border-radius:14px;background:linear-gradient(90deg,#fff7f7,#fff);margin-top:30px}
.frde-bottom h3{margin:0 0 7px;font-size:21px}.frde-bottom p{margin:0;color:var(--m)}
.frde-side{position:sticky;top:24px}.frde-apply-box,.frde-company-box,.frde-share{border:1px solid var(--l);border-radius:14px;background:#fff;padding:26px;box-shadow:0 10px 30px rgba(0,0,0,.04)}
.frde-apply-box{padding:14px;border:1px solid var(--l);border-radius:14px;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.04);margin-bottom:18px}.frde-company-logo{display:block;max-width:115px;max-height:85px;object-fit:contain;margin:0 auto 15px}.frde-company-box h3{text-align:center;margin:0;font-size:19px}.frde-company-box h3 a,.frde-company-inline a{color:inherit;text-decoration:none}.frde-company-box h3 a:hover,.frde-company-inline a:hover{text-decoration:underline}.frde-company-link{display:inline-block;margin-top:8px;font-weight:700;color:var(--r);text-decoration:none}.frde-company-link:hover{text-decoration:underline}
.frde-company-box>p{color:var(--m);line-height:1.5;margin:18px 0}.frde-company-box hr{border:0;border-top:1px solid var(--l);margin:22px 0}
.frde-company-box .frde-fact{border:0;margin:0 0 14px;padding:0;align-items:flex-start;flex-direction:column;gap:2px}.frde-full{width:100%;margin-top:10px}
.frde-share{margin-top:18px;text-align:center}.frde-share h4{font-size:12px;margin:0 0 16px}.frde-share>div{display:flex;justify-content:center;gap:11px}
.frde-share button{width:42px;height:42px;border:1px solid var(--l);border-radius:50%;background:#fff;font-weight:800;cursor:pointer}
@media(max-width:1050px){.frde-layout{grid-template-columns:1fr}.frde-side{position:static;display:grid;grid-template-columns:1fr 1fr;gap:18px}.frde-share{margin-top:0}}
@media(max-width:760px){.frde-app{padding:12px 15px 45px}.frde-hero h1{font-size:39px}.frde-cards,.frde-extra{grid-template-columns:1fr 1fr}.frde-card{border:1px solid var(--l)!important}.frde-side{grid-template-columns:1fr}.frde-actions,.frde-bottom{flex-direction:column;align-items:stretch}.frde-primary,.frde-secondary{width:100%}}
@media(max-width:480px){.frde-cards,.frde-extra{grid-template-columns:1fr}.frde-fact{width:100%;border-right:0;border-bottom:1px solid var(--l);margin:0;padding:9px 0}}

.frde-secondary{min-height:46px;padding:0 20px;font-weight:650;color:#555;background:#fff;border-color:#e3e5e8}
.frde-secondary:hover{background:#fafafa;border-color:#d6d9de}
.frde-skills{gap:14px}
.frde-company-box--clickable{cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.frde-company-box--clickable:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(0,0,0,.07);border-color:#dcdfe4}
.frde-company-box--clickable:focus{outline:2px solid var(--r);outline-offset:3px}


/* ==========================================================
   RC5 — Native GrowCareer Apply integration
   Aucun changement de maquette : on ne fait que normaliser
   le vrai CTA natif déplacé dans la sidebar.
   ========================================================== */

#frde-native-apply {
    position: absolute;
    left: -99999px;
    top: -99999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.frde-apply-box .frde-native-cta,
.frde-apply-box a.frde-native-cta,
.frde-apply-box button.frde-native-cta {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    min-height: 50px;
    margin: 0 !important;
    padding: 0 22px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: var(--r) !important;
    color: #fff !important;
    font-family: var(--frde-font, inherit) !important;
    font-size: inherit;
    font-weight: 800 !important;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
    box-shadow: none !important;
}

.frde-apply-box .frde-native-cta i {
    display: none !important;
}

.frde-apply-box .frde-native-cta.already-applied-btn,
.frde-apply-box .frde-native-cta[disabled],
.frde-apply-box .frde-native-cta[aria-disabled="true"] {
    background: #eceef1 !important;
    color: #6b7078 !important;
    cursor: default !important;
    pointer-events: none;
}

.frde-apply-box .job-filled-notice.frde-native-cta {
    min-height: auto;
    padding: 14px 16px !important;
    background: #f5f5f5 !important;
    color: #5d626a !important;
    cursor: default;
}

.frde-apply-proxy[disabled],
.frde-apply-proxy[aria-disabled="true"] {
    background: #eceef1 !important;
    color: #6b7078 !important;
    cursor: default;
    pointer-events: none;
}


/* ==========================================================
   RC6 — Sécurité popup GrowCareer
   Le popup natif ne doit jamais hériter du masquage de la
   fiche GrowCareer remplacée.
   ========================================================== */

body > #jws-cvFormPopup {
    font-family: inherit;
}

.mfp-wrap #jws-cvFormPopup,
.mfp-content #jws-cvFormPopup {
    visibility: visible !important;
}


/* ==========================================================
   RC10 ULTRA — libération complète de la colonne GrowCareer
   ========================================================== */
body.frde-ready .content-jobs-area.frde-content-fullwidth,
body.frde-ready .content-jobs-area.col-xl-12 {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
}


/* ==========================================================
   RC11 — Vrai bouton Sauvegarder GrowCareer
   ========================================================== */

.frde-actions button.job-save.frde-native-save {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 46px;
    padding: 0 20px !important;
    margin: 0 !important;
    border: 1px solid #e3e5e8 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #555 !important;
    font-family: var(--frde-font, inherit) !important;
    font-size: inherit;
    font-weight: 650 !important;
    line-height: 1.2;
    box-shadow: none !important;
    cursor: pointer;
}

.frde-actions button.job-save.frde-native-save:hover {
    background: #fafafa !important;
    border-color: #d6d9de !important;
}

.frde-actions button.job-save.frde-native-save .jws-icon-heart {
    order: -1;
}

.frde-actions button.job-save.frde-native-save .text {
    font-family: inherit !important;
}

/*
 * GrowCareer gère lui-même l'affichage Save/Saved.
 * On traduit uniquement l'affichage visible côté FDP sans modifier la logique.
 */
.frde-actions button.job-save.frde-native-save .text.save {
    font-size: 0;
}

.frde-actions button.job-save.frde-native-save .text.save::after {
    content: "SAUVEGARDER";
    font-size: initial;
    font-weight: 650;
}

.frde-actions button.job-save.frde-native-save .text.saved {
    font-size: 0;
}

.frde-actions button.job-save.frde-native-save .text.saved::after {
    content: "SAUVEGARDÉ";
    font-size: initial;
    font-weight: 650;
}

@media(max-width:760px){
    .frde-actions button.job-save.frde-native-save {
        width: 100% !important;
    }
}


/* ==========================================================
   RC12 — Structure / adresse du lieu d'affectation
   ========================================================== */
.frde-workplace{
    margin-top:14px;
    padding-left:14px;
    border-left:3px solid var(--r);
}
.frde-workplace__name{
    font-weight:750;
    line-height:1.35;
}
.frde-workplace__address{
    margin-top:3px;
    color:var(--m);
    font-size:14px;
    line-height:1.45;
}
.frde-extra{
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
}


/* ==========================================================
   RC14 — Ajustements Hero
   ========================================================== */

/* Company : même niveau typographique que le nom de Structure. */
.frde-company-inline,
.frde-company-inline a {
    font-size: 16px !important;
    line-height: 1.35 !important;
    font-weight: 750 !important;
}

/* Le point bleu RC13 a été retiré du HTML ; sécurité si un i subsiste. */
.frde-company-inline i {
    display: none !important;
}

.frde-workplace__name {
    font-size: 16px !important;
}


/* ==========================================================
   RC15 — UI POLISH : SEGMENTATION PAR CARTES BLANCHES
   Objectif unique : améliorer la lisibilité des grands blocs
   sans modifier ni données, ni HTML métier, ni interactions.
   ========================================================== */

/* Même langage visuel que les cartes de la sidebar */
.frde-main > .frde-hero,
.frde-main > .frde-section,
.frde-main > .frde-bottom {
    background: #fff !important;
    border: 1px solid var(--l) !important;
    border-radius: 14px !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.04);
}

/* Hero */
.frde-main > .frde-hero {
    padding: 32px 34px 34px !important;
    margin-bottom: 18px;
}

/* Description / Compétences / Informations complémentaires */
.frde-main > .frde-section {
    border-top: 1px solid var(--l) !important;
    padding: 30px 34px 34px !important;
    margin-bottom: 18px;
}

/* Le filet de séparation natif n'a plus besoin de porter toute la section */
.frde-main > .frde-section + .frde-section {
    border-top: 1px solid var(--l) !important;
}

/* CTA final : carte blanche, cohérente avec le reste */
.frde-main > .frde-bottom {
    margin-top: 0 !important;
    margin-bottom: 18px;
    padding: 28px 30px !important;
    background: #fff !important;
    border-color: var(--l) !important;
}

/* Les sous-cartes internes restent légères */
.frde-main > .frde-hero .frde-cards,
.frde-main > .frde-section .frde-extra .frde-card {
    background: #fff;
}

/* Rythme vertical du contenu dans les cartes */
.frde-main > .frde-section h2 {
    margin-top: 0;
}

/* Responsive : on conserve l'effet carte sans densifier */
@media(max-width:760px){
    .frde-main > .frde-hero,
    .frde-main > .frde-section,
    .frde-main > .frde-bottom {
        border-radius: 12px !important;
    }

    .frde-main > .frde-hero {
        padding: 24px 22px 26px !important;
    }

    .frde-main > .frde-section {
        padding: 25px 22px 28px !important;
    }

    .frde-main > .frde-bottom {
        padding: 24px 22px !important;
    }
}


/* ==========================================================
   RC16 — HIÉRARCHIE DESCRIPTION
   ========================================================== */

/* Le cadre blanc unique de Description est conservé. */
.frde-description .frcb-description-section {
    margin: 0;
    padding: 0 0 32px;
}

.frde-description .frcb-description-section:last-child {
    padding-bottom: 0;
}

/* Même signature graphique que Compétences / Informations complémentaires. */
.frde-description .frcb-description-section > h3 {
    position: relative;
    margin: 0 0 22px !important;
    padding-left: 16px;
    font-size: 25px !important;
    line-height: 1.2;
    letter-spacing: -.02em;
    color: var(--t) !important;
    font-weight: 700;
}

.frde-description .frcb-description-section > h3::before {
    content: "";
    position: absolute;
    left: 0;
    top: .15em;
    width: 4px;
    height: 1.15em;
    border-radius: 99px;
    background: var(--r);
}

.frde-description .frcb-description-section > p,
.frde-description .frcb-description-section > ul {
    margin-top: 0;
}

.frde-description .frcb-description-section + .frcb-description-section {
    margin-top: 6px;
}

/* Priorité sur l'ancien style générique .frde-content h3 */
.frde-description .frde-content .frcb-description-section > h3 {
    font-size: 25px !important;
    margin: 0 0 22px !important;
}

@media(max-width:760px){
    .frde-description .frcb-description-section {
        padding-bottom: 26px;
    }

    .frde-description .frcb-description-section > h3,
    .frde-description .frde-content .frcb-description-section > h3 {
        font-size: 22px !important;
        margin-bottom: 18px !important;
    }
}


/* ==========================================================
   RC17 — FILIÈRE / STRUCTURE / ADRESSE
   ========================================================== */

.frde-identity-card {
    margin-top: 14px;
    padding: 18px 20px;
    background: #f9f7f5;
    border-radius: 12px;
}

.frde-identity-card .frde-company-inline {
    margin-top: 0 !important;
}

.frde-identity-card .frde-workplace {
    margin-top: 12px;
}

@media(max-width:760px){
    .frde-identity-card {
        padding: 16px 17px;
        border-radius: 10px;
    }
}


/* ==========================================================
   RC18 — AFFINAGE BLOC FILIÈRE / STRUCTURE / ADRESSE
   ========================================================== */

/*
 * RC17 refinement:
 * - fond environ 50 % plus discret
 * - padding presque doublé pour augmenter la respiration
 */
.frde-identity-card {
    background: #fcfbfa !important;
    padding: 32px 40px !important;
}

@media(max-width:760px){
    .frde-identity-card {
        padding: 24px 26px !important;
    }
}

/* RC19 — Mention diversité / handicap */
.frde-bottom .frde-inclusion-note {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(20,20,20,.10);
    font-size: 14px;
    line-height: 1.65;
    color: #686868;
    max-width: 760px;
}
@media(max-width:760px){
    .frde-bottom .frde-inclusion-note {
        margin-top: 18px;
        padding-top: 16px;
        font-size: 13.5px;
    }
}


/* ==========================================================
   RC22 — RESPONSIVE CORRIGÉ
   Base stricte : RC19
   ========================================================== */

/*
 * La sidebar visible sous 1050px n'est pas la sidebar native GrowCareer :
 * c'est la sidebar du Display Engine lui-même (.frde-side), que RC19
 * transformait en bloc sous le contenu.
 *
 * Sous le breakpoint déjà utilisé par RC19, elle est désormais supprimée.
 * Desktop > 1050px : inchangé.
 */
@media (max-width: 1050px) {
    .frde-side {
        display: none !important;
    }

    .frde-layout {
        grid-template-columns: 1fr !important;
    }
}

/*
 * Listes à puces mobile :
 * Missions / Profil recherché / Avantages.
 * Passage validé de 20px à 15px.
 */
@media (max-width: 600px) {
    .frde-description .frcb-description-section--missions > ul,
    .frde-description .frcb-description-section--profile > ul,
    .frde-description .frcb-description-section--benefits > ul {
        padding-left: 15px !important;
        margin-left: 0 !important;
    }
}
