/* =========================================================
   Long-form policy pages (refund policy). Loaded after style.css and reuses its tokens.
   ========================================================= */
.policy-wrap{padding:8px 0 96px}
.policy-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:56px;align-items:start}
.policy-toc{min-width:0;position:sticky;top:104px;padding:20px 18px;border:1px solid rgba(124,58,237,.12);border-radius:20px;background:rgba(255,255,255,.7);backdrop-filter:blur(14px)}
.policy-toc b{display:block;margin-bottom:10px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--primary)}
.policy-toc nav{display:grid;gap:2px}
.policy-toc a{display:block;padding:7px 10px;border-radius:10px;font-size:13px;font-weight:600;color:#5f5668;line-height:1.35;transition:background .16s var(--ease),color .16s var(--ease)}
.policy-toc a:hover{background:#f5f0ff;color:var(--deep)}
.policy-toc a:focus-visible,.policy-body a:focus-visible,.policy-faq summary:focus-visible{outline:2px solid #a78bfa;outline-offset:2px}
.policy-body{min-width:0;max-width:820px}
.policy-updated{display:inline-flex;align-items:center;gap:8px;margin:0 0 22px;padding:7px 12px;border-radius:999px;background:#f0ebfc;color:var(--deep);font-size:12px;font-weight:700}

.policy-glance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 40px}
.policy-glance div{padding:18px 16px;border:1px solid rgba(124,58,237,.14);border-radius:20px;background:linear-gradient(180deg,#fff,#faf7ff);box-shadow:0 14px 30px rgba(124,58,237,.07)}
.policy-glance strong{display:block;font:700 28px/1 Geist,Inter,sans-serif;letter-spacing:-.05em;color:var(--deep)}
.policy-glance span{display:block;margin-top:8px;font-size:12.5px;line-height:1.45;color:var(--muted)}

.policy-body section{scroll-margin-top:104px;margin:0 0 44px}
.policy-body h2{display:flex;align-items:center;gap:12px;margin:0 0 14px;font:650 24px/1.15 Geist,Inter,sans-serif;letter-spacing:-.045em;color:#18181b}
.policy-num{display:inline-grid;place-items:center;flex:none;width:30px;height:30px;border-radius:10px;background:#ede9fe;color:var(--primary);font:700 13px Inter,sans-serif;letter-spacing:0}
.policy-body p{margin:0 0 14px;color:#4b4b53;font-size:15px;line-height:1.75}
.policy-body ul,.policy-body ol{list-style:revert;margin:0 0 16px;padding-left:22px;color:#4b4b53;font-size:15px;line-height:1.75}
.policy-body li{margin-bottom:6px}
.policy-body a{color:var(--deep);text-decoration:underline;text-underline-offset:3px}
.policy-body b,.policy-body strong{color:#18181b}

.policy-callout{display:flex;gap:14px;margin:0 0 16px;padding:18px 20px;border:1px solid #ddd6fe;border-radius:18px;background:#f5f0ff;color:#3b2a66;font-size:14.5px;line-height:1.65}
.policy-callout svg{flex:none;margin-top:3px;color:var(--primary)}
.policy-callout p{margin:0;color:inherit}
.policy-callout.is-warn{background:#fff8eb;border-color:#f7d9a4;color:#6b4000}
.policy-callout.is-warn svg{color:#c77700}

.policy-table-wrap{margin:0 0 18px;overflow-x:auto;border:1px solid rgba(124,58,237,.14);border-radius:18px;background:#fff}
.policy-table{width:100%;border-collapse:collapse;font-size:14px;min-width:520px}
.policy-table th{padding:13px 16px;text-align:left;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#6b6b85;background:#faf7ff;border-bottom:1px solid rgba(124,58,237,.14)}
.policy-table td{padding:14px 16px;vertical-align:top;border-bottom:1px solid rgba(124,58,237,.08);color:#4b4b53;line-height:1.55}
.policy-table tr:last-child td{border-bottom:0}
.policy-table td:first-child{font-weight:650;color:#18181b;width:34%}
.policy-table td:nth-child(2):not(:last-child){width:16%}
.policy-yes,.policy-no,.policy-info{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:800;white-space:nowrap}
.policy-yes{background:#ecfdf3;color:#147a52}
.policy-no{background:#fef3f2;color:#b42318}
.policy-info{background:#f0ebfc;color:var(--deep)}

.policy-body .policy-steps{list-style:none;margin:0 0 18px;padding:0;counter-reset:step;display:grid;gap:12px}
.policy-steps li{position:relative;margin:0;padding:16px 18px 16px 62px;border:1px solid rgba(124,58,237,.12);border-radius:18px;background:#fff;counter-increment:step}
.policy-steps li::before{content:counter(step);position:absolute;left:18px;top:15px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--primary);color:#fff;font:700 13px Inter,sans-serif}
.policy-steps li b{display:block;margin-bottom:3px}

.policy-body .policy-timeline{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.policy-timeline li{margin:0;padding:14px 14px 13px;border-radius:16px;background:#faf7ff;border:1px solid rgba(124,58,237,.12);font-size:13px;line-height:1.5;color:var(--muted)}
.policy-timeline li b{display:block;margin-bottom:3px;font-size:13.5px}

.policy-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 18px}
.policy-compare>div{padding:20px;border:1px solid rgba(124,58,237,.14);border-radius:20px;background:#fff}
.policy-compare h3{margin:0 0 10px;font:650 17px Geist,Inter,sans-serif;letter-spacing:-.03em}
.policy-compare ul{margin:0;padding-left:20px;font-size:14px;list-style:disc}

.policy-faq details{padding:16px 0;border-top:1px solid rgba(124,58,237,.14)}
.policy-faq details:last-child{border-bottom:1px solid rgba(124,58,237,.14)}
.policy-faq summary{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;list-style:none;font-size:15px;font-weight:700;color:#18181b}
.policy-faq summary::-webkit-details-marker{display:none}
.policy-faq summary svg{flex:none;color:var(--primary);transition:transform .2s var(--ease)}
.policy-faq details[open] summary svg{transform:rotate(180deg)}
.policy-faq details p{margin:12px 0 2px}

.policy-contact{padding:26px;border-radius:24px;background:linear-gradient(135deg,#7c3aed,#5b21b6);color:#fff}
.policy-contact h2{margin:0 0 8px;color:#fff}
.policy-contact p{color:rgba(255,255,255,.88);margin-bottom:16px}
.policy-contact a{color:#fff}
.policy-contact-actions{display:flex;flex-wrap:wrap;gap:10px}
.policy-contact-actions a{display:inline-flex;align-items:center;min-height:46px;padding:0 20px;border-radius:999px;background:#fff;color:var(--deep);font-size:13.5px;font-weight:700;text-decoration:none}
.policy-contact-actions a.is-ghost{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4)}

@media (max-width:1000px){
  .policy-grid{grid-template-columns:minmax(0,1fr);gap:24px}
  .policy-toc{position:static;padding:14px}
  .policy-toc nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
  .policy-toc a{white-space:nowrap;background:#f5f0ff}
  .policy-glance{grid-template-columns:repeat(2,minmax(0,1fr))}
  .policy-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .policy-wrap{padding-bottom:70px}
  .policy-body h2{font-size:21px}
  .policy-glance strong{font-size:24px}
  .policy-compare{grid-template-columns:1fr}
  .policy-timeline{grid-template-columns:1fr}
  .policy-steps li{padding:14px 14px 14px 56px}
  .policy-steps li::before{left:14px;top:13px}
  .policy-contact{padding:22px 18px}
  .policy-contact-actions a{width:100%;justify-content:center}
}
