/* Sustainability editorial layouts; reuse shared theme and type tokens. */
.policy-hero { display: grid; align-items: center; min-height: clamp(300px, 38vw, 560px); padding-block: 80px; background: linear-gradient(110deg, rgba(7,27,17,.82), rgba(7,27,17,.56)), url('../images/sustainability/sustain-bg.jpg') center / cover; }
.policy-section { padding-block: clamp(56px, 7vw, 104px); }
.policy-tinted { background: var(--off-white); border-block: 1px solid var(--line); }
.policy-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: clamp(24px, 4vw, 64px); }
.policy-copy { min-width: 0; }
.policy-copy h2 { color: var(--ink); font-size: clamp(2rem, 3.3vw, 3rem); line-height: 1.2; overflow-wrap: anywhere; }
.policy-copy h2::before { content: ''; display: block; width: 44px; height: 2px; margin-bottom: 1.5rem; background: var(--gold); }
.policy-copy p { margin-top: 1.5rem; color: var(--ink); line-height: 1.85; max-width: 65ch; }
.policy-image { display: block; width: 100%; height: auto; }
.policy-image-first .policy-image { grid-column: 1; grid-row: 1; }
.policy-image-first .policy-copy { grid-column: 2; grid-row: 1; }
/* Source translations already contain numbering. */
.policy-points { list-style: none; margin-top: 1.75rem; }
.policy-points li { padding: 1rem 0; border-top: 1px solid var(--line); color: var(--ink); line-height: 1.75; overflow-wrap: anywhere; }
.policy-points li:last-child { border-bottom: 1px solid var(--line); }
.policy-page .reveal { opacity: 1; transform: none; transition: none; }
.policy-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (prefers-reduced-motion: no-preference) {
  .policy-page .reveal.in { animation: policy-enter .6s ease both; }
}
@keyframes policy-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (max-width: 800px) {
  .policy-split { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .policy-image-first .policy-image, .policy-image-first .policy-copy { grid-column: auto; grid-row: auto; }
}
