@charset "UTF-8";
/* 福利厚生・制度ページ専用 */
.benefits-page{--green:#47aa4f;--green-dark:#2f7d37;--deep:#2f7d37;--light:#eef6ef;--sage:#f6f8f6;--ink:#1a1a1a;--muted:#6b7268;--line:#e6e6e6;--width:1180px}
.benefits-page *{box-sizing:border-box}
.benefits-page a{color:inherit;text-decoration:none}
.benefits-page img{display:block;max-width:100%}
.benefits-page .container{width:min(calc(100% - 48px),var(--width));margin:auto}
/* ===== hero 2026-08-26（ユーザー指示で再修正）=====
   見出しの文字だけ /jobs/ と同じ体裁（Jost・英字大文字＋日本語サブ）。
   背景は元のデザインへ戻す：写真1枚を全面に敷き左からグラデーション、#f2f7f2 の下地。
   jobsページ左パネルの回路ライン模様（jh-left::before だったもの）は使わない */
.benefits-page .bp-hero{position:relative;overflow:hidden;background:#f2f7f2;padding:96px 0 88px}
.benefits-page .bp-hero .photo{position:absolute;inset:0;background:url('images/recruit/benefits-bg.jpg') center right/cover no-repeat;z-index:0}
.benefits-page .bp-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(246,248,246,.97),rgba(246,248,246,.62) 42%,rgba(246,248,246,.05) 74%);z-index:1}
.benefits-page .bp-hero .inner{position:relative;z-index:2}
/* 2026-08-26 ユーザー指摘：見出しの右の余白が広い＝見出しをもう少し左に寄せたい。
   原因：グローバルの .container{padding:0 var(--pad)} が、このページ専用の
   .container{width:...;margin:auto}（padding指定なし）に重なって、
   margin(24px)+padding(20px)=44px の左インデントになっていた。
   ヒーローだけ padding を打ち消して見出しを左へ寄せる（他セクションの .container は触らない）*/
.benefits-page .bp-hero .container{padding:0}
/* 見出しの書体は Noto Sans JP 900。採用トップの英字大見出し（JOBS/GUIDELINE/ENTRY＝
   .recruit-lp .section-label）および同ページ下部の共通GUIDELINE・ENTRYと同じ扱いに揃える。
   Jost はこのサイトでは数字に使う書体で、英字の見出しに使うと印象が変わるため使わない
   （2026-08-26 ユーザー判断。職種ページ/jobs/とインタビューの英字だけが例外として残る） */
