/* ============================================================
   Form Contratação — shared design system
   Ported from the Palazzio "Sales Caller" form aesthetic.
   No red (house rule): errors use amber, positives use olive.
   ============================================================ */
:root{
  --bg:#fafaf7; --ink:#0a0a0a; --ink-soft:#555; --ink-dim:#8a8a8a; --line:#e6e3dd;
  --card:#fff;
  --warn-bg:#fff8e1; --warn-bd:#f3d775; --warn-ink:#5a4500;
  --err:#9a6700;                 /* amber, used where the original used red */
  --olive:#6f8a2e; --olive-soft:#8b9a4d;
  --r:18px; --r-sm:12px; --r-full:999px;
}
*{box-sizing:border-box}
html,body{
  margin:0;padding:0;background:var(--bg);color:var(--ink);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  line-height:1.55;-webkit-font-smoothing:antialiased
}
.serif{font-family:'Fraunces',Georgia,serif}

/* ── form shell ── */
.wrap{max-width:640px;margin:0 auto;padding:48px 24px 80px}
.top-bar{display:flex;align-items:center;gap:16px;margin-bottom:32px}
.brand{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);font-weight:600;flex-shrink:0}
.steps-indicator{display:flex;gap:6px;flex:1}
.step-bar{flex:1;height:3px;background:var(--line);border-radius:2px;transition:background .35s ease}
.step-bar.active{background:var(--ink)}
.step-label{font-size:12px;color:var(--ink-soft);font-weight:500;flex-shrink:0;font-variant-numeric:tabular-nums}

.step{display:none}
.step.active{display:block;animation:fadeIn .4s ease}

h1{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:clamp(30px,5.5vw,44px);line-height:1.05;letter-spacing:-.02em;margin:0 0 18px}
.lead{color:var(--ink-soft);font-size:16px;margin-bottom:24px}
.lead a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.section-label{font-family:'Fraunces',Georgia,serif;font-size:clamp(26px,5vw,32px);font-weight:500;margin:0 0 8px;letter-spacing:-.01em;line-height:1.1}
.section-sub{color:var(--ink-soft);font-size:15px;margin:0 0 28px}

.meta-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;margin-bottom:24px}
.meta-card h3{font-family:'Fraunces',serif;font-weight:500;font-size:15px;margin:0 0 10px;color:var(--ink-soft)}
.meta-card ul{margin:0;padding:0;list-style:none}
.meta-card li{padding:5px 0;font-size:15px;display:flex;gap:10px}
.meta-card li::before{content:"—";color:var(--ink-soft);flex-shrink:0}
.meta-card .sep{height:1px;background:var(--line);margin:16px 0;border:0}

.warning{background:var(--warn-bg);border:1px solid var(--warn-bd);border-radius:var(--r-sm);padding:14px 18px;margin-bottom:32px;font-size:14px;color:var(--warn-ink);line-height:1.5}

.field{margin-bottom:26px}
label.q{display:block;font-weight:600;font-size:15px;margin-bottom:12px;color:var(--ink)}
label.q .req{color:var(--err);margin-left:2px}
label.q .hint{display:block;font-weight:400;font-size:13px;color:var(--ink-soft);margin-top:4px}

.options{display:flex;flex-direction:column;gap:8px}
.opt{display:flex;align-items:center;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;transition:all .15s ease;font-size:15px}
.opt:hover{border-color:var(--ink)}
.opt input[type="radio"],.opt input[type="checkbox"]{margin-right:12px;accent-color:var(--ink);width:18px;height:18px;flex-shrink:0}
.opt:has(input:checked){background:var(--ink);color:#fff;border-color:var(--ink)}

.scale{display:flex;gap:6px;justify-content:space-between}
.scale-btn{flex:1;min-width:0;aspect-ratio:1;background:var(--card);border:1px solid var(--line);border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;color:var(--ink);transition:all .15s ease;display:flex;align-items:center;justify-content:center;padding:0}
.scale-btn:hover{border-color:var(--ink)}
.scale-btn.selected{background:var(--ink);color:#fff;border-color:var(--ink)}
.scale-labels{display:flex;justify-content:space-between;margin-top:10px;font-size:12px;color:var(--ink-soft)}

input[type="text"],input[type="tel"],input[type="email"],textarea,select{width:100%;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);font-size:16px;font-family:inherit;color:var(--ink);transition:border-color .15s ease}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--ink)}
textarea{resize:vertical;min-height:140px}

.btn{border:0;border-radius:var(--r-full);padding:16px 28px;font-size:16px;font-weight:600;font-family:inherit;cursor:pointer;transition:transform .1s ease,opacity .15s ease,border-color .15s ease,background .15s ease;line-height:1}
.btn-primary{background:var(--ink);color:#fff;width:100%}
.btn-primary:hover:not(:disabled){transform:translateY(-1px)}
.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none}
.btn-back{background:transparent;color:var(--ink);border:1px solid var(--line);padding:16px 22px;flex-shrink:0}
.btn-back:hover{border-color:var(--ink);background:var(--card)}
.nav-row{display:flex;gap:10px;margin-top:12px;align-items:stretch}
.nav-row .btn-primary{flex:1;width:auto}

