.policy-page { min-height: 100vh; background: var(--ivory); }
.policy-site-header { background: rgba(246, 241, 235, .97); border-color: var(--line); box-shadow: 0 4px 24px rgba(33, 48, 38, .05); backdrop-filter: blur(16px); }
.policy-main { min-height: calc(100vh - 190px); padding: 154px clamp(22px, 6vw, 80px) 80px; }
.policy-shell { max-width: 980px; margin: 0 auto; padding: clamp(48px, 8vw, 100px); background: var(--paper); box-shadow: var(--shadow); }
.policy-back { display: inline-block; margin-bottom: 42px; padding-bottom: 4px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .68rem; font-weight: 600; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.policy-back:hover { color: var(--forest); border-color: var(--forest); }
.policy-copy h1 { margin-bottom: 34px; color: var(--forest); font-size: clamp(3.4rem, 6vw, 6.2rem); }
.policy-copy > p { max-width: 760px; margin-bottom: 30px; color: var(--muted); font-size: 1.05rem; line-height: 1.85; }
.policy-copy ul { max-width: 780px; margin: 0; padding-left: 1.25rem; color: var(--muted); }
.policy-copy li { margin-bottom: 18px; padding-left: .55rem; line-height: 1.8; }
.policy-copy li::marker { color: var(--gold); }
.policy-copy a { color: var(--forest); text-underline-offset: 4px; }
.policy-page footer { border-top: 1px solid var(--line); }
.policy-page footer > a:first-child { justify-self: start; }
.policy-page footer > a:first-child img { width: 150px; }
.policy-footer-contact { display: grid; justify-items: center; gap: 4px; }
.policy-footer-contact a { justify-self: center; text-transform: none; }

@media (max-width: 820px) {
  .policy-main { padding: 110px 18px 48px; }
  .policy-shell { padding: 48px clamp(24px, 7vw, 52px) 60px; }
  .policy-page footer > a:first-child { justify-self: center; }
}

@media (max-width: 520px) {
  .policy-copy h1 { font-size: clamp(3rem, 15vw, 4.5rem); }
  .policy-copy > p { font-size: 1rem; }
}
