/* ==========================================================================
   Formularul Join Our Network. Câmpurile stau pe fundalul ridicat, cu linie
   jos în loc de cutie: mai aproape de tipografia paginii decât un input clasic.
   Praguri: 576 / 768 / 992 / 1200.
   ========================================================================== */

.form-wrap{margin-top:clamp(30px,3.6vw,56px)}

.fields{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(22px,2.4vw,34px)}
.field{min-width:0;display:flex;flex-direction:column}
.field--wide{grid-column:1/-1}

.field label{
  font-size:var(--t-eyebrow);letter-spacing:var(--track-eyebrow);
  text-transform:uppercase;font-weight:600;color:var(--mute);margin-bottom:10px;
}
.field .opt{color:var(--faint);letter-spacing:.06em}

.field input,
.field textarea,
.field select{
  font-family:var(--text);font-size:var(--t-body);color:var(--paper);
  background:transparent;border:0;border-bottom:1px solid var(--rule-strong);
  padding:10px 0;width:100%;transition:border-color .25s;
}
.field textarea{resize:vertical;min-height:104px;max-width:70ch}
/* focus vizibil pe câmpuri: bordura crește, nu doar își schimbă culoarea */
.field input:focus-visible,
.field textarea:focus-visible{
  outline:0;border-bottom-color:var(--pink);box-shadow:0 1px 0 0 var(--pink);
}
.field input:focus,
.field textarea:focus{outline:0;border-bottom-color:var(--pink)}
.field input::placeholder,
.field textarea::placeholder{color:var(--faint)}

/* --- încărcarea CV-ului -------------------------------------------------- */
.upload{
  display:flex;flex-wrap:wrap;align-items:center;gap:16px;
  border:1px dashed var(--rule-strong);padding:clamp(18px,2vw,26px);
  max-width:620px;transition:border-color .25s,background .25s;
}
.upload:hover{border-color:var(--pink)}
.upload input[type=file]{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0;
}
.upload .fake{
  display:inline-flex;align-items:center;gap:12px;white-space:nowrap;
  padding:12px 18px;border:1px solid var(--rule-strong);cursor:pointer;
  font-size:var(--t-eyebrow);letter-spacing:var(--track-eyebrow);
  text-transform:uppercase;font-weight:600;transition:background .25s,color .25s,border-color .25s;
}
.upload .fake:hover{background:var(--pink);border-color:var(--pink);color:var(--ink)}
.upload input[type=file]:focus-visible + .fake{outline:2px solid var(--pink);outline-offset:4px}
.upload .hint{color:var(--faint);font-size:var(--t-small)}

/* --- consimțământ și trimitere ------------------------------------------ */
.consent{
  margin-top:clamp(24px,2.8vw,40px);color:var(--mute);font-size:var(--t-small);
  line-height:1.6;max-width:70ch;
}
.consent a{border-bottom:1px solid var(--rule-strong)}
.consent a:hover{border-bottom-color:var(--pink)}
.form-send{margin-top:clamp(24px,2.8vw,38px)}

/* ==========================================================================
   Praguri
   ========================================================================== */
@media (min-width:768px){
  /* opt câmpuri scurte pe două coloane, patru rânduri, fără rest */
  .fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,2.6vw,38px)}
}

/* --- bifa de consimțământ ------------------------------------------------
   Cerută de client pe 05.09: bifă separată, neselectată implicit, fiindcă
   formularul strânge CV-uri. Caseta reală rămâne în pagină, ascunsă accesibil,
   iar pătratul desenat urmează starea ei. */
.consent .tick{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;
  align-items:start;cursor:pointer;max-width:70ch;
}
.consent input[type=checkbox]{
  position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;
  clip-path:inset(50%);border:0;
}
.consent .box{
  width:22px;height:22px;border:1px solid var(--rule-strong);
  margin-top:2px;position:relative;transition:background .2s,border-color .2s;
}
.consent .box::after{
  content:"";position:absolute;left:6px;top:2px;width:7px;height:13px;
  border:solid var(--ink);border-width:0 2px 2px 0;transform:rotate(45deg) scale(.5);
  opacity:0;transition:opacity .18s,transform .18s var(--ease);
}
.consent input:checked + .box{background:var(--pink);border-color:var(--pink)}
.consent input:checked + .box::after{opacity:1;transform:rotate(45deg) scale(1)}
.consent input:focus-visible + .box{outline:2px solid var(--pink);outline-offset:3px}
.consent .tick:hover .box{border-color:var(--pink)}
.consent .words{line-height:1.6}

/* --- formularul scurt din secțiunea de final -----------------------------
   Client, 05.09: „short, low-friction contact form in the closing section",
   fără pagină de contact separată. Patru câmpuri, nimic opțional în cale. */
.talk-form{margin-top:clamp(28px,3.4vw,48px);max-width:760px}
.talk-form .fields{gap:clamp(20px,2.2vw,30px)}
.talk-form .consent{margin-top:clamp(20px,2.4vw,30px);font-size:var(--t-small)}
.talk-form .form-send{margin-top:clamp(22px,2.6vw,34px)}
.talk-note{margin-top:clamp(16px,1.8vw,24px);color:var(--faint);font-size:var(--t-small)}

/* titlul secțiunii de final: fostul buton, promovat, fiindcă formularul de sub
   el e acum acțiunea. Două butoane care fac același lucru nu ajută pe nimeni. */
.talk-title{margin-top:clamp(26px,3vw,44px);font-size:var(--d2);max-width:20ch}

/* Numele fișierului ales de utilizator, pus de site.js peste indicație. */
.upload .hint.is-ales{color:var(--paper)}
