/* ══ 0 · TOKEN DEL MODULO ══
   Il design system non ha colori di stato: li definiamo qui, con prefisso proprio.
   Il verde di successo è volutamente diverso dal verde WhatsApp (riservato a quel canale). */
.bsj-wrap{
  --bsj-danger:#ff6b6b;
  --bsj-danger-soft:rgba(255,107,107,.12);
  --bsj-danger-edge:rgba(255,107,107,.55);
  --bsj-ok:#34d399;
  --bsj-ok-soft:rgba(52,211,153,.12);
  --bsj-ok-edge:rgba(52,211,153,.50);
}

/* ══ 1 · BASE ══ */
.bsj-wrap{max-width:calc(1180px + 2*var(--bss-page-x));margin-inline:auto;padding:60px var(--bss-page-x) 78px;font-family:var(--bss-font-body);color:var(--bss-fg)}
.bsj-wrap,.bsj-wrap *,.bsj-wrap *::before,.bsj-wrap *::after{box-sizing:border-box}
.bsj-wrap :where(h1,h2,h3,p,ul,li,label,fieldset){margin:0;padding:0}
.bsj-wrap ul{list-style:none}
.bsj-wrap fieldset{border:0}
.bsj-wrap :where(a){color:var(--bss-cyan);text-decoration:none;transition:color var(--bss-dur) var(--bss-ease)}
.bsj-wrap :where(a:hover){color:var(--bss-ice)}
.bsj-wrap :focus-visible{outline:2px solid var(--bss-blue);outline-offset:2px}
.bsj-icon{width:20px;height:20px;flex:none;display:block}
.bsj-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ══ 2 · INTESTAZIONE ══ */
.bsj-head{max-width:680px;margin-inline:auto;text-align:center}
.bsj-eyebrow{font-family:var(--bss-font-display);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--bss-fg-4);margin-bottom:14px}
.bsj-title{font-family:var(--bss-font-display);font-size:clamp(32px,4.4vw,52px);font-weight:700;letter-spacing:-.02em;line-height:1.08;text-wrap:balance}
.bsj-title-accent{color:var(--bss-blue);text-shadow:0 0 30px var(--bss-blue-glow)}
.bsj-intro{margin-top:18px;font-size:16px;line-height:1.65;color:var(--bss-fg-2);text-wrap:pretty}
.bsj-roles{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:24px}
.bsj-roles li{display:inline-flex;align-items:center;gap:8px;font-family:var(--bss-font-display);font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--bss-ice);background:var(--bss-blue-soft);border:1px solid var(--bss-blue-edge);border-radius:var(--bss-radius-pill);padding:8px 14px}
/* Marchio Black Star (PNG bianco del logo) nelle pillole dei ruoli. URL configurabile. */
.bsj-star{width:14px;height:14px;flex:none;display:block;object-fit:contain}

