/* Hiring application — layered on the site's style.css. Uses the site accent (blue on Regal, gold on Fortis). */
/* The site's .btn sets display, which beats the browser's [hidden]; keep hidden things hidden inside the form. */
.hire [hidden] { display: none !important; }
.hire { --h-accent: var(--blue, var(--gold, #2F7BFF)); --h-bright: var(--blue-bright, var(--gold-bright, #6AAEFF));
  --h-line: var(--line, #1D2738); --h-panel: var(--panel, #0F1520); --h-muted: var(--muted, #8C98AB); --h-text: var(--white, #F3F6FB);
  max-width: 860px; margin-inline: auto; }
.hire-steps { list-style: none; margin: 0 0 1.4rem; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: .5rem; counter-reset: s; }
.hire-steps li { display: flex; flex-direction: column; align-items: center; gap: .45rem; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--h-muted); text-align: center; cursor: default; }
.hire-steps li span { width: 2.1rem; height: 2.1rem; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--h-line); background: var(--h-panel); color: var(--h-muted); font-weight: 700; letter-spacing: 0; }
.hire-steps li.is-current { color: var(--h-text); }
.hire-steps li.is-current span { border-color: var(--h-accent); color: var(--h-text); box-shadow: 0 0 0 4px color-mix(in srgb, var(--h-accent) 25%, transparent); }
.hire-steps li.is-done { cursor: pointer; }
.hire-steps li.is-done span { background: var(--h-accent); border-color: var(--h-accent); color: #fff; }
.hire-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.hire-form legend { font-size: 1.35rem; font-weight: 700; color: var(--h-text); margin-bottom: 1.3rem; padding: 0; }
.hire .field label small, .hire-label small { text-transform: none; letter-spacing: 0; color: var(--h-muted); font-size: .78rem; margin-left: .3rem; }
.hire-label { display: block; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--h-muted); margin-bottom: .6rem; }
.hire-3 { grid-template-columns: 1.4fr .6fr .8fr; }
.hire-loc { grid-template-columns: .7fr 1.5fr .8fr; }
.hire-hint { margin: -.6rem 0 1.2rem; font-size: .85rem; color: var(--h-bright); }
.hire-hint.is-error { color: #e7a14a; }
.hire-chips { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.hire-chips label { position: relative; cursor: pointer; }
.hire-chips input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.hire-chips span { display: inline-block; padding: .55rem .95rem; border: 1px solid var(--h-line); border-radius: 999px; background: var(--h-panel); color: var(--h-text); font-size: .9rem; transition: border-color .15s, background .15s; }
.hire-chips input:checked + span { border-color: var(--h-accent); background: color-mix(in srgb, var(--h-accent) 22%, var(--h-panel)); }
.hire-chips input:focus-visible + span { outline: 2px solid var(--h-bright); outline-offset: 2px; }
.hire-inline { flex: 1 1 140px; min-width: 0; padding: .55rem .9rem; border: 1px solid var(--h-line); border-radius: 999px; background: var(--h-panel); color: var(--h-text); font: inherit; }
.hire-grid { display: grid; grid-template-columns: minmax(64px, auto) repeat(3, minmax(0, 1fr)); gap: 4px; }
.hire-grid__h { font-size: .74rem; text-transform: uppercase; letter-spacing: .08em; color: var(--h-muted); text-align: center; padding-bottom: .3rem; }
.hire-grid__h small { display: block; text-transform: none; letter-spacing: 0; font-size: .7rem; opacity: .8; }
.hire-grid__day { display: flex; align-items: center; color: var(--h-text); font-size: .9rem; }
.hire-cell { position: relative; display: block; min-height: 40px; cursor: pointer; }
.hire-cell input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.hire-cell span { position: absolute; inset: 0; border: 1px solid var(--h-line); border-radius: 6px; background: var(--h-panel); transition: background .15s, border-color .15s; }
.hire-cell input:checked + span { background: var(--h-accent); border-color: var(--h-accent); }
.hire-cell input:checked + span::after { content: "✓"; position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-weight: 700; }
.hire-cell input:focus-visible + span { outline: 2px solid var(--h-bright); outline-offset: 2px; }
.hire-grid__tools { display: flex; gap: 1rem; margin-top: .6rem; }
/* Date fields: type the date or pick it from the calendar. Dark color-scheme makes the calendar icon visible on dark sites. */
.hire input[type="date"], .hire input[type="month"] { color-scheme: dark; }
.hire input::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .95; padding: 4px; border-radius: 4px; }
.hire input::-webkit-calendar-picker-indicator:hover { background: color-mix(in srgb, var(--h-accent) 30%, transparent); }
.hire-month { display: grid; grid-template-columns: 1.3fr 1fr; gap: .5rem; }
.hire-month select { width: 100%; }
.hire-link { background: none; border: 0; padding: 0; color: var(--h-bright); font: inherit; font-size: .88rem; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.hire-card { border: 1px solid var(--h-line); border-radius: var(--radius, 6px); padding: 1rem 1rem .1rem; margin-bottom: .8rem; }
.hire-repeat { margin-bottom: 1.3rem; }
.hire-check { display: flex; gap: .7rem; align-items: flex-start; margin-bottom: 1rem; color: var(--h-text); font-size: .92rem; cursor: pointer; }
.hire-check input { margin-top: .25rem; width: 1.1rem; height: 1.1rem; accent-color: var(--h-accent); flex: none; }
.hire-review dl { display: grid; grid-template-columns: minmax(120px, auto) 1fr; gap: .45rem 1.2rem; margin: 0 0 1.4rem; padding: 1.1rem; border: 1px solid var(--h-line); border-radius: var(--radius, 6px); }
.hire-review dt { color: var(--h-muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.hire-review dd { margin: 0; color: var(--h-text); overflow-wrap: anywhere; }
.hire-nav { display: flex; gap: .8rem; justify-content: flex-end; margin-top: 1.4rem; flex-wrap: wrap; }
.hire-msg { min-height: 1.2em; margin: 1rem 0 0; color: var(--h-muted); }
.hire-msg.is-error, .hire-error { color: #e7a14a; }
.hire-error { font-size: .85rem; margin-top: .5rem; }
.hire-done { text-align: center; }
.hire-done h3 { margin-top: 0; }
.hire-ref { color: var(--h-muted); }
.hire-ref strong { color: var(--h-text); font-family: ui-monospace, Menlo, monospace; }
@media (max-width: 640px) {
  .hire-3, .hire-loc, .hire .field-row { grid-template-columns: 1fr; }
  .hire-steps li { font-size: 0; gap: 0; }
  .hire-steps li span { font-size: .85rem; }
  .hire-long { display: none; }
  .hire-grid__h { letter-spacing: .02em; font-size: .68rem; }
  .hire-review dl { grid-template-columns: 1fr; }
  .hire-review dd { margin-bottom: .5rem; }
}
@media (prefers-reduced-motion: reduce) { .hire * { transition: none !important; } }
