@charset "UTF-8";
/* =========================================================
   RECRUIT（6HP recruit.pdf）
   各 top 値は「PDF上のY座標 − セクション開始Y」
   ========================================================= */

.hang { margin-left: -.5em; }
.page-recruit .ttl__en::before { background: #5dc8f5; }
.page-recruit .ttl__ja { color: var(--c-text2); line-height: 45px; }
.page-recruit .ttl__en { color: var(--c-text2); }
.page-recruit .ttl__bg { font-size: 110px; }

/* ---------- INTRO (y66–549) ---------- */
.rc-intro { height: 483px; }
.rc-intro__wm {
  left: -8px; top: -7px; line-height: 110px;
  writing-mode: vertical-rl; letter-spacing: .01em;
}
.rc-intro__en { left: 103px; top: 60px; }
.rc-intro__ja { left: 99px; top: 101px; }
.rc-intro__lead { left: 99px; top: 170px; line-height: 1.8; color: var(--c-sub2); white-space: nowrap; }
.rc-nav { left: 0; top: 262px; width: 600px; height: 110px; }
.rc-nav::before, .rc-nav::after { content: ""; position: absolute; left: 95px; width: 497px; height: 1px; background: #bce6ef; }
.rc-nav::before { top: 7px; }
.rc-nav::after { top: 107px; }
.rc-nav a {
  position: absolute; display: flex; align-items: center; gap: 16px;
  font-size: 12px; line-height: 24px; letter-spacing: .06em; white-space: nowrap; transition: opacity .2s;
}
.rc-nav a::before { content: ""; width: 18px; height: 18px; background: url("../img/common/arrow-down.svg") center / 100% 100% no-repeat; }
.rc-nav a:hover { opacity: .6; }
.rc-nav__link--people { left: 101px; top: 22px; }
.rc-nav__link--numbers { left: 235px; top: 22px; }
.rc-nav__link--career { left: 404px; top: 22px; }
.rc-nav__link--parttime { left: 100px; top: 69px; }
.rc-nav__link--faq { left: 404px; top: 69px; }
.rc-intro__photo { left: 665px; top: 63px; width: 353px; height: 354px; overflow: hidden; --cx: 29px; --cy: 39px; }
.rc-intro__photo img { position: absolute; left: -89px; top: -9px; width: 548px; height: 366px; }

/* ---------- MESSAGE（採用メッセージ。2026-10-09 追加：旧版 recruit-career.html の文言をサイトのデザインで組んだもの） ---------- */
.rc-msg { height: auto; }
.rc-msg .inner { padding: 214px 0 104px; }
.rc-msg__wm { left: 560px; top: -19px; }
.rc-msg__en { left: 102px; top: 58px; }
.rc-msg__ja { left: 98px; top: 100px; }
.rc-msg__body { display: grid; grid-template-columns: 330px 1fr; gap: 32px; margin: 0 100px 0 102px; } /* 本文の幅 556px＝1行38字（改行の手前で1〜2字だけ落ちないように） */
.rc-msg__catch { font-size: 26px; font-weight: 700; line-height: 1.8; letter-spacing: .04em; color: var(--c-text2); white-space: nowrap; }
.rc-msg__mark { background: linear-gradient(transparent 64%, #08caf8 64%, #08caf8 92%, transparent 92%); }
.rc-msg__copy { padding-top: 4px; font-size: 14px; line-height: 2.1; letter-spacing: .02em; color: var(--c-text); }
.rc-msg__copy p + p { margin-top: 24px; }
.rc-msg__copy a { border-bottom: 2px solid #eb6d60; font-weight: 700; transition: opacity .2s; }
.rc-msg__copy a:hover { opacity: .6; }
.rc-msg__staff { display: grid; grid-template-columns: 1fr; gap: 32px; margin: 64px 100px 0 102px; padding-top: 48px; border-top: 1px solid #e4e4e4; } /* 人事部門 部長・採用担当は1列で縦に2行（10/9 ユーザー指示） */
.rc-msg__voice { display: grid; grid-template-columns: 104px 1fr; gap: 24px; align-items: start; }
.rc-msg__face { width: 104px; height: 104px; border-radius: 50%; object-fit: cover; }
.rc-msg__role { display: flex; align-items: center; font-size: 12px; font-weight: 700; line-height: 1.8; letter-spacing: .06em; color: var(--c-text2); }
.rc-msg__role::before { content: ""; width: 15px; height: 1px; margin-right: 8px; background: #d9534f; }
.rc-msg__quote { margin-top: 10px; padding: 20px 24px 24px; background: var(--c-gray); font-size: 13px; line-height: 1.9; letter-spacing: .02em; color: var(--c-text); --cx: 14px; --cy: 20px; }

/* ---------- PEOPLE (y549–1591) ---------- */
.rc-people { height: auto; background: #e6f6f9; }
.rc-people .inner { padding: 323px 0 82px; } /* 上＝1行目のカードの位置。カードの行数に合わせて高さが伸びる */
.rc-people__wm { left: 684px; top: -19px; color: #fff; }
.rc-people__en { left: 102px; top: 58px; }
.rc-people__ja { left: 98px; top: 100px; }
.rc-people__lead { left: 103px; top: 174px; line-height: 1.8; color: var(--c-sub2); white-space: nowrap; }
.pc { position: relative; display: block; width: 285px; height: 264px; }
.pc > * { position: absolute; }
.pc__pic { left: 0; top: -90px; width: 285px; height: 268px; } /* 下端＝旧写真エリア下端（178px） */
.pc__shadow { opacity: .28; filter: blur(8px); }
.pc__photo { transition: transform .3s; }
.pc:hover .pc__photo { transform: translateY(-4px); }
.pc__box { left: 0; top: 127px; width: 270px; height: 136px; background: #fff; z-index: 1; --cx: 17px; --cy: 25px; }
.pc__quote { left: 11px; top: 147px; z-index: 2; font-size: 18px; font-weight: 700; line-height: 28px; letter-spacing: .12em; color: var(--c-text2); white-space: nowrap; } /* 氏名 */
.pc__quote .i { margin-left: 6px; }
.pc__meta {
  z-index: 2; top: 201px; right: 30px; display: flex; align-items: center; white-space: nowrap; text-align: right;
  font-size: 11px; line-height: 1.8; letter-spacing: .06em; color: var(--c-sub2);
}
.pc__meta::before { content: ""; width: 15px; height: 1px; margin-right: 8px; background: #d9534f; }
/* 人物カード（MT のループ。社員インタビューの記事を番号の順にすべて）：3列のグリッドで、行が増えると下へ伸びる
   （以前の1枚ごとの位置・1〜2px の微調整はやめて全員共通） */
.pc-list { display: grid; grid-template-columns: repeat(3, 285px); gap: 109px 28px; margin-left: 102px; }

/* ---------- NUMBERS (y1591–2541) ※2026-09 リード削除に伴い本文を 40px 繰り上げ ---------- */
.rc-num { height: 910px; background: var(--c-gray); }
.rc-num__wm { left: 187px; top: -20px; color: #e2edf1; }
.rc-num__en { left: 104px; top: 68px; }
.rc-num__ja { left: 107px; top: 110px; }
.nc { width: 212px; height: 162px; background: #fff; border-top: 2px solid var(--bar); --cx: 13px; --cy: 18px; }
.nc__val { position: absolute; display: flex; align-items: baseline; white-space: nowrap; color: var(--c-text2); }
.nc__val b { font-family: var(--font-num); font-size: 57px; font-weight: 800; line-height: 1; letter-spacing: -.01em; }
.nc__val small { position: relative; top: -3px; margin-left: 6px; font-size: 17px; font-weight: 700; line-height: 1; }
.nc__val small.pct { font-weight: 900; font-size: 18px; margin-left: 6px; }
.nc__val small.kyo { font-size: 16px; }
.nc__cap { position: absolute; font-size: 10px; line-height: 1.8; letter-spacing: .06em; color: var(--c-sub2); white-space: nowrap; }
.nc__cap .paren { margin-left: -5px; letter-spacing: 0; }
.nc--delivery { left: 105px; top: 208px; --bar: #5dc8f5; }
.nc--delivery .nc__val { left: 26px; top: 36px; }
.nc--delivery .nc__cap { left: 33px; top: 104px; }
.nc--leave { left: 335px; top: 209px; --bar: #eb6d60; }
.nc--leave .nc__val { left: 26px; top: 38px; }
.nc--leave .nc__cap { left: 24px; top: 103px; }
.nc--staff { left: 563px; top: 208px; --bar: #58c185; }
.nc--staff .nc__val { left: 32px; top: 37px; }
.nc--staff .nc__cap { left: 33px; top: 105px; }
.nc--base { left: 793px; top: 209px; --bar: #b3c1f9; }
.nc--base .nc__val { left: 26px; top: 35px; }
.nc--base .nc__cap { left: 21px; top: 103px; }
.rc-num__note { font-size: 9px; line-height: 20px; color: #bababa; white-space: nowrap; }
.st { position: absolute; width: 212px; height: 142px; background: #fff; }
.st > * { position: absolute; }
.st__tag {
  left: 14px; top: 13px; height: 23px; padding-left: 6px; background: #333; color: #fff;
  font-size: 10px; font-weight: 500; line-height: 23px; letter-spacing: .03em; white-space: nowrap;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 6px), calc(100% - 5px) 100%, 0 100%);
}
.st__val { left: 19px; top: 50px; display: flex; align-items: baseline; white-space: nowrap; color: var(--c-text2); }
.st__val b { font-family: var(--font-num); font-size: 30px; font-weight: 700; line-height: 30px; letter-spacing: -.01em; }
.st__val b.colon { margin: 0 9px 0 8px; }
.st__val small { margin-left: 6px; font-size: 9px; line-height: 1; color: var(--c-sub); }
.st__sub { left: 20px; top: 94px; font-size: 9px; line-height: 1.8; letter-spacing: .06em; color: var(--c-sub); white-space: nowrap; }
.st__sub--2 { top: 85px; }
.st__sub .paren { margin-left: -4px; }
.st--gender { left: 105px; top: 471px; }
.st--gender .st__tag { width: 43px; }
.st--age { left: 334px; top: 471px; }
.st--age .st__tag { width: 54px; }
.st--tenure { left: 562px; top: 471px; }
.st--tenure .st__tag { width: 81px; }
.st--leave { left: 791px; top: 471px; }
.st--leave .st__tag { width: 71px; }
.st--overtime { left: 105px; top: 636px; }
.st--overtime .st__tag { width: 77px; }
.st--flex { left: 334px; top: 636px; width: 211px; }
.st--flex .st__tag { width: 122px; }
.st--turnover { left: 562px; top: 636px; }
.st--turnover .st__tag { width: 51px; }
.st--childcare { left: 791px; top: 636px; width: 211px; }
.st--childcare .st__tag { width: 100px; }

/* ---------- CAREER (y3263–3994) ※2026-09 ENVIRONMENT 削除に伴い、NUMBERS（グレー）と続くため白背景に ---------- */
.rc-career { height: 728px; }
.rc-career__wm { left: 688px; top: -21px; }
.rc-career__en { left: 103px; top: 68px; }
.rc-career__ja { left: 107px; top: 110px; }
.rc-career__lead { left: 105px; top: 179px; line-height: 1.8; color: var(--c-sub2); white-space: nowrap; }
.rc-career__photo { left: 107px; top: 265px; width: 353px; height: 354px; overflow: hidden; --cx: 29px; --cy: 39px; }
.rc-career__photo img { position: absolute; left: -127px; top: -47px; width: 607px; height: 405px; }
.rc-jobs dt, .rc-jobs dd { position: absolute; font-size: 12px; line-height: 24px; white-space: nowrap; color: var(--c-text); }
.rc-jobs dt { left: 523px; font-weight: 500; letter-spacing: .12em; }
.rc-jobs dd { left: 711px; line-height: 1.8; letter-spacing: .15em; }
.rc-jobs--career dt:nth-of-type(1) { top: 124px; }
.rc-jobs--career dd:nth-of-type(1) { top: 123px; }
.rc-jobs--career dt:nth-of-type(2) { left: 524px; top: 211px; }
.rc-jobs--career dd:nth-of-type(2) { left: 712px; top: 209px; }
.rc-jobs--career dt:nth-of-type(3) { top: 296px; }
.rc-jobs--career dd:nth-of-type(3) { top: 295px; }
.rc-jobs--career dt:nth-of-type(4) { left: 524px; top: 382px; }
.rc-jobs--career dd:nth-of-type(4) { left: 712px; top: 380px; }
.rc-line { height: 1px; background: #dfdfdf; }
.rc-career .rc-line { left: 523px; width: 505px; }
.rc-career .rc-line--1 { top: 186px; }
.rc-career .rc-line--2 { left: 524px; top: 271px; }
.rc-career .rc-line--3 { top: 357px; }
.rc-career .rc-line--4 { left: 524px; top: 428px; }
.rc-career__btn {
  left: 525px; top: 453px; width: 265px; height: 59px; background: #5dc8f5; --cx: 14px; --cy: 19px;
  display: block; transition: opacity .2s;
}
.rc-career__btn:hover { opacity: .8; }
.rc-career__btn span { position: absolute; left: 22px; top: 17px; font-size: 12px; font-weight: 700; line-height: 24px; letter-spacing: .06em; color: var(--c-text2); white-space: nowrap; }
.rc-career__btn i {
  position: absolute; left: 213px; top: 16px; width: 28px; height: 28px; border-radius: 50%; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Cpath d='M8 14h12' stroke='%23393939' stroke-width='.6'/%3E%3Cpath d='M17.8 11.8 20.2 14l-2.4 2.2' fill='none' stroke='%23393939' stroke-width='.6'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.rc-notice { padding: 14px 0 0 18px; background: #ecfcd1; font-size: 10px; line-height: 24px; color: var(--c-text); white-space: nowrap; }
.rc-notice a { margin: 0 .7em; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: .5px; }
.rc-notice--1 { padding-top: 20px; letter-spacing: -.02em; }

/* ---------- PART TIME (y3994–4669) ---------- */
.rc-part { height: 672px; }
.rc-part__wm { left: -11px; top: -19px; }
.rc-part__en { left: 666px; top: 71px; }
.rc-part__ja { left: 669px; top: 113px; }
.rc-part__lead { left: 668px; top: 182px; line-height: 1.8; color: var(--c-sub2); white-space: nowrap; }
.rc-part__th { left: 105px; top: 127px; width: 133px; height: 308px; background: var(--c-gray); }
.rc-jobs--part dt { left: 127px; }
.rc-jobs--part dd { left: 261px; }
.rc-jobs--part dt:nth-of-type(1) { top: 141px; }
.rc-jobs--part dd:nth-of-type(1) { top: 141px; }
.rc-jobs--part dt:nth-of-type(2) { top: 223px; }
.rc-jobs--part dd:nth-of-type(2) { top: 223px; }
.rc-jobs--part dt:nth-of-type(3) { top: 297px; }
.rc-jobs--part dd:nth-of-type(3) { top: 297px; }
.rc-jobs--part dt:nth-of-type(4) { top: 372px; }
.rc-jobs--part dd:nth-of-type(4) { top: 372px; }
.rc-jobs--part + .rc-line, .rc-part .rc-line { background: #e4e4e4; }
.rc-part .rc-line { left: 105px; width: 519px; }
.rc-part .rc-line--1 { top: 202px; }
.rc-part .rc-line--2 { top: 283px; }
.rc-part .rc-line--3 { top: 358px; }
.rc-part .rc-line--4 { top: 435px; }
.rc-part__photo { left: 669px; top: 268px; width: 354px; height: 354px; overflow: hidden; --cx: 30px; --cy: 39px; }
.rc-part__photo img { position: absolute; left: -91px; top: -3px; width: 540px; height: 360px; }

/* ---------- FAQ (y4669–5622) ---------- */
.rc-faq { height: auto; background: var(--c-gray); }
.rc-faq__wm { left: 902px; top: -19px; color: #fff; }
.rc-faq__en { left: 104px; top: 69px; }
.rc-faq__ja { left: 108px; top: 111px; }
.rc-faq .faq-list { margin-left: 112px; padding: 207px 0 82px; }
.rc-faq .faq__a p { line-height: 1.8; }

/* =========================================================
   SP（〜767px）※SPデザインなし：s01/s02/s04 の作法で1カラム化
   ========================================================= */

/* FAQ：対象ラベル（キャリア／パート・アルバイト。共通の質問は両方表示） */
.faq__tags { display: flex; gap: 6px; margin-bottom: 10px; }
.faq-tag {
  display: inline-flex; align-items: center; height: 20px; padding: 0 10px 0 8px;
  font-size: 10px; font-weight: 700; line-height: 1; letter-spacing: .06em; color: #fff;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 7px), calc(100% - 5px) 100%, 0 100%);
}
.faq-tag--career { background: var(--c-blue); }
.faq-tag--part { background: var(--c-red); }
.rc-faq .faq__ic { top: 29px; }

@media (max-width: 767px) {
  /* 見出し（英字ラベル→和文26px→リード12px）をフローに戻す */
  .page-recruit .ttl__bg { font-size: 60px; left: 30px; top: -25px; }
  .page-recruit .ttl__en, .page-recruit .ttl__ja { position: relative; left: auto; top: auto; }
  .page-recruit .ttl__en { margin-left: 16px; font-size: 14px; }
  .page-recruit .ttl__ja { margin: 8px 16px 0 14px; line-height: 43px; }
  .rc-intro__lead, .rc-people__lead, .rc-career__lead, .rc-part__lead {
    position: relative; left: auto; top: auto; margin: 15px 16px 0 18px; font-size: 12px; line-height: 1.8; white-space: normal;
  }
  /* PC用の改行はSPでは使わない（自然折り返し） */
  .rc-intro__lead br, .rc-people__lead br, .rc-career__lead br, .rc-part__lead br, .rc-notice br, .rc-jobs dd br { display: none; }
  .page-recruit main .sec { padding: 60px 0 70px; }

  /* ---------- INTRO（s04 の下層ページ冒頭に準拠） ---------- */
  .page-recruit main .rc-intro { padding: 17px 0 60px; }
  .rc-intro__wm { left: auto; right: -6px; top: -4px; font-size: 60px; line-height: 60px; }
  .rc-nav {
    position: relative; left: auto; top: auto; width: auto; height: auto; margin: 28px 20px 0 16px; padding: 15px 0 13px 6px;
    display: grid; grid-template-columns: 1fr 1fr; row-gap: 4px;
  }
  .rc-nav::before, .rc-nav::after { left: 0; width: 100%; }
  .rc-nav::before { top: 0; }
  .rc-nav::after { top: auto; bottom: 0; }
  .rc-nav a { position: static; line-height: 33px; }
  .rc-intro__photo { position: relative; left: auto; top: auto; width: auto; height: 223px; margin: 40px 19px 0; --cx: 28px; --cy: 38px; }
  .rc-intro__photo img { position: static; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }

  /* ---------- MESSAGE（採用メッセージ） ---------- */
  .rc-msg .inner { padding: 0; }
  .rc-msg__body { display: block; margin: 28px 20px 0; }
  .rc-msg__catch { font-size: 22px; line-height: 1.7; letter-spacing: .02em; }
  .rc-msg__copy { margin-top: 20px; padding-top: 0; font-size: 13px; line-height: 2; letter-spacing: .02em; }
  .rc-msg__copy p + p { margin-top: 18px; }
  .rc-msg__staff { display: block; margin: 40px 20px 0; padding-top: 32px; }
  .rc-msg__voice { grid-template-columns: 72px 1fr; gap: 16px; }
  .rc-msg__voice + .rc-msg__voice { margin-top: 28px; }
  .rc-msg__face { width: 72px; height: 72px; }
  .rc-msg__quote { margin-top: 8px; padding: 16px 18px 20px; line-height: 1.8; --cx: 12px; --cy: 17px; }

  /* ---------- PEOPLE（s01 TOP の PEOPLE カードと同構成・縦積み） ---------- */
  .page-recruit main .rc-people { padding-bottom: 80px; }
  .rc-people__wm, .rc-num__wm, .rc-faq__wm { color: #fff; }
  .rc-people .inner { padding: 0; }
  .pc-list { display: block; margin: 0; }
  .rc-people .pc { position: relative; left: auto; top: auto; margin: 108px auto 0; }

  /* ---------- NUMBERS（s01 NUMBERS：縦並び＋左の色線） ---------- */
  .rc-num__wm { color: #e2edf1; }
  .rc-num .nc {
    position: relative; left: auto; top: auto; width: auto; height: auto; min-height: 117px;
    margin: 25px 20px 0 54px; padding: 8px 0 10px 42px; background: none; border-top: 0; border-left: 1.5px solid var(--bar); clip-path: none;
  }
  .rc-num .nc:first-of-type { margin-top: 40px; }
  .rc-num .nc__val, .rc-num .nc__cap { position: static; }
  .rc-num .nc__val b { line-height: 57px; }
  .rc-num .nc__cap { margin-top: 12px; }
  .rc-num__note { position: static; margin: 28px 24px 0; font-size: 8px; line-height: 16px; white-space: normal; }
  .rc-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 32px 20px 0; }
  .rc-stats .st { position: relative; left: auto; top: auto; width: auto; height: 142px; }
  .rc-stats .st:first-child, .rc-stats .st:last-child { grid-column: 1 / -1; }
  .rc-stats .st__tag { left: 12px; }
  .rc-stats .st__val { left: 14px; }
  .rc-stats .st__sub { left: 14px; letter-spacing: .02em; }

  /* ---------- CAREER ---------- */
  .rc-career__photo { position: relative; left: auto; top: auto; width: auto; height: 260px; margin: 36px 19px 0; --cx: 28px; --cy: 38px; }
  .rc-career__photo img { position: static; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
  .rc-jobs { display: grid; grid-template-columns: 100px 1fr; margin: 30px 20px 0; border-top: 1px solid #dfdfdf; }
  .rc-jobs dt, .rc-jobs dd { position: static; padding: 14px 0; border-bottom: 1px solid #dfdfdf; white-space: normal; }
  .rc-jobs dt { letter-spacing: .06em; }
  .rc-jobs dd { letter-spacing: .04em; }
  .rc-line, .rc-part__th { display: none; }
  .rc-career__btn { position: relative; left: auto; top: auto; margin: 30px 0 0 20px; }
  .page-recruit .rc-notice {
    position: static; width: auto !important; height: auto !important; margin: 24px 20px 0; padding: 14px 18px;
    line-height: 22px; letter-spacing: 0; white-space: normal;
  }
  .rc-notice a { margin: 0 .2em; }

  /* ---------- PART TIME ---------- */
  .rc-part__en.ttl__en, .rc-part__ja.ttl__ja { left: auto; }
  .rc-jobs--part { grid-template-columns: 96px 1fr; border-color: #e4e4e4; }
  .rc-jobs--part dt, .rc-jobs--part dd { border-color: #e4e4e4; }
  .rc-jobs--part dt { padding-left: 14px; background: var(--c-gray); }
  .rc-jobs--part dd { padding-left: 14px; }
  .rc-part__photo { position: relative; left: auto; top: auto; width: auto; height: 260px; margin: 36px 19px 0; --cx: 28px; --cy: 38px; }
  .rc-part__photo img { position: static; width: 100%; height: 100%; object-fit: cover; }

  /* ---------- FAQ ---------- */
  .page-recruit main .rc-faq { padding-bottom: 0; }
  .rc-faq .faq-list { width: auto; margin: 0 20px; padding: 36px 0 70px; }
  .rc-faq .faq + .faq { margin-top: 26px; }
  .rc-faq .faq__q { padding: 0 40px 18px 0; font-size: 14px; line-height: 1.6; white-space: normal; }
  .rc-faq .faq__ic { left: auto; right: 0; top: 28px; } /* 設問の行間 1.6 に合わせて1行目の中央に */
  .rc-faq .faq__a p { padding-bottom: 24px; line-height: 1.8; white-space: normal; }
  .rc-faq .faq__a .hang { margin-left: 0; }
}

@media (max-width: 767px) {
  .rc-faq .faq__q { padding-right: 44px; } /* 開閉アイコンと文字が重ならないよう */
}
