/* ハロトレナビ — 職業訓練コース検索・応募倍率比較 */
:root{
  --primary:#1a5fb4; --primary-d:#123f78; --primary-l:#eaf1fb;
  --bg:#f6f8fb; --card:#ffffff; --ink:#1b2430; --mut:#5b6675; --dim:#8b95a5;
  --line:#e3e7ee; --line2:#eef1f6;
  --easy:#2e9e6a; --easy-bg:#e7f6ee; --normal:#d98a1f; --normal-bg:#fdf3e3;
  --hard:#d1495b; --hard-bg:#fbe9ec; --unknown:#8b95a5; --unknown-bg:#eef0f3;
  --radius:10px; --shadow:0 1px 3px rgba(20,30,50,.06),0 1px 2px rgba(20,30,50,.04);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);line-height:1.7;
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic",Meiryo,system-ui,sans-serif;
  font-size:15px;-webkit-text-size-adjust:100%}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
.wrap{max-width:960px;margin:0 auto;padding:0 16px}

/* ===== header ===== */
.site-head{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.site-head .wrap{display:flex;align-items:center;gap:12px;height:56px}
.logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:19px;color:var(--primary-d);letter-spacing:-.01em}
.logo .mk{display:inline-flex;width:28px;height:28px;background:var(--primary);color:#fff;border-radius:7px;
  align-items:center;justify-content:center;font-size:15px;font-weight:800}
.site-head nav{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap}
.site-head nav a{color:var(--mut);font-size:13.5px;padding:6px 10px;border-radius:6px}
.site-head nav a:hover{background:var(--primary-l);color:var(--primary-d);text-decoration:none}

/* ===== breadcrumb ===== */
.bc{font-size:12px;color:var(--dim);padding:10px 0 0}
.bc a{color:var(--mut)}

/* ===== hero ===== */
.hero{background:linear-gradient(180deg,#fff,var(--bg));border-bottom:1px solid var(--line);padding:26px 0 22px}
.hero h1{font-size:23px;margin:0 0 8px;letter-spacing:-.01em;line-height:1.45}
.hero p.lead{color:var(--mut);margin:0 0 16px;font-size:14.5px}
.updated{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--dim);
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px 11px}
.updated b{color:var(--ink);font-weight:700}

/* entry buttons */
.entries{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:16px}
.entry{display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}
.entry:hover{border-color:var(--primary);text-decoration:none}
.entry .t{font-weight:700;color:var(--ink);font-size:15px}
.entry .d{font-size:12px;color:var(--dim)}

/* ===== section ===== */
section{padding:22px 0}
h2.sec{font-size:17px;margin:0 0 4px;display:flex;align-items:center;gap:8px}
h2.sec .bar{width:4px;height:17px;background:var(--primary);border-radius:2px;display:inline-block}
.sec-note{font-size:12px;color:var(--dim);margin:0 0 14px}

/* pref grid */
.pref-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.pref-cell{background:#fff;border:1px solid var(--line);border-radius:8px;padding:11px 13px;display:flex;
  align-items:baseline;justify-content:space-between;gap:6px}
.pref-cell.live:hover{border-color:var(--primary);text-decoration:none}
.pref-cell .pn{font-weight:700;color:var(--ink)}
.pref-cell .pc{font-size:12px;color:var(--primary);font-weight:700;white-space:nowrap}
.pref-cell.soon{color:var(--dim);background:var(--line2);border-style:dashed}
.pref-cell.soon .pn{color:var(--dim);font-weight:500}
.pref-cell.soon .pc{color:var(--dim);font-weight:500}

/* stat tiles */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:18px}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:13px 15px;box-shadow:var(--shadow)}
.stat .v{font-size:24px;font-weight:800;color:var(--primary-d);line-height:1.1}
.stat .l{font-size:12px;color:var(--mut);margin-top:3px}

