
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic','Meiryo',sans-serif;
  color:#222; line-height:1.8; background:#fff;
}
img{max-width:100%; height:auto; display:block}
a{color:#0b79d0; text-decoration:none}
a:hover{text-decoration:underline}
.container{width:min(1100px,92%); margin:0 auto}
.site-header{background:#111;color:#fff;position:sticky;top:0;z-index:100}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:10px 0}
.logo a{color:#fff;font-weight:700;font-size:18px}
.global-nav ul{list-style:none;display:flex;gap:18px;margin:0;padding:0}
.global-nav a{color:#fff}
.site-footer{background:#111;color:#ddd;padding:24px 0;margin-top:48px;text-align:center}
.site-footer .company{margin:.2rem 0}
.site-footer .addr{margin:.2rem 0;font-size:.95rem;color:#bbb}
.page-main{padding-top:0}
.page-title{font-size:28px;margin:16px 0 12px}
.hero,.recruit-hero{
  min-height:54vh; display:grid; place-items:center;
  background-size:cover; background-position:center;
  position:relative; color:#fff; text-align:center;
}
.hero .hero-overlay,.recruit-hero .hero-overlay{
  background:rgba(0,0,0,.45); padding:32px; border-radius:14px; width:min(900px,92%)
}
.catch{font-size:clamp(22px,3.5vw,38px); margin:0 0 10px; font-weight:700}
.lead{font-size:clamp(15px,2vw,18px); margin:0}
.section{padding:36px 0}
.main-figure{margin:12px 0 20px}
.sub-figure{margin:8px 0 18px}
.def{display:grid;grid-template-columns:1fr;gap:8px}
.def dt{font-weight:700;min-width:7em}
.def > div{display:grid;grid-template-columns:10em 1fr; gap:10px; padding:10px; border:1px solid #eee; border-radius:8px}
.list{padding-left:1.2em}
blockquote{background:#f8f8f8;border-left:4px solid #0b79d0;margin:14px 0;padding:12px}
.recruit-block .center{text-align:center}
.narrow{width:min(860px,100%);margin-inline:auto}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:22px}
.card{background:#fff;border:1px solid #eee;border-radius:12px;padding:18px;box-shadow:0 6px 18px rgba(0,0,0,.06)}
.card h3{margin:6px 0 8px}
.btn{display:inline-block;background:#0b79d0;color:#fff;padding:12px 20px;border-radius:999px;font-weight:700}
.btn:hover{background:#095f9f;text-decoration:none}
.mt32{margin-top:32px}
@media (max-width:900px){
  .grid-4{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){
  .global-nav ul{gap:10px;flex-wrap:wrap;justify-content:flex-end}
  .def > div{grid-template-columns:1fr}
  .grid-4{grid-template-columns:1fr}
}
