@charset "UTF-8";
/* ==========================================================================
   apprhythm.net  Jobs Pages  Stylesheet
   共通スタイル（aprz.css）を先に読み込み、差分だけをここに置く。
   aprz.css は変更しないこと（キャッシュキー衝突と回帰を避けるため）。
   ========================================================================== */

/* 共通スタイル（aprz.css）は各ページの <link> で先に読み込まれる。
   ここで @import すると二重読込になり、レンダリングが直列化し、
   将来 ASSET_VER を上げたときにバージョン不整合の原因になるため書かない。 */

/* ---------- 1. 求人詳細 ---------- */

.aprz-jd {
  padding: 148px 0 96px;
}

.aprz-jd__wrap {
  width: min(820px, 90%);
  margin-inline: auto;
}

.aprz-jd__crumb {
  margin: 0 0 32px;
  font-size: 12px;
  color: var(--muted);
}

.aprz-jd__crumb a {
  color: var(--blue);
  text-decoration: none;
}

.aprz-jd__crumb a:hover {
  text-decoration: underline;
}

.aprz-jd__crumb span[aria-hidden] {
  margin: 0 8px;
  color: var(--line);
}

.aprz-jd__title {
  margin: 8px 0 20px;
  font-size: clamp(26px, 4vw, 38px);
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.aprz-jd__lead {
  margin: 0 0 40px;
  font-size: 16px;
  line-height: 2;
  color: var(--muted);
}

.aprz-jd__h {
  margin: 56px 0 20px;
  padding: 0 0 12px;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink);
  border-bottom: 1px solid var(--line);
}

.aprz-jd__p {
  margin: 0;
  font-size: 15px;
  line-height: 2.05;
  color: var(--muted);
}

.aprz-jd__list {
  margin: 0;
  padding: 0 0 0 1.35em;
  list-style: disc;
}

.aprz-jd__list li {
  margin: 0 0 10px;
  font-size: 14.5px;
  line-height: 1.95;
  color: var(--muted);
}

.aprz-jd__list li::marker {
  color: var(--blue);
}

.aprz-jd__list li:last-child {
  margin-bottom: 0;
}

.aprz-jd__note {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: var(--muted);
}

.aprz-jd__code {
  display: inline-block;
  min-width: 62px;
  margin-right: 14px;
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--cyan);
}

/* 応募ブロック */

.aprz-jd__apply {
  margin: 72px 0 0;
  padding: 40px 36px;
  background: var(--bg-2);
  border-radius: var(--radius);
}

.aprz-jd__apply h2 {
  margin: 0 0 12px;
  font-size: 21px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.aprz-jd__apply p {
  margin: 0 0 28px;
  font-size: 14px;
  line-height: 1.9;
  color: var(--muted);
}

/* 他職種ナビ */

.aprz-jd__others {
  margin: 72px 0 0;
  padding: 32px 0 0;
  border-top: 1px solid var(--line);
}

.aprz-jd__others h2 {
  margin: 0 0 16px;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
}

.aprz-jd__others ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.aprz-jd__others li {
  border-bottom: 1px solid var(--line);
}

.aprz-jd__others a {
  display: flex;
  align-items: baseline;
  padding: 16px 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink);
  text-decoration: none;
  transition: color .2s var(--ease);
}

.aprz-jd__others a:hover {
  color: var(--blue);
}

/* ---------- 2. 求人一覧 ---------- */

.aprz-jl {
  padding-top: 148px;
}

.aprz-jl__list {
  display: grid;
  gap: 20px;
  margin: 56px 0 0;
  padding: 0;
  list-style: none;
}

@media (min-width: 860px) {
  .aprz-jl__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.aprz-jc {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 32px 30px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  transition: border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);
}

.aprz-jc:hover {
  border-color: rgba(46, 107, 255, .38);
  transform: translateY(-2px);
  box-shadow: 0 14px 40px rgba(14, 27, 51, .07);
}

.aprz-jc__code {
  margin: 0 0 12px;
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--cyan);
}

.aprz-jc__title {
  margin: 0 0 14px;
  font-size: 17px;
  line-height: 1.6;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.aprz-jc__title a {
  color: var(--ink);
  text-decoration: none;
}

.aprz-jc__title a:hover {
  color: var(--blue);
}

.aprz-jc__lead {
  margin: 0 0 18px;
  font-size: 13.5px;
  line-height: 1.95;
  color: var(--muted);
}

.aprz-jc__salary {
  margin: 0 0 18px;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
}

.aprz-jc__salary span {
  margin-left: 4px;
  font-size: 11px;
  font-weight: 400;
  color: var(--muted);
}

.aprz-jc__more {
  margin: auto 0 0;
  padding-top: 20px;
  font-size: 13px;
  font-weight: 700;
}

.aprz-jc__more a {
  color: var(--blue);
  text-decoration: none;
}

.aprz-jc__more a::after {
  content: " →";
}

.aprz-jc__more a:hover {
  text-decoration: underline;
}

/* ---------- 3. レスポンシブ ---------- */

@media (max-width: 640px) {
  .aprz-jd {
    padding: 118px 0 64px;
  }

  .aprz-jd__title {
    font-size: 23px;
  }

  .aprz-jd__lead {
    font-size: 14.5px;
    line-height: 1.95;
  }

  .aprz-jd__h {
    margin-top: 44px;
    font-size: 17px;
  }

  .aprz-jd__apply {
    padding: 28px 22px;
  }

  .aprz-jd__others a {
    display: block;
  }

  .aprz-jd__code {
    display: block;
    margin: 0 0 4px;
  }

  .aprz-jc {
    padding: 26px 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .aprz-jc,
  .aprz-jd__others a {
    transition: none;
  }

  .aprz-jc:hover {
    transform: none;
  }
}
