/**
 * FEPRAFO — Offres d'emploi (template « wow »)
 *
 * Couleurs câblées sur les variables --fep-* (palette globale + couleurs
 * par section). Les valeurs de repli conservent le rendu d'origine si
 * aucune couleur personnalisée n'est définie.
 */

/* ================================================================== *
 *  CONTAINER GLOBAL — neutralise les contraintes éventuelles du thème
 * ================================================================== */
.feprafo-emplois-page {
    margin: 0;
    padding: 0;
    color: #1c1e21;
    font-size: 15px;
    line-height: 1.6;
}

/* Force tous les textes blancs dans le hero et CTA (thème peut écraser) */
.feprafo-emplois-page .fep-hero,
.feprafo-emplois-page .fep-hero *,
.feprafo-emplois-page .fep-cta__box,
.feprafo-emplois-page .fep-cta__box *:not(.fep-cta__btn) {
    color: white;
}

/* Sauf le bouton blanc qui garde sa couleur bleue */
.feprafo-emplois-page .fep-cta__btn {
    color: var(--fep-blue-dark, #2C5F8D) !important;
}

/* Force la barre résultats sur une seule ligne propre */
.feprafo-emplois-page .fep-results-sort {
    white-space: nowrap;
}

/* ================================================================== *
 *  HERO
 * ================================================================== */
.fep-hero {
    background: var(--fep-gradient-blue, linear-gradient(135deg, #2C5F8D 0%, #1e4a6b 100%));
    color: white;
    padding: 80px 24px 120px;
    position: relative;
    overflow: hidden;
}
.fep-hero::before {
    content: "";
    position: absolute;
    top: -30%; right: -8%;
    width: 500px; height: 500px;
    background: rgba(255,255,255,.06);
    border-radius: 50%;
}
.fep-hero::after {
    content: "";
    position: absolute;
    bottom: -40%; left: -5%;
    width: 380px; height: 380px;
    background: rgba(255,255,255,.04);
    border-radius: 50%;
}
/* Image de fond éditable : la photo passe en fond, voile bleu par-dessus */
.fep-hero.fh-has-bg {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.fep-hero.fh-has-bg::after {
    top: 0; left: 0; right: 0; bottom: 0;
    width: auto; height: auto;
    border-radius: 0;
    background: var(--fep-gradient-blue, linear-gradient(135deg, #2C5F8D 0%, #1e4a6b 100%));
    opacity: .82;
}
.fep-hero__inner {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    text-align: center;
}
.fep-hero__kicker,
.feprafo-emplois-page .fep-hero__kicker {
    display: inline-block;
    background: rgba(255,255,255,.15);
    padding: 7px 18px;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .04em;
    margin-bottom: 24px;
    color: white !important;
}
.fep-hero__title,
.feprafo-emplois-page .fep-hero__title {
    font-size: 64px;
    font-weight: 800;
    line-height: 1.05;
    margin: 0 0 20px;
    letter-spacing: -.025em;
    color: white !important;
}
.fep-hero__sub,
.feprafo-emplois-page .fep-hero__sub {
    font-size: 20px;
    opacity: .9;
    max-width: 640px;
    margin: 0 auto 56px;
    color: white !important;
}

/* Stats */
.fep-hero__stats {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 56px;
}
.fep-hero__stat {
    text-align: center;
}
.fep-hero__stat-num {
    font-size: 38px;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 6px;
    letter-spacing: -.02em;
}
.fep-hero__stat-lbl {
    font-size: 13px;
    opacity: .8;
    text-transform: uppercase;
    letter-spacing: .08em;
}

/* ================================================================== *
 *  FILTRES (flottants sur le hero)
 * ================================================================== */
.fep-filters-wrap {
    max-width: 1200px;
    margin: -60px auto 0;
    padding: 0 24px;
    position: relative;
    z-index: 2;
}
.fep-filters {
    background: white;
    border-radius: 20px;
    padding: 20px;
    box-shadow: 0 20px 50px rgba(0,0,0,.08);
    display: grid;
    grid-template-columns: 2fr 1fr 1fr auto;
    gap: 12px;
    align-items: end;
}
.fep-filter-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.fep-filter-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding-left: 8px;
}
.fep-filter-input {
    padding: 13px 16px;
    border: 1.5px solid #e2e8f0;
    border-radius: 12px;
    font-size: 15px;
    color: #1c1e21;
    background: #f8fafc;
    outline: none;
    font-family: inherit;
    transition: all .15s ease;
}
.fep-filter-input:focus {
    border-color: var(--fep-blue-light, #2C5F8D);
    background: white;
    box-shadow: 0 0 0 4px rgba(44,95,141,.1);
}
select.fep-filter-input { cursor: pointer; }
.fep-filter-btn {
    padding: 13px 32px;
    background: var(--fep-gradient-blue, linear-gradient(135deg, #2C5F8D, #1e4a6b));
    color: white;
    border: none;
    border-radius: 12px;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    box-shadow: 0 6px 18px rgba(44,95,141,.35);
    transition: all .2s ease;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: fit-content;
}
.fep-filter-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(44,95,141,.45);
}

/* ================================================================== *
 *  BARRE RÉSULTATS
 * ================================================================== */
.fep-results-bar {
    max-width: 1200px;
    margin: 40px auto 24px;
    padding: 0 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}
.fep-results-count {
    font-size: 15px;
    color: #6b7280;
}
.fep-results-count strong {
    color: #1c1e21;
    font-weight: 700;
}
.fep-results-sort {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #6b7280;
}
.fep-results-sort select {
    padding: 8px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: white;
    font-size: 14px;
    cursor: pointer;
    font-family: inherit;
    color: #1c1e21;
}

/* ================================================================== *
 *  GRID OFFRES
 * ================================================================== */
.fep-offers {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px 80px;
}
.fep-offers__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 24px;
}
.fep-offers__empty {
    text-align: center;
    color: #8a8d91;
    padding: 60px 0;
    font-size: 16px;
}

/* ================================================================== *
 *  CARD OFFRE
 * ================================================================== */
.fep-card {
    display: flex;
    flex-direction: column;
    padding: 28px;
    background: white;
    border: 1px solid #e8eaed;
    border-radius: 18px;
    text-decoration: none;
    color: inherit;
    position: relative;
    overflow: hidden;
    transition: all .25s ease;
    cursor: pointer;
}
.fep-card::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 5px;
    background: linear-gradient(180deg, var(--fep-blue-light, #2C5F8D), var(--fep-blue-dark, #1e4a6b));
    transform: scaleY(0);
    transform-origin: top;
    transition: transform .25s ease;
}
.fep-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(44,95,141,.15);
    border-color: transparent;
    text-decoration: none;
    color: inherit;
}
.fep-card:hover::before { transform: scaleY(1); }
.fep-card:hover .fep-card__more::after { transform: translateX(6px); }

.fep-card__top {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 16px;
    min-height: 24px;
}
.fep-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: flex-end;
}

/* Badges */
.fep-badge {
    padding: 5px 12px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
    white-space: nowrap;
}
.fep-badge--cdi      { background: #dcfce7; color: #166534; }
.fep-badge--cdd      { background: #dbeafe; color: #1e40af; }
.fep-badge--interim  { background: #fef3c7; color: #92400e; }
.fep-badge--stage    { background: #fce7f3; color: #9d174d; }
.fep-badge--new      { background: var(--fep-blue-dark, #2C5F8D); color: white; }
.fep-badge--urgent   { background: #fef2f2; color: #b91c1c; }

.fep-card__title {
    font-size: 21px;
    font-weight: 800;
    color: #1c1e21;
    line-height: 1.25;
    margin: 0 0 6px;
    letter-spacing: -.01em;
}
.fep-card__company {
    font-size: 14px;
    color: #6b7280;
    margin-bottom: 18px;
}
.fep-card__company-name {
    color: var(--fep-blue-dark, #2C5F8D);
    font-weight: 600;
}

.fep-card__meta {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 22px;
}
.fep-card__meta-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    color: #4b5563;
}
.fep-card__meta-icon {
    display: inline-flex;
    width: 32px;
    height: 32px;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    border-radius: 10px;
    font-size: 14px;
    flex: 0 0 auto;
}

.fep-card__footer {
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid #f1f5f9;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.fep-card__date {
    font-size: 13px;
    color: #94a3b8;
}
.fep-card__more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--fep-blue-dark, #2C5F8D);
    font-size: 14px;
    font-weight: 700;
}
.fep-card__more::after {
    content: "→";
    transition: transform .25s ease;
}

/* ================================================================== *
 *  CTA FINAL
 * ================================================================== */
.fep-cta {
    max-width: 1200px;
    margin: 0 auto 80px;
    padding: 0 24px;
}
.fep-cta__box {
    background: var(--fep-gradient-blue, linear-gradient(135deg, #2C5F8D 0%, #1e4a6b 100%));
    border-radius: 24px;
    padding: 64px 48px;
    text-align: center;
    color: white;
    position: relative;
    overflow: hidden;
}
.fep-cta__box::before {
    content: "";
    position: absolute;
    top: -50%; right: -10%;
    width: 400px; height: 400px;
    background: rgba(255,255,255,.06);
    border-radius: 50%;
}
.fep-cta__box::after {
    content: "";
    position: absolute;
    bottom: -50%; left: -5%;
    width: 300px; height: 300px;
    background: rgba(255,255,255,.04);
    border-radius: 50%;
}
.fep-cta__inner { position: relative; z-index: 1; }
.fep-cta__kicker {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
    opacity: .85;
    margin-bottom: 16px;
}
.fep-cta__title,
.feprafo-emplois-page .fep-cta__title {
    font-size: 38px;
    font-weight: 800;
    line-height: 1.2;
    margin: 0 0 16px;
    letter-spacing: -.02em;
    color: white !important;
}
.fep-cta__sub,
.feprafo-emplois-page .fep-cta__sub {
    font-size: 17px;
    opacity: .9;
    max-width: 560px;
    margin: 0 auto 32px;
    color: white !important;
}
.fep-cta__btn {
    display: inline-block;
    padding: 16px 40px;
    background: white;
    color: var(--fep-blue-dark, #2C5F8D);
    text-decoration: none;
    border-radius: 12px;
    font-weight: 700;
    font-size: 16px;
    transition: transform .2s ease;
}
.fep-cta__btn:hover {
    transform: translateY(-2px);
    color: var(--fep-blue-dark, #2C5F8D);
    text-decoration: none;
}

/* ================================================================== *
 *  DROPDOWNS CUSTOM (remplace les <select> natifs)
 * ================================================================== */
.fep-select {
    position: relative;
    width: 100%;
    font-family: inherit;
}

/* Bouton (état fermé) — ressemble au filter-input */
.fep-select__btn {
    width: 100%;
    padding: 13px 16px;
    border: 1.5px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
    font-size: 15px;
    color: #1c1e21;
    text-align: left;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-family: inherit;
    transition: all .15s ease;
}
.fep-select__btn:hover {
    border-color: #cbd5e1;
    background: white;
}
.fep-select.is-open .fep-select__btn {
    border-color: var(--fep-blue-light, #2C5F8D);
    background: white;
    box-shadow: 0 0 0 4px rgba(44,95,141,.1);
}

.fep-select__label {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fep-select__chev {
    flex: 0 0 auto;
    color: #94a3b8;
    font-size: 12px;
    transition: transform .2s ease;
}
.fep-select.is-open .fep-select__chev {
    transform: rotate(180deg);
    color: var(--fep-blue-light, #2C5F8D);
}

/* Menu déroulant custom */
.fep-select__menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: white;
    border: 1px solid #e8eaed;
    border-radius: 12px;
    padding: 6px;
    margin: 0;
    list-style: none;
    box-shadow: 0 16px 40px rgba(0,0,0,.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
    z-index: 100;
    max-height: 280px;
    overflow-y: auto;
}
.fep-select.is-open .fep-select__menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.fep-select__opt {
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 14px;
    color: #1c1e21;
    cursor: pointer;
    transition: background .12s ease, color .12s ease;
    list-style: none;
}
.fep-select__opt:hover {
    background: #f1f5f9;
    color: var(--fep-blue-light, #2C5F8D);
}
.fep-select__opt.is-active {
    background: #e8f0f7;
    color: var(--fep-blue-light, #2C5F8D);
    font-weight: 700;
}

/* Variante compacte pour le tri */
.fep-select--small {
    min-width: 180px;
}
.fep-select--small .fep-select__btn {
    padding: 8px 14px;
    font-size: 14px;
    border-radius: 8px;
    border-width: 1px;
}

/* ================================================================== *
 *  SINGLE OFFRE - shortcode [feprafo_emploi]
 *  Reproduction exacte du Template 1 Corporate moderne
 * ================================================================== */
.feprafo-emploi-page {
    margin: 0;
    padding: 0;
    color: #1c1e21;
    font-size: 15px;
    line-height: 1.6;
    background: #f5f7fa;
}

/* Force tous les textes blancs dans hero + CTA */
.feprafo-emploi-page .fep-emploi-hero,
.feprafo-emploi-page .fep-emploi-hero *,
.feprafo-emploi-page .fep-emploi-cta__box,
.feprafo-emploi-page .fep-emploi-cta__box *:not(.fep-emploi-cta__btn) {
    color: white;
}
.feprafo-emploi-page .fep-emploi-cta__btn { color: var(--fep-blue-dark, #2C5F8D) !important; }

/* ===== HERO ===== */
.fep-emploi-hero {
    background: var(--fep-gradient-blue, linear-gradient(135deg, #2C5F8D 0%, #1e4a6b 100%));
    padding: 80px 24px 100px;
    position: relative;
    overflow: hidden;
}
.fep-emploi-hero::before {
    content: "";
    position: absolute;
    top: -50%; right: -10%;
    width: 600px; height: 600px;
    background: rgba(255,255,255,.05);
    border-radius: 50%;
}
.fep-emploi-hero::after {
    content: "";
    position: absolute;
    bottom: -30%; left: -5%;
    width: 400px; height: 400px;
    background: rgba(255,255,255,.04);
    border-radius: 50%;
}
.fep-emploi-hero__inner {
    max-width: 1100px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}
.fep-emploi-hero__breadcrumb {
    font-size: 13px;
    opacity: .8;
    margin-bottom: 16px;
}
.fep-emploi-hero__breadcrumb a {
    color: white !important;
    text-decoration: none;
    opacity: .8;
}
.fep-emploi-hero__breadcrumb a:hover { opacity: 1; }
.fep-emploi-hero__tag {
    display: inline-block;
    background: rgba(255,255,255,.15);
    padding: 6px 16px;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 20px;
    color: white !important;
}
.fep-emploi-hero__title {
    font-size: 56px;
    font-weight: 800;
    line-height: 1.1;
    margin: 0 0 24px;
    letter-spacing: -.02em;
    color: white !important;
}

/* Meta inline en bas du hero */
.fep-emploi-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    padding-top: 28px;
    border-top: 1px solid rgba(255,255,255,.2);
}
.fep-emploi-hero__meta-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
}
.fep-emploi-hero__meta-icon {
    width: 36px;
    height: 36px;
    background: rgba(255,255,255,.15);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}
.fep-emploi-hero__meta-label {
    display: block;
    font-size: 12px;
    opacity: .7;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.fep-emploi-hero__meta-value {
    font-weight: 600;
    color: white;
}

/* ===== MAIN ===== */
.fep-emploi-main {
    max-width: 1100px;
    margin: -50px auto 0;
    padding: 0 24px 60px;
    position: relative;
    z-index: 2;
}
.fep-emploi-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 32px;
    align-items: start;
}

/* ===== CONTENU PRINCIPAL ===== */
.fep-emploi-content {
    background: white;
    border-radius: 16px;
    padding: 48px;
    box-shadow: 0 4px 24px rgba(0,0,0,.05);
}
.fep-emploi-content h2 {
    font-size: 28px;
    font-weight: 700;
    margin: 36px 0 16px;
    color: #1c1e21;
}
.fep-emploi-content h2:first-child { margin-top: 0; }
.fep-emploi-content p {
    color: #4b5563;
    margin-bottom: 16px;
    font-size: 16px;
}
.fep-emploi-content ul {
    list-style: none;
    margin: 18px 0 26px;
    padding: 0;
}
.fep-emploi-content ul li {
    position: relative;
    padding: 9px 0 9px 36px;
    font-size: 16px;
    line-height: 1.55;
    color: #4b5563;
}
.fep-emploi-content ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 13px;
    width: 22px;
    height: 22px;
    background: var(--fep-blue-dark, #2C5F8D);
    border-radius: 50%;
    mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") no-repeat center / 14px;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") no-repeat center / 14px;
}

/* ===== SIDEBAR ===== */
.fep-emploi-aside {
    position: sticky;
    top: 24px;
}

/* Carte « Postuler » */
.fep-emploi-apply {
    background: white;
    border-radius: 16px;
    padding: 32px;
    box-shadow: 0 4px 24px rgba(0,0,0,.05);
    margin-bottom: 16px;
}
.fep-emploi-apply__title {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 20px;
    color: #1c1e21;
}
.fep-emploi-apply__btn {
    display: block;
    width: 100%;
    padding: 16px;
    background: var(--fep-gradient-blue, linear-gradient(135deg, #2C5F8D, #1e4a6b));
    color: white !important;
    text-align: center;
    text-decoration: none;
    border-radius: 10px;
    font-weight: 700;
    font-size: 16px;
    box-shadow: 0 4px 12px rgba(44,95,141,.3);
    transition: transform .15s ease;
}
.fep-emploi-apply__btn:hover {
    transform: translateY(-2px);
    color: white !important;
    text-decoration: none;
}
.fep-emploi-apply__hint {
    font-size: 13px;
    color: #9ca3af;
    text-align: center;
    margin-top: 14px;
}

/* Carte « Maison médicale » */
.fep-emploi-company {
    background: white;
    border-radius: 16px;
    padding: 28px;
    box-shadow: 0 4px 24px rgba(0,0,0,.05);
}
.fep-emploi-company__logo {
    width: 64px;
    height: 64px;
    background: linear-gradient(135deg, #e8f0f7, #c5d9ea);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    margin-bottom: 16px;
}
.fep-emploi-company__name {
    font-size: 17px;
    font-weight: 700;
    margin-bottom: 6px;
    color: #1c1e21;
    line-height: 1.3;
}
.fep-emploi-company__loc,
.fep-emploi-company__region {
    font-size: 14px;
    color: #6b7280;
    margin-bottom: 6px;
}
.fep-emploi-company__link {
    display: inline-block;
    margin-top: 14px;
    font-size: 14px;
    color: var(--fep-blue-dark, #2C5F8D) !important;
    font-weight: 600;
    text-decoration: none;
}
.fep-emploi-company__link:hover {
    text-decoration: underline;
}

/* ===== CTA FINAL ===== */
.fep-emploi-cta {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px 60px;
}
.fep-emploi-cta__box {
    background: var(--fep-gradient-blue, linear-gradient(135deg, #2C5F8D 0%, #1e4a6b 100%));
    border-radius: 20px;
    padding: 56px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.fep-emploi-cta__box::before {
    content: "";
    position: absolute;
    top: -50%; right: -10%;
    width: 400px; height: 400px;
    background: rgba(255,255,255,.06);
    border-radius: 50%;
}
.fep-emploi-cta__inner { position: relative; z-index: 1; }
.fep-emploi-cta__title {
    font-size: 32px;
    font-weight: 800;
    margin: 0 0 12px;
    color: white !important;
}
.fep-emploi-cta__sub {
    font-size: 17px;
    opacity: .9;
    margin: 0 0 28px;
    color: white !important;
}
.fep-emploi-cta__btn {
    display: inline-block;
    padding: 16px 40px;
    background: white;
    color: var(--fep-blue-dark, #2C5F8D) !important;
    text-decoration: none;
    border-radius: 10px;
    font-weight: 700;
    font-size: 16px;
    transition: transform .2s ease;
}
.fep-emploi-cta__btn:hover {
    transform: translateY(-2px);
    text-decoration: none;
}

/* ===== BOUTON RETOUR ===== */
.fep-emploi-back {
    max-width: 1100px;
    margin: 0 auto 60px;
    padding: 0 24px;
    text-align: center;
}
.fep-emploi-back__link {
    color: #6b7280;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
}
.fep-emploi-back__link:hover { color: var(--fep-blue-dark, #2C5F8D); }

/* ===== ERREUR ===== */
.fep-emploi-error {
    max-width: 600px;
    margin: 80px auto;
    padding: 40px;
    background: white;
    border-radius: 16px;
    text-align: center;
    color: #6b7280;
    box-shadow: 0 4px 24px rgba(0,0,0,.05);
}

/* ===== RESPONSIVE single ===== */
@media (max-width: 900px) {
    .fep-emploi-layout { grid-template-columns: 1fr; }
    .fep-emploi-aside { position: static; }
    .fep-emploi-hero__title { font-size: 38px; }
    .fep-emploi-content { padding: 32px 24px; }
    .fep-emploi-cta__title { font-size: 24px; }
    .fep-emploi-cta__box { padding: 40px 24px; }
}

/* ================================================================== *
 *  RESPONSIVE
 * ================================================================== */
@media (max-width: 900px) {
    .fep-hero { padding: 60px 24px 100px; }
    .fep-hero__title { font-size: 42px; }
    .fep-hero__sub { font-size: 17px; }
    .fep-hero__stats { gap: 32px; }
    .fep-filters { grid-template-columns: 1fr; }
    .fep-cta__title { font-size: 28px; }
    .fep-cta__box { padding: 48px 28px; }
}
@media (max-width: 600px) {
    .fep-hero__title { font-size: 34px; }
    .fep-card { padding: 22px; }
    .feprafo-emploi-detail__hero { padding: 28px 24px; border-radius: 16px; }
}

/* ============================================================ *
 *  SYSTÈME MODULAIRE OFFRES — [feprafo_emplois_filtres] + [feprafo_emplois_grille]
 *  Look identique à la page Maisons (bleu #0163F7, vert pétant #16C47F)
 * ============================================================ */

/* --- Barre de filtres --- */
.fe-controls-wrap{ max-width:820px; margin:0 auto; padding:0 20px; }
.fe-controls{ background:#fff; border:1px solid #eef1f6; border-radius:22px; padding:14px; box-shadow:0 10px 40px rgba(20,40,90,.06); display:flex; flex-direction:column; gap:14px; }
.fe-search{ position:relative; width:100%; }
.fe-search__icon{ position:absolute; left:20px; top:50%; transform:translateY(-50%); width:20px; height:20px; color:#94a3b8; pointer-events:none; }
.fe-search__input{ width:100%; padding:16px 52px 16px 54px; font-size:15.5px; color:#1c1e21; background:#f6f8fb; border:1.5px solid transparent; border-radius:14px; outline:none; transition:all .18s ease; box-sizing:border-box; }
.fe-search__input::placeholder{ color:#9aa6b6; }
.fe-search__input:focus{ background:#fff; border-color:#0163F7; box-shadow:0 0 0 4px rgba(1,99,247,.12); }
.fe-search__clear{ position:absolute; right:14px; top:50%; transform:translateY(-50%); width:30px; height:30px; background:#eef1f6; border:none; border-radius:9px; color:#64748b; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s ease; }
.fe-search__clear:hover{ background:#e2e8f0; }
.fe-search__clear svg{ width:15px; height:15px; }
.fe-filters{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.fe-filter{ padding:9px 18px; background:#f1f5f9; color:#5b6577; border:1.5px solid transparent; border-radius:100px; font-size:13px; font-weight:700; cursor:pointer; transition:all .18s ease; font-family:inherit; }
.fe-filter:hover{ background:#eaf1ff; color:#0163F7; border-color:rgba(1,99,247,.25); }
.fe-filter.is-active{ background:linear-gradient(135deg,#0163F7,#3b82f9); color:#fff; border-color:transparent; box-shadow:0 6px 16px rgba(1,99,247,.30); }
.fe-results-count{ text-align:center; margin-top:18px; font-size:14px; color:#8a94a4; }
.fe-results-count strong{ color:#0163F7; font-weight:800; }

/* --- Grille de cartes --- */
.fe-cards{ display:grid; gap:22px; max-width:1140px; margin:34px auto 0; padding:0 20px; }
.fe-card{ position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid #eef1f6; border-radius:18px; padding:24px; text-decoration:none; box-shadow:0 4px 16px rgba(20,40,90,.05); transition:box-shadow .2s ease, transform .2s ease; overflow:hidden; }
.fe-card:hover{ box-shadow:0 16px 32px rgba(1,99,247,.15); transform:translateY(-3px); }
.fe-card::before{ content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,#16C47F,#0EA968); transform:scaleY(0); transform-origin:top; transition:transform .25s ease; }
.fe-card:hover::before{ transform:scaleY(1); }

.fe-card__badges{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.fe-badge{ font-size:11px; font-weight:700; padding:4px 11px; border-radius:20px; letter-spacing:.2px; }
.fe-badge--new{ background:rgba(22,196,127,.16); color:#0EA968; }
.fe-badge--cdi{ background:rgba(1,99,247,.10); color:#0163F7; }
.fe-badge--cdd{ background:rgba(245,158,11,.16); color:#d97706; }
.fe-badge--interim{ background:rgba(139,92,246,.14); color:#7c3aed; }
.fe-badge--stage{ background:rgba(236,72,153,.14); color:#db2777; }

.fe-card__title{ font-size:18px; font-weight:800; color:#1c1e21; margin:0 0 6px; line-height:1.3; }
.fe-card__company{ font-size:13.5px; color:#64748b; margin-bottom:16px; }
.fe-card__company-name{ color:#0163F7; font-weight:700; }

.fe-card__meta{ display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
.fe-card__meta-item{ display:flex; align-items:center; gap:9px; font-size:13.5px; color:#5b6577; }
.fe-card__meta-icon{ font-size:14px; }

.fe-card__footer{ display:flex; justify-content:space-between; align-items:center; margin-top:auto; padding-top:15px; border-top:1px solid #f1f5f9; }
.fe-card__date{ font-size:12.5px; color:#94a3b8; }
.fe-card__more{ font-size:13.5px; font-weight:700; color:#0163F7; transition:gap .2s ease; }
.fe-card:hover .fe-card__more{ color:#0150c9; }

.fe-no-results{ text-align:center; padding:60px 20px; color:#94a3b8; font-size:15px; }

@media (max-width:600px){
  .fe-controls{ padding:12px; border-radius:18px; }
  .fe-search__input{ padding:14px 48px 14px 48px; font-size:15px; }
  .fe-filters{ justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; padding-bottom:4px; }
  .fe-filter{ flex:0 0 auto; }
  .fe-cards{ grid-template-columns:1fr !important; }
}