*{box-sizing:border-box}body{margin:0;background:#08090b;color:#fff;font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif}a{color:inherit}.hero{min-height:92vh;padding:72px max(24px,7vw);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(280px,.72fr);gap:48px;align-items:center;background:radial-gradient(circle at 18% 18%,#343a46 0,#101318 42%,#050506 100%)}.badge{display:inline-flex;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:8px 14px;font-weight:800;color:#f2d65c;margin-bottom:22px}.hero h1{font-size:clamp(44px,8vw,104px);line-height:1.02;margin:0 0 24px;font-weight:950;letter-spacing:0}.lead{font-size:clamp(18px,2.1vw,28px);line-height:1.75;color:#e8e8e8;max-width:900px}.cta{display:inline-flex;margin-top:32px;background:#fff;color:#08090b;padding:18px 26px;border-radius:10px;text-decoration:none;font-weight:900}.hero-visual{min-height:420px;border:1px solid rgba(255,255,255,.16);border-radius:28px;background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.04));display:grid;place-items:center;text-align:center;padding:30px;font-weight:900;font-size:34px}.proof{padding:54px max(24px,7vw);display:grid;grid-template-columns:repeat(3,1fr);gap:18px;background:#fff;color:#111}.proof article{border:1px solid #ddd;border-radius:14px;padding:22px;min-height:128px}.proof b{display:block;font-size:28px}.proof span{display:block;margin-top:8px;line-height:1.6;color:#555}.band{padding:82px max(24px,7vw);background:#f8f8f5;color:#111;border-bottom:1px solid #dedede}.band.alt{background:#111;color:#fff}.inner{max-width:1080px;margin:0 auto}.eyebrow{letter-spacing:.16em;font-weight:900;color:#b18a2c;text-transform:uppercase}.band h2{font-size:clamp(34px,5.8vw,74px);line-height:1.12;margin:0 0 20px;font-weight:950}.band p,.band li{font-size:20px;line-height:1.9}.band ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;margin-top:28px}.pricing{padding:82px max(24px,7vw);background:#0c0f14}.pricing h2,.faq h2{font-size:56px}.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.plan{border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:26px;background:rgba(255,255,255,.06)}.price{font-size:34px;font-weight:950;color:#f2d65c}.faq{padding:82px max(24px,7vw);background:#fff;color:#111}details{border-bottom:1px solid #ddd;padding:20px 0}summary{font-size:22px;font-weight:900;cursor:pointer}.final{padding:70px max(24px,7vw);text-align:center;background:linear-gradient(135deg,#111827,#303946)}.final h2{font-size:clamp(36px,7vw,82px);margin:0 0 22px}@media(max-width:760px){.hero{grid-template-columns:1fr;min-height:auto}.proof,.plans{grid-template-columns:1fr}.band ul{grid-template-columns:1fr}.hero-visual{min-height:260px}.proof{padding-top:26px;padding-bottom:26px}}
html{scroll-behavior:smooth}
.contact{padding:82px max(24px,7vw);background:#0c0f14;color:#fff}
.contact .inner{max-width:760px}
.contact h2{font-size:clamp(34px,5.8vw,64px);margin:0 0 16px;font-weight:950}
.contact p.note{color:#c7cad2;line-height:1.9;font-size:18px;margin:0 0 28px}
.form{display:grid;gap:16px}
.form label{display:grid;gap:8px;font-weight:800}
.form input,.form textarea{font:inherit;padding:14px 16px;border-radius:10px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#fff}
.form input:focus,.form textarea:focus{outline:2px solid #8a7bff;outline-offset:2px}
.form .submit{appearance:none;border:0;cursor:pointer;background:#fff;color:#08090b;padding:18px 26px;border-radius:10px;font-weight:900;font-size:18px}
.form small{color:#9aa0ad;line-height:1.7}
.form-ok{margin-top:14px;padding:14px 16px;border-radius:10px;background:rgba(120,200,140,.16);border:1px solid rgba(120,200,140,.4);color:#d6ffe2;display:none}
.cta:focus{outline:2px solid #8a7bff;outline-offset:3px}
.site-footer{background:#050506;color:#8b909c;padding:40px max(24px,7vw);font-size:14px;line-height:1.8;border-top:1px solid rgba(255,255,255,.08)}
.site-footer b{color:#cfd2da;display:block;margin-bottom:6px}
@media(max-width:760px){.contact{padding:48px 24px}}

/* --- モバイル崩れ修正（390px QAで確認） --- */
html,body{overflow-x:hidden}
.hero h1{overflow-wrap:break-word;word-break:normal}
@media(max-width:760px){
  .hero{padding:56px 22px}
  .hero h1{font-size:clamp(34px,11vw,52px)}
  .lead{font-size:18px}
  .cta{width:100%;justify-content:center;margin-top:24px}
  .pricing,.faq,.band,.final,.contact{padding-left:22px;padding-right:22px}
  .pricing h2,.faq h2{font-size:34px}
  .band h2{font-size:30px}
  .band p,.band li{font-size:17px;line-height:1.85}
  summary{font-size:18px}
  .hero-visual{font-size:22px;min-height:200px}
  .proof b{font-size:24px}
}

/* --- 実画像差し込み（gpt-image-2 生成） --- */
.hero-visual{padding:0;overflow:hidden;border:1px solid rgba(255,255,255,.16)}
.hero-visual img{width:100%;height:100%;min-height:420px;object-fit:cover;display:block;border-radius:28px}
.band-fig{margin:36px 0 0;border-radius:18px;overflow:hidden;border:1px solid rgba(0,0,0,.12)}
.band.alt .band-fig{border-color:rgba(255,255,255,.18)}
.band-fig img{width:100%;display:block}
.band-fig--narrow{max-width:560px;margin-left:auto;margin-right:auto;background:#fff}
.band-fig--narrow img{padding:24px}
.band-fig figcaption{font-size:14px;line-height:1.6;padding:10px 16px;color:#666;background:rgba(0,0,0,.03)}
.band.alt .band-fig figcaption{color:#bcbcc4;background:rgba(255,255,255,.05)}
@media(max-width:760px){.hero-visual img{min-height:200px}.band-fig{margin-top:24px}}

/* badge: モバイルで折返し可・はみ出し防止 */
.badge{max-width:100%;white-space:normal;line-height:1.4}
@media(max-width:760px){.badge{font-size:12px;padding:6px 12px}}

/* hero H1/visual: 390pxで完全に収める最終調整 */
@media(max-width:760px){
  .hero h1{font-size:clamp(30px,9.2vw,40px);hyphens:none}
  .hero-visual{font-size:19px;padding:22px}
}

/* final CTA / contact 見出しと FAQ summary をモバイルで収める */
@media(max-width:760px){
  .final h2{font-size:30px;line-height:1.25}
  .contact h2{font-size:28px;line-height:1.25}
  summary{white-space:normal;overflow-wrap:break-word}
  .faq details{padding:16px 0}
}