.benefits-page .bp-hero h1{font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  font-size:clamp(38px,6.2vw,72px);font-weight:900;color:var(--green);margin:0;line-height:1;letter-spacing:.06em}
.benefits-page .bp-hero p{margin:12px 0 0;font-weight:700;letter-spacing:.22em;color:#4a564d;font-size:15px}
@keyframes bpfadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.benefits-page .bp-hero h1{animation:bpfadeUp .7s .05s both}
.benefits-page .bp-hero p{animation:bpfadeUp .7s .2s both}
.benefits-page /* icon nav */
.bp-iconnav{padding:34px 0 10px}
.benefits-page .bp-iconnav .container{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.benefits-page .bp-iconnav a{display:flex;flex-direction:column;align-items:center;gap:12px;padding:26px 10px 20px;border:1px solid #dbe4db;border-radius:14px;background:#fff;font-size:16px;font-weight:700;text-align:center;box-shadow:0 4px 0 #cfe0d0,0 10px 20px rgba(11,61,39,.10);transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}
.benefits-page .bp-iconnav a:hover{transform:translateY(2px);box-shadow:0 2px 0 #2f7d37,0 5px 12px rgba(11,61,39,.2);border-color:var(--green);background:var(--green);color:#fff}
.benefits-page .bp-iconnav a:hover .ic-img{filter:brightness(0) invert(1)}
.benefits-page .bp-iconnav a:hover .chev{stroke:#fff}
.benefits-page .bp-iconnav .chev{margin-top:2px}
.benefits-page .bp-iconnav .ic-img{width:66px;height:66px}
.benefits-page /* pickup */
.bp-pickup{padding:14px 0 40px}
.benefits-page .bp-pickup .head{text-align:center;margin-bottom:26px}
.benefits-page .bp-pickup .head span{font-size:13px;letter-spacing:.2em;font-weight:900;color:var(--green)}
.benefits-page .bp-pickup .head h2{font-size:22px;margin:6px 0 0}
.benefits-page .bp-pickup .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.benefits-page .pu{border:1px solid var(--line);border-radius:14px;padding:24px 26px;display:flex;gap:18px;align-items:center;background:#fff}
.benefits-page .pu .ic-img{width:46px;height:46px;flex:none}
.benefits-page .pu .t{font-size:13px;color:var(--muted);font-weight:700;margin-bottom:3px}
.benefits-page .pu .v{font-size:20px;font-weight:900;line-height:1.25}
.benefits-page .pu .v em{font-style:normal;color:var(--green);font-size:1.5em}
.benefits-page /* category sections */
.bp-cat{padding:44px 0;border-top:1px solid #eef2ef}
.benefits-page .bp-cat:nth-child(even){background:var(--sage)}
/* ★2026-08-31：左のアイコン列と右の本文を縦中央でそろえる（ユーザー指摘）。
   以前は align-items:start だったため、両方が上端でそろっていた。
   アイコン列は高さが一定（約172px）なのに本文は行数で変わるので、
   2行しかないセクションでは本文だけが上に寄って見えていた。 */
.benefits-page .bp-cat-inner{display:grid;grid-template-columns:200px 1fr;gap:40px;align-items:center}
.benefits-page .bp-cat-head{position:relative;text-align:center}
.benefits-page .bp-cat-head .num{font:900 44px/1 "Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;color:var(--green)}
/* ★2026-08-31：アイコンを150px→112pxに縮小し、上下の余白も詰めた（ユーザー指摘）。
   項目が2行しかないセクションで、左のアイコン列だけが高く、間延びして見えたため。
   これでアイコン列の高さが 223px → 約172px になり、
   2行のセクションの高さが 336px → 約280px に締まる。3行のセクションは本文の高さで決まるため変わらない。 */
.benefits-page .bp-cat-head .ico{margin:6px 0 12px}
.benefits-page .bp-cat-head .ico .ic-img{width:112px;height:112px;margin:0 auto}
.benefits-page .bp-cat-head h2{font-size:22px;margin:0;line-height:1.4}
.benefits-page .bp-cat-body{display:grid;grid-template-columns:1fr;gap:26px}
.benefits-page .bp-cat-body.has-side{grid-template-columns:1fr 300px}
.benefits-page .bp-list{list-style:none;margin:0;padding:0;display:block;column-count:2;column-gap:44px}
.benefits-page .bp-list--3{column-count:3;column-gap:30px}
.benefits-page .bp-list li{position:relative;padding:11px 0 11px 30px;border-bottom:0;break-inside:avoid;min-height:68px}
.benefits-page .bp-list li:before{content:"";position:absolute;left:2px;top:17px;width:12px;height:7px;border-left:2.5px solid var(--green);border-bottom:2.5px solid var(--green);border-radius:0;background:none;transform:rotate(-45deg)}
.benefits-page .bp-list li strong{display:block;font-weight:700;font-size:19px;line-height:1.55}
.benefits-page .bp-list li small{display:block;font-size:15px;color:var(--muted);margin-top:4px;line-height:1.6}
.benefits-page .bp-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;text-align:center;align-self:start}
.benefits-page .bp-cat:nth-child(even) .bp-stat{background:var(--light);border-color:transparent}
.benefits-page .bp-stat .lbl{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:8px}
.benefits-page .bp-stat .n{font:900 52px/1 "Noto Sans JP";color:var(--green)}
.benefits-page .bp-stat .n span{font-size:20px}
.benefits-page .bp-photo{width:100%;aspect-ratio:1.35;border-radius:14px;background-position:center;background-size:cover;background-repeat:no-repeat}
.benefits-page .bp-note{text-align:center;color:var(--muted);font-size:13px;padding:34px 0}
.benefits-page .bp-note svg{width:15px;height:15px;stroke:var(--green);fill:none;vertical-align:-2px;margin-right:5px}
.benefits-page /* cta */
.bp-cta{position:relative;overflow:hidden;background:var(--deep);color:#fff;padding:72px 0}
.benefits-page .bp-cta .photo{position:absolute;inset:0;background:url('images/recruit/entry-bg.jpg') center/cover no-repeat}
.benefits-page .bp-cta .ov{position:absolute;inset:0;background:linear-gradient(90deg,rgba(47,125,55,.94),rgba(47,125,55,.7))}
.benefits-page .bp-cta .container{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.benefits-page .bp-cta h2{font-size:clamp(24px,3vw,34px);margin:0}
.benefits-page .bp-cta a{display:inline-flex;align-items:center;gap:16px;padding:20px 34px;border:2px solid rgba(255,255,255,.9);border-radius:8px;color:#fff;font-weight:800}
.benefits-page .bp-cta a:hover{background:#fff;color:var(--green-dark)}
@media(max-width:900px){.benefits-page .bp-iconnav .container{grid-template-columns:repeat(3,1fr)}
.benefits-page .bp-pickup .grid{grid-template-columns:1fr 1fr}
.benefits-page .bp-cat-inner{grid-template-columns:1fr;gap:22px}
.benefits-page .bp-cat-body.has-side{grid-template-columns:1fr}
.benefits-page .bp-list--3{column-count:2}}
@media(max-width:560px){.benefits-page .bp-iconnav .container{grid-template-columns:repeat(2,1fr)}
.benefits-page .bp-pickup .grid{grid-template-columns:1fr}
.benefits-page .bp-list{column-count:1}}
/* ===== SP：目次を横スクロールのピル1行に、本文を表組み風に 2026-08-26 =====
   ユーザー確認済み（4案中「横スクロール＋左右の矢印」／3案中「表組み風」）。
   ※ 追記は必ずファイル末尾に置く。上に足すと同じ詳細度の指定がソース順で負ける。
   max-width:640px は他ページ（recruit-lp.css / interview.css）と同じSP境界に合わせている */
@media(max-width:640px){

  /* 固定ヘッダーの高さに合わせた上部固定オフセット。目次（interview.css の .iv2side）と同じ考え方。
     768px以下はヘッダーが position:fixed で72px（style.css）。管理バー表示中はその分を足す 2026-08-26 */
  .benefits-page{--bpspivhead:72px}
}
@media screen and (max-width:640px){
  .admin-bar .benefits-page{--bpspivhead:118px}
}
@media(max-width:640px){

  /* --- 目次（.bp-iconnav）：横スクロールのピル＋左右のくの字。上部固定（目次＝インタビューページと同じ挙動）2026-08-26
     ※ 影は指示になかったため付けない。背景を不透明にして本文が透けないようにするだけ */
  .benefits-page .bp-iconnav{
    padding:12px 0 6px;position:sticky;top:var(--bpspivhead,72px);z-index:90;
    background:#fff}
  .benefits-page .bp-iconnav .container{
    display:flex;width:100%;gap:8px;overflow-x:auto;padding:4px 36px 10px;
    /* ↑左右の余白＝矢印の置き場所。ピルの文字と重ならないよう広めに確保 2026-08-26 */
    grid-template-columns:none; /* 900px/560px側のgrid指定を無効化 */
    scroll-snap-type:x proximity;scroll-padding-left:36px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .benefits-page .bp-iconnav .container::-webkit-scrollbar{display:none}
  .benefits-page .bp-iconnav a{
    flex:0 0 auto;flex-direction:row;align-items:center;gap:8px;scroll-snap-align:start;
    padding:0 16px 0 10px;height:50px;border-radius:999px;text-align:left;font-size:14.5px;white-space:nowrap;
    box-shadow:0 2px 0 #cfe0d0,0 4px 9px rgba(11,61,39,.06)}
  .benefits-page .bp-iconnav .ic-img{width:30px;height:30px;flex:none}
  .benefits-page .bp-iconnav .chev{display:none} /* 縦アコーディオンの矢印はこのデザインでは使わない */

  /* 左右の矢印（丸ボタンは付けない。くの字のみ）2026-08-26 ユーザー確認済み＝案B。
     くの字の裏に白のグラデーション帯（::before）を敷き、スクロール途中で切れたピルの
     文字を白でぼかす。丸で囲まずに文字との重なりを解消するための処理なので、
     グラデーションの色は必ず背景（白）と同じにすること。
     ※ ::before は z-index:-1。親の .bpnav-arrow が z-index:2 で重なり順の基準
        （stacking context）を作るため、ピル（z-index auto）より前・くの字より後ろに入る。
     ※ JS（page-benefits.php末尾）が左右端で is-hidden を付け外しする。
        初期状態は「右に続きがある」ので右だけ表示。
        scroll-padding-left が無いと初回描画時に scrollLeft がコンテナのpadding分だけ
        動いてしまい、左矢印が最初から出る不具合になる（2026-08-26 ユーザー報告） */
  /* 2026-08-26 くの字をもう少し目立たせる：丸ボタンは付けないまま（ユーザー確認済みの案B）、
     サイズ／線の太さを上げ、白いドロップシャドウ（旧案A相当）を足して背景の緑ピルに対する
     コントラストを強める。裏の白グラデーション帯（文字を隠す用）は幅・不透明度を少し強化 */
  .benefits-page .bpnav-arrow{
    position:absolute;top:50%;margin-top:-22px;z-index:2;width:38px;height:44px;
    background:none;border:0;display:flex;align-items:center;justify-content:center;padding:0;
    transition:opacity .15s ease;opacity:1}
  .benefits-page .bpnav-arrow svg{width:23px;height:23px;stroke:var(--green-dark);stroke-width:3;
    filter:drop-shadow(0 1px 1.5px rgba(255,255,255,.95)) drop-shadow(0 1px 2px rgba(255,255,255,.95))}
  .benefits-page .bpnav-arrow--l{left:0}
  .benefits-page .bpnav-arrow--r{right:0}
  /* 白いグラデーション帯。以前は外側へ8pxはみ出させていた（inset の左/右が -8px）が、
     矢印は .bp-iconnav の左右端（left:0 / right:0）にあるため、その8pxがそのまま
     ページの横幅を広げ、**ページ全体を8px横にスクロールできる状態**になっていた
     （2026-08-30 実機で確認）。外側は0にして内側だけ伸ばす。見た目はほぼ変わらない */
  .benefits-page .bpnav-arrow--l:before{
    content:"";position:absolute;inset:-18px -12px -18px 0;z-index:-1;
    background:linear-gradient(90deg,#fff 48%,rgba(255,255,255,0))}
  .benefits-page .bpnav-arrow--r:before{
    content:"";position:absolute;inset:-18px 0 -18px -12px;z-index:-1;
    background:linear-gradient(270deg,#fff 48%,rgba(255,255,255,0))}
  .benefits-page .bpnav-arrow.is-hidden{opacity:0;pointer-events:none}

  /* --- カテゴリ見出し：小アイコン＋左揃え＋下線（3案共通の土台）--- */
  .benefits-page .bp-cat{padding:34px 0;
    /* 目次を上部固定にした分、アンカーリンクで飛んだ時に見出しが隠れないよう補正 2026-08-26 */
    scroll-margin-top:calc(var(--bpspivhead,72px) + 74px)}
  .benefits-page .bp-cat-head{
    display:flex;align-items:center;gap:12px;text-align:left;
    padding-bottom:12px;border-bottom:2px solid #dcebdf}
  .benefits-page .bp-cat-head .ico{margin:0;flex:none}
  .benefits-page .bp-cat-head .ico .ic-img{width:52px;height:52px;margin:0}
  .benefits-page .bp-cat-head h2{font-size:21px;line-height:1.35}
  .benefits-page .bp-cat-head h2 br{display:none}

  /* --- 本文（.bp-list）：表組み風。項目名／補足を横並びにして罫線で区切る --- */
  .benefits-page .bp-list{column-count:1 !important;display:block}
  .benefits-page .bp-list li{
    display:flex;align-items:baseline;justify-content:space-between;gap:10px;
    padding:13px 0 13px 24px;min-height:0;border-bottom:1px solid #e8eee8;break-inside:auto}
  .benefits-page .bp-list li:last-child{border-bottom:0}
  .benefits-page .bp-list li:before{left:2px;top:19px}
  .benefits-page .bp-list li strong{font-size:16px;line-height:1.5;flex:1 1 auto;min-width:0;
    word-break:keep-all}
  .benefits-page .bp-list li small{
    flex:0 1 auto;max-width:54%;text-align:right;font-size:12.5px;margin-top:0;line-height:1.5;
    font-variant-numeric:tabular-nums;word-break:keep-all}
  /* 2026-08-26 ユーザー指摘：左右に分かれた本文が、どんなSP幅でも一文字ずつの改行に
     ならないようにしたい。word-break:keep-all で日本語の任意の文字間での改行を止め、
     改行が必要な場合はページ側であらかじめ <wbr> を置いた語句の区切りでのみ折り返す
     （<wbr> の位置は page-benefits.php 側。ここではCSSで「任意の位置では折り返さない」
     という土台だけを作る） */
}

/* =====================================================================
   目次の左右の矢印（.bpnav-arrow）はSP（640px以下）専用 2026-08-30
   ---------------------------------------------------------------------
   矢印の見た目・位置の指定は @media(max-width:640px) の中にしか無いのに、
   ボタン要素自体を隠す指定がどこにも無かった。そのため641px以上では
   **素のbutton（黒い細い線に見える）が目次の上下・左端に2つ出ていた**
   （2026-08-30 ユーザー実機指摘）。SPの横スクロール用の部品なので、
   PC・タブレットでは要素ごと消す。
   ※ HTML側は aria-hidden="true" tabindex="-1" が付いているので、
     display:none にしても読み上げ・キーボード操作に影響はない。
   ===================================================================== */
@media (min-width:641px){
  .benefits-page .bpnav-arrow{display:none}
}
