/* Shared setup hub. Store badge artwork and its dedicated CSS stay unchanged. */
.dl-hub,
.dl-hub * {
  box-sizing: border-box;
}

.dl-hub {
  width: 100%;
  max-width: 1168px;
  min-width: 0;
  margin: 0 auto;
  padding: 56px 24px 72px;
  color: var(--l117-text, #f7fbff);
}

[data-download-page="hub"] .dl-intro {
  max-width: 800px;
  margin: 0 auto 36px;
  text-align: center;
}

[data-download-page="hub"] .dl-intro h1 {
  margin: 0 0 18px;
  font-size: clamp(2.2rem, 4.8vw, 3.8rem);
  line-height: 1.1;
  letter-spacing: -0.035em;
}

[data-download-page="hub"] .dl-intro p {
  max-width: 65ch;
  margin: 0 auto;
  font-size: 18px;
  line-height: 1.75;
  color: var(--l117-muted, #c3d4ed);
}

.dl-hub .dl-device-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: center;
  gap: 8px;
  width: 100%;
  max-width: 920px;
  margin: 0 auto;
  padding: 0 0 24px;
  border-bottom: 1px solid var(--l117-border, #2a4265);
}

.dl-hub .dl-device-tabs a {
  display: inline-flex;
  flex: 0 1 auto;
  align-items: center;
  justify-content: center;
  min-width: 112px;
  min-height: 48px;
  max-width: 100%;
  padding: 11px 20px;
  border: 1px solid transparent;
  border-radius: 12px;
  color: var(--l117-muted, #c3d4ed);
  font-size: 16px;
  font-weight: 650;
  line-height: 1.45;
  text-align: center;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.dl-hub .dl-device-tabs a:hover {
  border-color: #416797;
  background: rgba(59, 130, 246, 0.1);
  color: #edf7ff;
}

.dl-hub .dl-device-tabs a[aria-selected="true"] {
  border-color: #6ab9ff;
  background: rgba(37, 99, 235, 0.2);
  box-shadow: inset 0 -3px 0 #6ab9ff;
  color: #edf7ff;
  font-weight: 800;
}

.dl-hub .dl-device-tabs a:focus-visible,
.dl-hub .dl-guide-links a:focus-visible,
[data-download-page="hub"] .dl-support a:focus-visible,
.dl-hub .dl-device-panel:focus-visible {
  outline: 2px solid #93c5fd;
  outline-offset: 4px;
}

.dl-hub .dl-device-panel {
  min-width: 0;
  max-width: 100%;
  margin: 0 auto;
  padding: 40px 0 28px;
  text-align: center;
  scroll-margin-top: 108px;
}

.dl-hub .dl-device-panel + .dl-device-panel {
  border-top: 1px solid var(--l117-border, #2a4265);
}

.dl-hub[data-dl-enhanced="true"] .dl-device-panel {
  border-top: 0;
}

.dl-hub .dl-device-panel[hidden] {
  display: none !important;
}

.dl-hub .dl-platform-name {
  margin: 0 0 16px;
  font-size: clamp(1.8rem, 3.4vw, 2.65rem);
  line-height: 1.2;
  letter-spacing: -0.025em;
}

.dl-hub .dl-mode {
  max-width: 66ch;
  margin: 0 auto;
  font-size: 17px;
  line-height: 1.75;
  color: var(--l117-muted, #c3d4ed);
}

.dl-hub .dl-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px 20px;
  min-width: 0;
  margin: 24px auto 14px;
}

.dl-hub .dl-actions .v22-btn {
  min-height: 48px;
  max-width: 100%;
  padding: 12px 22px;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: anywhere;
}

.dl-hub .dl-guide-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px 24px;
  max-width: 800px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.dl-hub .dl-guide-links a,
[data-download-page="hub"] .dl-support a {
  display: inline-block;
  padding: 6px 0;
  color: #a9d9ff;
  font-size: 15px;
  line-height: 1.65;
  text-decoration: underline;
  text-underline-offset: 4px;
  overflow-wrap: anywhere;
}

.dl-hub .dl-guide-links a:hover,
[data-download-page="hub"] .dl-support a:hover {
  color: #edf7ff;
}

.dl-hub .dl-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  max-width: 960px;
  margin: 38px auto 0;
  padding: 0;
  border-top: 1px solid var(--l117-border, #2a4265);
  list-style: none;
  text-align: left;
  counter-reset: dl-step;
}

.dl-hub .dl-steps li {
  min-width: 0;
  margin: 0;
  padding: 24px;
  font-size: 15px;
  line-height: 1.8;
  overflow-wrap: anywhere;
  counter-increment: dl-step;
}

.dl-hub .dl-steps li + li {
  border-left: 1px solid var(--l117-border, #2a4265);
}

.dl-hub .dl-steps li::before {
  content: counter(dl-step, decimal-leading-zero);
  display: block;
  margin-bottom: 10px;
  color: #79c7ff;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.dl-hub .dl-note {
  max-width: 74ch;
  margin: 24px auto 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--l117-muted, #c3d4ed);
  overflow-wrap: anywhere;
}

[data-download-page="hub"] .dl-support {
  max-width: 920px;
  margin: 24px auto 0;
  padding-top: 28px;
  border-top: 1px solid var(--l117-border, #2a4265);
  text-align: center;
  font-size: 15px;
  line-height: 1.8;
}

@media (max-width: 680px) {
  .dl-hub {
    padding: 36px 18px 48px;
  }

  [data-download-page="hub"] .dl-intro {
    margin-bottom: 26px;
  }

  [data-download-page="hub"] .dl-intro p,
  .dl-hub .dl-mode {
    font-size: 16px;
    line-height: 1.7;
  }

  .dl-hub .dl-device-tabs {
    gap: 8px;
    padding-bottom: 22px;
  }

  .dl-hub .dl-device-tabs a {
    flex: 1 1 calc(33.333% - 8px);
    min-width: 0;
    padding: 10px 8px;
    font-size: 15px;
  }

  .dl-hub .dl-device-panel {
    padding-top: 28px;
  }

  .dl-hub .dl-actions {
    gap: 12px;
    margin-top: 20px;
  }

  .dl-hub .dl-steps {
    grid-template-columns: minmax(0, 1fr);
    margin-top: 28px;
  }

  .dl-hub .dl-steps li {
    padding: 20px 4px;
  }

  .dl-hub .dl-steps li + li {
    border-left: 0;
    border-top: 1px solid var(--l117-border, #2a4265);
  }

  .dl-hub .dl-guide-links {
    gap: 4px 18px;
  }
}

/* Page-level hierarchy: a short introduction, one device choice, one action. */
[data-download-page="hub"] .dl-intro {padding:40px 24px 0;margin-bottom:0}
[data-download-page="hub"] .dl-hub {padding-top:32px;padding-bottom:20px}
[data-download-page="hub"] .dl-support {padding:28px 24px 0;margin-bottom:56px}
[data-download-page="hub"] .dl-support h2 {font-size:24px}
[data-download-page="hub"] .dl-support p {max-width:75ch;margin:14px auto}
[data-download-page="free"] .page-final {max-width:1000px;margin:0 auto;padding:48px 24px 36px;text-align:center}
[data-download-page="free"] .page-final h1 {max-width:850px;margin:16px auto 20px;font-size:clamp(2.2rem,4.8vw,3.8rem);line-height:1.12;letter-spacing:-.035em}
[data-download-page="free"] .page-final .v22-lead {max-width:65ch;margin:0 auto;font-size:18px;line-height:1.75}
[data-download-page="free"] .dl-actions {display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 20px;margin:22px auto 0}
[data-download-page="free"] .dl-actions .v22-btn {white-space:normal;max-width:100%;min-height:48px}
[data-download-page="free"] .v22-section {max-width:1120px;margin:0 auto;padding:32px 24px;border-top:1px solid #2a4265}
[data-download-page="free"] .v22-section h2 {font-size:clamp(1.55rem,3vw,2rem);margin:0 0 20px}
[data-download-page="free"] .sm-facts>div {padding:22px 20px}
[data-download-page="free"] .v22-step-list {counter-reset:free-step;list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
[data-download-page="free"] .v22-step-list li {margin:0;padding:0;line-height:1.8;counter-increment:free-step}
[data-download-page="free"] .v22-step-list li::before {content:counter(free-step,decimal-leading-zero);display:block;color:#79c7ff;font-weight:800;margin-bottom:10px}
@media(max-width:680px){
 [data-download-page="hub"] .dl-intro {padding:28px 18px 0}
 [data-download-page="hub"] .dl-hub {padding-top:24px}
 [data-download-page="free"] .page-final {padding:28px 18px}
 [data-download-page="free"] .page-final .v22-lead {font-size:16px}
 [data-download-page="free"] .v22-section {padding:28px 18px}
 [data-download-page="free"] .v22-step-list {grid-template-columns:1fr;gap:24px}
}
