
:root{
  --bg:#ffffff;
  --surface:#f6f8fb;
  --surface-blue:#f1f7ff;
  --text:#172033;
  --muted:#5d697a;
  --line:#e2e8f0;
  --brand:#075fca;
  --brand-dark:#064a9c;
  --accent:#12a6c8;
  --max:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN",
    "Hiragino Sans","Yu Gothic","Meiryo",sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.9;
  letter-spacing:.012em;
}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.site-header{
  position:sticky;top:0;z-index:30;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(12px);
}
.header-inner,.footer-inner,.container{
  width:min(calc(100% - 40px),var(--max));
  margin:0 auto;
}
.header-inner{
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand{
  display:flex;align-items:center;gap:11px;
  color:var(--text);font-weight:800;font-size:20px;
}
.brand--lockup{gap:8px;min-width:180px}
.brand--lockup:hover{text-decoration:none}
.brand-logo{
  flex:0 0 auto;
  display:block;
  width:38px;
  height:38px;
  object-fit:contain;
}
.brand-info{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  white-space:nowrap;
}
.brand-name{
  color:#14294d;
  font-size:11.5px;
  font-weight:800;
  letter-spacing:.04em;
  line-height:1;
}
.brand-tagline{
  color:#8090a0;
  font-size:7.2px;
  font-weight:700;
  letter-spacing:.1em;
  line-height:1.15;
}
.brand-mark{
  width:34px;height:34px;border-radius:9px;
  display:grid;place-items:center;
  color:#fff;font-weight:800;font-size:12px;
  background:linear-gradient(135deg,var(--brand),var(--accent));
}
.nav{display:flex;gap:22px;align-items:center;font-size:14px}
.nav a{color:var(--text)}
.hero{
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(circle at 86% 8%,rgba(18,166,200,.12),transparent 30%),
    linear-gradient(180deg,#f8fbff 0%,#fff 100%);
}
.hero-inner{
  width:min(calc(100% - 40px),var(--max));
  margin:0 auto;padding:72px 0 58px;
}
.eyebrow{
  color:var(--brand);font-size:13px;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;
}
h1{
  margin:12px 0 15px;
  font-size:clamp(32px,5vw,54px);
  line-height:1.22;letter-spacing:-.03em;
}
.hero p{max-width:800px;color:var(--muted);margin:0}
.meta{margin-top:20px;color:var(--muted);font-size:13px}
main{padding:58px 0 88px}
.policy-layout{
  display:grid;grid-template-columns:270px minmax(0,1fr);
  gap:50px;align-items:start;
}
.toc{
  position:sticky;top:96px;
  padding:22px;border:1px solid var(--line);
  border-radius:14px;background:#fff;
}
.toc-title{font-weight:800;margin-bottom:10px}
.toc a{
  display:block;padding:5px 0;color:var(--muted);
  font-size:13px;line-height:1.6;
}
.policy{min-width:0}
.policy h2{
  scroll-margin-top:100px;
  margin:50px 0 16px;
  padding-bottom:10px;border-bottom:1px solid var(--line);
  font-size:24px;line-height:1.45;
}
.policy h2:first-child{margin-top:0}
.policy h3{
  margin:28px 0 9px;font-size:18px;line-height:1.55
}
.policy p{margin:10px 0}
.policy ul,.policy ol{padding-left:1.5em}
.policy li{margin:.45em 0}
.lead-box{
  margin:0 0 34px;padding:22px 24px;
  border:1px solid #d8e7fb;border-radius:14px;
  background:var(--surface-blue);
}
.lead-box strong{display:block;margin-bottom:5px}
.info-box{
  margin:24px 0;padding:20px 22px;
  border:1px solid var(--line);border-radius:12px;
  background:var(--surface);
}
.info-box strong{display:block;margin-bottom:4px}
.term{
  display:inline-block;padding:2px 7px;border-radius:5px;
  background:#eef4fb;font-size:.92em;
}
.contact-box{
  margin-top:18px;padding:22px;
  border:1px solid var(--line);border-radius:14px;
  background:var(--surface);
}
.policy-links{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:14px;margin-top:58px;
}
.policy-card{
  display:block;padding:18px;border:1px solid var(--line);
  border-radius:12px;background:#fff;color:var(--text);
}
.policy-card:hover{border-color:#bfd5ef;text-decoration:none}
.policy-card strong{display:block;margin-bottom:4px}
.policy-card span{font-size:13px;color:var(--muted)}
.site-footer{border-top:1px solid #1b2638;background:#0e1726;color:#c7d0dd}
.footer-inner{padding:34px 0}
.footer-links{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:12px}
.footer-links a{color:#eaf2ff;font-size:13px}
.copyright{font-size:12px;color:#8f9cad}
@media(max-width:880px){
  .nav{display:none}
  .brand--lockup{min-width:0;gap:7px}
  .brand--lockup .brand-logo{width:34px;height:34px}
  .brand-name{font-size:10px}
  .brand-tagline{font-size:6px;letter-spacing:.08em}
  .hero-inner{padding:50px 0 42px}
  .policy-layout{grid-template-columns:1fr}
  .toc{position:static}
  .policy-links{grid-template-columns:1fr}
}