/* ══ 3 · CARD DEL FORM ══ */
.bsj-card{max-width:640px;margin:44px auto 0;padding:clamp(22px,3vw,36px);background:var(--bss-panel);border:1px solid var(--bss-border);border-radius:var(--bss-radius-xl);box-shadow:var(--bss-shadow-card)}
.bsj-card-title{font-family:var(--bss-font-display);font-size:19px;font-weight:700;letter-spacing:-.01em}
.bsj-card-note{margin-top:6px;font-size:13.5px;line-height:1.5;color:var(--bss-fg-4)}
.bsj-form{display:grid;gap:20px;margin-top:26px}
.bsj-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* ══ 4 · CAMPI ══ */
.bsj-field{display:grid;gap:8px;min-width:0}
.bsj-label{font-family:var(--bss-font-display);font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--bss-fg-2)}
.bsj-req{color:var(--bss-blue)}
.bsj-opt{font-family:var(--bss-font-body);font-size:11px;font-weight:500;letter-spacing:.02em;text-transform:none;color:var(--bss-fg-4)}
.bsj-input,.bsj-textarea{width:100%;min-width:0;padding:13px 15px;font-family:var(--bss-font-body);font-size:15px;color:var(--bss-fg);background:rgba(255,255,255,.03);border:1px solid var(--bss-border-strong);border-radius:var(--bss-radius-sm);transition:border-color var(--bss-dur) var(--bss-ease),background var(--bss-dur) var(--bss-ease),box-shadow var(--bss-dur) var(--bss-ease)}
.bsj-textarea{min-height:130px;line-height:1.6;resize:vertical}
.bsj-input::placeholder,.bsj-textarea::placeholder{color:var(--bss-fg-4)}
.bsj-input:hover,.bsj-textarea:hover{border-color:rgba(255,255,255,.28)}
.bsj-input:focus,.bsj-textarea:focus{outline:none;border-color:var(--bss-border-blue);background:rgba(22,119,255,.05);box-shadow:var(--bss-glow-blue)}
.bsj-input--num{max-width:120px;font-variant-numeric:tabular-nums;letter-spacing:.06em}
.bsj-hint{font-size:12.5px;line-height:1.45;color:var(--bss-fg-4)}
.bsj-error{display:flex;align-items:flex-start;gap:7px;font-size:12.5px;line-height:1.45;color:var(--bsj-danger)}
.bsj-error[hidden]{display:none}
.bsj-error .bsj-icon{width:15px;height:15px;margin-top:1px}
.bsj-field.has-error :is(.bsj-input,.bsj-textarea){border-color:var(--bsj-danger-edge);background:var(--bsj-danger-soft);box-shadow:none}
.bsj-field.has-error .bsj-label{color:var(--bsj-danger)}

/* ══ 5 · ALLEGATO CURRICULUM ══ */
.bsj-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.bsj-file-drop{display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;background:rgba(255,255,255,.03);border:1px dashed rgba(255,255,255,.24);border-radius:var(--bss-radius-sm);transition:border-color var(--bss-dur) var(--bss-ease),background var(--bss-dur) var(--bss-ease)}
.bsj-file-drop:hover{border-color:var(--bss-border-blue);background:rgba(22,119,255,.05)}
.bsj-file-input:focus-visible+.bsj-file-drop{outline:2px solid var(--bss-blue);outline-offset:2px}
.bsj-file-drop .bsj-icon{width:24px;height:24px;color:var(--bss-blue)}
.bsj-file-cta{display:block;font-family:var(--bss-font-display);font-size:13.5px;font-weight:700;color:var(--bss-fg)}
.bsj-file-rules{display:block;margin-top:3px;font-size:12.5px;color:var(--bss-fg-4)}
.bsj-file-name{display:none;align-items:center;gap:9px;margin-top:10px;padding:9px 12px;font-size:13.5px;color:var(--bss-fg-1);background:var(--bss-blue-soft);border:1px solid var(--bss-blue-edge);border-radius:10px;word-break:break-all}
.bsj-file-name .bsj-icon{width:16px;height:16px;color:var(--bss-blue)}
.bsj-file.has-file .bsj-file-name{display:flex}
.bsj-file-clear{margin-left:auto;font-family:var(--bss-font-display);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--bss-fg-3);background:none;border:0;cursor:pointer}
.bsj-file-clear:hover{color:var(--bss-fg)}
.bsj-field.has-error .bsj-file-drop{border-color:var(--bsj-danger-edge);background:var(--bsj-danger-soft)}

