
/* Challenge Ojisan – Minimal, responsive CSS */
:root{
  --brand:#FF7A00;
  --ink:#111;
  --muted:#666;
  --bg:#fff;
  --card:#fafafa;
  --ring:rgba(255,122,0,.25);
  --max:1100px;
  --radius:18px;
  --shadow:0 10px 30px rgba(0,0,0,.06);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial, 'Noto Sans JP', 'Yu Gothic', 'YuGothic', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.7;
}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--max);margin:0 auto;padding:0 20px}
.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.9rem 1.2rem;border-radius:12px;
  background:var(--brand);color:#fff;font-weight:700;
  box-shadow:var(--shadow);
  transition:transform .08s ease, box-shadow .2s ease;
}
.btn.secondary{background:#111}
.btn:hover{transform:translateY(-1px);text-decoration:none}
.badge{display:inline-block;padding:.25rem .6rem;border-radius:999px;background:var(--card);border:1px solid #eee;color:var(--muted);font-weight:600}
header.site{
  background: radial-gradient(1200px 600px at 80% -20%, rgba(255,122,0,.18), transparent 60%), 
              conic-gradient(from 200deg at 10% 10%, rgba(255,122,0,.08), transparent 30%);
  border-bottom:1px solid #f1f1f1;
}
nav.nav{
  display:flex;justify-content:space-between;align-items:center;
  padding:16px 0;
}
nav .logo{display:flex;align-items:center;gap:.6rem;font-weight:800;font-size:18px}
nav .links a{margin-left:18px;color:#222}
.hero{
  padding:72px 0 42px;
}
.hero .title{font-size:clamp(28px, 5vw, 44px);line-height:1.15;margin:0 0 8px;font-weight:900;letter-spacing:.2px}
.hero p{max-width:720px;color:var(--muted);font-size:clamp(16px, 2.2vw, 18px)}
.hero .cta{margin-top:22px;display:flex;gap:12px;flex-wrap:wrap}
.grid{
  display:grid;gap:18px;
  grid-template-columns:repeat(12,1fr);
}
.card{
  background:var(--card);border:1px solid #eee;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)
}
.section{padding:54px 0;border-top:1px solid #f3f3f3}
.section h2{font-size:clamp(22px,3.2vw,28px);margin:0 0 14px}
.kpis{display:flex;gap:16px;flex-wrap:wrap}
.kpi{flex:1 1 160px;background:#fff;border:1px solid #eee;border-radius:16px;padding:16px;text-align:center;box-shadow:var(--shadow)}
.kpi .num{font-size:26px;font-weight:900}
.list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.item{border:1px solid #eee;border-radius:14px;padding:16px;background:#fff}
.item h4{margin:.2rem 0;font-size:18px}
footer{padding:36px 0;border-top:1px solid #f3f3f3;color:#777;font-size:14px}
hr.sep{border:none;height:1px;background:#eee;margin:26px 0}
/* simple table */
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px;border-bottom:1px solid #eee;text-align:left}
.table th{background:#fafafa}
/* responsive helpers */
.stack{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
/* notice */
.notice{border-left:4px solid var(--brand);background:#fff5ee;padding:14px;border-radius:10px;border:1px solid #ffe5d1}
/* fallback hero art */
.hero-art{margin-top:20px;border-radius:18px;border:1px dashed #ffddb8;padding:22px;text-align:center;color:#b35a00;background:linear-gradient(180deg,#fffaf5,#fff)}
/* sticky banner */
.banner{position:sticky;top:0;background:#111;color:#fff;padding:8px;z-index:9;text-align:center;font-size:14px}
@media (max-width:720px){
  .kpis{gap:10px}
  .btn{width:100%;justify-content:center}
}
