/* Utility policy routes only: privacy and legal notices. */
.policy-layout { display: grid; grid-template-columns: minmax(220px,.34fr) minmax(0,1fr); gap: clamp(64px,9vw,150px); align-items: start; }
.policy-aside { position: sticky; top: calc(var(--sticky-header) + 80px); }
.policy-aside > time { display: block; margin-top: 22px; color: var(--ivory); font: 400 28px/1.18 var(--serif); letter-spacing: -.02em; }
.policy-aside nav { margin-top: 48px; border-top: 1px solid var(--line); }
.policy-aside nav a { min-height: 52px; display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: center; border-bottom: 1px solid var(--line-neutral); color: var(--graphite); font-size: 11px; }
.policy-aside nav a span { color: var(--champagne-muted); font: 700 8px/1 var(--mono); letter-spacing: .12em; }
.policy-aside nav a:hover, .policy-aside nav a.is-active, .policy-aside nav a[aria-current="location"] { color: var(--champagne-light); background: rgba(255,255,255,.018); }
.policy-copy { border-top: 1px solid var(--line); }
.policy-item { scroll-margin-top: calc(var(--sticky-header) + 42px); min-height: 260px; padding: 46px 0 54px; display: grid; grid-template-columns: 52px minmax(0,1fr); gap: 26px; border-bottom: 1px solid var(--line-neutral); }
.policy-item > p { margin: 8px 0 0; color: var(--champagne); font: 700 9px/1 var(--mono); letter-spacing: .14em; }
.policy-item h2 { margin: 0 0 24px; font-size: clamp(34px,4vw,58px); }
.policy-item div > p { max-width: 820px; color: var(--silver); font-size: 16px; line-height: 1.75; }
.policy-item div > p + p { margin-top: 18px; }
.policy-contact { padding: 96px var(--gutter-right) calc(104px + var(--safe-bottom)) var(--gutter-left); border-top: 1px solid var(--line); background: linear-gradient(135deg,var(--emerald-deep),var(--ink)); }
.policy-contact .shell { display: grid; grid-template-columns: 180px minmax(0,1fr) auto; gap: 42px; align-items: center; }
.policy-contact p { color: var(--champagne); font: 700 9px/1 var(--mono); letter-spacing: .16em; }
.policy-contact h2 { max-width: 780px; font-size: clamp(38px,4vw,64px); }

@media (max-width: 1180px) {
  .policy-layout { grid-template-columns: minmax(190px,.3fr) minmax(0,1fr); gap: 56px; }
  .policy-contact .shell { grid-template-columns: 140px minmax(0,1fr); }
  .policy-contact .cta { grid-column: 2; justify-self: start; }
}

@media (max-width: 820px) {
  .policy-layout { grid-template-columns: 1fr; gap: 54px; }
  .policy-aside { position: static; }
  .policy-aside nav { margin-top: 30px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-left: 1px solid var(--line-neutral); }
  .policy-aside nav a { padding-inline: 14px; border-right: 1px solid var(--line-neutral); }
  .policy-item { min-height: 0; padding-block: 38px 44px; }
  .policy-contact .shell { grid-template-columns: 1fr; gap: 24px; }
  .policy-contact .cta { grid-column: auto; }
}

@media (max-width: 560px) {
  .policy-aside nav { grid-template-columns: 1fr; }
  .policy-item { grid-template-columns: 34px minmax(0,1fr); gap: 14px; }
  .policy-item h2 { font-size: 34px; }
  .policy-item div > p { font-size: 15px; }
  .policy-contact { padding-block: 72px; }
  .policy-contact h2 { font-size: 38px; }
}
