/* Reset & base */
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:'Noto Sans JP',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#0f172a;background:#ffffff;line-height:1.8}
img{max-width:100%;display:block}a{text-decoration:none;color:inherit}
.container{width:min(1120px,92%);margin-inline:auto}
.sp{display:none}@media(max-width:768px){.sp{display:inline}}

/* Colors */
:root{
  --brand:#0ea5e9; /* blue */
  --ink:#0f172a;
  --muted:#475569;
  --soft:#f0f9ff;
  --alt:#f8fafc;
  --line:#e5e7eb;
}

/* Header */
.site-header{position:sticky;top:0;background:#ffffffcc;backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line);z-index:50}
.header-inner{display:flex;justify-content:space-between;align-items:center;padding:12px 0}
.brand{display:flex;align-items:center;gap:10px}
.logo{height:28px}
.brand-text{font-weight:800;letter-spacing:.05em}
.nav{display:flex;gap:12px;align-items:center}
.nav a{padding:.55rem .8rem;border-radius:999px}
.nav .btn-small{border:1px solid var(--brand);color:var(--brand)}

/* Buttons */
.btn{display:inline-block;padding:.9rem 1.2rem;border-radius:14px;border:1px solid #00000010;transition:transform .06s ease,box-shadow .25s ease}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--brand);color:#fff;border:none;box-shadow:0 10px 28px rgba(14,165,233,.28)}
.btn-outline{border:1px solid #94a3b8}

/* Hero */
.hero{background:linear-gradient(180deg,var(--soft) 0%,#fff 80%)}
.hero-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:center;padding:72px 0 56px}
.hero h1{font-size:clamp(28px,4.2vw,48px);line-height:1.25;margin:0 0 8px}
.lead{color:var(--muted);margin:0 0 18px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 0;padding:0;list-style:none}
.badges li{padding:6px 10px;border:1px dashed #93c5fd;border-radius:999px;background:#eff6ff}
.hero-visual img{width:100%;height:auto}
@media(max-width:920px){.hero-inner{grid-template-columns:1fr}}

/* Sections */
.section{padding:56px 0}
.section.alt{background:var(--alt)}
.section.highlight{background:#f0f9ff;border-block:1px solid #bae6fd}
.section h2{font-size:clamp(22px,3vw,30px);margin:0 0 18px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:900px){.grid-3{grid-template-columns:1fr}}

/* Cards */
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 22px rgba(2,6,23,.06)}

/* Pay/conditions */
.pay-box{margin-top:18px;border:1px solid var(--line);border-radius:18px;padding:16px;background:#fff}
.pay-box .note{color:var(--muted);font-size:.95rem}
.checklist{margin:0 0 8px 1.2rem}
.checklist li{margin:.2rem 0}

/* Steps */
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding-left:0;list-style:none}
.steps li{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}
.steps li span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--brand);color:#fff;font-weight:700}
@media(max-width:900px){.steps{grid-template-columns:1fr}}

/* FAQ */
.faq{border:1px solid var(--line);border-radius:14px;padding:10px 14px;background:#fff;margin:8px 0}
.faq summary{cursor:pointer;font-weight:600}

/* Form */
form{max-width:820px}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.form-row{display:flex;flex-direction:column;gap:6px}
.form-row.full{grid-column:1/-1}
label{font-weight:700}
.req{color:#ef4444;font-size:.85em;margin-left:6px}
input[type="text"],input[type="email"],input[type="tel"],textarea{padding:12px 14px;border:1px solid #cbd5e1;border-radius:12px;font-size:1rem}
textarea{resize:vertical}
.agree-line{display:flex;align-items:center;gap:8px;margin:12px 0}
.form-actions{display:flex;align-items:center;gap:12px;margin-top:8px}
.form-status{color:var(--muted)}

/* Footer */
.site-footer{padding:28px 0;border-top:1px solid var(--line);background:#fff}
.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}



/* === Responsive nav fix (added by ChatGPT) === */
@media (max-width: 640px) {
  .header-inner{
    flex-wrap: wrap;
    row-gap: 8px;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:8px;
    flex: 1 1 100%;
    min-width: 0;
  }
  .brand .logo{
    width: 32px;
    height: auto;
  }
  .brand .brand-text{
    font-size: 16px;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .nav{
    flex: 1 1 100%;
    display:flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
  }
  .nav a{
    padding: .5rem .7rem;
    font-size: 14px;
    line-height: 1.1;
  }
  .nav .btn-small{
    white-space: nowrap;
  }
}
