/*
   STYLE: NiLの採用LPに合わせ、淡いピンク・白・チャコールを基調とする。
   ページ構成: PCは左右に静かなブランドレール、中央だけをスクロールする3カラム。
   SPは1カラムへ切り替え、募集要項の読みやすさを最優先にする。
*/ :root {
  --job-pink: #F0A0BE;
  --job-pink-deep: #D97AA0;
  --job-pink-pale: #FDF0F5;
  --job-pink-ultra: #FEF8FB;
  --job-aqua: #C4EEE8;
  --job-yellow: #FFF1B8;
  --job-dark: #53515A;
  --job-muted: #817F87;
  --job-white: #FFFFFF;
  --job-rule: rgba(240, 160, 190, 0.28);
  --job-ease: cubic-bezier(0.23, 1, 0.32, 1);
}
* {
  box-sizing: border-box;
}
html {
  font-size: 16px;
  scroll-behavior: smooth;
}
body {
  margin: 0;
  color: var(--job-dark);
  background: var(--job-pink-ultra);
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.8;
}
img {
  display: block;
  max-width: 100%;
}
a {
  color: inherit;
  text-decoration: none;
}
.job-main {
  min-width: 0;
  background: var(--job-white);
}
.job-mobile-header {
  display: flex;
  position: sticky;
  z-index: 5;
  top: 0;
  align-items: center;
  justify-content: space-between;
  min-height: 64px;
  padding: 11px 18px;
  background: rgba(255, 255, 255, 0.95);
  border-bottom: 1px solid var(--job-rule);
  backdrop-filter: blur(10px);
}
.job-mobile-logo img {
  width: 58px;
  height: auto;
}
.job-back-link {
  color: var(--job-pink-deep);
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.job-hero {
  position: relative;
  overflow: hidden;
  padding: 56px 24px 52px;
  background: var(--job-pink-pale);
  text-align: center;
}
.job-hero > * {
  position: relative;
  z-index: 1;
}
.job-store-switch {
  display: flex;
  justify-content:center;
  gap: 8px;
  max-width: 380px;
  margin: 0 auto 26px;
}
.job-store-switch button {
  min-height: 43px;
  min-width:150px;
  border: 1.5px solid var(--job-pink);
  border-radius: 999px;
  background: var(--job-white);
  color: var(--job-pink-deep);
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.job-store-switch button.is-active {
  background: var(--job-pink-deep);
  border-color: var(--job-pink-deep);
  color: var(--job-white);
}
.job-eyebrow {
  margin: 0 0 9px;
  color: var(--job-pink-deep);
  font-size: 0.77rem;
  font-weight: 700;
  letter-spacing: 0.23em;
}
.job-hero h1 {
  margin: 0;
  color: var(--job-dark);
  font-size: clamp(1.5rem, 5vw, 2.5rem);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.07em;
}
.job-hero h1 em {
  color: var(--job-pink-deep);
  font-style: normal;
}
.job-hero p:last-of-type {
  max-width: 34rem;
  margin: 18px auto 0;
  color: var(--job-muted);
  font-size: 1rem;
}
.job-role-pill {
  display: inline-block;
  margin-top: 19px;
  padding: 6px 14px;
  border: 1px solid var(--job-pink);
  border-radius: 999px;
  color: var(--job-pink-deep);
  background: var(--job-white);
  font-size: 0.87rem;
  font-weight: 700;
}
.job-role-switch {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  max-width: 380px;
  margin: 24px auto 0;
}
.job-role-switch a {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 9px;
  border: 1.5px solid var(--job-pink);
  border-radius: 7px;
  background: var(--job-white);
  color: var(--job-pink-deep);
  transition: transform 160ms var(--job-ease), background 160ms var(--job-ease), color 160ms var(--job-ease);
}
.job-role-switch a:hover {
  transform: translateY(-2px);
  background: var(--job-pink);
  color: var(--job-white);
}
.job-role-switch a:active {
  transform: scale(0.98);
}
.job-role-switch span {
  color: var(--job-pink-deep);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}
.job-role-switch strong {
  margin-top: 2px;
  color: var(--job-pink-deep);
  font-size: 1rem;
  letter-spacing: 0.04em;
}
.job-role-switch .is-active {
  border-color: var(--job-pink-deep);
  background: var(--job-pink-deep);
  color: var(--job-white);
  box-shadow: 4px 4px 0 var(--job-aqua);
}
.job-role-switch .is-active span, .job-role-switch .is-active strong, .job-role-switch a:hover span, .job-role-switch a:hover strong {
  color: var(--job-white) !important;
}
.recruitment-page--freelance .job-role-switch .is-active {
  box-shadow: 4px 4px 0 var(--job-yellow);
}
.job-content {
  padding: 42px 18px 62px;
}
.job-section {
  max-width: 640px;
  margin: 0 auto 40px;
}
.job-section-label {
  margin: 0 0 7px;
  color: var(--job-pink-deep);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.2em;
}
.job-section h2 {
  margin: 0 0 18px;
  color: var(--job-dark);
  font-size: 1.5rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.job-section-intro {
  margin: -5px 0 18px;
  color: var(--job-muted);
  font-size: 1rem;
}
.job-facts {
  margin: 0;
  border-top: 1px solid var(--job-rule);
}
.job-facts > div {
  display: grid;
  grid-template-columns: 6.2em minmax(0, 1fr);
  gap: 13px;
  padding: 14px 0;
  border-bottom: 1px solid var(--job-rule);
}
.job-facts dt {
  color: var(--job-pink-deep);
  font-size: 0.94rem;
  font-weight: 700;
}
.job-facts dd {
  margin: 0;
  color: var(--job-dark);
  font-size: 1rem;
}
.job-card {
  margin-bottom: 16px;
  padding: 21px 18px;
  border: 1px solid var(--job-rule);
  border-radius: 8px;
  background: var(--job-pink-ultra);
  box-shadow: 4px 4px 0 rgba(240, 160, 190, 0.15);
}
.job-card:last-child {
  margin-bottom: 0;
}
.job-card h3 {
  margin: 0 0 13px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--job-rule);
  color: var(--job-pink-deep);
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: 0.07em;
}
.job-card p {
  margin: 0;
  font-size: 1rem;
}
.job-list {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.job-list li {
  position: relative;
  padding-left: 15px;
  color: var(--job-dark);
  font-size: 1rem;
}
.job-list li::before {
  position: absolute;
  left: 0;
  color: var(--job-pink);
  content: "●";
  font-size: 0.5rem;
  top: 0.72em;
}
.job-list small {
  display: block;
  margin-top: 1px;
  color: var(--job-muted);
  font-size: 0.87rem;
}
.job-card-note {
  margin-top: 12px !important;
  color: var(--job-muted);
  font-size: 0.92rem !important;
}
.job-pay {
  padding: 23px 18px;
  border: 1px solid var(--job-rule);
  border-radius: 8px;
  background: var(--job-white);
  box-shadow: 4px 4px 0 var(--job-aqua);
}
.job-pay--freelance {
  box-shadow: 4px 4px 0 var(--job-yellow);
}
.job-pay h3 {
  margin: 0 0 15px;
  color: var(--job-pink-deep);
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: 0.07em;
}
.job-pay-main {
  margin-bottom: 15px;
  padding: 14px 16px;
  border-radius: 7px;
  color: var(--job-white);
  background: var(--job-pink);
}
.job-pay-main span {
  display: block;
  font-size: 0.87rem;
  letter-spacing: 0.08em;
}
.job-pay-main strong {
  display: block;
  margin-top: 1px;
  color: var(--job-white);
  font-size: 1.85rem;
  line-height: 1.35;
  letter-spacing: 0.04em;
}
.job-rate-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.job-rate {
  padding: 10px 4px;
  border: 1px solid var(--job-rule);
  border-radius: 6px;
  text-align: center;
}
.job-rate b {
  display: block;
  color: var(--job-dark);
  font-size: 0.85rem;
  font-weight: 500;
}
.job-rate strong {
  display: block;
  margin: 2px 0 1px;
  color: var(--job-pink-deep);
  font-size: 1.35rem;
  line-height: 1.25;
}
.job-rate small {
  color: var(--job-muted);
  font-size: 0.76rem;
}
.job-schedule {
  display: grid;
  gap: 0;
  margin-top: 14px;
  border-top: 1px solid var(--job-rule);
}
.job-schedule div {
  display: grid;
  grid-template-columns: 3em 1fr;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px dashed var(--job-rule);
  font-size: 1rem;
}
.job-schedule span:first-child {
  color: var(--job-muted);
}
.job-common-grid {
  display: grid;
  gap: 15px;
}
.job-common-block {
  padding: 18px;
  border-radius: 8px;
  background: var(--job-pink-ultra);
}
.job-common-block h3 {
  margin: 0 0 9px;
  color: var(--job-pink-deep);
  font-size: 1rem;
  letter-spacing: 0.05em;
}
.job-common-block .job-list {
  gap: 7px;
}
.job-common-block--no .job-list li::before {
  content: "×";
  color: var(--job-pink-deep);
  font-size: 1rem;
  top: 0.08em;
}
.job-common-block--yes .job-list li::before {
  content: "✓";
  color: var(--job-pink-deep);
  font-size: 0.92rem;
  top: 0.12em;
}
.job-cta {
  max-width: 640px;
  margin: 4px auto 0;
  padding: 27px 20px;
  border-radius: 9px;
  color: var(--job-white);
  background: var(--job-pink-deep);
  text-align: center;
}
.job-cta p {
  margin: 0 0 13px;
  font-size: 1rem;
}
.job-cta a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 52px;
  border: 1px solid var(--job-white);
  border-radius: 7px;
  background: var(--job-white);
  color: var(--job-pink-deep);
  font-size: 1rem;
  font-weight: 700;
  transition: transform 160ms var(--job-ease);
}
.job-cta a:hover {
  transform: translateY(-2px);
}
.job-cta a:active {
  transform: scale(0.98);
}
.job-footer {
  padding: 28px 20px 38px;
  border-top: 1px solid var(--job-rule);
  background: var(--job-pink-ultra);
  text-align: center;
}
.job-footer img {
  width: 62px;
  margin: 0 auto 12px;
}
.job-footer p {
  margin: 0 0 13px;
  color: var(--job-muted);
  font-size: 0.84rem;
}
.job-footer a {
  color: var(--job-pink-deep);
  font-size: 0.9rem;
  font-weight: 700;
}
.job-footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  max-width: 460px;
  margin: 0 auto;
}
.job-footer .job-footer-top {
  display: block;
  width: 100%;
  margin-bottom: 5px;
}
.job-footer .job-external-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 156px;
  min-height: 38px;
  padding: 7px 12px;
  border: 1px solid rgba(243, 149, 178, 0.72);
  border-radius: 999px;
  background: var(--job-white);
  color: var(--job-pink-deep);
  font-size: 0.85rem;
  letter-spacing: 0.01em;
  transition: background 0.2s, color 0.2s, transform 0.2s;
}
.job-footer .job-external-link svg {
  width: 13px;
  height: 13px;
  flex: 0 0 auto;
}
.job-footer .job-external-link:hover {
  background: var(--job-pink);
  color: #fff;
}
.job-footer .job-external-link:active {
  transform: scale(0.97);
}
@media (min-width: 900px) {
  body.recruitment-page {
    display: flex;
    flex-direction: row;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
  }
  .job-main {
    background: var(--job-white);
  }
  .job-mobile-header {
    display: none;
  }
  .job-hero {
    padding: 80px 42px 73px;
  }
  .job-content {
    padding: 58px 42px 74px;
  }
  .job-section {
    margin-bottom: 54px;
  }
  .job-common-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 420px) {
  .job-rate strong {
    font-size: 1.15rem;
  }
  .job-facts > div {
    grid-template-columns: 5.5em minmax(0, 1fr);
    gap: 10px;
  }
}