/* GV Staffing — styles for extra block types (cost_calculator, talent_application).
   Uses design-tokens.css variables only. Loaded globally by layouts/public.php after site.css. */

/* ---- Cost calculator ------------------------------------------------------ */
.cost-calc { display: grid; gap: var(--space-8); align-items: start; margin-top: var(--space-6); }
.cost-calc[hidden] { display: none; }
.cost-calc-form { margin-top: 0; display: flex; flex-direction: column; gap: var(--space-5); }
.cost-calc-group { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.cost-calc-group legend {
  font-size: var(--text-sm); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-wide);
  text-transform: uppercase; color: var(--gv-navy); padding-bottom: var(--space-2); margin-bottom: var(--space-2);
  border-bottom: 1px solid var(--color-border); width: 100%;
}
.cost-calc-actions { display: flex; justify-content: flex-start; }
.cost-calc-results { position: relative; }
.cost-calc-output { min-height: 6rem; }
.cost-calc-empty, .cost-calc-note { color: var(--color-text-muted); font-size: var(--text-sm); }
.cost-calc-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); font-variant-numeric: tabular-nums; }
.cost-calc-table th, .cost-calc-table td { padding: var(--space-3) var(--space-2); border-bottom: 1px solid var(--color-border); text-align: right; vertical-align: top; }
.cost-calc-table th[scope="row"], .cost-calc-table thead th:first-child { text-align: left; }
.cost-calc-table thead th { color: var(--color-text-muted); font-weight: var(--weight-semibold); }
.cost-calc-table tbody th { color: var(--gv-navy); font-weight: var(--weight-semibold); }
.cost-calc-table td { color: var(--gv-navy); font-weight: var(--weight-semibold); white-space: nowrap; }
.cost-calc-diff { margin-top: var(--space-4); color: var(--gv-navy-700); }
.cost-calc-note { margin-top: var(--space-3); }
.cost-calc-disclaimer {
  margin-top: var(--space-5); padding-top: var(--space-4); border-top: 1px solid var(--color-border);
  font-size: var(--text-sm); color: var(--color-text-muted);
}

@media (min-width: 900px) {
  .cost-calc { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
  .cost-calc-results { position: sticky; top: calc(var(--site-header-h, var(--header-height)) + var(--space-6)); }
}

/* ---- Talent application --------------------------------------------------- */
.talent-apply .form-card { display: flex; flex-direction: column; gap: var(--space-8); }
.talent-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.talent-fieldset legend {
  font-family: var(--font-display, inherit); font-size: var(--text-lg); font-weight: 700; letter-spacing: -0.015em; color: var(--gv-navy);
  padding-bottom: var(--space-2); margin-bottom: var(--space-4); border-bottom: 1px solid var(--color-border); width: 100%;
}
.talent-apply .form-actions { margin-top: 0; }
.talent-apply .form-alert a { color: inherit; text-decoration: underline; }
.input-file { padding: 0.5rem; min-height: 0; cursor: pointer; }
.input-file::file-selector-button {
  margin-right: var(--space-3); padding: 0.4rem 0.9rem; border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-pill); background: var(--color-bg); color: var(--gv-navy); font: inherit; font-weight: 600; cursor: pointer;
}
