.policy-page { --policy-anchor-offset: calc(120px + env(safe-area-inset-top, 0px)); }
.policy-header { position: sticky; top: 0; z-index: 50; padding: 22px 0; padding-top: calc(22px + env(safe-area-inset-top, 0px)); border-bottom: 1px solid var(--line); background: #fff; }
.policy-header .container { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.policy-header img { width: 145px; height: auto; }
.policy-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 13px; font-weight: 600; transition: color .2s ease; }
.policy-back svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; transition: transform .2s cubic-bezier(.16, 1, .3, 1); }
.policy-back:hover, .policy-back:focus-visible { color: var(--orange-dark); }
.policy-back:hover svg, .policy-back:focus-visible svg { transform: translateX(-3px); }
@media (prefers-reduced-motion: reduce) { .policy-back, .policy-back svg { transition: none; } .policy-back:hover svg, .policy-back:focus-visible svg { transform: none; } }
.policy-intro { padding: 60px 0 40px; max-width: 820px; }
.policy-intro h1 { margin: 0 0 18px; font-size: 38px; font-weight: 700; line-height: 1.2; letter-spacing: -.03em; text-wrap: balance; }
.policy-intro > p { font-size: 16px; line-height: 1.8; color: #51575b; margin: 0 0 12px; }
.policy-intro .policy-date { font-size: 12px; margin-top: 20px; }
.policy-layout { display: grid; grid-template-columns: 230px minmax(0, 760px); gap: 64px; align-items: start; padding-bottom: 80px; }
.policy-index { position: sticky; top: var(--policy-anchor-offset); font-size: 13px; line-height: 1.5; padding-top: 6px; }
.policy-index h2 { font-size: 14px; font-weight: 700; margin: 0 0 14px; }
.policy-index a { display: block; padding: 8px 0; color: #51575b; }
.policy-index a:hover { color: #8a3d00; text-decoration: underline; text-underline-offset: 3px; }
.policy-article { font-size: 15px; line-height: 1.85; min-width: 0; color: #353b3e; }
.policy-article section { padding: 32px 0; border-top: 1px solid var(--line); scroll-margin-top: var(--policy-anchor-offset); }
.policy-article section:first-child { padding-top: 0; border-top: 0; }
.policy-article h2 { font-size: 23px; font-weight: 650; color: var(--ink); line-height: 1.4; letter-spacing: -.02em; margin: 0 0 18px; text-wrap: balance; }
.policy-article h3 { font-size: 17px; font-weight: 650; color: var(--ink); margin: 26px 0 10px; }
.policy-article p { margin: 0 0 16px; }
.policy-article ul { padding-left: 22px; margin: 0 0 20px; }
.policy-article li { margin: 8px 0; }
.policy-article a { color: #8a3d00; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.policy-article address { font-style: normal; }
.policy-summary { margin: 0 0 32px; padding: 22px 24px; background: #f5f7f5; border-radius: 8px; }
.policy-summary p:last-child { margin-bottom: 0; }
.policy-article dl { margin: 0 0 24px; }
.policy-article dt { font-weight: 650; color: var(--ink); margin-top: 20px; }
.policy-article dd { margin: 4px 0 0; }
.policy-article button { font: inherit; font-size: 14px; background: #ff8000; color: #fff; min-height: 44px; padding: 12px 20px; border-radius: 7px; font-weight: 650; transition: background-color .2s ease; }
.policy-article button:hover, .policy-article button:focus-visible { background: var(--orange-dark); }
@media (prefers-reduced-motion: reduce) { .policy-article button { transition: none; } }
.policy-page :focus-visible { outline: 2px solid #8a3d00; outline-offset: 4px; }
.policy-page .site-footer { margin-top: 0; }
.policy-page .footer-column { min-width: 0; }
.policy-page .footer-column a { max-width: 100%; overflow-wrap: anywhere; }
@media (max-width: 900px) { .policy-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; } .policy-index { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; padding-bottom: 24px; border-bottom: 1px solid var(--line); } .policy-index h2 { grid-column: 1 / -1; } .policy-article { max-width: 760px; } }
@media (max-width: 600px) { .policy-page { --policy-anchor-offset: calc(96px + env(safe-area-inset-top, 0px)); } .policy-header { padding: 16px 0; padding-top: calc(16px + env(safe-area-inset-top, 0px)); } .policy-header img { width: 120px; } .policy-intro { padding-top: 36px; padding-bottom: 26px; } .policy-intro h1 { font-size: 29px; } .policy-index { grid-template-columns: 1fr; } .policy-article { font-size: 16px; line-height: 1.8; } .policy-article h2 { font-size: 22px; } .policy-summary { padding: 20px; } .policy-back { font-size: 12px; } }
