/* ==========================================================================
   Profilia - « Décrire un besoin de personnel », formulaire détaillé
   (pfl-entreprise-besoin.php, besoin.js). Champs : candidature.css (.pf-cs).
   En-tête concentration, premier écran, grille : postuler-page.css (.pf-fh,
   .pf-ap). Ce fichier : ce qui est propre à la page (.pf-bp, .pf-sheet).
   ========================================================================== */

body.pf-page-besoin { margin: 0; background: var(--sand-200); }
.pf-page-besoin .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pf-bp .pf-ap__hero h1 { margin-top: 22px; }
.pf-bp__col { min-width: 0; }
.pf-bp__mstat { display: none; }
.pf-bp-rgpd { margin: 14px 0 0 !important; font: 400 12.5px/1.5 var(--font-sans); color: var(--ink-72); }
.pf-bp-rgpd a { color: var(--cyan-700); text-decoration: underline; text-underline-offset: 2px; }
.pf-bp [hidden] { display: none !important; }

/* Bandeau de reprise */
.pf-bp .pf-prefill { display: flex; gap: 12px; margin: 0 0 22px !important; padding: 14px 16px; border-radius: 14px; background: var(--cyan-100); font: 500 14px/1.5 var(--font-sans); color: var(--cyan-800); }
.pf-bp .pf-prefill::before { content: ""; flex: none; width: 7px; height: 13px; margin: 2px 4px 0 6px; border: solid var(--cyan-700); border-width: 0 2px 2px 0; transform: rotate(45deg); }

