/* QH Section Steps: numbered step bar with a per-step scroll progress line (Monaco-style). */
.qhs-wrap{position:relative;z-index:65;width:100%}
.qhs{
  --qhs-on:#fff;--qhs-dim:rgba(255,255,255,.42);--qhs-track:rgba(255,255,255,.16);--qhs-fill:#fff;
  --qhs-line:3px;--qhs-min:150px;--qhs-gap:18px;--qhs-w:1200px;
  position:relative;width:100%;box-sizing:border-box;
  padding:0 max(16px,calc((100% - var(--qhs-w)) / 2));
  background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(24px) saturate(1.2);backdrop-filter:blur(24px) saturate(1.2);
  border-bottom:1px solid rgba(255,255,255,.08);
  font-family:"DM Sans","Inter",system-ui,sans-serif;-webkit-font-smoothing:antialiased;
  transform:translateY(var(--qhs-shift,0px));transition:opacity .25s ease;
}
.qhs *{box-sizing:border-box}
.qhs-list{list-style:none;margin:0;padding:12px 0 12px;display:flex;gap:var(--qhs-gap);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.qhs-list::-webkit-scrollbar{display:none}
.qhs-item{flex:1 1 0;min-width:var(--qhs-min);margin:0;padding:0;list-style:none}
.qhs-link,.qhs-link:hover,.qhs-link:focus,.qhs-link:visited{display:block;text-decoration:none;color:var(--qhs-dim);outline:0;box-shadow:none;background:none;border:0;padding:6px 0;transition:color .25s ease}
.qhs-link:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:3px;border-radius:4px}
.qhs-head{display:flex;align-items:center;gap:8px;min-width:0}
.qhs-n{flex:none;display:inline-grid;place-items:center;width:17px;height:17px;border:1px solid currentColor;border-radius:50%;font:500 10px/1 "DM Sans","Inter",system-ui,sans-serif;font-variant-numeric:tabular-nums;opacity:.9}
.qhs.no-nums .qhs-n{display:none}
.qhs-label{font:500 15px/1.25 "DM Sans","Inter",system-ui,sans-serif;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.qhs-bar{display:block;position:relative;height:var(--qhs-line);margin:8px 0 7px;border-radius:99px;background:var(--qhs-track);overflow:hidden}
.qhs-bar i{position:absolute;inset:0;border-radius:inherit;background:var(--qhs-fill);transform-origin:0 50%;transform:scaleX(var(--p,0));opacity:.5;transition:opacity .25s ease}
.qhs-sub{display:block;font:400 13px/1.3 "DM Sans","Inter",system-ui,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.8}
.qhs-item.is-active .qhs-link{color:var(--qhs-on)}
.qhs-item.is-active .qhs-bar i{opacity:1}
.qhs-link:hover{color:var(--qhs-on)}
.qhs-item:not(.has-sub) .qhs-bar{margin-bottom:2px}
.qhs.is-done{opacity:0;pointer-events:none}
.qhs:not(.is-ready){visibility:hidden}
/* Animation switch (widget setting): on = fade in, off = fully static */
.qhs-wrap[data-anim="1"] .qhs.is-ready{animation:qhs-in .6s ease backwards}
@keyframes qhs-in{from{opacity:0}to{opacity:1}}
.qhs-wrap[data-anim="0"] .qhs,.qhs-wrap[data-anim="0"] .qhs-link,.qhs-wrap[data-anim="0"] .qhs-bar i{transition:none}

/* Pinned state: set by qh-steps.js once the bar reaches the site header (works wherever the widget is placed). */
.qhs.is-stuck{position:fixed;top:var(--qhs-top,0px);left:0;right:0;width:auto;z-index:65}
/* Pinned under the header: solid dark grey, no glass or transparency, so it stands apart from the header. */
.qhs-wrap .qhs.is-stuck{background:#141414 !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;border-bottom:1px solid rgba(255,255,255,.14)}
/* While pinned, lift the containers around it so the bar paints above the sections that follow. */
.e-con:has(.qhs.is-stuck),.e-con-inner:has(.qhs.is-stuck),.elementor-top-section:has(.qhs.is-stuck){z-index:65}

@media (max-width:767px){
  .qhs{padding:0 12px;--qhs-gap:14px}
  .qhs-list{padding:8px 0 8px;scroll-snap-type:x proximity;scroll-padding-inline:12px}
  .qhs-item{scroll-snap-align:start}
  .qhs-label{font-size:14px}
  .qhs-sub{font-size:12px}
}
@media (prefers-reduced-motion:reduce){.qhs,.qhs-link,.qhs-bar i{transition:none}}
.elementor-editor-active .qhs{transform:none}
