/* Recruitment entry points use the base page's existing palette and component tone. */
.cp-recruit-top { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; max-width: 100%; box-sizing: border-box; padding: 14px 18px 14px 24px; margin: 24px 0; background: rgb(var(--color-wh)/.96); color: rgb(var(--color-bk)); border: 1px solid rgb(var(--color-wh)/.5); border-radius: 999px; box-shadow: 0 10px 28px rgb(var(--color-bk)/.1); text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
.cp-recruit-top small, .cp-recruit-top strong { display: block; line-height: 1.7; }
.cp-recruit-top small { font-size: 11px; color: rgb(var(--color-rd)); letter-spacing: .04em; font-weight: 700; }
.cp-recruit-top strong { font-size: 14px; font-weight: 700; }
.cp-recruit-top b { display: grid; place-items: center; flex: 0 0 38px; height: 38px; border-radius: 50%; background: var(--color-gradient); color: rgb(var(--color-wh)); font: 20px Arial,sans-serif; }
.cp-recruit-menu { list-style: none; margin: 12px 0; }
.cp-recruit-menu a { display: block; color: rgb(var(--color-bk)); background: rgb(var(--color-main)/.08); border: 1px solid rgb(var(--color-main)/.16); border-radius: 999px; padding: 12px 16px; font-size: 14px; font-weight: 700; line-height: 1.6; text-decoration: none; transition: background .25s ease; }
.cp-recruit-menu a:hover { background: rgb(var(--color-main)/.16); }
.cp-recruit { color: rgb(var(--color-bk)); line-height: 1.9; margin: 60px 0 90px; }
.cp-recruit p, .cp-recruit h2 { margin: 0; }
.cp-recruit h2 { font-size: clamp(24px, 2.4vw, 34px); line-height: 1.6; letter-spacing: -.04em; margin: 16px 0 20px; font-weight: 900; }
.cp-recruit p { font-size: 15px; line-height: 2; }
.cp-recruit .cp-recruit__label { color: rgb(var(--color-rd)); font-size: 12px; letter-spacing: .08em; font-weight: 700; }
.cp-recruit--feature { display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: 32px; padding: 28px; background: linear-gradient(145deg, rgb(var(--color-wh)/.98), rgb(var(--color-main)/.055)); border: 1px solid rgb(var(--color-bk)/.08); border-radius: 28px; box-shadow: 0 18px 48px rgb(var(--color-bk)/.08); }
.cp-recruit--feature > img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 20px; }
.cp-recruit__body { min-width: 0; padding: 8px 8px 8px 0; }
.cp-recruit a { display: inline-flex; align-items: center; justify-content: center; gap: 16px; max-width: 100%; box-sizing: border-box; min-height: 48px; text-decoration: none; background: var(--color-gradient); color: rgb(var(--color-bk)); border: 1px solid transparent; border-radius: 999px; font-size: 14px; font-weight: 700; line-height: 1.7; padding: 14px 22px; margin-top: 26px; box-shadow: 0 10px 24px rgb(var(--color-main)/.2); transition: transform .25s ease, box-shadow .25s ease; }
.cp-recruit a span { flex-shrink: 0; font: 18px Arial,sans-serif; }
.cp-recruit a:hover, .cp-recruit-top:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgb(var(--color-main)/.25); }
.cp-recruit a:focus-visible, .cp-recruit-top:focus-visible, .cp-recruit-menu a:focus-visible { outline: 3px solid rgb(var(--color-bk)); outline-offset: 4px; }
.cp-recruit--contact { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; padding: 32px; background: rgb(var(--color-wh)); border: 1px solid rgb(var(--color-bk)/.06); border-radius: 28px; box-shadow: 0 18px 54px rgb(var(--color-bk)/.07); }
.cp-recruit__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; min-width: 0; }
.cp-recruit__actions a { margin-top: 0; }
.cp-recruit__actions a + a { background: rgb(var(--color-wh)); color: rgb(var(--color-bk)); border-color: rgb(var(--color-main)/.4); box-shadow: none; }
@media (max-width: 767px) {
  .cp-recruit-top { padding: 12px 14px 12px 18px; gap: 14px; max-width: calc(100vw - 32px); }
  .cp-recruit-top strong { font-size: 14px; }
  .cp-recruit { margin: 36px 0 60px; }
  .cp-recruit--feature, .cp-recruit--contact { grid-template-columns: 1fr; padding: 20px; gap: 22px; border-radius: 22px; }
  .cp-recruit--feature > img { border-radius: 16px; }
  .cp-recruit__body { padding: 0; }
  .cp-recruit a { padding: 13px 18px; text-align: center; }
  .cp-recruit__actions { align-items: stretch; }
}
@media (prefers-reduced-motion: reduce) {
  .cp-recruit a, .cp-recruit-top, .cp-recruit-menu a { transition: none; }
  .cp-recruit a:hover, .cp-recruit-top:hover { transform: none; }
}