/* SIRET */
.pf-bp .pf-siret .ff-el-form-control { max-width: 280px; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.pf-bp .fluentform .ff-el-help-message { margin-top: 6px; font: 400 13px/1.45 var(--font-sans); color: var(--ink-72); }
.pf-siret-etat { margin-top: 10px; }
.pf-siret-ok { display: flex; align-items: center; gap: 14px; padding: 14px 18px; border: 1.5px solid var(--cyan-700); border-radius: 16px; background: var(--cyan-100); }
.pf-siret-ok::before { content: ""; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--cyan-700) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/15px no-repeat; }
.pf-siret-ok b { display: block; font: 600 15px/1.3 var(--font-sans); color: var(--text-strong); overflow-wrap: anywhere; }
.pf-siret-ok span span { display: block; margin-top: 2px; font: 400 13px/1.4 var(--font-sans); color: var(--ink-72); }
.pf-siret-ok.is-ferme { border-color: #B54708; background: #FEF6EE; }
.pf-siret-ok.is-ferme::before { background-color: #B54708; }
.pf-siret-info { display: block; font: 400 13px/1.45 var(--font-sans); color: var(--ink-72); }
.pf-siret-ko { display: block; font: 500 13px/1.4 var(--font-sans); color: #B42318; }

/* Secteur en cartes */
.pf-bp .pf-sect .ff-el-input--content { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.pf-bp .pf-sect .ff-el-form-check-label { min-height: 64px; padding: 10px 14px !important; }
.pf-bp .pf-sect .pf-cs-card__ico { width: 30px; height: 30px; border-radius: 9px; background: none; }
.pf-bp .pf-sect .pf-cs-card__t b { font: 600 14.5px/1.25 var(--font-sans); }

/* Postes */
.pf-bp .pf-chips { margin-bottom: 10px !important; }
.pf-bp .pf-chips .ff-el-form-check.pf-hidden { display: none; }
.pf-bp .pf-chips .ff-el-form-check-label:not(:has(input:checked)) > span::before { content: "+ "; color: var(--cyan-700); font-weight: 600; }
.pf-bp .pf-chips.is-vide .ff-el-input--content { display: none; }
.pf-bp .pf-poste-autre .ff-el-input--label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Compteur */
.pf-bp .pf-stepper .ff-el-input--label { display: block; }
.pf-bp .pf-stepper .ff-el-input--content { display: flex; width: max-content; max-width: 100%; flex-wrap: wrap; align-items: center; border: 1px solid var(--border-strong); border-radius: 14px; overflow: hidden; background: var(--sand-200); }
.pf-bp .pf-stepper .ff-el-form-control { width: 64px; height: 52px; padding: 0; border: 0; border-radius: 0; text-align: center; font-weight: 600; background: #FFFFFF; -moz-appearance: textfield; }
.pf-bp .pf-stepper .ff-el-form-control:focus { box-shadow: inset 0 0 0 2px var(--cyan-700); }
.pf-bp .pf-step-btn { width: 48px; height: 52px; margin: 0; padding: 0; border: 0; background: transparent !important; color: var(--text-strong) !important; font: 600 20px/1 var(--font-sans); cursor: pointer; box-shadow: none !important; }
.pf-bp .pf-step-btn:hover { background: #E6E2DA !important; }
.pf-bp .pf-step-btn:focus-visible { outline: 3px solid rgba(15, 178, 198, .55); outline-offset: -3px; }
.pf-bp .pf-stepper .pf-cs-err { flex: 1 1 100%; padding: 6px 10px; margin: 0; background: #FFFFFF; }
.pf-bp .pf-date .ff-el-form-control { max-width: 240px; }

/* Fiche de demande en direct */
.pf-sheet { padding: 24px; border-radius: 24px; background: #FFFFFF; box-shadow: 0 10px 30px rgba(6, 43, 49, .08); font-family: var(--font-sans); color: var(--text-strong); }
.pf-sheet__h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.pf-bp .pf-sheet__k { font: 600 12px var(--font-sans); letter-spacing: .04em; text-transform: uppercase; color: var(--ink-72); }
.pf-sheet__n { font: 600 12.5px var(--font-sans); color: var(--cyan-700); white-space: nowrap; }
.pf-sheet__bar { display: block; height: 5px; margin-top: 12px; border-radius: 5px; background: #E6ECEC; overflow: hidden; }
.pf-sheet__bar i { display: block; width: 0; height: 100%; border-radius: 5px; background: var(--cyan-700); transition: width .25s var(--ease-out); }
.pf-sheet dl { margin: 14px 0 0; }
.pf-sheet dl > div { display: flex; gap: 12px; padding: 14px 0; border-top: 1px solid var(--ink-07); }
.pf-sheet__ico { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 10px; background: var(--sand-200); color: var(--cyan-700); }
.pf-sheet__c { min-width: 0; }
.pf-sheet dt { font: 600 12.5px/1.3 var(--font-sans); color: var(--ink-72); }
.pf-sheet dd { margin: 2px 0 0; font: 500 14.5px/1.45 var(--font-sans); overflow-wrap: anywhere; }
.pf-sheet dd.is-empty { font-weight: 400; color: var(--ink-56); }
.pf-sheet__ag { display: flex; align-items: center; gap: 12px; margin: 6px 0 0 !important; padding: 14px 16px; border-radius: 16px; background: var(--sand-200); font: 400 13.5px/1.45 var(--font-sans); color: var(--ink-72); }
.pf-sheet__ag b { color: var(--text-strong); font-weight: 600; }
.pf-sheet__av { display: grid; place-items: center; flex: none; width: 42px; height: 42px; border-radius: 50%; background: var(--teal-900); color: var(--cyan-300); }

@media (max-width: 1199px) {
  .pf-bp .pf-sect .ff-el-input--content { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 899px) {
  .pf-sheet-col .pf-sheet { display: none; }
  .pf-bp__mstat { display: block; margin: 0 0 10px !important; font: 500 13px/1.4 var(--font-sans); color: var(--ink-72); }
}
@media (max-width: 767px) {
  .pf-bp .pf-ap__hero h1 { margin-top: 0; font-size: 20px; }
  .pf-bp .pf-sect .ff-el-form-check-label { flex-direction: row; align-items: center; min-height: 56px; gap: 8px; }
  .pf-bp .pf-siret .ff-el-form-control { max-width: none; }
  .pf-bp .fluentform .pf-half { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) { .pf-sheet__bar i { transition: none; } }

/* ==========================================================================
   Variante : formulaire à étapes dans le premier écran de la page Entreprises
   (.pf-ent-qf--etapes > .pf-cs.pf-bp.pf-bp--hero)
   ========================================================================== */
.pf-ent__hero--etapes .pf-ent-wrap { align-items: start; grid-template-rows: auto 1fr; }
.pf-ent__hero--etapes .pf-ent__intro { align-self: start; padding-top: 20px; }
.pf-ent-qf--etapes { padding-top: 0; }
.pf-bp--hero { background: transparent; }
.pf-bp--hero .pf-ent-qf__t { padding-top: 28px; }
.pf-bp--hero .pf-ent-qf__p { margin-bottom: 0 !important; }
.pf-bp--hero .pf-cs-steps { margin: 16px -30px 22px; padding: 16px 30px 14px; border-top: 1px solid var(--border-default); }
.pf-bp--hero .pf-cs-steps ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pf-bp--hero .pf-cs-steps button { font-size: 13.5px; }
.pf-bp--hero .pf-step-h { font-size: 20px; }
.pf-bp--hero .fluentform .pf-step-head { margin-bottom: 16px; }
.pf-bp--hero .fluentform .ff-el-group { margin-bottom: 14px; }
.pf-bp--hero .pf-sect .ff-el-input--content { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pf-bp--hero .pf-sect .ff-el-form-check-label { min-height: 54px; }
.pf-bp--hero .fluentform .ff-btn-submit { width: auto; }
.pf-bp--hero .fluentform .ff-btn-submit::after { content: none; }
.pf-bp--hero .fluentform .ff_submit_btn_wrapper { margin: 0; }
.pf-bp--hero .pf-cs-nav { margin-top: 4px; }
.pf-bp--hero .pf-pills .ff-el-form-check-label { min-height: 42px; padding: 0 13px !important; font-size: 13.5px; }
.pf-bp--hero .pf-pills .ff-el-input--content { gap: 6px; }
.pf-bp--hero .fluentform fieldset > .pf-half:has([name="email"]) { grid-column: 1 / -1; }
.pf-bp--hero .fluentform textarea.ff-el-form-control { min-height: 76px; }
.pf-bp--hero .pf-cs-nav__temps { font-size: 12.5px; }
.pf-bp--hero:not(.is-js) .pf-ap__form { padding-top: 20px; }
@media (max-width: 767px) {
  .pf-bp--hero .pf-ent-qf__t { padding-top: 20px; margin-bottom: 0 !important; }
  .pf-bp--hero .pf-cs-steps { margin: 12px -18px 18px; padding: 14px 18px 12px; }
  /* Dans la page Entreprises, les boutons restent dans la carte : la barre fixe du bas est celle de la page. */
  .pf-bp--hero.pf-cs.is-js .pf-cs-nav { position: static; margin: 4px 0 0; padding: 0; border: 0; box-shadow: none; background: none; }
  .pf-bp--hero .fluentform .ff-btn-submit { width: 100%; }
  .pf-bp--hero .pf-sect .ff-el-input--content { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}