    :root{
      --paper:#F4F3EF; --ink:#0D0D0D; --mute:#8C8C88; --line:#E3E2DD; --panel:#EAE8E2;
      --serif:"Cormorant Garamond","Noto Serif JP",serif;
      --serif-jp:"Noto Serif JP","Cormorant Garamond",serif;
      --sans:"Inter","Noto Sans JP",sans-serif;
      --jp:"Noto Sans JP","Inter",sans-serif;
    }
    *{ box-sizing:border-box; }
    body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--jp); font-weight:300;
      font-size:14px; line-height:1.95; letter-spacing:.02em; -webkit-font-smoothing:antialiased; }

    .site-header{ display:flex; align-items:center; justify-content:space-between; padding:24px 40px; border-bottom:1px solid var(--line); }
    .header-inner{ max-width:1120px; margin:0 auto; width:100%; display:flex; align-items:center; justify-content:space-between; }
    .logo img{ height:40px; width:auto; display:block; }
    .back-link{ font:500 11px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--ink); text-decoration:none; display:inline-flex; gap:8px; }
    .back-link:hover{ opacity:.55; }

    .wrap{ max-width:720px; margin:0 auto; padding:96px 24px 120px; }
    .eyebrow{ font:600 10px/1 var(--sans); letter-spacing:.22em; text-transform:uppercase; color:var(--mute); margin:0 0 24px; }
    .page-title{ font:400 clamp(40px,5vw,56px)/1.05 var(--serif); letter-spacing:-.008em; margin:0 0 16px; }
    .page-jp{ font:500 14px/1.8 var(--jp); color:var(--mute); margin:0 0 56px; }
    .lead{ font:300 14px/2 var(--jp); color:#333; margin:0 0 56px; }

    .policy h2{ font:500 16px/1.5 var(--serif-jp); color:var(--ink); margin:48px 0 14px; padding-top:28px; border-top:1px solid var(--line); }
    .policy h2 .no{ font:600 11px/1 var(--sans); letter-spacing:.1em; color:var(--mute); margin-right:12px; }
    .policy p{ margin:0 0 12px; color:#333; }
    .policy ul{ margin:0 0 12px; padding-left:1.2em; color:#333; }
    .policy li{ margin:0 0 6px; }

    .meta{ margin-top:64px; padding-top:28px; border-top:1px solid var(--line); font:300 13px/1.9 var(--jp); color:var(--mute); }

    .site-footer{ padding:48px 40px; background:var(--panel); }
    .footer-inner{ max-width:1120px; margin:0 auto; display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:20px; }
    .footer-inner img{ height:34px; }
    .site-footer .cp{ font:500 14px/1.8 var(--jp); color:var(--mute); margin:0; }

    @media (max-width:880px){
      .site-header{ padding:14px 22px; } .wrap{ padding:72px 22px 90px; } .site-footer{ padding:40px 22px; }
    }
