:root {
  --navy:#0D1F3C;
  --blue:#0055EE;
  --ink:#0D1F3C;
  --muted:#476383;
  --line:#CCD6E4;
  --off:#F2F3F0;
  --white:#FFFFFF;
  --container:min(960px, calc(100% - 40px));
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  color:var(--ink);
  background:var(--off);
  font-family:'Noto Sans JP',system-ui,sans-serif;
  line-height:1.9;
  letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
}
a { color:inherit; }
a:focus-visible { outline:3px solid #7EB3FF; outline-offset:4px; }
.legal-header {
  color:var(--white);
  background:var(--navy);
  border-bottom:1px solid rgba(188,200,220,.24);
}
.legal-header-inner {
  width:var(--container);
  min-height:78px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand {
  display:flex;
  align-items:baseline;
  gap:12px;
  text-decoration:none;
}
.brand-main {
  font-family:'Playfair Display',serif;
  font-size:1.28rem;
  font-weight:700;
  letter-spacing:.22em;
}
.brand-sub { color:#AEBBD0; font-size:.7rem; }
.back-link {
  color:#D3DCEC;
  font-size:.8rem;
  text-decoration:none;
}
.back-link::before { content:'←'; margin-right:8px; color:#6FA3FF; }
.legal-hero {
  position:relative;
  overflow:hidden;
  color:var(--white);
  background:var(--navy);
  padding:82px 0 88px;
}
.legal-hero::after {
  content:'';
  position:absolute;
  right:-120px;
  bottom:-200px;
  width:440px;
  height:440px;
  border:1px solid rgba(111,163,255,.24);
  border-radius:50%;
  box-shadow:0 0 0 80px rgba(0,85,238,.035), 0 0 0 160px rgba(0,85,238,.025);
}
.legal-hero-inner { position:relative; z-index:1; width:var(--container); margin:0 auto; }
.legal-hero-inner > * {
  opacity:0;
  transform:translateY(12px);
  animation:legal-intro .75s cubic-bezier(.22,1,.36,1) forwards;
}
.legal-hero-inner > *:nth-child(2) { animation-delay:.08s; }
.legal-hero-inner > *:nth-child(3) { animation-delay:.16s; }
.eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 16px;
  color:#6FA3FF;
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.eyebrow::before { content:''; width:34px; height:2px; background:#0055EE; }
h1,h2 { font-family:'Noto Serif JP',serif; }
h1 {
  max-width:800px;
  margin:0;
  font-size:clamp(2rem,5vw,3.35rem);
  line-height:1.4;
  letter-spacing:.04em;
}
.hero-note { max-width:680px; margin:20px 0 0; color:#BFCADD; font-size:.94rem; }
.legal-main { width:var(--container); margin:0 auto; padding:72px 0 104px; }
.legal-intro {
  margin-bottom:42px;
  padding:24px 26px;
  color:#294665;
  background:#E7EDF5;
  border-left:4px solid var(--blue);
  border-radius:0 8px 8px 0;
}
.legal-intro p { margin:0; }
.legal-section {
  padding:34px 0;
  border-top:1px solid var(--line);
}
.legal-section:last-child { border-bottom:1px solid var(--line); }
.section-head {
  display:grid;
  grid-template-columns:46px minmax(0,1fr);
  gap:12px;
  align-items:baseline;
  margin-bottom:14px;
}
.section-number {
  color:#8A9AB1;
  font-family:'Playfair Display',serif;
  font-size:.9rem;
  font-weight:700;
}
h2 { margin:0; font-size:1.32rem; line-height:1.55; }
.section-body { margin-left:58px; color:#294665; font-size:.92rem; }
.section-body p { margin:0; }
.section-body p + p { margin-top:12px; }
.section-body ul { margin:10px 0 0; padding-left:1.35em; }
.section-body li + li { margin-top:6px; }
.section-body a { color:var(--blue); text-underline-offset:3px; }
.service-list { display:grid; gap:16px; margin-top:20px; }
.service-card {
  padding:24px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:10px;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.service-card:hover {
  transform:translateY(-3px);
  border-color:#9AAECA;
  box-shadow:0 14px 30px rgba(13,31,60,.08);
}
.service-card-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.service-name { margin:0; color:var(--navy); font-weight:700; font-size:1.05rem; }
.service-label {
  flex:0 0 auto;
  padding:3px 9px;
  color:var(--blue);
  background:#E9F0FF;
  border-radius:999px;
  font-size:.68rem;
  font-weight:700;
}
.service-details { display:grid; grid-template-columns:130px 1fr; margin:0; }
.service-details dt,
.service-details dd { margin:0; padding:10px 0; border-top:1px solid #E4E9F0; }
.service-details dt { color:#71839B; font-size:.76rem; font-weight:700; }
.service-details dd { color:#294665; font-size:.84rem; }
.update-box {
  margin-top:20px;
  padding:20px 22px;
  color:#294665;
  background:#F8FAFC;
  border:1px dashed #9DADC1;
  border-radius:8px;
}
.update-box strong { display:block; margin-bottom:5px; color:var(--navy); }
.legal-meta { margin-top:42px; color:#6B7D94; font-size:.78rem; text-align:right; }
.legal-footer { color:#B8C4D8; background:var(--navy); padding:30px 0; }
.legal-footer-inner {
  width:var(--container);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.legal-footer-links { display:flex; flex-wrap:wrap; gap:12px 22px; }
.legal-footer a { color:#C7D2E4; font-size:.78rem; text-decoration:none; }
.legal-footer a:hover { color:#6FA3FF; }
.copyright { color:#8090A9; font-size:.72rem; }
@keyframes legal-intro {
  to { opacity:1; transform:translateY(0); }
}
@media (max-width:640px) {
  :root { --container:calc(100% - 32px); }
  .legal-header-inner { min-height:70px; }
  .brand-sub { display:none; }
  .legal-hero { padding:64px 0 68px; }
  .legal-main { padding:48px 0 72px; }
  .legal-intro { padding:20px; }
  .legal-section { padding:28px 0; }
  .section-head { grid-template-columns:36px minmax(0,1fr); gap:8px; }
  .section-body { margin-left:44px; }
  .service-card { padding:20px; }
  .service-card-head { display:block; }
  .service-label { display:inline-flex; margin-top:8px; }
  .service-details { grid-template-columns:1fr; }
  .service-details dt { padding:10px 0 2px; }
  .service-details dd { padding:0 0 10px; border-top:0; }
  .legal-footer-inner { flex-direction:column; align-items:flex-start; gap:16px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation:none !important; transition:none !important; }
  .legal-hero-inner > * { opacity:1; transform:none; }
}
