.download-header { padding-block: 24px; }
.download-main { max-width: 880px; margin: 32px auto 72px; }
.download-intro { display: grid; grid-template-columns: minmax(0, 1fr) 248px; gap: 48px; align-items: center; }
.download-main h1 { font-size: clamp(2.2rem, 6vw, 3.6rem); line-height: 1.08; letter-spacing: -.04em; margin: 16px 0; }
.download-main h2 { font-size: clamp(1.5rem, 4vw, 2rem); line-height: 1.2; }
.download-main p { max-width: 56ch; color: var(--ink-soft); }
.download-main .eyebrow { color: var(--terracotta); }
.download-main .button { margin-block: 8px; }
.download-qr { padding: 16px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); text-align: center; }
.download-qr[hidden] { display: none; }
.download-qr img { margin-inline: auto; width: 208px; height: 208px; }
.download-qr figcaption { font-size: .875rem; margin-top: 12px; color: var(--ink-soft); }
.download-qr figure { margin: 0; }
.download-start { border-top: 1px solid var(--line); margin-top: 48px; padding-top: 24px; }
.download-start ol { padding-left: 24px; }
.download-start li { padding-left: 8px; margin-block: 12px; max-width: 65ch; }
.download-footer { display: flex; flex-wrap: wrap; gap: 24px; border-top: 1px solid var(--line); padding-block: 24px; }
.download-footer a { min-height: 44px; display: inline-flex; align-items: center; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 640px) {
  .download-main { margin-top: 8px; }
  .download-intro { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .download-qr { width: 248px; margin-inline: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .download-main .button { transition: none; transform: none; }
}

.download-intro:has(.download-qr[hidden]) { grid-template-columns: minmax(0, 1fr); }
