/* Scoped download chooser; colors and typography come from the existing brand tokens. */
.download-page,
.download-page * { box-sizing: border-box; }
.download-page {
  margin: 0;
  min-inline-size: 0;
  min-block-size: 100vh;
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.6;
  color: var(--text-primary);
  background: var(--surface-alt);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.download-page a { color: inherit; text-decoration: none; }
.download-page :where(a, select, button):focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 4px;
}
.download-header {
  inline-size: min(100%, 960px);
  margin-inline: auto;
  padding: 24px clamp(20px, 5vw, 48px);
}
.download-brand {
  display: inline-flex;
  align-items: center;
  min-block-size: 44px;
  gap: 12px;
  font-weight: 800;
  font-size: 21px;
  letter-spacing: -.02em;
}
.download-brand img { border-radius: 10px; }
.download-brand em { color: var(--accent); font-style: normal; }
.download-main {
  inline-size: min(100%, 848px);
  margin: clamp(20px, 6vh, 68px) auto 0;
  padding: 0 24px 32px;
}
.download-panel {
  overflow: hidden;
  border: 1px solid var(--border-subtle);
  border-radius: 24px;
  background: var(--surface-card);
  box-shadow: 0 16px 48px -24px rgb(16 28 54 / 18%);
}
.download-stripe { block-size: 5px; background: var(--flag-stripe-h); }
.download-panel-content { padding: clamp(24px, 5vw, 40px); }
.download-page h1 {
  margin: 0;
  max-inline-size: 15em;
  font-size: clamp(28px, 4.7vw, 40px);
  line-height: 1.16;
  font-weight: 800;
  letter-spacing: -.025em;
  text-wrap: balance;
  overflow-wrap: break-word;
}
.download-description { margin: 18px 0 28px; color: var(--text-secondary); text-wrap: pretty; }
.download-description-narrow { display: none; }
.download-choices { display: grid; grid-template-columns: minmax(0, 1fr) 245px; align-items: start; gap: 32px; }
.download-direct { min-inline-size: 0; }
.download-stores { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.download-store {
  display: flex;
  align-items: center;
  gap: 12px;
  min-block-size: 96px;
  padding: 18px 16px;
  border: 1.5px solid var(--border-strong);
  border-radius: 14px;
  background: var(--surface-card);
  cursor: pointer;
  transition: border-color 180ms ease, background-color 180ms ease;
}
.download-store:hover { border-color: var(--accent); background: var(--accent-soft); }
.download-store-icon { display: flex; align-items: center; justify-content: center; inline-size: 32px; block-size: 32px; flex: 0 0 auto; }
.download-store-icon--apple { background: #007AFF; border-radius: 7px; }
.download-store-copy { display: grid; gap: 4px; min-inline-size: 0; }
.download-store-copy strong { font-size: 16px; line-height: 1.35; font-weight: 700; overflow-wrap: break-word; }
.download-store-copy > span { color: var(--text-secondary); font-size: 16px; line-height: 1.4; }
.download-store-arrow { display: flex; margin-inline-start: auto; flex: 0 0 auto; color: var(--text-secondary); }
[dir="rtl"] .download-store-arrow { transform: rotate(180deg); }
.download-language { margin-block-start: 28px; padding-block-start: 24px; border-block-start: 1px solid var(--border-subtle); }
.download-language label { display: block; margin-block-end: 8px; color: var(--text-secondary); font-size: 16px; font-weight: 600; }
.download-language-controls { display: flex; gap: 10px; }
.download-language select,
.download-language button {
  min-block-size: 46px;
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  font: inherit;
  font-weight: 600;
  color: var(--text-primary);
  background: var(--surface-card);
  cursor: pointer;
}
.download-language select { min-inline-size: 0; inline-size: 100%; max-inline-size: 240px; padding: 8px 12px; }
.download-language button { padding: 8px 16px; }
.download-enhanced .download-language-submit { display: none; }
.download-qr { inline-size: 245px; margin: 0; text-align: center; }
.download-qr-frame { inline-size: 100%; padding: 10px; border: 1px solid var(--border-strong); border-radius: 16px; background: #FFFFFF; }
.download-qr-symbol { display: block; inline-size: 100%; block-size: auto; direction: ltr; }
.download-qr figcaption { margin-block-start: 12px; color: var(--text-secondary); font-size: 16px; line-height: 1.5; }
.download-qr a { display: inline-flex; justify-content: center; align-items: center; min-block-size: 44px; max-inline-size: 100%; margin-block-start: 4px; color: var(--text-primary); font-size: 16px; text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.download-qr a:hover { color: var(--accent); }
.download-footer { margin-block-start: 24px; color: var(--text-secondary); font-size: 16px; text-align: center; }
.download-footer-links { display: flex; justify-content: center; flex-wrap: wrap; column-gap: 24px; row-gap: 6px; }
.download-footer-links a { display: inline-flex; align-items: center; min-block-size: 44px; text-decoration: underline; text-underline-offset: 4px; }
.download-footer-links a:hover { color: var(--accent); }
.download-footer p { margin: 10px auto 0; max-inline-size: 36em; }
[data-theme="dark"] .download-page { color-scheme: dark; }
@media (max-width: 699px) {
  .download-main { margin-block-start: 20px; padding-inline: 16px; }
  .download-choices { display: block; }
  .download-qr,
  .download-description-wide { display: none; }
  .download-description-narrow { display: inline; }
  .download-stores { gap: 12px; }
  .download-store { min-block-size: 80px; padding: 16px; }
  .download-panel { border-radius: 20px; }
}
@media (max-width: 359px) {
  .download-header { padding-block: 16px; }
  .download-main { margin-block-start: 12px; padding-inline: 12px; }
  .download-panel-content { padding: 22px 20px; }
  .download-store { gap: 10px; padding: 14px 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .download-store { transition: none; }
}