.error-msg{color:var(--err);font-size:14px;margin-top:14px;display:none;text-align:center}
.error-msg.visible{display:block}

.thanks{display:none;text-align:center;padding:80px 20px}
.thanks.active{display:block;animation:fadeIn .4s ease}
.thanks h2{font-family:'Fraunces',serif;font-size:clamp(32px,6vw,40px);margin:0 0 12px;font-weight:500;letter-spacing:-.02em}
.thanks p{color:var(--ink-soft);font-size:16px;max-width:420px;margin:0 auto}
.check{width:64px;height:64px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-size:28px}

/* ── audio recorder ── */
.recorder{border:1px solid var(--line);border-radius:var(--r);padding:22px;background:var(--card)}
.rec-prompt{font-size:15px;margin:0 0 14px;color:var(--ink)}
.rec-listen{display:inline-flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-full);padding:10px 16px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;color:var(--ink);margin-bottom:16px}
.rec-listen:hover{border-color:var(--ink)}
.rec-listen.playing{background:var(--ink);color:#fff;border-color:var(--ink)}
.rec-main{display:flex;align-items:center;gap:16px}
.rec-btn{width:60px;height:60px;border-radius:50%;border:0;background:var(--ink);color:#fff;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:transform .1s ease,background .2s ease}
.rec-btn:hover:not(:disabled){transform:scale(1.05)}
.rec-btn:disabled{opacity:.4;cursor:not-allowed}
.rec-btn.recording{background:var(--err);animation:pulse 1.4s infinite}
.rec-btn .dot{width:18px;height:18px;border-radius:50%;background:#fff}
.rec-btn.recording .dot{border-radius:4px;width:16px;height:16px}
.rec-info{flex:1;min-width:0}
.rec-timer{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.rec-status{font-size:13px;color:var(--ink-soft);margin-top:2px}
.rec-level{height:6px;background:var(--line);border-radius:3px;overflow:hidden;margin-top:8px}
.rec-level-fill{height:100%;width:0;background:var(--olive);transition:width .08s linear}
.rec-bar{height:4px;background:var(--line);border-radius:2px;margin-top:10px;overflow:hidden}
.rec-bar-fill{height:100%;width:0;background:var(--ink)}
.rec-playback{margin-top:16px;display:none}
.rec-playback.show{display:block}
.rec-playback audio{width:100%;margin-top:6px}
.rec-redo{background:none;border:0;color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px;font-size:13px;cursor:pointer;font-family:inherit;margin-top:10px;padding:0}
.rec-redo:hover{color:var(--ink)}
.rec-hint{font-size:12px;color:var(--ink-soft);margin-top:12px}

@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(154,103,0,.4)}70%{box-shadow:0 0 0 12px rgba(154,103,0,0)}100%{box-shadow:0 0 0 0 rgba(154,103,0,0)}}

/* ── job board ── */
.jobs-wrap{max-width:760px;margin:0 auto;padding:72px 24px 90px}
.jobs-hero{margin-bottom:44px}
.jobs-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);font-weight:600;margin-bottom:14px}
.jobs-hero h1{margin:0 0 12px}
.jobs-hero p{color:var(--ink-soft);font-size:17px;margin:0;max-width:520px}
.jobs-grid{display:flex;flex-direction:column;gap:16px}
.job-card{display:block;text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px 26px;transition:border-color .15s ease,transform .12s ease,box-shadow .15s ease}
.job-card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 6px 24px rgba(10,10,10,.05)}
.job-card .jc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.job-card h3{font-family:'Fraunces',serif;font-weight:500;font-size:23px;margin:0;letter-spacing:-.01em;line-height:1.15}
.job-salary{font-weight:600;font-size:15px;white-space:nowrap;flex-shrink:0}
.job-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.job-badge{font-size:12px;font-weight:600;color:var(--ink-soft);background:var(--bg);border:1px solid var(--line);border-radius:var(--r-full);padding:5px 12px}
.job-blurb{color:var(--ink-soft);font-size:15px;margin:14px 0 0;line-height:1.5}
.job-apply{margin-top:18px;font-weight:600;font-size:15px;display:inline-flex;align-items:center;gap:6px;color:var(--ink)}
.job-card:hover .job-apply{gap:10px}
.jobs-empty{text-align:center;padding:60px 20px;color:var(--ink-soft)}
.jobs-foot{margin-top:48px;text-align:center;color:var(--ink-soft);font-size:13px}
.jobs-foot a{color:var(--ink-soft)}
@media (max-width:480px){.jobs-wrap{padding:48px 18px 70px}.job-card{padding:20px}.job-card .jc-top{flex-direction:column;gap:6px}.job-card h3{font-size:20px}}

@media (max-width:640px){.wrap{padding:36px 20px 60px}}
@media (max-width:480px){
  .wrap{padding:28px 16px 56px}
  .top-bar{gap:10px;margin-bottom:24px}
  .brand{font-size:11px;letter-spacing:.12em}
  .meta-card{padding:18px}
  .btn{padding:15px 20px;font-size:15px}
  .scale{gap:4px}.scale-btn{font-size:13px;border-radius:8px}
}
@media (max-width:360px){.top-bar .brand{display:none}.scale-btn{font-size:12px}}
