/* ==================== 求人検索ページ専用スタイル ==================== */

/* レイアウト */
.jobs-section { padding: 40px 0 80px; }
.jobs-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 28px;
  align-items: start;
}
@media (max-width: 991px) {
  .jobs-layout { grid-template-columns: 1fr; }
}

/* ヒーロー Stats */
.jobs-hero-stats { display:flex; gap:24px; margin-top:18px; flex-wrap:wrap; }
.jobs-hero-stats .stat { background:rgba(255,255,255,.1); padding:14px 22px; border-radius:10px; backdrop-filter:blur(4px); }
.jobs-hero-stats .stat-num { font-size:1.6rem; font-weight:800; line-height:1; }
.jobs-hero-stats .stat-label { font-size:.78rem; opacity:.85; margin-top:4px; }

/* サイドバー */
.jobs-sidebar {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 14px;
  padding: 20px 18px;
  position: sticky;
  top: 90px;
  max-height: calc(100vh - 110px);
  overflow-y: auto;
}
.jobs-sidebar-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.jobs-sidebar-title { font-size: 1rem; font-weight: 800; margin: 0; display:flex; align-items:center; gap:8px; }
.jobs-sidebar-close { display:none; background:transparent; border:none; font-size:1.2rem; color:#555; cursor:pointer; }

.jobs-filter-group { padding: 14px 0; border-top: 1px solid #f1f1f1; }
.jobs-filter-group:first-of-type { border-top: none; padding-top: 0; }
.jobs-filter-h { font-size: .82rem; font-weight: 700; color: #555; margin: 0 0 9px; letter-spacing: .04em; }

.jobs-radio-list { display:flex; flex-direction:column; gap:6px; }
.jobs-radio-list label { display:flex; align-items:center; gap:8px; font-size:.88rem; cursor:pointer; padding:4px 0; }
.jobs-radio-list input { accent-color:#ffd000; }

.jobs-checkbox-grid { display:grid; grid-template-columns: 1fr 1fr; gap:6px 12px; max-height:200px; overflow-y:auto; }
.jobs-checkbox-grid.jobs-checkbox-prefs { max-height: none; }
.jobs-checkbox-grid label { display:flex; align-items:center; gap:6px; font-size:.82rem; cursor:pointer; padding:3px 0; }
.jobs-checkbox-grid input { accent-color:#ffd000; }

/* 都道府県：地方グループ */
.jobs-pref-regions { max-height: 380px; overflow-y: auto; padding-right: 4px; }
.jobs-pref-region { margin-bottom: 12px; }
.jobs-pref-region:last-child { margin-bottom: 0; }
.jobs-pref-region-label {
  font-size: .72rem; font-weight: 700; color: #888;
  margin: 0 0 6px;
  padding: 4px 8px;
  background: #f7f7f7; border-radius: 4px;
  letter-spacing: .02em;
  cursor: pointer;
  user-select: none;
  transition: background-color .15s, color .15s;
  display: flex; align-items: center; justify-content: space-between;
}
.jobs-pref-region-label::after {
  content: "▾";
  font-size: .7rem;
  opacity: .5;
}
.jobs-pref-region-label:hover {
  background: #fff8da;
  color: #7a5d00;
}
.jobs-pref-region-label.all-selected {
  background: #ffd000;
  color: #1a1a1a;
}
.jobs-pref-region-label.all-selected::after {
  content: "✓";
  opacity: 1;
}
.jobs-pref-region .jobs-checkbox-grid {
  padding-left: 4px;
  max-height: none;
  overflow: visible;
}

.jobs-chips { display:flex; flex-wrap:wrap; gap:6px; }
.jobs-chip {
  background:#f5f5f5; border:1px solid #e8e8e8; border-radius:18px;
  padding:5px 12px; font-size:.78rem; cursor:pointer; transition:.15s;
  color:#444;
}
.jobs-chip:hover { background:#fffceb; border-color:#ffd000; color:#1a1a1a; }
.jobs-chip.active { background:#ffd000; border-color:#ffd000; color:#1a1a1a; font-weight:700; }

.jobs-sidebar-actions { margin-top:14px; padding-top:14px; border-top:1px solid #f1f1f1; }
.jobs-reset-btn {
  background:#1a1a1a; color:#fff; border:none; border-radius:8px;
  padding:9px 16px; font-size:.85rem; font-weight:700; cursor:pointer; width:100%;
}
.jobs-reset-btn:hover { background:#ffd000; color:#1a1a1a; }

/* メインコンテンツ */
.jobs-main { min-width: 0; }

.jobs-top-controls { display:flex; gap:10px; margin-bottom:14px; flex-wrap:wrap; align-items:center; }
.jobs-search-input { flex:1; min-width:200px; padding:10px 14px; border:1px solid #ddd; border-radius:10px; font-size:.92rem; }
.jobs-search-input:focus { outline:none; border-color:#ffd000; box-shadow:0 0 0 3px rgba(255,208,0,.25); }
.jobs-select { padding:10px 14px; border:1px solid #ddd; border-radius:10px; font-size:.88rem; background:#fff; }
.jobs-filter-toggle { display:none; align-items:center; gap:6px; background:#1a1a1a; color:#fff; border:none; border-radius:10px; padding:10px 14px; font-size:.88rem; font-weight:700; cursor:pointer; position:relative; }
.jobs-filter-badge { background:#ffd000; color:#1a1a1a; font-size:.7rem; font-weight:800; border-radius:10px; padding:1px 7px; min-width:20px; text-align:center; }

@media (max-width:991px) {
  .jobs-filter-toggle { display:inline-flex; }
  .jobs-sidebar {
    position: fixed; top:0; left:0; bottom:0;
    width: 320px; max-width: 90vw;
    max-height: 100vh; height: 100vh;
    z-index: 9990;
    transform: translateX(-100%); transition: transform .25s ease;
    border-radius: 0;
    box-shadow: 0 4px 24px rgba(0,0,0,.2);
  }
  .jobs-sidebar.open { transform: translateX(0); }
  .jobs-sidebar-close { display:block; }
}

/* ステータス行 */
.jobs-status-bar { display:flex; align-items:center; justify-content:space-between; background:#fafafa; border:1px solid #eee; border-radius:10px; padding:10px 14px; margin-bottom:14px; flex-wrap:wrap; gap:6px; font-size:.85rem; }
.jobs-status-bar-left strong { font-size:1.1rem; color:#1a1a1a; }
.jobs-filter-status { color:#999; margin-left:8px; font-size:.78rem; }
.jobs-status-bar-right { color:#666; font-size:.78rem; display:flex; gap:14px; align-items:center; }
.jobs-live-dot { display:inline-block; width:8px; height:8px; background:#1a7a1a; border-radius:50%; margin-right:5px; animation:jobsBlink 1.4s infinite ease-in-out; }
@keyframes jobsBlink { 0%,100%{opacity:1} 50%{opacity:.35} }

/* グリッド */
.jobs-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px; }
@media (max-width: 720px) { .jobs-grid { grid-template-columns:1fr; } }

/* 求人カード */
.jc-card { display:block; text-decoration:none; color:inherit; background:#fff; border:1px solid #eee; border-radius:14px; padding:16px 18px; position:relative; transition:.15s; }
.jc-card:hover { border-color:#ffd000; box-shadow:0 4px 16px rgba(0,0,0,.08); transform:translateY(-1px); }
.jc-card-head { margin-bottom:8px; }
.jc-meta { display:flex; flex-wrap:wrap; gap:8px; font-size:.74rem; color:#666; align-items:center; }
.jc-pref { background:#fff8da; color:#7a5d00; padding:2px 8px; border-radius:5px; font-weight:700; }
.jc-cat  { background:#f0f0f0; color:#444; padding:2px 8px; border-radius:5px; }
.jc-emp  { color:#888; }
.jc-title { font-size:1.05rem; font-weight:700; line-height:1.5; margin:4px 0 10px; color:#1a1a1a; }
.jc-salary { font-size:1.3rem; font-weight:800; color:#c0392b; line-height:1; }
.jc-salary-unit { font-size:.78rem; font-weight:600; color:#888; margin-left:3px; }
.jc-monthly-hint { font-size:.75rem; color:#888; margin-top:3px; }
.jc-info-row { display:flex; flex-wrap:wrap; gap:14px; font-size:.78rem; color:#555; margin:10px 0 8px; }
.jc-info-row i { color:#1a1a1a; margin-right:3px; }
.jc-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
.jc-tag { background:#1a1a1a; color:#ffd000; padding:2px 8px; border-radius:4px; font-size:.7rem; font-weight:700; }
.jc-rs-list { display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; }
.jc-rs { background:#eef5ff; color:#1a4d8a; padding:2px 7px; border-radius:4px; font-size:.68rem; }
.jc-cta { margin-top:12px; font-size:.82rem; font-weight:700; color:#1a1a1a; }
.jc-cta i { transition:transform .15s; }
.jc-card:hover .jc-cta i { transform:translateX(3px); }
.jc-badge-featured { position:absolute; top:-8px; right:14px; background:#ffd000; color:#1a1a1a; font-size:.7rem; font-weight:800; padding:3px 9px; border-radius:5px; box-shadow:0 2px 6px rgba(0,0,0,.1); }

/* ローディング / 空 */
.jobs-loading { display:flex; justify-content:center; padding:40px 0; }
.jobs-empty { text-align:center; padding:50px 0; color:#888; }
.jobs-empty i { font-size:3rem; color:#ccc; display:block; margin-bottom:12px; }

/* もっと見る */
.jobs-more-wrap { text-align:center; margin:24px 0; }
.jobs-more-btn { background:#fff; border:2px solid #1a1a1a; color:#1a1a1a; padding:11px 36px; border-radius:24px; font-weight:700; cursor:pointer; font-size:.92rem; transition:.15s; }
.jobs-more-btn:hover { background:#1a1a1a; color:#ffd000; }

/* 注意書き */
.jobs-note { background:#fffceb; border:1px solid #ffe9a8; border-radius:10px; padding:14px 18px; font-size:.84rem; color:#7a5d00; line-height:1.7; margin-top:24px; }

/* ==================== 求人詳細ページ ==================== */
.job-detail-wrap { max-width: 880px; margin: 0 auto; padding: 30px 0 60px; }
.job-detail-card { background:#fff; border:1px solid #eee; border-radius:16px; padding:28px 30px; }
@media (max-width: 720px) { .job-detail-card { padding:20px 18px; } }
.jd-meta { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; font-size:.78rem; }
.jd-meta .jc-pref, .jd-meta .jc-cat, .jd-meta .jc-emp { padding:3px 10px; }
.jd-title { font-size:1.5rem; font-weight:800; line-height:1.45; margin: 6px 0 16px; }

/* 公開日・更新日（SEO + ユーザー視認用） */
.jd-dates { font-size:.75rem; color:#888; margin: -4px 0 14px; display:flex; flex-wrap:wrap; gap:14px; }
.jd-dates time { color:#666; }

.jd-salary-box { display:flex; flex-wrap:wrap; gap:24px; align-items:center; padding:14px 18px; background:#fff8da; border-radius:10px; margin-bottom:20px; }
.jd-salary-main { font-size:1.8rem; font-weight:800; color:#c0392b; line-height:1; }
.jd-salary-unit { font-size:.85rem; font-weight:600; color:#7a5d00; margin-left:4px; }
.jd-salary-est { color:#7a5d00; font-size:.85rem; }

.jd-section { padding: 20px 0; border-top: 1px solid #f1f1f1; }
.jd-section:first-of-type { border-top: none; }
.jd-section h2 { font-size: 1.05rem; font-weight: 800; margin: 0 0 10px; padding-bottom: 8px; border-bottom:2px solid #ffd000; display:inline-block; }
.jd-section p, .jd-section .jd-text { white-space:pre-wrap; line-height:1.85; color:#333; font-size:.95rem; }

.jd-fact-grid { display:grid; grid-template-columns:140px 1fr; gap: 8px 16px; font-size:.92rem; }
@media (max-width: 720px) { .jd-fact-grid { grid-template-columns: 1fr; } }
.jd-fact-grid dt { color:#666; font-weight:700; }
.jd-fact-grid dd { margin:0; }

.jd-tags { display:flex; flex-wrap:wrap; gap:6px; }
.jd-tag { background:#1a1a1a; color:#ffd000; padding:4px 10px; border-radius:4px; font-size:.78rem; font-weight:700; }
.jd-rs { background:#eef5ff; color:#1a4d8a; padding:4px 10px; border-radius:4px; font-size:.78rem; }

.jd-cta-row { display:flex; gap:12px; margin-top:24px; flex-wrap:wrap; }
.jd-cta-row .btn-apply { flex:1; min-width:200px; background:#ffd000; color:#1a1a1a; border:none; padding:14px 22px; border-radius:10px; font-weight:800; font-size:1rem; text-decoration:none; text-align:center; }
.jd-cta-row .btn-apply:hover { background:#1a1a1a; color:#ffd000; }
.jd-cta-row .btn-back { background:#f0f0f0; color:#333; border:none; padding:14px 22px; border-radius:10px; font-weight:700; text-decoration:none; text-align:center; }
.jd-cta-row .btn-back:hover { background:#e0e0e0; }

/* 類似求人セクション */
.jd-similar { margin-top: 36px; }
.jd-similar-head { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.jd-similar-title { font-size: 1.15rem; font-weight: 800; margin: 0; }
.jd-similar-title i { color:#ffd000; margin-right:6px; }
.jd-similar-sub { font-size:.78rem; color:#888; }
.jd-similar-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 720px) { .jd-similar-grid { grid-template-columns: 1fr; } }

/* ==================== 日本語版モーダル ==================== */
.jp-only-modal { position: fixed; inset: 0; z-index: 10000; display: none; align-items: center; justify-content: center; padding: 20px; }
.jp-only-modal.show { display: flex; }
.jp-only-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.65); backdrop-filter: blur(2px); }
.jp-only-dialog { position: relative; background: #fff; border-radius: 18px; max-width: 580px; width: 100%; padding: 32px 30px 28px; box-shadow: 0 16px 50px rgba(0,0,0,.25); text-align: center; animation: jpOnlyFadeIn .25s ease; }
@keyframes jpOnlyFadeIn { from { opacity: 0; transform: translateY(-12px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
.jp-only-icon { font-size: 2.6rem; color: #ffd000; line-height: 1; margin-bottom: 10px; }
.jp-only-title { font-size: 1.25rem; font-weight: 800; margin: 0 0 16px; color: #1a1a1a; }
.jp-only-body { text-align: left; margin-bottom: 22px; }
.jp-only-body p { margin: 0 0 12px; line-height: 1.85; color: #333; }
.jp-only-body p.ja { font-size: .95rem; }
.jp-only-body p.en { font-size: .82rem; color: #666; padding-top: 12px; border-top: 1px solid #f0f0f0; margin-top: 12px; }
.jp-only-body strong { color: #c0392b; font-weight: 700; }
.jp-only-actions { display: flex; flex-direction: column; gap: 10px; }
.jp-only-btn-primary { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #ffd000; color: #1a1a1a; padding: 14px 22px; border-radius: 12px; font-weight: 800; font-size: 1rem; text-decoration: none; transition: .15s; border: none; cursor: pointer; }
.jp-only-btn-primary:hover { background: #1a1a1a; color: #ffd000; }
.jp-only-btn-primary i { font-size: 1.2rem; }
.jp-only-btn-secondary { background: transparent; color: #888; border: none; padding: 8px 12px; font-size: .82rem; cursor: pointer; text-decoration: underline; }
.jp-only-btn-secondary:hover { color: #1a1a1a; }
@media (max-width: 580px) {
  .jp-only-dialog { padding: 24px 20px; }
  .jp-only-title { font-size: 1.1rem; }
  .jp-only-body p.ja { font-size: .88rem; }
  .jp-only-body p.en { font-size: .76rem; }
}
