
.policy-top { padding: 22px 0; border-bottom: 1px solid var(--line); background: var(--ivory); }
.policy-top .brand { display: inline-flex; align-items: center; gap: 10px; }
.policy-top .mark { width: 34px; height: 34px; }
.policy-top img.mark { width: auto; height: 28px; } 
.policy { padding: clamp(48px, 7vw, 88px) 0 clamp(64px, 8vw, 104px); background: var(--ivory); }
.policy .wrap { max-width: 760px; }
.policy h1 { font-size: clamp(2.2rem, 4vw, 3rem); margin: 10px 0 8px; }
.policy-date { color: var(--ink-soft); font-size: 0.9rem; margin-bottom: 32px; }
.policy-lede { font-size: 1.12rem; line-height: 1.65; color: var(--ink); margin-bottom: 8px; }
.policy h2 { font-size: 1.45rem; margin: 44px 0 14px; padding-top: 22px; border-top: 1px solid var(--line); }
.policy p, .policy li { color: var(--ink-soft); line-height: 1.7; }
.policy p + p { margin-top: 12px; }
.policy b { color: var(--charcoal); font-weight: 600; }
.policy ul { display: grid; gap: 10px; margin: 12px 0 14px; padding-left: 1.2em; list-style: disc; }
.policy ul li::marker { color: var(--sage-deep); }
.policy-table { overflow-x: auto; margin: 14px 0 16px; }
.policy table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.policy th, .policy td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--line); color: var(--ink-soft); }
.policy th { font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink); }
.policy-contact { padding: 16px 20px; border-radius: 12px; background: var(--white); border: 1px solid var(--line); }
.policy-foot { padding: 28px 0; border-top: 1px solid var(--line); background: var(--ivory); font-size: 0.85rem; color: var(--ink-soft); }
.policy-foot .text-link { margin-left: 12px; }
