:root { --ink:#f5fff2; --muted:#c7d9c2; --accent:#d7e995; --sea:#55d0c5; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-height:100vh; color:var(--ink); font-family:"Noto Sans JP",sans-serif; background:#07180b url("assets/yanbaru-forest.png") center top/cover fixed no-repeat; }
body::before { content:""; position:fixed; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(3,17,7,.94),rgba(4,20,10,.83)),linear-gradient(0deg,rgba(2,12,5,.96),transparent 55%); }
.policy-header { display:flex; align-items:center; justify-content:space-between; width:min(1160px,calc(100% - 48px)); margin:0 auto; padding:28px 0; }
.policy-logo { display:inline-flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none; font:600 1.35rem "DM Sans",sans-serif; }
.policy-logo svg { width:34px; height:34px; fill:#b8df8d; }
.policy-logo .logo-line { fill:none; stroke:white; stroke-width:1.7; stroke-linecap:round; }
.back-link { padding:10px 16px; color:var(--ink); border:1px solid rgba(255,255,255,.16); border-radius:999px; background:rgba(6,29,13,.48); text-decoration:none; font-size:.78rem; backdrop-filter:blur(12px); }
.policy-layout { display:grid; grid-template-columns:310px minmax(0,720px); align-items:start; gap:clamp(45px,8vw,110px); width:min(1160px,calc(100% - 48px)); margin:56px auto 90px; }
.policy-summary { position:sticky; top:38px; }
.eyebrow { margin:0 0 15px; color:var(--accent); font:600 .77rem "DM Sans",sans-serif; letter-spacing:.18em; }
.policy-summary h1 { margin:0; font-size:clamp(2.5rem,5vw,4.3rem); line-height:1.16; letter-spacing:-.06em; }
.policy-summary > p:not(.eyebrow) { margin:22px 0 30px; color:var(--muted); font-size:.92rem; line-height:1.9; }
.policy-summary dl { margin:0; padding-top:20px; border-top:1px solid rgba(255,255,255,.12); }
.policy-summary dl div { display:flex; justify-content:space-between; gap:18px; margin-top:11px; font-size:.73rem; }
.policy-summary dt { color:rgba(199,217,194,.65); }
.policy-summary dd { margin:0; }
.policy-content { overflow:hidden; border:1px solid rgba(215,233,149,.17); border-radius:30px; background:rgba(7,27,13,.84); box-shadow:0 26px 90px rgba(0,0,0,.35); backdrop-filter:blur(20px); }
.policy-content section { position:relative; padding:32px clamp(24px,5vw,50px); border-top:1px solid rgba(255,255,255,.08); }
.policy-content section:first-child { border-top:0; }
.policy-intro { background:linear-gradient(120deg,rgba(85,208,197,.1),rgba(215,233,149,.06)); }
.policy-content h2 { margin:0 0 17px; font-size:1.2rem; letter-spacing:-.02em; }
.policy-content h3 { margin:23px 0 8px; color:rgba(245,255,240,.92); font-size:.92rem; }
.policy-content p, .policy-content li { color:var(--muted); font-size:.88rem; line-height:1.95; }
.policy-content p { margin:0; }
.policy-content p + p { margin-top:13px; }
.inline-link { color:var(--accent); text-underline-offset:3px; }
.policy-content ul { display:grid; gap:7px; margin:12px 0 0; padding-left:1.25em; }
.section-number { position:absolute; right:clamp(24px,5vw,50px); top:34px; color:rgba(215,233,149,.35); font:600 .68rem "DM Sans",sans-serif; letter-spacing:.12em; }
.service-list { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:20px 0; }
.service-list a { display:grid; gap:4px; padding:16px; color:var(--ink); border:1px solid rgba(255,255,255,.1); border-radius:15px; background:rgba(255,255,255,.035); text-decoration:none; }
.service-list a:hover { border-color:rgba(215,233,149,.35); }
.service-list strong { font-size:.88rem; }
.service-list span { color:var(--muted); font-size:.72rem; }
.development-notice { margin-top:18px; padding:17px; border:1px solid rgba(215,233,149,.16); border-radius:16px; background:rgba(215,233,149,.06); }
.development-notice strong { color:var(--accent); font-size:.78rem; }
.development-notice p { margin-top:5px; font-size:.78rem; }
.policy-footer { display:flex; justify-content:space-between; width:min(1160px,calc(100% - 48px)); margin:0 auto; padding:28px 0 38px; color:rgba(199,217,194,.58); border-top:1px solid rgba(255,255,255,.09); font-size:.72rem; }
.policy-footer a { color:rgba(245,255,240,.75); }
.policy-footer nav { display:flex; flex-wrap:wrap; gap:18px; }
.legal-notice { margin-bottom:14px; padding:18px 20px; border:1px solid rgba(85,208,197,.2); border-radius:18px; background:rgba(85,208,197,.07); }
.legal-notice strong { display:block; margin-bottom:6px; color:var(--sea); font-size:.82rem; }
.legal-notice p { font-size:.8rem; }
.commerce-list { margin:0; }
.commerce-row { display:grid; grid-template-columns:190px minmax(0,1fr); gap:28px; padding:24px clamp(24px,5vw,50px); border-top:1px solid rgba(255,255,255,.08); }
.commerce-row:first-child { border-top:0; }
.commerce-row dt { color:rgba(215,233,149,.78); font-size:.78rem; font-weight:600; line-height:1.7; }
.commerce-row dd { margin:0; color:var(--muted); font-size:.88rem; line-height:1.85; }
.commerce-row dd strong { color:var(--ink); font-size:1rem; }
.commerce-note { padding:26px clamp(24px,5vw,50px); color:rgba(199,217,194,.68); border-top:1px solid rgba(255,255,255,.08); font-size:.75rem; line-height:1.8; }
@media (max-width:800px) { .policy-layout { grid-template-columns:1fr; gap:30px; margin-top:30px; } .policy-summary { position:static; } .policy-summary h1 br { display:none; } }
@media (max-width:560px) { body { background-attachment:scroll; } .policy-header,.policy-layout,.policy-footer { width:calc(100% - 32px); } .policy-header { padding:21px 0; } .policy-layout { margin-bottom:55px; } .policy-content { border-radius:23px; } .policy-content section { padding:27px 20px; } .section-number { right:20px; top:29px; } .service-list { grid-template-columns:1fr; } .policy-summary dl div { justify-content:flex-start; } .policy-summary dt { min-width:90px; } .policy-footer { align-items:flex-start; flex-direction:column; gap:14px; } .commerce-row { grid-template-columns:1fr; gap:7px; padding:21px 20px; } .commerce-note { padding:23px 20px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
