:root {
  --brand:#ef6758;
  --ink:#202a30;
  --muted:#62676b;
  --line:#e9e6e2;
  --paper:#fff;
  --warm:#fbfaf7;
  --container:1000px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","YuGothic","Noto Sans JP",sans-serif;
  line-height:2;
  letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
}
img { display:block; max-width:100%; height:auto; }
a { color:inherit; }
.terms-container { width:min(calc(100% - 40px),var(--container)); margin-inline:auto; }
.terms-narrow { max-width:920px; }
.skip-link {
  position:fixed; z-index:9999; top:8px; left:8px;
  padding:10px 16px; transform:translateY(-160%);
  background:#111; color:#fff; border-radius:8px;
}
.skip-link:focus { transform:translateY(0); }

.terms-header {
  border-bottom:1px solid var(--line);
  background:#fff;
}
.header-inner {
  min-height:90px;
  display:flex;
  align-items:center;
}
.terms-brand { display:block; width:220px; }

.terms-hero {
  padding:72px 0 58px;
  background:linear-gradient(180deg,#fff 0%,#fbfaf7 100%);
  border-bottom:1px solid var(--line);
}
.terms-hero h1 {
  margin:0;
  text-align:center;
  font-size:clamp(2.3rem,5vw,3.8rem);
  line-height:1.3;
  letter-spacing:.02em;
}
.terms-hero h1::after {
  content:"";
  display:block;
  width:64px; height:4px;
  margin:20px auto 0;
  border-radius:99px;
  background:var(--brand);
}
.updated {
  margin:22px 0 0;
  text-align:center;
  color:var(--muted);
  font-size:.92rem;
}
.terms-intro {
  margin:42px 0 0;
  padding:26px 30px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
}

.terms-document { padding:68px 0 100px; }
.terms-article {
  padding:0 0 48px;
  margin:0 0 48px;
  border-bottom:1px solid var(--line);
}
.terms-article:last-child { margin-bottom:0; border-bottom:0; }
.terms-article h2 {
  margin:0 0 24px;
  font-size:clamp(1.35rem,3vw,1.7rem);
  line-height:1.55;
}
.terms-paragraph,
.terms-definition,
.terms-manual-clause,
.terms-subitem {
  margin:0 0 14px;
}
.terms-definition,
.terms-subitem {
  padding-left:1.5em;
  text-indent:-1.5em;
}
.terms-manual-clause {
  padding-left:1.5em;
  text-indent:-1.5em;
}
.terms-clauses {
  margin:0;
  padding-left:2.1em;
}
.terms-clauses > li {
  margin:0 0 15px;
  padding-left:.35em;
}
.terms-continuation {
  margin:8px 0 0;
}
.terms-subitems {
  margin:12px 0 6px;
  padding-left:1.2em;
}
.terms-subitems .terms-subitem { margin-bottom:7px; }

.terms-footer {
  padding:52px 0 30px;
  background:#252422;
  color:#fff;
}
.footer-inner {
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.footer-logo {
  width:210px;
  padding:9px 14px;
  border-radius:9px;
  background:#fff;
}
.company-info {
  margin:24px 0 0;
  color:rgba(255,255,255,.68);
  font-size:.84rem;
}
.footer-links {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px 24px;
  margin-top:24px;
}
.footer-links a {
  color:rgba(255,255,255,.86);
  font-size:.86rem;
  text-decoration:none;
}
.footer-links a:hover,
.footer-links a:focus-visible { text-decoration:underline; }
.copyright {
  margin:22px 0 0;
  color:rgba(255,255,255,.48);
  font-size:.76rem;
}

@media (max-width:780px) {
  .terms-container { width:min(calc(100% - 30px),var(--container)); }
  .header-inner { min-height:76px; }
  .terms-brand { width:170px; }
  .terms-hero { padding:52px 0 44px; }
  .terms-intro { margin-top:32px; padding:22px 20px; border-radius:14px; }
  .terms-document { padding:52px 0 76px; }
  .terms-article { padding-bottom:38px; margin-bottom:38px; }
  .terms-clauses { padding-left:1.8em; }
}

@media print {
  body { color:#000; font-size:11pt; line-height:1.75; }
  .skip-link, .terms-footer { display:none !important; }
  .terms-header { border:0; }
  .terms-brand { width:170px; }
  .terms-hero { padding:24px 0 30px; background:#fff; }
  .terms-hero h1 { font-size:24pt; }
  .terms-document { padding:28px 0; }
  .terms-article { break-inside:avoid-page; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
}
