/* Divine Section Nav */

.dsn-bar[hidden] {
    display: none;
}

.dsn-bar {
    position: fixed;
    top: var(--dsn-top, 0px);
    left: 0;
    right: 0;
    z-index: var(--dsn-z, 9980);
    box-sizing: border-box;
    background: var(--dsn-bar-bg, #fff);
    border-bottom: var(--dsn-border-w, 1px) solid var(--dsn-border-c, #E7E2EE);
    border-radius: var(--dsn-radius, 0px);
    padding: var(--dsn-pad-y, 10px) var(--dsn-pad-x, 20px);
    overflow: hidden;
    transition: transform var(--dsn-speed, 260ms) cubic-bezier(.2, .7, .3, 1),
                opacity var(--dsn-speed, 260ms) ease;
}

.admin-bar .dsn-bar {
    top: calc(var(--dsn-top, 0px) + 32px);
}

@media (max-width: 782px) {
    .admin-bar .dsn-bar {
        top: calc(var(--dsn-top, 0px) + 46px);
    }
}

.dsn-bar--shadow {
    box-shadow: 0 6px 24px rgba(12, 6, 24, .12);
}

.dsn-bar--boxed {
    left: 50%;
    right: auto;
    width: 100%;
    max-width: var(--dsn-bar-max, none);
    transform: translateX(-50%);
}

/* ---------- Show / hide ---------- */

.dsn-bar--anim-slide {
    transform: translateY(-100%);
    opacity: 0;
}

.dsn-bar--anim-slide.is-visible {
    transform: translateY(0);
    opacity: 1;
}

.dsn-bar--anim-slide.dsn-bar--boxed {
    transform: translateX(-50%) translateY(-140%);
}

.dsn-bar--anim-slide.dsn-bar--boxed.is-visible {
    transform: translateX(-50%) translateY(0);
}

.dsn-bar--anim-fade {
    opacity: 0;
}

.dsn-bar--anim-fade.is-visible {
    opacity: 1;
}

.dsn-bar--anim-none {
    opacity: 1;
    transition: none;
}

/* ---------- Inner layout ---------- */

.dsn-bar__inner {
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    max-width: var(--dsn-inner-max, 1200px);
    margin: 0 auto;
    min-width: 0;
}

.dsn-bar--align-left .dsn-bar__inner {
    justify-content: flex-start;
}

.dsn-bar--align-center .dsn-bar__inner {
    justify-content: center;
}

.dsn-bar--align-right .dsn-bar__inner {
    justify-content: flex-end;
}

.dsn-bar__label {
    flex: 0 0 auto;
    color: var(--dsn-label, #7A6B8C);
    font-size: var(--dsn-font-size, 14px);
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.dsn-nav {
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.dsn-nav::-webkit-scrollbar {
    display: none;
}

.dsn-list {
    display: flex;
    align-items: center;
    gap: var(--dsn-gap, 6px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.dsn-bar--align-center .dsn-list {
    justify-content: center;
}

.dsn-bar--align-right .dsn-list {
    justify-content: flex-end;
}

.dsn-item {
    margin: 0;
    padding: 0;
    list-style: none;
    flex: 0 0 auto;
}

.dsn-item::before,
.dsn-item::marker {
    content: none;
}

/* ---------- Links ---------- */

.dsn-link {
    display: block;
    padding: var(--dsn-item-pad-y, 8px) var(--dsn-item-pad-x, 14px);
    border-radius: var(--dsn-active-radius, 6px);
    color: var(--dsn-link, #4C3864);
    font-size: var(--dsn-font-size, 14px);
    font-weight: var(--dsn-font-weight, 600);
    line-height: 1.2;
    letter-spacing: var(--dsn-tracking, 0em);
    text-decoration: none;
    white-space: nowrap;
    transition: background .18s ease, color .18s ease;
}

.dsn-link:hover,
.dsn-link:focus-visible {
    background: var(--dsn-link-h-bg, #F5F0F8);
    color: var(--dsn-link-h, #A7295C);
    text-decoration: none;
}

.dsn-link.is-active {
    background: var(--dsn-active-bg, #4C3864);
    color: var(--dsn-active, #fff);
}

.dsn-bar--upper .dsn-link,
.dsn-bar--upper .dsn-bar__label {
    text-transform: uppercase;
}

/* ---------- Reading progress ---------- */

.dsn-progress {
    position: absolute;
    left: 0;
    bottom: calc(var(--dsn-border-w, 1px) * -1);
    height: var(--dsn-progress-h, 3px);
    width: 100%;
    background: var(--dsn-progress, #A7295C);
    transform: scaleX(0);
    transform-origin: 0 50%;
    pointer-events: none;
}

/* ---------- Small screens ---------- */

@media (max-width: 767px) {
    .dsn-bar {
        padding-left: 12px;
        padding-right: 12px;
    }

    .dsn-bar__inner {
        gap: 10px;
    }

    .dsn-bar--mobile-wrap .dsn-nav {
        overflow: visible;
    }

    .dsn-bar--mobile-wrap .dsn-list {
        flex-wrap: wrap;
    }

    .dsn-bar--mobile-scroll .dsn-bar__inner {
        justify-content: flex-start;
    }

    .dsn-bar--mobile-scroll .dsn-list {
        justify-content: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dsn-bar,
    .dsn-link {
        transition: none;
    }
}