/* ===== course cards / table ===== */
.course-list{display:flex;flex-direction:column;gap:8px}
.course{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:13px 15px;box-shadow:var(--shadow)}
.course:hover{border-color:#cdd6e4}
.course .top{display:flex;align-items:flex-start;gap:10px;margin-bottom:7px}
.course .cname{font-weight:700;font-size:15px;color:var(--ink);flex:1;line-height:1.45}
.course .fac{font-size:12.5px;color:var(--mut);margin-bottom:9px}
.course .fac::before{content:"🏫 ";}
.course .nums{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--mut);align-items:center}
.course .nums b{color:var(--ink);font-weight:700}
.chips{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}
.chip{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--primary-l);color:var(--primary-d);font-weight:600}
.chip.month{background:#eef1f6;color:var(--mut)}

/* tier badge */
.tier{font-size:12px;font-weight:800;padding:4px 11px;border-radius:999px;white-space:nowrap;display:inline-flex;gap:5px;align-items:center}
.tier .r{font-size:13px}
.tier.easy{background:var(--easy-bg);color:var(--easy)}
.tier.normal{background:var(--normal-bg);color:var(--normal)}
.tier.hard{background:var(--hard-bg);color:var(--hard)}
.tier.unknown{background:var(--unknown-bg);color:var(--unknown)}

/* 募集予定 */
.course.boshu{border-left:3px solid var(--primary)}
.chip.boshu-b{background:#0e7a4f;color:#fff;font-weight:700}
.prevb{margin-top:8px;font-size:12.5px;color:var(--mut);background:var(--line2);border-radius:6px;padding:5px 10px}
.prevb b{font-size:13.5px}

/* year sections */
.year-sec{margin-bottom:22px}
.year-h{display:flex;align-items:center;gap:9px;font-size:15px;margin:0 0 10px;padding-bottom:6px;border-bottom:2px solid var(--line)}
.year-h .yref{font-size:11px;font-weight:700;color:var(--dim);background:var(--line2);padding:2px 8px;border-radius:999px}
.year-h .year-n{margin-left:auto;font-size:12px;color:var(--dim);font-weight:400}

/* filter bar */
.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:11px 13px}
.filters .fg{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.filters label{font-size:12px;color:var(--dim);margin-right:2px}
.fbtn{font:inherit;font-size:12.5px;padding:5px 11px;border:1px solid var(--line);background:#fff;color:var(--mut);
  border-radius:999px;cursor:pointer}
.fbtn.on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}
.fbtn:hover{border-color:var(--primary)}

/* callout / notice */
.note-box{background:var(--primary-l);border:1px solid #d3e2f7;border-radius:var(--radius);padding:13px 16px;font-size:13px;color:var(--primary-d);margin:14px 0}
.note-box b{font-weight:700}
.cta{background:linear-gradient(135deg,var(--primary),var(--primary-d));color:#fff;border-radius:var(--radius);
  padding:18px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0}
.cta .txt{flex:1;min-width:180px}
.cta .txt b{font-size:16px;display:block;margin-bottom:2px}
.cta .txt span{font-size:12.5px;opacity:.9}
.cta a.btn{background:#fff;color:var(--primary-d);font-weight:800;padding:10px 20px;border-radius:8px;white-space:nowrap}
.cta a.btn:hover{text-decoration:none;background:#f0f4fb}

/* prose */
.prose{font-size:14px;color:var(--ink)}
.prose h3{font-size:15.5px;margin:20px 0 6px}
.prose p{margin:0 0 10px;color:var(--mut)}
.prose ul{margin:0 0 10px;padding-left:20px;color:var(--mut)}
.prose li{margin-bottom:4px}

.datasrc{font-size:11.5px;color:var(--dim);margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}

/* ===== footer ===== */
.site-foot{background:#fff;border-top:1px solid var(--line);margin-top:30px;padding:22px 0}
.site-foot .cols{display:flex;flex-wrap:wrap;gap:18px 40px;margin-bottom:16px}
.site-foot .col h4{font-size:12px;color:var(--dim);margin:0 0 7px;font-weight:700}
.site-foot .col a{display:block;font-size:13px;color:var(--mut);padding:2px 0}
.disclaimer{font-size:11.5px;color:var(--dim);line-height:1.6;border-top:1px solid var(--line);padding-top:14px}

.pager{display:flex;justify-content:center;gap:8px;margin:20px 0}
@media(max-width:560px){
  .hero h1{font-size:20px}
  .site-head nav{display:none}
  .cta{flex-direction:column;align-items:stretch}
  .cta a.btn{text-align:center}
}
