/* Section-jump nav bar - sticks below the header; top is set by js/sticky-section-nav.js. */
.elementor-element-3f12e21,
.elementor-element-0938813,
.elementor-element-731ded7 {
    position: sticky;
    top: 0;
    z-index: 99;
    background: #fff;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
    transition: top 0.3s ease; /* stay in sync with the header's own hide/show transition */
}

/* So a clicked nav link's target lands below the sticky header + nav bar, not under them. */
.e-n-accordion-item {
    scroll-margin-top: var(--sticky-nav-offset, 0px);
}

/* Underline the nav link whose section is currently on screen. Toggled by
   js/sticky-section-nav.js. !important because Elementor auto-generates a
   higher-specificity per-button box-shadow rule (.elementor-<kit> .elementor-element.elementor-element-<id> .elementor-button)
   for every single button widget, which otherwise silently wins and zeroes this out. */
.elementor-element-3f12e21 a.elementor-button.is-active-section,
.elementor-element-0938813 a.elementor-button.is-active-section,
.elementor-element-731ded7 a.elementor-button.is-active-section {
    box-shadow: inset 0 -3px #5485D6 !important;
}

/* Nav item row - keep each label at its natural width and scroll horizontally instead of squeezing/clipping text. */
.elementor-element-1f48bf1,
.elementor-element-915b653,
.elementor-element-b913ce7 {
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.elementor-element-1f48bf1::-webkit-scrollbar,
.elementor-element-915b653::-webkit-scrollbar,
.elementor-element-b913ce7::-webkit-scrollbar {
    display: none;
}

/* Force every level of the button's own markup to give up its text room,
   in case Elementor's per-widget CSS constrains width/overflow at any of
   these levels rather than just the outer flex row. */
.elementor-element-1f48bf1 .elementor-widget-button,
.elementor-element-915b653 .elementor-widget-button,
.elementor-element-b913ce7 .elementor-widget-button,
.elementor-element-1f48bf1 .elementor-button-wrapper,
.elementor-element-915b653 .elementor-button-wrapper,
.elementor-element-b913ce7 .elementor-button-wrapper,
.elementor-element-1f48bf1 .elementor-button,
.elementor-element-915b653 .elementor-button,
.elementor-element-b913ce7 .elementor-button,
.elementor-element-1f48bf1 .elementor-button-content-wrapper,
.elementor-element-915b653 .elementor-button-content-wrapper,
.elementor-element-b913ce7 .elementor-button-content-wrapper,
.elementor-element-1f48bf1 .elementor-button-text,
.elementor-element-915b653 .elementor-button-text,
.elementor-element-b913ce7 .elementor-button-text {
    width: auto !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
}

.elementor-element-1f48bf1 > .elementor-widget-button,
.elementor-element-915b653 > .elementor-widget-button,
.elementor-element-b913ce7 > .elementor-widget-button {
    min-width: 60px;
}

/* Smaller buttons on mobile so fewer items need scrolling to reach. */
@media (max-width: 768px) {
    .elementor-element-1f48bf1 .elementor-button,
    .elementor-element-915b653 .elementor-button,
    .elementor-element-b913ce7 .elementor-button {
        padding: 4px 8px !important;
        font-size: 11px !important;
        border: none !important;
    }
}