/* ══ 6 · CONSENSO PRIVACY ══ */
.bsj-check{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;cursor:pointer}
.bsj-check input{appearance:none;-webkit-appearance:none;width:22px;height:22px;margin:1px 0 0;background:rgba(255,255,255,.03);border:1px solid var(--bss-border-strong);border-radius:7px;cursor:pointer;transition:background var(--bss-dur) var(--bss-ease),border-color var(--bss-dur) var(--bss-ease)}
.bsj-check input:checked{background:var(--bss-blue);border-color:var(--bss-blue);box-shadow:0 0 20px rgba(22,119,255,.35)}
.bsj-check input:checked::after{content:"";display:block;width:11px;height:6px;margin:4px auto 0;border-left:2px solid #fff;border-bottom:2px solid #fff;rotate:-45deg}
.bsj-check-text{font-size:13.5px;line-height:1.55;color:var(--bss-fg-2)}
.bsj-field.has-error .bsj-check input{border-color:var(--bsj-danger-edge);background:var(--bsj-danger-soft)}

/* ══ 7 · SUBMIT E STATI DEL FORM ══ */
.bsj-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:4px}
.bsj-submit{display:inline-flex;align-items:center;gap:11px;padding:15px 26px;font-family:var(--bss-font-display);font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:var(--bss-blue);border:1px solid var(--bss-blue);border-radius:14px;cursor:pointer;box-shadow:0 14px 34px rgba(0,0,0,.34),0 0 26px rgba(22,119,255,.30);transition:transform var(--bss-dur) var(--bss-ease),background var(--bss-dur) var(--bss-ease),opacity var(--bss-dur) var(--bss-ease)}
.bsj-submit:hover{transform:translateY(-2px);background:var(--bss-blue-strong)}
.bsj-submit .bsj-icon{width:17px;height:17px}
.bsj-submit[disabled],.bsj-submit.is-loading{opacity:.6;transform:none;cursor:default;pointer-events:none}
.bsj-spinner{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:bsjSpin .7s linear infinite}
.bsj-submit.is-loading .bsj-spinner{display:block}
.bsj-submit.is-loading .bsj-icon{display:none}
@keyframes bsjSpin{to{rotate:360deg}}
.bsj-actions-note{font-size:12.5px;line-height:1.45;color:var(--bss-fg-4)}
/* messaggio generale di errore server: sopra il form, riutilizzabile */
.bsj-alert{display:flex;align-items:flex-start;gap:11px;padding:14px 16px;font-size:14px;line-height:1.55;border-radius:var(--bss-radius-sm)}
.bsj-alert[hidden]{display:none}
.bsj-alert .bsj-icon{margin-top:1px}
.bsj-alert--error{color:#ffd9d9;background:var(--bsj-danger-soft);border:1px solid var(--bsj-danger-edge)}
.bsj-alert--error .bsj-icon{color:var(--bsj-danger)}
/* successo: pannello che sostituisce il form */
.bsj-success{display:grid;justify-items:center;gap:12px;padding:38px 22px;text-align:center;background:var(--bsj-ok-soft);border:1px solid var(--bsj-ok-edge);border-radius:var(--bss-radius-lg)}
.bsj-success[hidden]{display:none}
.bsj-success-ico{display:grid;place-items:center;width:56px;height:56px;color:var(--bsj-ok);border:1px solid var(--bsj-ok-edge);border-radius:var(--bss-radius-pill);background:rgba(52,211,153,.10)}
.bsj-success-ico .bsj-icon{width:26px;height:26px}
.bsj-success-title{font-family:var(--bss-font-display);font-size:20px;font-weight:700;color:var(--bss-fg)}
.bsj-success-text{max-width:44ch;font-size:14.5px;line-height:1.6;color:var(--bss-fg-2);text-wrap:pretty}
.bsj-form[hidden]{display:none}

/* ══ 8 · RESPONSIVE ══ */
@media (max-width:900px){
  .bsj-wrap{padding-bottom:64px}
}
@media (max-width:640px){
  .bsj-wrap{padding-top:44px;padding-bottom:56px}
  .bsj-card{margin-top:32px;padding:20px 16px}
  .bsj-row{grid-template-columns:1fr;gap:20px}
  .bsj-form{gap:18px}
  .bsj-actions{gap:12px}
  .bsj-submit{width:100%;justify-content:center;min-height:52px}
  .bsj-input,.bsj-textarea{font-size:16px}
}

/* ══ 9 · PREFERS-REDUCED-MOTION ══ */
@media (prefers-reduced-motion:reduce){
  .bsj-wrap *,.bsj-wrap *::before,.bsj-wrap *::after{transition:none !important}
  .bsj-spinner{animation-duration:1.6s}
}
