/* ── Policy page: Sama's own rules, set on the 12-column grid ───────────── */
.pol-page { background: var(--surface); color: var(--navy-ink); }
.pol { padding: clamp(40px, 4vw, 72px) var(--gutter) clamp(80px, 8vw, 160px); }
.pol em { font-style: italic; }
.pol-head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; }
.pol-head .eyebrow { grid-column: 1 / -1; }
.pol-title { grid-column: 1 / 8; margin: 0; font: 400 clamp(56px, 7vw, 132px) / .95 var(--f-head); letter-spacing: -.015em; }
.pol-lead { grid-column: 9 / 13; margin: 0; font: 400 clamp(17px, 1.15vw, 21px) / 1.65 var(--f-body); }

.pol-glance { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; list-style: none; margin: clamp(48px, 5vw, 96px) 0; padding: clamp(28px, 2.6vw, 44px) 0; border-block: 1px solid rgb(42 66 84 / .2); }
.pol-glance li { display: flex; flex-direction: column; gap: 10px; }
.pol-glance b { font: 400 clamp(56px, 6vw, 112px) / 1 var(--f-head); color: #2a4254; }
.pol-glance span { max-width: 16em; font: 400 clamp(15px, 1.05vw, 19px) / 1.5 var(--f-body); }

.pol-body { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.pol-nav { grid-column: 1 / 4; position: sticky; top: 32px; display: flex; flex-direction: column; gap: 14px; }
.pol-nav a { color: inherit; text-decoration: none; font: 500 13px / 1.3 var(--f-body); letter-spacing: .2em; text-transform: uppercase; opacity: .55; transition: opacity .25s; }
.pol-nav a:hover, .pol-nav a.on { opacity: 1; }
.pol-text { grid-column: 5 / 12; }
.pol-text section { padding-bottom: clamp(40px, 4vw, 72px); margin-bottom: clamp(40px, 4vw, 72px); border-bottom: 1px solid rgb(42 66 84 / .2); scroll-margin-top: 32px; }
.pol-text section:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.pol-text h2 { display: flex; align-items: baseline; gap: 18px; margin: 0 0 22px; font: 400 clamp(36px, 3.2vw, 60px) / 1.05 var(--f-head); }
.pol-text h2 span { font: 500 13px / 1 var(--f-body); letter-spacing: .2em; opacity: .55; }
.pol-text p, .pol-steps li { margin: 0 0 16px; max-width: 36em; font: 400 clamp(17px, 1.15vw, 21px) / 1.7 var(--f-body); }
.pol-text strong, .pol-steps b { font-weight: 500; }
.pol-text a:not(.o-btn) { color: inherit; }
.pol-steps { margin: 0; padding: 0; list-style: none; counter-reset: st; }
.pol-steps li { counter-increment: st; position: relative; padding-left: 3em; }
.pol-steps li::before { content: counter(st); position: absolute; left: 0; top: -.1em; font: 400 1.6em / 1 var(--f-head); color: #2a4254; }
.pol-cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px !important; }

@media (max-width: 900px) {
  .o-head .o-mark { font-size: 30px; }
  .o-back { font-size: 11px; letter-spacing: .14em; white-space: nowrap; }
  .pol-head, .pol-body { grid-template-columns: 1fr; row-gap: 18px; }
  .pol-title, .pol-lead, .pol-nav, .pol-text { grid-column: 1; }
  .pol-nav { position: static; flex-direction: row; flex-wrap: wrap; gap: 10px 18px; margin-bottom: 40px; }
  .pol-nav a { font-size: 11px; letter-spacing: .14em; }
  .pol-glance { grid-template-columns: 1fr; gap: 22px; }
  .pol-glance li { flex-direction: row; align-items: center; gap: 18px; }
  .pol-glance b { min-width: 2.3em; }
}
