/* FLStudioPro: one saved article control in the site's orange/black style. */
body .dl-cta > a.fl-download-btn,
body .fl-home-download > a.fl-download-btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 12px; min-height: 52px; max-width: 100%; padding: 13px 25px;
  border: 1px solid transparent !important; border-radius: 12px;
  background: var(--orange, #ff8a2a); color: #16110b !important;
  font: 700 15px/1.5 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  text-align: center; text-decoration: none !important;
  box-shadow: 0 8px 28px -16px rgba(255, 138, 42, .65);
  transition: background .16s ease, box-shadow .16s ease;
}
body a.fl-download-btn::before {
  content: '\2193'; flex: 0 0 16px; width: 16px;
  font-size: 22px; font-weight: 600; line-height: 1;
}
body .dl-cta > a.fl-download-btn:hover,
body .fl-home-download > a.fl-download-btn:hover {
  background: #ffa45b; color: #16110b !important;
  box-shadow: 0 10px 30px -15px rgba(255, 138, 42, .65);
}
body a.fl-download-btn:focus-visible { outline: 3px solid #f1f0ed; outline-offset: 5px; }
/* Native keyboard focus must not race the theme's smooth document scrolling. */
html:has(.fl-download-layout):focus-within { scroll-behavior: auto; }
.fl-home-download { margin: 20px 0; }
.fl-home-download .fl-download-btn { min-width: 210px; }
.art-body .dl-cta { margin: 24px 0; }

/* The card remains in its original article DOM; coordinates follow this rail. */
.art-grid.fl-download-layout {
  display: grid; grid-template-columns: 220px minmax(0, 740px);
  align-items: start; gap: 40px;
}
.fl-download-layout > .art-body { min-width: 0; position: relative; }
.fl-article-side {
  position: sticky; top: 86px; align-self: start; min-width: 0; scroll-margin-top: 86px;
}
.fl-download-layout > .fl-article-side { padding-top: calc(var(--fl-download-height, 82px) + 22px); }
.fl-download-layout [data-fl-download-card] {
  position: absolute; top: var(--fl-download-top, 0px); left: var(--fl-download-left, 0px);
  width: var(--fl-download-width, 220px); margin: 0 !important; padding: 14px;
  border: 1px solid var(--line); border-radius: 17px;
  background: linear-gradient(145deg, rgba(255, 138, 42, .075), transparent 72%), var(--panel, #16181f);
  z-index: 2;
}
.fl-download-layout [data-fl-download-card] > a.fl-download-btn { display: flex; width: 100%; padding-inline: 16px; }
.fl-article-toc > summary {
  color: var(--ink); font-size: 12px; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase; cursor: pointer;
  padding: 5px 0;
}
.fl-article-toc[hidden] { display: none; }
.fl-article-side .toc {
  display: block; position: static; max-height: max(100px, calc(100dvh - var(--fl-download-height, 82px) - 175px));
  margin-top: 12px; padding: 3px; overflow-y: auto; overscroll-behavior-y: contain;
  scrollbar-width: thin; scrollbar-color: var(--line) transparent;
}
.fl-article-side .toc[hidden] { display: none; }
.fl-article-side .toc a { padding-top: 8px; padding-bottom: 8px; overflow-wrap: anywhere; }
.fl-article-toc summary:focus-visible, .fl-article-toc a:focus-visible {
  outline: 2px solid var(--orange); outline-offset: 3px; border-radius: 3px;
}
.fl-download-layout .art-body h2[id] { scroll-margin-top: 96px; }
@media (max-width: 960px) {
  .art-grid.fl-download-layout { display: block; }
  .fl-download-layout > .fl-article-side {
    position: relative; top: auto; margin-bottom: 26px;
    padding-top: calc(var(--fl-download-height, 52px) + 16px);
  }
  .fl-download-layout [data-fl-download-card] { padding: 0; border: 0; border-radius: 0; background: none; }
  .fl-article-toc { padding: 12px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); }
  .fl-article-side .toc { max-height: min(52vh, 360px); }
  .fl-article-side .toc a { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(.fl-download-layout) { scroll-behavior: auto; }
  body a.fl-download-btn { transition: none; }
}
