/* Terms of use / privacy policy pages (site/terms, site/privacy, site/en/...). No scripts, no external resources. */
:root{--cream:#f7f2e7;--paper:#fffdf8;--ink:#163126;--muted:#5f6d64;--forest:#173c2e;--leaf:#2b8054;--mint:#e3f2e6;--orange:#e56b40;--warn-bg:#fff4e6;--warn-line:#d98a2b;--line:#dfdfd3;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:"Yu Gothic UI","Yu Gothic","Hiragino Sans","Noto Sans JP",Meiryo,system-ui,sans-serif;line-height:1.85;font-size:16px}
a{color:var(--leaf);text-underline-offset:3px}
a:hover{color:var(--orange)}
code{font-family:var(--mono);font-size:.86em;background:#f0ede2;border-radius:5px;padding:1px 5px;overflow-wrap:anywhere}
.legal-nav{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);background:rgba(247,242,231,.94);backdrop-filter:blur(12px)}
.legal-nav-inner{width:min(1040px,calc(100% - 32px));margin:auto;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.legal-logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink)}
.legal-logo img{display:block;width:132px;height:44px;object-fit:contain}
.legal-logo span{padding:3px 7px;border-radius:999px;background:var(--forest);color:#fff;font-size:.6rem;font-weight:900;letter-spacing:.08em}
.legal-links{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.legal-links a{padding:6px 11px;border-radius:999px;text-decoration:none;color:#3f564a;font-size:.8rem;font-weight:700}
.legal-links a[aria-current="page"]{background:var(--forest);color:#fff}
.legal-links a.lang{border:1px solid var(--line);background:var(--paper)}
.legal{width:min(1040px,calc(100% - 32px));margin:0 auto;padding:44px 0 64px;display:grid;grid-template-columns:230px minmax(0,1fr);gap:40px;align-items:start}
.legal-head{grid-column:1/-1}
.eyebrow{margin:0 0 6px;color:var(--orange);font-size:.74rem;font-weight:900;letter-spacing:.14em}
h1{margin:0;font-size:clamp(1.9rem,4.6vw,2.9rem);line-height:1.2;letter-spacing:-.02em}
.legal-meta{margin:14px 0 0;color:var(--muted);font-size:.86rem}
.legal-lead{margin:22px 0 0;padding:20px 22px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}
.legal-lead p{margin:0}.legal-lead p+p{margin-top:10px}
.promise{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0 0;padding:0;list-style:none}
.promise li{padding:14px 12px;border-radius:14px;background:var(--mint);text-align:center;font-weight:800;font-size:.92rem;line-height:1.4}
.promise li small{display:block;margin-top:4px;color:var(--muted);font-weight:600;font-size:.72rem}
.toc{position:sticky;top:84px;padding:16px 16px 12px;border:1px solid var(--line);border-radius:16px;background:var(--paper);font-size:.82rem;line-height:1.5;max-height:calc(100vh - 110px);overflow:auto}
.toc p{margin:0 0 8px;font-weight:900;color:var(--forest)}
.toc ol{margin:0;padding:0;list-style:none}
.toc li{margin:0 0 7px}
.toc a{color:#3f564a;text-decoration:none}
.toc a:hover{color:var(--orange);text-decoration:underline}
.legal-body{min-width:0}
.legal-body section{padding:0 0 26px;margin:0 0 26px;border-bottom:1px solid var(--line)}
.legal-body section:last-of-type{border-bottom:0}
h2{margin:0 0 12px;font-size:1.18rem;line-height:1.45;color:var(--forest)}
h3{margin:18px 0 8px;font-size:1rem}
.legal-body p{margin:0 0 10px}
.legal-body ol,.legal-body ul{margin:0 0 10px;padding-left:1.5em}
.legal-body li{margin:0 0 6px}
ol.paren{list-style:none;padding-left:0;counter-reset:item}
ol.paren>li{position:relative;padding-left:2.4em;counter-increment:item}
ol.paren>li::before{content:"(" counter(item) ")";position:absolute;left:0;width:2.2em;color:var(--muted);font-weight:700}
.callout{margin:12px 0;padding:14px 16px;border-left:5px solid var(--warn-line);border-radius:0 12px 12px 0;background:var(--warn-bg)}
.callout p:last-child{margin-bottom:0}
.table-wrap{overflow-x:auto;margin:12px 0;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
table{width:100%;border-collapse:collapse;font-size:.88rem;line-height:1.65;min-width:640px}
th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
thead th{background:#eef2e8;font-size:.8rem;color:var(--forest)}
tbody tr:last-child td{border-bottom:0}
td:first-child{font-weight:700;width:30%}
.operator{margin-top:8px;padding:20px 22px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}
.operator h2{margin-bottom:8px}
.operator dl{display:grid;grid-template-columns:8.5em minmax(0,1fr);gap:6px 14px;margin:0}
.operator dt{color:var(--muted);font-size:.86rem}
.operator dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.note{color:var(--muted);font-size:.86rem}
.legal-footer{border-top:1px solid var(--line);padding:26px 0 40px}
.legal-footer-inner{width:min(1040px,calc(100% - 32px));margin:auto;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:.8rem}
.legal-footer-inner nav{display:flex;gap:14px;flex-wrap:wrap}
.legal-footer-inner a{color:#51635a}
@media (max-width:860px){
  html{scroll-padding-top:16px}
  .legal-nav{position:static}
  .legal{grid-template-columns:1fr;gap:22px;padding-top:30px}
  .toc{position:static;max-height:none}
  .promise{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .table-wrap{overflow:visible;border:0;background:transparent}
  table{min-width:0;font-size:.86rem}
  thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  tbody tr{display:block;margin:0 0 10px;border:1px solid var(--line);border-radius:14px;background:var(--paper);overflow:hidden}
  td{display:block;width:auto!important;border-bottom:1px solid var(--line)}
  td:first-child{background:#eef2e8;color:var(--forest)}
  tbody tr td:last-child{border-bottom:0}
  td[data-label]::before{content:attr(data-label);display:block;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.04em}
}
@media (max-width:520px){
  body{font-size:15px}
  .legal-logo img{width:112px;height:38px}
  .legal-links a{padding:5px 8px;font-size:.74rem}
  .operator dl{grid-template-columns:1fr;gap:0 0}
  .operator dd{margin-bottom:8px}
}
@media print{
  .legal-nav,.toc,.legal-footer{display:none}
  .legal{display:block;padding:0}
  body{background:#fff}
  a{color:inherit}
}
