/* Custom Job Board — boarding pass design system */
.cjb-wrap{
  --cjb-navy:#06085D;
  --cjb-navy-deep:#030421;
  --cjb-cream:#F6F1E7;
  --cjb-cream-dim:#EDE6D6;
  --cjb-gold:#A70107;
  --cjb-gold-soft:#FF7A80;
  --cjb-ink:#1A1F2B;
  --cjb-muted:#6B7280;
  --cjb-line:#D9D6E8;
  --cjb-white:#FFFFFF;
  --cjb-ok:#1F6F5C;
  --cjb-radius:14px;

  font-family:'Inter',sans-serif;
  color:var(--cjb-ink);
  max-width:1180px;
  margin:0 auto;
  padding:20px clamp(16px,4vw,32px) 60px;
}
.cjb-wrap *{box-sizing:border-box;}
.cjb-wrap h1, .cjb-wrap h2, .cjb-wrap h3{font-family:'Fraunces',serif;margin:0;letter-spacing:-0.01em;}

/* ---- filters ---- */
.cjb-filters-card{
  background:var(--cjb-white);
  border-radius:var(--cjb-radius);
  box-shadow:0 16px 34px -22px rgba(6,8,93,0.35);
  padding:18px 20px;
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:32px;
}
.cjb-search-input{
  flex:1 1 240px;
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--cjb-line);
  border-radius:10px;
  padding:11px 14px;
}
.cjb-search-input svg{flex-shrink:0;color:var(--cjb-muted);}
.cjb-search-input input{
  border:none;outline:none;font-family:'Inter',sans-serif;font-size:0.95rem;width:100%;background:transparent;
}
.cjb-chip-group{display:flex;gap:8px;flex-wrap:wrap;}
.cjb-chip{
  border:1px solid var(--cjb-line);
  background:var(--cjb-cream);
  color:var(--cjb-ink);
  padding:9px 16px;
  border-radius:999px;
  font-size:0.85rem;
  font-weight:500;
  cursor:pointer;
  transition:all .18s ease;
}
.cjb-chip.active{background:var(--cjb-navy);border-color:var(--cjb-navy);color:var(--cjb-cream);}
.cjb-chip:hover{border-color:var(--cjb-navy);}

/* ---- section head ---- */
.cjb-section-head{
  display:flex;justify-content:space-between;align-items:baseline;margin-bottom:24px;flex-wrap:wrap;gap:10px;
}
.cjb-section-head h2{font-size:1.5rem;font-weight:600;}
.cjb-count{font-family:'IBM Plex Mono',monospace;font-size:0.8rem;color:var(--cjb-muted);}

/* ---- board grid ---- */
.cjb-board{display:grid;grid-template-columns:repeat(auto-fill, minmax(320px,1fr));gap:22px;}

.cjb-card{
  background:var(--cjb-white);
  border-radius:var(--cjb-radius);
  border:1px solid var(--cjb-line);
  overflow:hidden;
  transition:transform .2s ease, box-shadow .2s ease;
  display:flex;flex-direction:column;
}
.cjb-card:hover{transform:translateY(-4px);box-shadow:0 22px 38px -22px rgba(6,8,93,0.3);}

.cjb-card-top{padding:20px 20px 14px;}
.cjb-card-route{display:flex;align-items:center;justify-content:space-between;}
.cjb-route-code{font-family:'IBM Plex Mono',monospace;font-size:0.78rem;color:var(--cjb-muted);}
.cjb-badge{
  font-family:'IBM Plex Mono',monospace;font-size:0.68rem;padding:4px 9px;border-radius:999px;
  background:var(--cjb-navy);color:var(--cjb-white);letter-spacing:0.04em;
}
.cjb-badge.contract{background:var(--cjb-gold);color:var(--cjb-white);}

.cjb-card-title{font-family:'Fraunces',serif;font-size:1.25rem;font-weight:600;margin-top:10px;line-height:1.25;}
.cjb-card-company{font-size:0.84rem;color:var(--cjb-muted);margin-top:4px;}
.cjb-card-desc{font-size:0.87rem;color:#4B5361;line-height:1.55;margin-top:10px;}

.cjb-card-cut{position:relative;border-top:1.5px dashed var(--cjb-line);margin-top:16px;}
.cjb-card-cut::before,.cjb-card-cut::after{
  content:"";position:absolute;top:-9px;width:18px;height:18px;background:var(--cjb-cream);border-radius:50%;
}
.cjb-card-cut::before{left:-9px;}
.cjb-card-cut::after{right:-9px;}

.cjb-card-bottom{padding:14px 20px 18px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.cjb-fld{display:flex;flex-direction:column;gap:2px;}
.cjb-fld span:first-child{font-size:0.62rem;color:var(--cjb-muted);text-transform:uppercase;letter-spacing:0.06em;}
.cjb-fld span:last-child{font-family:'IBM Plex Mono',monospace;font-size:0.82rem;font-weight:500;}

.cjb-apply-btn{
  background:var(--cjb-navy);color:var(--cjb-cream);border:none;padding:10px 18px;border-radius:999px;
  font-size:0.82rem;font-weight:600;cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-block;
  transition:background .18s ease;
}
.cjb-apply-btn:hover{background:var(--cjb-navy-deep);color:var(--cjb-cream);}

/* ---- apply page ---- */
.cjb-apply-wrap{max-width:920px;}
.cjb-job-strip{
  background:var(--cjb-navy);color:var(--cjb-cream);border-radius:var(--cjb-radius);
  padding:22px 26px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
  margin-bottom:32px;position:relative;overflow:hidden;
}
.cjb-job-strip::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 90% -20%, rgba(167,1,7,0.35), transparent 55%);}
.cjb-job-strip > *{position:relative;}
.cjb-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--cjb-gold-soft);margin-bottom:6px;}
.cjb-job-strip h1{font-size:1.4rem;font-weight:600;color:var(--cjb-white);}
.cjb-route-text{font-family:'IBM Plex Mono',monospace;font-size:0.8rem;color:rgba(246,241,231,0.75);margin-top:6px;}
.cjb-stamp-mini{
  width:50px;height:50px;border:2px solid var(--cjb-gold-soft);border-radius:50%;color:var(--cjb-gold-soft);
  display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:0.48rem;
  text-align:center;line-height:1.15;transform:rotate(-12deg);
}

