
:root {
  --bg: #ffffff;
  --text: #111111;
  --muted: #6b7280;
  --accent: #111111;
  --accent-weak: #f2f3f5;
  --brand: #111111;
  --container: 1200px;
  --radius: 16px;
  --shadow: 0 10px 30px rgba(0,0,0,.07);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: 'Noto Sans JP', system-ui, -apple-system, Segoe UI, Roboto, 'Hiragino Kaku Gothic ProN', 'Yu Gothic', Meiryo, sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.75;
}

.container{max-width:var(--container); margin:0 auto; padding:0 24px}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px 0}

.site-header{
  position:sticky; top:0; z-index:50; background: rgba(255,255,255,0.85);
  backdrop-filter: blur(8px);
  border-bottom:1px solid #e5e7eb;
}

.brand{
  font-family: 'Poppins', system-ui, sans-serif;
  font-weight:700; font-size:22px; letter-spacing:.5px; text-decoration:none; color:var(--brand);
}
.brand span{font-weight:500; color:var(--muted)}

.nav a{margin-left:20px; text-decoration:none; color:var(--text); font-weight:600}
.nav a.cta{padding:10px 14px; border:1px solid #111; border-radius:999px}
.nav a:hover{opacity:.8}

.hero{padding:80px 0}
.hero .container{display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center}
.eyebrow{color:var(--muted); font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin:0 0 8px}
.hero h1{font-size:clamp(28px, 4vw, 44px); line-height:1.2; margin:0 0 12px; font-weight:700}
.hero .sub{font-family:'Poppins',sans-serif; margin:0 0 20px; color:#374151}
.hero .btn{display:inline-block}

.hero-media img{width:100%; height:auto; border-radius:var(--radius); box-shadow:var(--shadow)}

.section{padding:72px 0}
.section.alt{background:var(--accent-weak)}

.two-col{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center}
.kicker{font-family:'Poppins',sans-serif; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; margin:0 0 6px}
.center{text-align:center}

.media-card img{width:100%; height:auto; border-radius:var(--radius); box-shadow:var(--shadow)}

.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:24px}
.card{background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden}
.card img{width:100%; height:220px; object-fit:cover; background:#e5e7eb}
.card h4{margin:16px 16px 8px; font-size:18px}
.card p{margin:0 16px 12px; color:#4b5563}
.card .link{display:inline-block; margin:0 16px 16px; text-decoration:none; font-weight:600; border-bottom:1px solid #111; padding-bottom:2px; color:#111}

.page-hero{padding:80px 0 40px; background:var(--accent-weak)}
.page-hero.small{padding:60px 0 30px}
.page-hero h1{margin:10px 0 0}

.def{display:grid; grid-template-columns:160px 1fr; gap:12px 24px; margin-top:16px}
.def dt{color:#6b7280}
.def dd{margin:0}

.steps{margin:0; padding-left:20px}
.steps li{margin:8px 0}

.cta-band{background:#111; color:#fff; padding:36px 0}
.cta-band-inner{display:flex; align-items:center; justify-content:space-between; gap:24px}
.btn, .btn-invert{display:inline-block; padding:12px 18px; border-radius:999px; text-decoration:none; font-weight:700; transition:.2s}
.btn{background:#111; color:#fff}
.btn:hover{opacity:.9}
.btn-invert{background:#fff; color:#111}

.site-footer{border-top:1px solid #e5e7eb; padding:32px 0; background:#fff}
.footer-grid{display:flex; align-items:flex-start; justify-content:space-between; gap:32px; flex-wrap:wrap}
.footer-title{font-weight:700}
.footer-nav a{display:inline-block; margin-right:16px; text-decoration:none; color:#4b5563}
.footer-nav a:hover{color:#111}

.req{color:#d00; font-size:12px; margin-left:6px}
.contact-form .grid.two{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.contact-form input, .contact-form select, .contact-form textarea{
  width:100%; padding:12px 14px; border-radius:12px; border:1px solid #e5e7eb; background:#fff;
}
.contact-form .actions{margin-top:16px}

@media (max-width: 960px){
  .hero .container{grid-template-columns:1fr; text-align:center}
  .two-col{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr; gap:16px}
  .cta-band-inner{flex-direction:column; text-align:center}
  .def{grid-template-columns:1fr}
  .contact-form .grid.two{grid-template-columns:1fr}
}

/* ----- スマホ対応（ヘッダー） ----- */
.hamburger {
  display: none;
  background: none;
  border: none;
  font-size: 26px;
  cursor: pointer;
}

@media (max-width: 768px) {
  .nav {
    position: absolute;
    top: 60px;
    right: 0;
    width: 100%;
    background: white;
    display: none;
    flex-direction: column;
    text-align: center;
    padding: 20px 0;
    gap: 16px;
    border-bottom: 1px solid #eee;
  }
  .nav.show {
    display: flex;
  }

  .hamburger {
    display: block;
  }

  .nav a {
    margin: 0;
    padding: 12px 0;
    width: 100%;
  }
}