
:root{
  --bg:#ffffff;
  --text:#111111;
  --muted:#6b7280;
  --brand:#111111;
  --border:#e5e7eb;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:'Noto Sans JP',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Apple Color Emoji','Segoe UI Emoji';color:var(--text);background:var(--bg);line-height:1.6}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(1100px, 92%);margin:0 auto}
.site-header{position:sticky;top:0;background:rgba(255,255,255,.8);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--border);z-index:50}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.logo{font-weight:700;font-size:1.1rem}
.nav{display:flex;gap:18px;align-items:center}
.nav a{padding:8px 10px;border-radius:999px}
.nav a.cta{border:1px solid var(--text)}
.nav-toggle{display:none;background:none;border:none;font-size:22px}
.hero{padding:48px 0 24px;border-bottom:1px solid var(--border)}
.hero-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:center}
.hero-copy h1{font-size:2rem;margin:.2em 0}
.hero-actions{display:flex;gap:12px;margin-top:16px}
.btn{display:inline-block;padding:10px 16px;border-radius:12px;border:1px solid var(--text)}
.btn.ghost{background:transparent}
.btn.small{padding:8px 12px;font-size:.9rem}
.features{padding:36px 0}
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.feature h3{margin:.6em 0 .2em}
.img-placeholder{background:linear-gradient(45deg,#f3f4f6,#e5e7eb);border:1px dashed var(--muted);border-radius:14px;min-height:220px;display:flex;align-items:center;justify-content:center;color:var(--muted)}
.img-placeholder.square{min-height:160px}
.img-placeholder.rect{min-height:200px}
.img-placeholder.map{min-height:260px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:24px 0 10px}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{border:1px solid var(--border);border-radius:16px;padding:12px}
.card h3{margin:.6em 0 .2em}
.price{font-weight:700}
.cta-banner{padding:36px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-top:28px}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:16px}
.page-hero{padding:30px 0;border-bottom:1px solid var(--border)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:22px 0}
.filters{margin:16px auto}
.filter-form{display:flex;gap:10px}
.filter-form input,.filter-form select{padding:10px;border:1px solid var(--border);border-radius:10px;width:100%}
.info-table{width:100%;border-collapse:collapse;border:1px solid var(--border)}
.info-table th,.info-table td{padding:10px;border-bottom:1px solid var(--border);text-align:left}
.faq details{border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:10px}
.site-footer{border-top:1px solid var(--border);margin-top:40px;padding-top:20px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.5fr;gap:16px;padding-bottom:14px}
.footer-logo{font-weight:700;margin-bottom:8px}
.newsletter input{padding:10px;border:1px solid var(--border);border-radius:10px;width:100%;margin-bottom:8px}
.newsletter button{padding:10px 12px;border-radius:10px;border:1px solid var(--text)}
.legal{border-top:1px solid var(--border);padding:12px 0}
.small{font-size:.9rem;color:var(--muted)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:900px){
  .hero-inner,.two-col{grid-template-columns:1fr}
  .features-grid{grid-template-columns:1fr}
  .card-grid{grid-template-columns:1fr 1fr}
  .cta-inner{flex-direction:column;align-items:flex-start}
  .nav{display:none;position:absolute;right:16px;top:56px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px;flex-direction:column}
  .nav-toggle{display:block}
}
