/* BPO採用サイトの共通フッター（全ページで読む。トップ専用の bpo.css には頼らない） */
.p-bpo-foot { --foot-bg: #1a1a1a; --foot-text: #dcdcd8; --foot-muted: #8f8f8b; --foot-line: rgba(255, 255, 255, .14); --foot-accent: #efc33b;
  position: relative; background: var(--foot-bg); color: var(--foot-text); font-family: 'Noto Sans JP', sans-serif; line-height: 1.8; text-align: left; border-top: 3px solid var(--foot-accent); }
.p-bpo-foot *, .p-bpo-foot *::before, .p-bpo-foot *::after { box-sizing: border-box; }
.p-bpo-foot p, .p-bpo-foot ul { margin: 0; padding: 0; }
.p-bpo-foot a { color: inherit; text-decoration: none; }
.p-bpo-foot__inner { display: grid; grid-template-columns: 1fr 2.4fr; gap: 64px; max-width: 1200px; margin: 0 auto; padding: 72px 32px 56px; }
.p-bpo-foot__logo { display: inline-block; }
.p-bpo-foot__logo img { display: block; width: 168px; height: auto; }
.p-bpo-foot__site { margin-top: 14px; font-size: 14px; font-weight: 700; color: #fff; }
.p-bpo-foot__addr { margin-top: 20px; font-size: 13px; color: var(--foot-muted); }
.p-bpo-foot__nav { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 40px; }
.p-bpo-foot__ttl { margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--foot-line); font-size: 12px; font-weight: 800; letter-spacing: .12em; color: var(--foot-accent); }
.p-bpo-foot__col ul { list-style: none; }
.p-bpo-foot__col:first-child ul { display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; }
.p-bpo-foot__col li a { display: inline-block; padding: 5px 0; white-space: nowrap; font-size: 14px; transition: color .15s ease; }
.p-bpo-foot__col li a:hover { color: var(--foot-accent); }
.p-bpo-foot__col li a.is-ext::after { content: "↗"; margin-left: 6px; font-size: 12px; color: var(--foot-muted); }
.p-bpo-foot__bottom { border-top: 1px solid var(--foot-line); }
.p-bpo-foot__bottom .p-bpo-foot__inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 20px; padding-bottom: 20px; font-size: 12px; color: var(--foot-muted); }
.p-bpo-foot__bottom a:hover { color: #fff; }
.p-bpo-foot__bottom small { font-size: 12px; }
@media (max-width: 991px) {
  .p-bpo-foot__inner { grid-template-columns: 1fr; gap: 40px; padding: 56px 24px 40px; }
  .p-bpo-foot__nav { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
  .p-bpo-foot__col:first-child { grid-column: 1 / -1; }
}
@media (max-width: 575px) {
  .p-bpo-foot__inner { padding-left: 16px; padding-right: 16px; }
  .p-bpo-foot__nav { grid-template-columns: 1fr; }
  .p-bpo-foot__bottom .p-bpo-foot__inner { flex-direction: column; align-items: flex-start; gap: 4px; padding-bottom: calc(20px + 64px); } /* スマホ下の固定ボタンに隠れないよう */
}

/* メニュー（≡）：左にリンク、右に応募の案内。下の端は他のセクションと同じ角度で斜めに切る */
.g-hamburger-recruit.offcanvas.offcanvas-top { --slant: clamp(36px, 5vw, 96px); bottom: auto; height: auto; max-height: 100dvh; overflow-y: auto; padding-bottom: calc(40px + var(--slant)); background-color: rgba(26, 26, 26, .96); clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--slant)), 0 100%); }
.p-bpo-menu { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 64px; align-items: start; margin-top: 8px; }
.p-bpo-menu__nav { display: grid; grid-template-columns: 2fr 1fr; gap: 40px; }
.p-bpo-menu .p-bpo-menu__ttl { margin: 0 0 10px; padding-bottom: 8px; border-bottom: 1px solid rgba(255, 255, 255, .14); text-align: left; font-family: 'Inter', 'Noto Sans JP', sans-serif; font-size: 12px; font-weight: 800; letter-spacing: .14em; color: #efc33b; }
.p-bpo-menu .list { margin: 0; padding: 0; list-style: none; }
.p-bpo-menu .list li a { white-space: nowrap; transition: color .15s ease; }
.p-bpo-menu .list li a:hover { color: #efc33b; }
.p-bpo-menu__site .list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
.p-bpo-menu__cta { padding: 28px 32px 32px; background: rgba(255, 255, 255, .05); border-top: 3px solid #efc33b; border-radius: 4px; text-align: left; }
.p-bpo-menu .p-bpo-menu__catch { margin: 0 0 20px; font-size: clamp(20px, 1.8vw, 26px); font-weight: 900; line-height: 1.5; color: #fff; }
.p-bpo-menu__btn { position: relative; display: block; margin-top: 10px; padding: 14px 56px 14px 20px; border: 1.5px solid rgba(255, 255, 255, .6); border-radius: 4px; font-size: 15px; font-weight: 800; line-height: 1.5; color: #fff !important; text-decoration: none !important; transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.p-bpo-menu__btn span { display: block; font-family: 'Inter', sans-serif; font-size: 11px; letter-spacing: .18em; opacity: .75; }
.p-bpo-menu__btn::after { content: "→"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font-weight: 700; transition: transform .15s ease; }
.p-bpo-menu__btn:hover { background: #fff; color: #1a1a1a !important; border-color: #fff; }
.p-bpo-menu__btn:hover::after { transform: translate(4px, -50%); }
.p-bpo-menu__btn.is-main { background: #efc33b; border-color: #efc33b; color: #1a1a1a !important; }
.p-bpo-menu__btn.is-main:hover { background: #f5d000; border-color: #f5d000; }
@media (max-width: 991px) {
  .p-bpo-menu { grid-template-columns: 1fr; gap: 28px; }
  .p-bpo-menu__nav { grid-template-columns: 1fr; gap: 20px; }
  .p-bpo-menu__cta { padding: 22px 20px 24px; }
}