.cjb-apply-wrap form{display:flex;flex-direction:column;gap:28px;}
.cjb-fieldset{background:var(--cjb-white);border:1px solid var(--cjb-line);border-radius:var(--cjb-radius);padding:24px clamp(16px,4vw,28px);}
.cjb-fieldset-head{display:flex;align-items:baseline;gap:12px;margin-bottom:18px;}
.cjb-fieldset-num{
  font-family:'IBM Plex Mono',monospace;font-size:0.76rem;color:var(--cjb-gold);border:1px solid var(--cjb-gold);
  border-radius:999px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.cjb-fieldset-head h2{font-size:1.05rem;font-weight:600;}
.cjb-fieldset-head p{margin:2px 0 0;font-size:0.8rem;color:var(--cjb-muted);}

.cjb-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.cjb-field{display:flex;flex-direction:column;gap:6px;}
.cjb-field.span-2{grid-column:1 / -1;}
.cjb-field label{font-size:0.78rem;font-weight:600;color:var(--cjb-ink);display:flex;justify-content:space-between;}
.cjb-field label .req{color:var(--cjb-gold);font-weight:400;}

.cjb-wrap input[type="text"], .cjb-wrap input[type="email"], .cjb-wrap input[type="tel"], .cjb-wrap input[type="date"],
.cjb-wrap select, .cjb-wrap textarea{
  border:1px solid var(--cjb-line);border-radius:10px;padding:11px 13px;font-family:'Inter',sans-serif;font-size:0.9rem;
  color:var(--cjb-ink);background:var(--cjb-cream);outline:none;width:100%;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.cjb-wrap input:focus, .cjb-wrap select:focus, .cjb-wrap textarea:focus{
  border-color:var(--cjb-navy);box-shadow:0 0 0 3px rgba(6,8,93,0.1);background:var(--cjb-white);
}
.cjb-wrap textarea{resize:vertical;min-height:96px;}

.cjb-upload{
  border:1.5px dashed var(--cjb-line);border-radius:12px;padding:22px 16px;text-align:center;background:var(--cjb-cream);
  cursor:pointer;transition:border-color .18s ease, background .18s ease;display:block;
}
.cjb-upload:hover{border-color:var(--cjb-gold);background:var(--cjb-cream-dim);}
.cjb-upload input[type="file"]{display:none;}
.cjb-upload-icon{
  width:34px;height:34px;margin:0 auto 8px;border-radius:50%;background:var(--cjb-navy);color:var(--cjb-cream);
  display:flex;align-items:center;justify-content:center;font-weight:700;
}
.cjb-upload-title{font-size:0.88rem;font-weight:600;}
.cjb-upload-sub{font-size:0.74rem;color:var(--cjb-muted);margin-top:4px;}

.cjb-checkbox-row{display:flex;align-items:flex-start;gap:10px;font-size:0.82rem;color:var(--cjb-muted);line-height:1.5;}
.cjb-checkbox-row input{margin-top:3px;accent-color:var(--cjb-gold);}

.cjb-submit-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
.cjb-note{font-size:0.78rem;color:var(--cjb-muted);max-width:32ch;}
.cjb-submit-btn{
  background:var(--cjb-gold);color:var(--cjb-white);border:none;padding:14px 32px;border-radius:999px;
  font-size:0.92rem;font-weight:600;cursor:pointer;transition:background .18s ease, transform .18s ease;
}
.cjb-submit-btn:hover{background:#8C0106;transform:translateY(-1px);}

/* ---- confirmation ---- */
.cjb-confirm{text-align:center;padding:60px 20px;}
.cjb-stamp-big{
  width:84px;height:84px;margin:0 auto 20px;border:2.5px solid var(--cjb-ok);border-radius:50%;color:var(--cjb-ok);
  display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:0.68rem;
  text-align:center;line-height:1.2;transform:rotate(-10deg);
}
.cjb-confirm h2{font-size:1.5rem;margin-bottom:8px;}
.cjb-confirm p{color:var(--cjb-muted);max-width:42ch;margin:0 auto;line-height:1.6;}
.cjb-ref{
  margin-top:20px;font-family:'IBM Plex Mono',monospace;font-size:0.85rem;background:var(--cjb-cream-dim);
  display:inline-block;padding:8px 16px;border-radius:999px;
}

@media(max-width:700px){
  .cjb-grid{grid-template-columns:1fr;}
  .cjb-field.span-2{grid-column:auto;}
}
.cjb-wrap :focus-visible{outline:2px solid var(--cjb-gold);outline-offset:2px;}
@media (prefers-reduced-motion: reduce){ .cjb-wrap *{transition:none !important;} }
