
:root{
  --blue:#1555f5;
  --violet:#5c42f5;
  --ink:#1f2430;
  --muted:#6f7380;
  --line:#e9eaf2;
  --lav:#f5f3ff;
  --paper:#fff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  background:#fff;
  line-height:1.85;
}
a{color:inherit}
.site-header{
  height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 5vw;
  position:relative;
  z-index:5;
}
.brand img{display:block;width:150px;height:auto}
.nav{display:flex;gap:30px;font-size:13px;font-weight:600}
.nav a{text-decoration:none}
.nav a:hover,.nav a.active{color:var(--violet)}
.hero{
  min-height:680px;
  padding:40px 7vw 0;
  overflow:hidden;
  background:
    radial-gradient(circle at 11% 30%,rgba(96,77,255,.10) 0 78px,transparent 79px),
    radial-gradient(circle at 91% 22%,rgba(128,94,255,.11) 0 112px,transparent 113px),
    linear-gradient(135deg,#fbfbff 0%,#f4f1ff 100%);
}
.hero-inner{
  max-width:1180px;margin:auto;
  display:grid;grid-template-columns:1fr .82fr;gap:70px;align-items:end;
}
.hero-copy{align-self:center;padding-bottom:70px}
.hero h1{
  font-size:92px;line-height:1;margin:0 0 28px;
  color:#3049df;letter-spacing:.025em;font-weight:800;
}
.hero h2{font-size:29px;line-height:1.65;margin:0 0 38px;font-weight:750}
.beta{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:340px;padding:16px 28px;border-radius:9px;
  background:linear-gradient(135deg,#6544f1,#4837ee);
  color:#fff;font-size:22px;font-weight:750;box-shadow:0 8px 22px rgba(78,59,239,.18);
}
.note{margin-top:24px;color:#555;font-size:13px}
.phone{
  width:min(100%,430px);margin-left:auto;
  padding:10px;border-radius:54px 54px 0 0;background:#171717;
  box-shadow:0 15px 45px rgba(40,32,90,.14);
}
.phone img{width:100%;display:block;border-radius:44px 44px 0 0}
.home-section{padding:78px 24px;text-align:center;border-top:1px solid #f4f4f7}
.home-section h3,.legal-title h1{
  margin:0 0 30px;color:#5547ea;font-size:26px;letter-spacing:.02em;
}
.home-section h3:after,.legal-title h1:after{
  content:"";display:block;width:40px;height:2px;background:#6a55ff;margin:10px auto 0;
}
.home-section p{max-width:760px;margin:0 auto;font-size:15px}
.company-name{font-weight:750;font-size:20px!important;margin-bottom:10px!important}
.footer{
  border-top:1px solid #eee;
  background:linear-gradient(180deg,#fff,#f8f7ff);
  padding:30px 20px 24px;text-align:center;
}
.footer-links{
  display:flex;justify-content:center;gap:0;flex-wrap:wrap;
  font-size:12px;color:#5143dc
}
.footer-links a{padding:0 24px;text-decoration:none;border-right:1px solid #cfcfe0}
.footer-links a:last-child{border:0}
.copy{font-size:12px;margin-top:22px;color:#555}
.legal-hero{
  padding:35px 24px 70px;
  background:
    radial-gradient(circle at 7% 56%,rgba(107,85,255,.08) 0 72px,transparent 73px),
    radial-gradient(circle at 93% 17%,rgba(107,85,255,.10) 0 100px,transparent 101px),
    linear-gradient(135deg,#fbfbff,#f4f2ff);
}
.legal-title{text-align:center;max-width:980px;margin:15px auto 45px}
.legal-title .docicon{font-size:38px;color:#614cf6;margin-bottom:8px}
.legal-title h1{font-size:38px;color:#1f2430;margin-bottom:18px}
.legal-title p{font-size:14px;color:#5d616d}
.legal-card{
  max-width:1160px;margin:auto;background:#fff;border-radius:12px;padding:42px 58px;
  box-shadow:0 8px 25px rgba(47,40,110,.035);
}
.legal-block{padding:17px 0}
.legal-block h2{
  font-size:18px;margin:0 0 10px;display:flex;align-items:center;gap:12px;
}
.legal-subheading{margin:28px 0 8px;font-size:16px;line-height:1.6;font-weight:700}
.legal-block .legal-purpose-label{margin-top:28px}
.num{
  flex:none;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#6544f1,#4837ee);color:#fff;font-size:13px;
}
.legal-block p,.legal-block li{font-size:14px;line-height:1.95}
.legal-block p{margin:6px 0}
.legal-block ul,.legal-block ol{margin:8px 0 0 1.5em;padding:0}
.legal-table{width:100%;border-collapse:collapse;font-size:14px}
.legal-table th,.legal-table td{border:1px solid #e3e4ec;padding:14px 16px;vertical-align:top;text-align:left}
.legal-table th{width:31%;background:#fafafe;font-weight:700}
.back-wrap{text-align:center;margin-top:35px}
.back-btn{
  display:inline-block;padding:10px 34px;border:1px solid #6b58ff;border-radius:6px;
  text-decoration:none;color:#5b48f4;font-size:13px
}
@media(max-width:850px){
  .site-header{height:64px;padding:0 20px}.brand img{width:120px}.nav{display:none}
  .hero{min-height:0;padding:38px 24px 0}
  .hero-inner{grid-template-columns:1fr;gap:32px}
  .hero-copy{text-align:center;padding-bottom:0}
  .hero h1{font-size:58px}.hero h2{font-size:21px}.beta{min-width:0;width:100%;max-width:340px;font-size:18px}
  .phone{margin:auto;width:min(88vw,390px)}
  .legal-card{padding:28px 22px}.legal-title h1{font-size:30px}
  .legal-table,.legal-table tbody,.legal-table tr,.legal-table th,.legal-table td{display:block;width:100%}
  .legal-table th{border-bottom:0}
}
