/* _content/Osirion.Blazor.Navigation/Components/EnhancedNavigation.razor.rz.scp.css */
/* _content/Osirion.Blazor.Navigation/Components/Menu.razor.rz.scp.css */
/*
 * Osirion Menu Component
 * Pure CSS navigation menu with SSR compatibility.
 *
 * A horizontal menu is a bar: brand, items, then the Actions slot. Below its collapse breakpoint the bar keeps the
 * brand and a hamburger, and the items open in a drawer under it. A vertical menu stacks its items.
 *
 * Theming hooks, settable on the menu or any ancestor:
 *   --osirion-menu-height, --osirion-menu-max-width, --osirion-menu-padding-x, --osirion-menu-logo-size,
 *   --osirion-menu-background, --osirion-menu-color, --osirion-menu-muted-color, --osirion-menu-border-color,
 *   --osirion-menu-accent, --osirion-menu-hover-background, --osirion-menu-active-background,
 *   --osirion-menu-radius, --osirion-menu-panel-radius, --osirion-menu-shadow
 */

/* Component-specific theme overrides: these take priority over every other style, framework adapters included */
[data-osirion-component-theme="light"].osirion-menu-container[b-40aiv9vlqj],
.osirion-menu-container[data-osirion-component-theme="light"][b-40aiv9vlqj],
.osirion-bootstrap-integration [data-osirion-component-theme="light"].osirion-menu-container[b-40aiv9vlqj],
.osirion-bootstrap-integration .osirion-menu-container[data-osirion-component-theme="light"][b-40aiv9vlqj],
html.osirion-bootstrap-integration [data-osirion-component-theme="light"].osirion-menu-container[b-40aiv9vlqj],
html.osirion-bootstrap-integration .osirion-menu-container[data-osirion-component-theme="light"][b-40aiv9vlqj] {
    --osirion-background-primary: #ffffff !important;
    --osirion-text-primary: #1f2937 !important;
    --osirion-text-secondary: #6b7280 !important;
    --osirion-border-color: rgba(0, 0, 0, 0.1) !important;
    --osirion-color-primary-500: #2563eb !important;
    --osirion-action-primary: #2563eb !important;
    background-color: #ffffff !important;
    color: #1f2937 !important;
    border-color: rgba(0, 0, 0, 0.1) !important;
    --bs-body-bg: #ffffff !important;
    --bs-body-color: #1f2937 !important;
    --bs-border-color: rgba(0, 0, 0, 0.1) !important;
}

[data-osirion-component-theme="dark"].osirion-menu-container[b-40aiv9vlqj],
.osirion-menu-container[data-osirion-component-theme="dark"][b-40aiv9vlqj],
.osirion-bootstrap-integration [data-osirion-component-theme="dark"].osirion-menu-container[b-40aiv9vlqj],
.osirion-bootstrap-integration .osirion-menu-container[data-osirion-component-theme="dark"][b-40aiv9vlqj],
html.osirion-bootstrap-integration [data-osirion-component-theme="dark"].osirion-menu-container[b-40aiv9vlqj],
html.osirion-bootstrap-integration .osirion-menu-container[data-osirion-component-theme="dark"][b-40aiv9vlqj] {
    --osirion-background-primary: #111827 !important;
    --osirion-text-primary: #f3f4f6 !important;
    --osirion-text-secondary: #9ca3af !important;
    --osirion-border-color: rgba(255, 255, 255, 0.1) !important;
    --osirion-color-primary-500: #60a5fa !important;
    --osirion-action-primary: #60a5fa !important;
    background-color: #111827 !important;
    color: #f3f4f6 !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    --bs-body-bg: #111827 !important;
    --bs-body-color: #f3f4f6 !important;
    --bs-border-color: rgba(255, 255, 255, 0.1) !important;
}

/* Menu container */
.osirion-menu-container[b-40aiv9vlqj] {
    position: relative;
    width: 100%;
    background-color: var(--osirion-menu-background, var(--osirion-background-primary, #ffffff));
    color: var(--osirion-menu-color, var(--osirion-text-primary, #1f2937));
    font-family: var(--osirion-font-family-base, inherit);
    z-index: var(--osirion-z-index-20, 100);
}

.osirion-menu-horizontal[b-40aiv9vlqj] {
    border-bottom: 1px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
}

.osirion-menu-sticky[b-40aiv9vlqj] {
    position: sticky !important;
    top: 0;
    width: 100%;
}

/* Navigation row: brand, items and actions, centred within --osirion-menu-max-width */
.osirion-menu-nav[b-40aiv9vlqj] {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: var(--osirion-menu-max-width, none);
    margin-inline: auto;
}

.osirion-menu-horizontal .osirion-menu-nav[b-40aiv9vlqj] {
    flex-direction: row;
    align-items: center;
    gap: 1.5rem;
    min-height: var(--osirion-menu-height, 4rem);
    padding-inline: var(--osirion-menu-padding-x, 1rem);
}

/* Branding */
.osirion-nav-branding[b-40aiv9vlqj] {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    min-width: 0;
}

.osirion-menu-vertical .osirion-nav-branding[b-40aiv9vlqj] {
    min-height: var(--osirion-menu-height, 4rem);
    padding: 0.75rem var(--osirion-menu-padding-x, 1rem);
}

.osirion-brand-link[b-40aiv9vlqj] {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    min-width: 0;
    color: inherit;
    text-decoration: none;
    border-radius: var(--osirion-menu-radius, 0.5rem);
    transition: opacity var(--osirion-transition-duration-200, 0.2s) ease;
}

    .osirion-brand-link:hover[b-40aiv9vlqj] {
        color: inherit;
        text-decoration: none;
        opacity: 0.85;
    }

    .osirion-brand-link:focus-visible[b-40aiv9vlqj] {
        outline: 2px solid var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
        outline-offset: 4px;
    }

.osirion-brand-logo[b-40aiv9vlqj] {
    width: var(--osirion-menu-logo-size, 2.25rem);
    height: var(--osirion-menu-logo-size, 2.25rem);
    flex-shrink: 0;
    object-fit: contain;
}

.osirion-brand-text[b-40aiv9vlqj] {
    overflow: hidden;
    text-overflow: ellipsis;
    color: inherit;
    font-size: var(--osirion-font-size-lg, 1.125rem);
    font-weight: var(--osirion-font-weight-bold, 700);
    letter-spacing: -0.01em;
    line-height: 1.2;
    white-space: nowrap;
}

/* Items and actions */
.osirion-menu[b-40aiv9vlqj] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    width: 100%;
    min-width: 0;
    margin: 0;
}

.osirion-menu-inner[b-40aiv9vlqj] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    width: 100%;
    min-width: 0;
}

.osirion-menu-actions[b-40aiv9vlqj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

    /* Search boxes, toggles and buttons bring their own outer margins; the actions row spaces them instead. */
    .osirion-menu .osirion-menu-actions[b-40aiv9vlqj]  > * {
        margin: 0;
    }

.osirion-menu-vertical .osirion-menu[b-40aiv9vlqj] {
    padding: 0.5rem var(--osirion-menu-padding-x, 1rem) 1rem;
}

/* Horizontal bar: the menu and its item row span the bar's height, so a dropdown's hover area reaches its panel */
.osirion-menu-horizontal .osirion-menu[b-40aiv9vlqj] {
    flex: 1 1 auto;
    flex-direction: row;
    align-items: center;
    align-self: stretch;
    gap: 1rem;
}

.osirion-menu-horizontal .osirion-menu-inner[b-40aiv9vlqj] {
    flex: 1 1 auto;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    align-self: stretch;
    gap: 0.25rem;
}

.osirion-menu-horizontal .osirion-menu-actions[b-40aiv9vlqj] {
    flex-shrink: 0;
    flex-wrap: nowrap;
}

.osirion-menu-align-left .osirion-menu-inner[b-40aiv9vlqj] {
    justify-content: flex-start;
}

.osirion-menu-align-center .osirion-menu-inner[b-40aiv9vlqj] {
    justify-content: center;
}

.osirion-menu-align-right .osirion-menu-inner[b-40aiv9vlqj] {
    justify-content: flex-end;
}

/* Hamburger: a visually hidden checkbox, shown through its label */
.osirion-navbar-toggler[b-40aiv9vlqj] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.osirion-navbar-toggle[b-40aiv9vlqj] {
    display: none;
    position: absolute;
    top: calc((var(--osirion-menu-height, 4rem) - 2.75rem) / 2);
    right: max(var(--osirion-menu-padding-x, 1rem), calc((100% - var(--osirion-menu-max-width, 100%)) / 2 + var(--osirion-menu-padding-x, 1rem)));
    z-index: 2;
    width: 2.75rem;
    height: 2.75rem;
    align-items: center;
    justify-content: center;
    color: inherit;
    background-color: transparent;
    border: 1px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
    border-radius: var(--osirion-menu-radius, 0.5rem);
    cursor: pointer;
    transition: background-color var(--osirion-transition-duration-150, 150ms) ease;
    -webkit-tap-highlight-color: transparent;
}

    .osirion-navbar-toggle:hover[b-40aiv9vlqj] {
        background-color: var(--osirion-menu-hover-background, color-mix(in srgb, currentColor 8%, transparent));
    }

/* Keyboard focus: the checkbox is visually hidden, so show its focus on the visible toggle */
.osirion-navbar-toggler:focus-visible + .osirion-navbar-toggle[b-40aiv9vlqj] {
    outline: 2px solid var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
    outline-offset: 2px;
}

.osirion-toggle-icon[b-40aiv9vlqj] {
    position: relative;
    display: block;
    width: 1.125rem;
    height: 2px;
    border-radius: 1px;
    background-color: currentColor;
    transition: background-color var(--osirion-transition-duration-150, 150ms) ease;
}

    .osirion-toggle-icon[b-40aiv9vlqj]::before,
    .osirion-toggle-icon[b-40aiv9vlqj]::after {
        content: "";
        position: absolute;
        left: 0;
        width: 100%;
        height: 2px;
        border-radius: 1px;
        background-color: currentColor;
        transition: transform 250ms ease, top 250ms ease;
    }

    .osirion-toggle-icon[b-40aiv9vlqj]::before {
        top: -6px;
    }

    .osirion-toggle-icon[b-40aiv9vlqj]::after {
        top: 6px;
    }

/* Open: the lines cross into an X */
.osirion-navbar-toggler:checked + .osirion-navbar-toggle .osirion-toggle-icon[b-40aiv9vlqj] {
    background-color: transparent;
}

    .osirion-navbar-toggler:checked + .osirion-navbar-toggle .osirion-toggle-icon[b-40aiv9vlqj]::before {
        top: 0;
        transform: rotate(45deg);
    }

    .osirion-navbar-toggler:checked + .osirion-navbar-toggle .osirion-toggle-icon[b-40aiv9vlqj]::after {
        top: 0;
        transform: rotate(-45deg);
    }

/* Dims the page under an open drawer. It is a label for the toggle, so a tap on it closes the drawer. */
.osirion-menu-backdrop[b-40aiv9vlqj] {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(15, 23, 42, 0.45);
    cursor: pointer;
}

@keyframes osirion-menu-drawer-in-b-40aiv9vlqj {
    from {
        opacity: 0;
        transform: translateY(-0.5rem);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* Drawer: below its collapse breakpoint a collapsible menu shows the hamburger and opens its items in a panel.
   The blocks differ only in their media query and selector prefix; change them together. */
@media (max-width: 768px) {
    .osirion-menu-collapsible .osirion-navbar-toggle[b-40aiv9vlqj] {
        display: inline-flex;
    }

    .osirion-menu-collapsible .osirion-menu-nav[b-40aiv9vlqj] {
        flex-direction: row;
        align-items: center;
        min-height: var(--osirion-menu-height, 4rem);
        padding-inline: var(--osirion-menu-padding-x, 1rem);
        padding-right: calc(var(--osirion-menu-padding-x, 1rem) + 3.5rem);
    }

    .osirion-menu-collapsible .osirion-nav-branding[b-40aiv9vlqj] {
        min-height: 0;
        padding: 0;
    }

    .osirion-menu-collapsible .osirion-menu[b-40aiv9vlqj] {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 1;
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
        max-height: calc(100vh - var(--osirion-menu-height, 4rem));
        max-height: calc(100dvh - var(--osirion-menu-height, 4rem));
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 0.75rem var(--osirion-menu-padding-x, 1rem) 1.5rem;
        background-color: var(--osirion-menu-background, var(--osirion-background-primary, #ffffff));
        border-top: 1px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
        box-shadow: var(--osirion-menu-shadow, 0 18px 40px -12px rgba(15, 23, 42, 0.28), 0 6px 14px -6px rgba(15, 23, 42, 0.14));
    }

    .osirion-menu-collapsible .osirion-navbar-toggler:checked ~ .osirion-menu-nav .osirion-menu[b-40aiv9vlqj] {
        display: flex;
        animation: osirion-menu-drawer-in-b-40aiv9vlqj 200ms ease-out;
    }

    .osirion-menu-collapsible .osirion-navbar-toggler:checked ~ .osirion-menu-backdrop[b-40aiv9vlqj] {
        display: block;
    }

    .osirion-menu-collapsible .osirion-menu-inner[b-40aiv9vlqj] {
        flex-direction: column;
        align-items: stretch;
        gap: 0.125rem;
    }

    .osirion-menu-collapsible .osirion-menu-actions[b-40aiv9vlqj] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 0.75rem;
        padding-top: 1rem;
        border-top: 1px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
    }
}

@media (max-width: 1199.98px) {
    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-navbar-toggle[b-40aiv9vlqj] {
        display: inline-flex;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-nav[b-40aiv9vlqj] {
        flex-direction: row;
        align-items: center;
        min-height: var(--osirion-menu-height, 4rem);
        padding-inline: var(--osirion-menu-padding-x, 1rem);
        padding-right: calc(var(--osirion-menu-padding-x, 1rem) + 3.5rem);
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-nav-branding[b-40aiv9vlqj] {
        min-height: 0;
        padding: 0;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu[b-40aiv9vlqj] {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 1;
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
        max-height: calc(100vh - var(--osirion-menu-height, 4rem));
        max-height: calc(100dvh - var(--osirion-menu-height, 4rem));
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 0.75rem var(--osirion-menu-padding-x, 1rem) 1.5rem;
        background-color: var(--osirion-menu-background, var(--osirion-background-primary, #ffffff));
        border-top: 1px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
        box-shadow: var(--osirion-menu-shadow, 0 18px 40px -12px rgba(15, 23, 42, 0.28), 0 6px 14px -6px rgba(15, 23, 42, 0.14));
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-navbar-toggler:checked ~ .osirion-menu-nav .osirion-menu[b-40aiv9vlqj] {
        display: flex;
        animation: osirion-menu-drawer-in-b-40aiv9vlqj 200ms ease-out;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-navbar-toggler:checked ~ .osirion-menu-backdrop[b-40aiv9vlqj] {
        display: block;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-inner[b-40aiv9vlqj] {
        flex-direction: column;
        align-items: stretch;
        gap: 0.125rem;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-actions[b-40aiv9vlqj] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 0.75rem;
        padding-top: 1rem;
        border-top: 1px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
    }
}

@media (max-width: 1439.98px) {
    .osirion-menu-collapse-extra-large .osirion-navbar-toggle[b-40aiv9vlqj] {
        display: inline-flex;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-nav[b-40aiv9vlqj] {
        flex-direction: row;
        align-items: center;
        min-height: var(--osirion-menu-height, 4rem);
        padding-inline: var(--osirion-menu-padding-x, 1rem);
        padding-right: calc(var(--osirion-menu-padding-x, 1rem) + 3.5rem);
    }

    .osirion-menu-collapse-extra-large .osirion-nav-branding[b-40aiv9vlqj] {
        min-height: 0;
        padding: 0;
    }

    .osirion-menu-collapse-extra-large .osirion-menu[b-40aiv9vlqj] {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 1;
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
        max-height: calc(100vh - var(--osirion-menu-height, 4rem));
        max-height: calc(100dvh - var(--osirion-menu-height, 4rem));
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 0.75rem var(--osirion-menu-padding-x, 1rem) 1.5rem;
        background-color: var(--osirion-menu-background, var(--osirion-background-primary, #ffffff));
        border-top: 1px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
        box-shadow: var(--osirion-menu-shadow, 0 18px 40px -12px rgba(15, 23, 42, 0.28), 0 6px 14px -6px rgba(15, 23, 42, 0.14));
    }

    .osirion-menu-collapse-extra-large .osirion-navbar-toggler:checked ~ .osirion-menu-nav .osirion-menu[b-40aiv9vlqj] {
        display: flex;
        animation: osirion-menu-drawer-in-b-40aiv9vlqj 200ms ease-out;
    }

    .osirion-menu-collapse-extra-large .osirion-navbar-toggler:checked ~ .osirion-menu-backdrop[b-40aiv9vlqj] {
        display: block;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-inner[b-40aiv9vlqj] {
        flex-direction: column;
        align-items: stretch;
        gap: 0.125rem;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-actions[b-40aiv9vlqj] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 0.75rem;
        padding-top: 1rem;
        border-top: 1px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
    }
}

/* Accessibility: reduced motion */
@media (prefers-reduced-motion: reduce) {
    .osirion-menu-container *[b-40aiv9vlqj],
    .osirion-toggle-icon[b-40aiv9vlqj],
    .osirion-toggle-icon[b-40aiv9vlqj]::before,
    .osirion-toggle-icon[b-40aiv9vlqj]::after {
        animation: none !important;
        transition-duration: 0.01ms !important;
    }
}
/* _content/Osirion.Blazor.Navigation/Components/MenuCallToAction.razor.rz.scp.css */
.osirion-menu-call-to-action[b-l5mi3hpnnh] {
    display: flex;
    align-items: center;
    gap: var(--osirion-spacing-4, 1rem);
    padding: var(--osirion-spacing-4, 1rem);
    color: var(--osirion-menu-color, var(--osirion-text-primary, #1f2937));
    background-color: var(--osirion-menu-hover-background, color-mix(in srgb, currentColor 6%, transparent));
    border-radius: var(--osirion-menu-panel-radius, 0.75rem);
    border: 1px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
    text-decoration: none;
    transition: background-color var(--osirion-transition-duration-150, 150ms) ease, border-color var(--osirion-transition-duration-150, 150ms) ease;
}

.osirion-menu-call-to-action:hover[b-l5mi3hpnnh],
.osirion-menu-call-to-action:focus-visible[b-l5mi3hpnnh] {
    color: var(--osirion-menu-color, var(--osirion-text-primary, #1f2937));
    text-decoration: none;
    border-color: var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
}

.osirion-menu-call-to-action:focus-visible[b-l5mi3hpnnh] {
    outline: 2px solid var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
    outline-offset: 2px;
}

/* In a mega submenu the call to action spans every column, below them */
.osirion-submenu-mega-content .osirion-menu-call-to-action[b-l5mi3hpnnh] {
    grid-column: 1 / -1;
}

.osirion-menu-call-to-action-content[b-l5mi3hpnnh] {
    flex: 1;
    min-width: 0;
}

.osirion-menu-call-to-action-text[b-l5mi3hpnnh],
.osirion-menu-call-to-action-description[b-l5mi3hpnnh] {
    display: block;
}

.osirion-menu-call-to-action-text[b-l5mi3hpnnh] {
    font-weight: var(--osirion-font-weight-semibold, 600);
}

.osirion-menu-call-to-action-description[b-l5mi3hpnnh] {
    margin-top: var(--osirion-spacing-1, 0.25rem);
    color: var(--osirion-menu-muted-color, var(--osirion-text-secondary, #6b7280));
    font-size: var(--osirion-font-size-sm, 0.875rem);
}

.osirion-menu-call-to-action-arrow[b-l5mi3hpnnh] {
    flex-shrink: 0;
    font-size: var(--osirion-font-size-lg, 1.125rem);
    color: var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
    transition: transform var(--osirion-transition-duration-150, 150ms) ease;
}

.osirion-menu-call-to-action:hover .osirion-menu-call-to-action-arrow[b-l5mi3hpnnh],
.osirion-menu-call-to-action:focus-visible .osirion-menu-call-to-action-arrow[b-l5mi3hpnnh] {
    transform: translateX(3px);
}

@media (prefers-reduced-motion: reduce) {
    .osirion-menu-call-to-action[b-l5mi3hpnnh],
    .osirion-menu-call-to-action-arrow[b-l5mi3hpnnh] {
        transition-duration: 0.01ms !important;
    }

    .osirion-menu-call-to-action:hover .osirion-menu-call-to-action-arrow[b-l5mi3hpnnh],
    .osirion-menu-call-to-action:focus-visible .osirion-menu-call-to-action-arrow[b-l5mi3hpnnh] {
        transform: none;
    }
}
/* _content/Osirion.Blazor.Navigation/Components/MenuDivider.razor.rz.scp.css */
/*
 * MenuDivider Component Styles
 * A separator: a horizontal rule in lists and drawers, a short vertical rule between items of a horizontal bar.
 */

/* Child component theme inheritance - MenuDivider inherits parent component's theme */
[data-osirion-component-theme="light"] .osirion-menu-divider[b-5xfzd5fva7],
[data-osirion-component-theme="light"] .osirion-menu-divider-label[b-5xfzd5fva7],
.osirion-bootstrap-integration [data-osirion-component-theme="light"] .osirion-menu-divider[b-5xfzd5fva7],
.osirion-bootstrap-integration [data-osirion-component-theme="light"] .osirion-menu-divider-label[b-5xfzd5fva7] {
    --osirion-border-color: rgba(0, 0, 0, 0.1) !important;
    --osirion-text-tertiary: #9ca3af !important;
    --osirion-background-primary: #ffffff !important;
}

[data-osirion-component-theme="dark"] .osirion-menu-divider[b-5xfzd5fva7],
[data-osirion-component-theme="dark"] .osirion-menu-divider-label[b-5xfzd5fva7],
.osirion-bootstrap-integration [data-osirion-component-theme="dark"] .osirion-menu-divider[b-5xfzd5fva7],
.osirion-bootstrap-integration [data-osirion-component-theme="dark"] .osirion-menu-divider-label[b-5xfzd5fva7] {
    --osirion-border-color: rgba(255, 255, 255, 0.1) !important;
    --osirion-text-tertiary: #6b7280 !important;
    --osirion-background-primary: #111827 !important;
}

.osirion-menu-divider[b-5xfzd5fva7] {
    position: relative;
    height: 1px;
    margin: 0.5rem 0.75rem;
    background-color: var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
}

.osirion-menu-horizontal .osirion-menu-inner > .osirion-menu-divider[b-5xfzd5fva7] {
    align-self: center;
    width: 1px;
    height: 1.5rem;
    margin: 0 0.5rem;
}

.osirion-menu-divider-label[b-5xfzd5fva7] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 0 0.5rem;
    color: var(--osirion-text-tertiary, #9ca3af);
    font-size: var(--osirion-font-size-xs, 0.75rem);
    white-space: nowrap;
    background-color: var(--osirion-menu-background, var(--osirion-background-primary, #ffffff));
}

/* ===== Stacked layout ===== */

/* The stacked blocks below repeat the same rules once per context, because a media query cannot take a parameter:
   a vertical menu always stacks, and a collapsible menu stacks inside its drawer below its breakpoint. They differ only
   in their selector prefix and media query; change them together. */

@media (max-width: 768px) {
    .osirion-menu-collapsible .osirion-menu-inner > .osirion-menu-divider[b-5xfzd5fva7] {
        align-self: auto;
        width: auto;
        height: 1px;
        margin: 0.5rem 0.75rem;
    }
}

@media (max-width: 1199.98px) {
    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-inner > .osirion-menu-divider[b-5xfzd5fva7] {
        align-self: auto;
        width: auto;
        height: 1px;
        margin: 0.5rem 0.75rem;
    }
}

@media (max-width: 1439.98px) {
    .osirion-menu-collapse-extra-large .osirion-menu-inner > .osirion-menu-divider[b-5xfzd5fva7] {
        align-self: auto;
        width: auto;
        height: 1px;
        margin: 0.5rem 0.75rem;
    }
}
/* _content/Osirion.Blazor.Navigation/Components/MenuGroup.razor.rz.scp.css */
/*
 * MenuGroup Component Styles
 * Pure CSS menu group with SSR compatibility. In a mega submenu a group is a column with a title, an optional
 * description, its items and an optional footer link; elsewhere it is a labelled section of a list.
 */

.osirion-menu-group[b-lc7ks7li61] {
    width: 100%;
    margin: 0.25rem 0;
}

.osirion-menu-group-label[b-lc7ks7li61] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem 0.25rem;
    color: var(--osirion-menu-muted-color, var(--osirion-text-secondary, #6b7280));
    font-size: var(--osirion-font-size-xs, 0.75rem);
    font-weight: var(--osirion-font-weight-semibold, 600);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.osirion-menu-group-text[b-lc7ks7li61] {
    flex: 1;
}

.osirion-menu-group-description[b-lc7ks7li61] {
    margin: 0;
    padding: 0 0.75rem 0.5rem;
    color: var(--osirion-menu-muted-color, var(--osirion-text-secondary, #6b7280));
    font-size: var(--osirion-font-size-sm, 0.875rem);
    line-height: 1.4;
}

/* Optional footer link ("Explore X") */
.osirion-menu-group-footer[b-lc7ks7li61] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    margin-top: 0.5rem;
    padding: 0.5rem 0.75rem;
    color: var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
    font-size: var(--osirion-font-size-sm, 0.875rem);
    font-weight: var(--osirion-font-weight-semibold, 600);
    text-decoration: none;
    border-radius: var(--osirion-menu-radius, 0.5rem);
    transition: color var(--osirion-transition-duration-150, 150ms) ease;
}

    .osirion-menu-group-footer:hover[b-lc7ks7li61],
    .osirion-menu-group-footer:focus-visible[b-lc7ks7li61] {
        color: var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
        text-decoration: underline;
        text-underline-offset: 0.2em;
    }

    .osirion-menu-group-footer:focus-visible[b-lc7ks7li61] {
        outline: 2px solid var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
        outline-offset: 2px;
    }

.osirion-menu-group-footer-arrow[b-lc7ks7li61] {
    flex-shrink: 0;
    transition: transform var(--osirion-transition-duration-150, 150ms) ease;
}

.osirion-menu-group-footer:hover .osirion-menu-group-footer-arrow[b-lc7ks7li61],
.osirion-menu-group-footer:focus-visible .osirion-menu-group-footer-arrow[b-lc7ks7li61] {
    transform: translateX(3px);
}

.osirion-menu-group-items[b-lc7ks7li61] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    width: 100%;
}

/* Collapsible group (vertical menus) */
.osirion-menu-group-collapsible .osirion-menu-group-label[b-lc7ks7li61] {
    cursor: pointer;
    user-select: none;
    border-radius: var(--osirion-menu-radius, 0.5rem);
}

    .osirion-menu-group-collapsible .osirion-menu-group-label:hover[b-lc7ks7li61] {
        background-color: var(--osirion-menu-hover-background, color-mix(in srgb, currentColor 8%, transparent));
    }

.osirion-menu-group-collapsible .osirion-menu-group-toggle[b-lc7ks7li61] {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: 0.5rem;
    transition: transform var(--osirion-transition-duration-150, 150ms) ease;
}

.osirion-menu-group-collapsible:not(.osirion-menu-group-expanded) .osirion-menu-group-items[b-lc7ks7li61] {
    display: none;
}

.osirion-menu-group-collapsible:not(.osirion-menu-group-expanded) .osirion-menu-group-toggle svg[b-lc7ks7li61] {
    transform: rotate(-90deg);
}

/* Mega submenu column: sentence-case title, muted description and a divider above the items */
.osirion-submenu-mega-content .osirion-menu-group[b-lc7ks7li61] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin: 0;
}

.osirion-submenu-mega-content .osirion-menu-group-label[b-lc7ks7li61] {
    padding: 0;
    color: var(--osirion-menu-color, var(--osirion-text-primary, #1f2937));
    font-size: var(--osirion-font-size-base, 1rem);
    letter-spacing: normal;
    text-transform: none;
}

.osirion-submenu-mega-content .osirion-menu-group-description[b-lc7ks7li61] {
    margin: 0.25rem 0 0;
    padding: 0;
    font-size: 0.8125rem;
}

.osirion-submenu-mega-content .osirion-menu-group-label ~ .osirion-menu-group-items[b-lc7ks7li61] {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
}

.osirion-submenu-mega-content .osirion-menu-group-footer[b-lc7ks7li61] {
    align-self: flex-start;
    margin-top: auto;
    padding: 0.75rem 0 0;
}

/* ===== Stacked layout ===== */

/* The stacked blocks below repeat the same rules once per context, because a media query cannot take a parameter:
   a vertical menu always stacks, and a collapsible menu stacks inside its drawer below its breakpoint. They differ only
   in their selector prefix and media query; change them together. */

/* Vertical menus */
.osirion-menu-vertical .osirion-menu-group[b-lc7ks7li61] {
    margin: 0.25rem 0;
}

.osirion-menu-vertical .osirion-menu-group-label[b-lc7ks7li61] {
    padding: 0.75rem 0.75rem 0.25rem;
    color: var(--osirion-menu-muted-color, var(--osirion-text-secondary, #6b7280));
    font-size: var(--osirion-font-size-xs, 0.75rem);
    font-weight: var(--osirion-font-weight-semibold, 600);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.osirion-menu-vertical .osirion-menu-group-description[b-lc7ks7li61] {
    display: none;
}

.osirion-menu-vertical .osirion-menu-group-label ~ .osirion-menu-group-items[b-lc7ks7li61] {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.osirion-menu-vertical .osirion-menu-group-footer[b-lc7ks7li61] {
    min-height: 2.75rem;
    margin: 0;
    padding: 0.625rem 0.75rem;
}

@media (max-width: 768px) {
    .osirion-menu-collapsible .osirion-menu-group[b-lc7ks7li61] {
        margin: 0.25rem 0;
    }

    .osirion-menu-collapsible .osirion-menu-group-label[b-lc7ks7li61] {
        padding: 0.75rem 0.75rem 0.25rem;
        color: var(--osirion-menu-muted-color, var(--osirion-text-secondary, #6b7280));
        font-size: var(--osirion-font-size-xs, 0.75rem);
        font-weight: var(--osirion-font-weight-semibold, 600);
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    .osirion-menu-collapsible .osirion-menu-group-description[b-lc7ks7li61] {
        display: none;
    }

    .osirion-menu-collapsible .osirion-menu-group-label ~ .osirion-menu-group-items[b-lc7ks7li61] {
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }

    .osirion-menu-collapsible .osirion-menu-group-footer[b-lc7ks7li61] {
        min-height: 2.75rem;
        margin: 0;
        padding: 0.625rem 0.75rem;
    }
}

@media (max-width: 1199.98px) {
    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-group[b-lc7ks7li61] {
        margin: 0.25rem 0;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-group-label[b-lc7ks7li61] {
        padding: 0.75rem 0.75rem 0.25rem;
        color: var(--osirion-menu-muted-color, var(--osirion-text-secondary, #6b7280));
        font-size: var(--osirion-font-size-xs, 0.75rem);
        font-weight: var(--osirion-font-weight-semibold, 600);
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-group-description[b-lc7ks7li61] {
        display: none;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-group-label ~ .osirion-menu-group-items[b-lc7ks7li61] {
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-group-footer[b-lc7ks7li61] {
        min-height: 2.75rem;
        margin: 0;
        padding: 0.625rem 0.75rem;
    }
}

@media (max-width: 1439.98px) {
    .osirion-menu-collapse-extra-large .osirion-menu-group[b-lc7ks7li61] {
        margin: 0.25rem 0;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-group-label[b-lc7ks7li61] {
        padding: 0.75rem 0.75rem 0.25rem;
        color: var(--osirion-menu-muted-color, var(--osirion-text-secondary, #6b7280));
        font-size: var(--osirion-font-size-xs, 0.75rem);
        font-weight: var(--osirion-font-weight-semibold, 600);
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-group-description[b-lc7ks7li61] {
        display: none;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-group-label ~ .osirion-menu-group-items[b-lc7ks7li61] {
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-group-footer[b-lc7ks7li61] {
        min-height: 2.75rem;
        margin: 0;
        padding: 0.625rem 0.75rem;
    }
}

/* Accessibility: reduced motion */
@media (prefers-reduced-motion: reduce) {
    .osirion-menu-group-toggle[b-lc7ks7li61],
    .osirion-menu-group-footer[b-lc7ks7li61],
    .osirion-menu-group-footer-arrow[b-lc7ks7li61] {
        transition-duration: 0.01ms !important;
    }

    .osirion-menu-group-footer:hover .osirion-menu-group-footer-arrow[b-lc7ks7li61],
    .osirion-menu-group-footer:focus-visible .osirion-menu-group-footer-arrow[b-lc7ks7li61] {
        transform: none;
    }
}
/* _content/Osirion.Blazor.Navigation/Components/MenuImageCard.razor.rz.scp.css */
/*
 * MenuImageCard Component Styles
 * Linked image card with overlay caption for mega menus (SSR compatible).
 * Caption sits on a dark scrim over the image, so contrast holds in
 * both light and dark themes.
 */

.osirion-menu-image-card[b-s6u3vjha23] {
    position: relative;
    display: block;
    height: 100%;
    min-height: 12rem;
    overflow: hidden;
    border-radius: var(--osirion-radius-lg, 0.5rem);
    text-decoration: none;
    isolation: isolate;
}

.osirion-menu-image-card-image[b-s6u3vjha23] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--osirion-transition-duration-300, 300ms) ease;
}

.osirion-menu-image-card:hover .osirion-menu-image-card-image[b-s6u3vjha23],
.osirion-menu-image-card:focus-visible .osirion-menu-image-card-image[b-s6u3vjha23] {
    transform: scale(1.04);
}

.osirion-menu-image-card:focus-visible[b-s6u3vjha23] {
    outline: 2px solid var(--osirion-action-primary, #2563eb);
    outline-offset: 2px;
}

.osirion-menu-image-card-scrim[b-s6u3vjha23] {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(2, 6, 23, 0) 35%, rgba(2, 6, 23, 0.82) 100%);
    pointer-events: none;
}

.osirion-menu-image-card-caption[b-s6u3vjha23] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    gap: var(--osirion-spacing-1, 0.25rem);
    padding: var(--osirion-spacing-4, 1rem);
    color: #ffffff;
}

.osirion-menu-image-card-title[b-s6u3vjha23] {
    font-size: var(--osirion-font-size-base, 1rem);
    font-weight: var(--osirion-font-weight-semibold, 600);
    line-height: 1.3;
}

.osirion-menu-image-card-description[b-s6u3vjha23] {
    font-size: var(--osirion-font-size-sm, 0.875rem);
    line-height: 1.4;
    opacity: 0.85;
}

@media (prefers-reduced-motion: reduce) {
    .osirion-menu-image-card-image[b-s6u3vjha23] {
        transition-duration: 0.01ms !important;
    }

    .osirion-menu-image-card:hover .osirion-menu-image-card-image[b-s6u3vjha23],
    .osirion-menu-image-card:focus-visible .osirion-menu-image-card-image[b-s6u3vjha23] {
        transform: none;
    }
}
/* _content/Osirion.Blazor.Navigation/Components/MenuItem.razor.rz.scp.css */
/*
 * MenuItem Component Styles
 * Pure CSS menu item with SSR compatibility. A horizontal bar opens submenus as dropdown panels on hover and focus;
 * a vertical menu or a drawer stacks them, opened by their toggle. Colours come from the Menu's theming hooks.
 */

/* Child component theme inheritance - MenuItem inherits parent Menu's component theme */
[data-osirion-component-theme="light"] .osirion-menu-item[b-o9wb8gwm50],
[data-osirion-component-theme="light"] .osirion-menu-item-wrapper[b-o9wb8gwm50],
.osirion-bootstrap-integration [data-osirion-component-theme="light"] .osirion-menu-item[b-o9wb8gwm50],
.osirion-bootstrap-integration [data-osirion-component-theme="light"] .osirion-menu-item-wrapper[b-o9wb8gwm50] {
    --osirion-text-primary: #1f2937 !important;
    --osirion-text-secondary: #6b7280 !important;
    --osirion-background-primary: #ffffff !important;
    --osirion-background-secondary: #f8f9fa !important;
    --osirion-border-color: rgba(0, 0, 0, 0.1) !important;
    --osirion-action-primary: #2563eb !important;
    --osirion-text-inverted: #ffffff !important;
}

[data-osirion-component-theme="dark"] .osirion-menu-item[b-o9wb8gwm50],
[data-osirion-component-theme="dark"] .osirion-menu-item-wrapper[b-o9wb8gwm50],
.osirion-bootstrap-integration [data-osirion-component-theme="dark"] .osirion-menu-item[b-o9wb8gwm50],
.osirion-bootstrap-integration [data-osirion-component-theme="dark"] .osirion-menu-item-wrapper[b-o9wb8gwm50] {
    --osirion-text-primary: #f3f4f6 !important;
    --osirion-text-secondary: #9ca3af !important;
    --osirion-background-primary: #111827 !important;
    --osirion-background-secondary: #1f2937 !important;
    --osirion-border-color: rgba(255, 255, 255, 0.1) !important;
    --osirion-action-primary: #60a5fa !important;
    --osirion-text-inverted: #ffffff !important;
}

/* Item */
.osirion-menu-item-wrapper[b-o9wb8gwm50] {
    position: relative;
    display: block;
}

.osirion-menu-item[b-o9wb8gwm50] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    min-height: 2.5rem;
    margin: 0;
    padding: 0.5rem 0.75rem;
    color: inherit;
    font-size: 0.9375rem;
    font-weight: var(--osirion-font-weight-medium, 500);
    line-height: 1.3;
    text-decoration: none;
    background-color: transparent;
    border: 0;
    border-radius: var(--osirion-menu-radius, 0.5rem);
    cursor: pointer;
    transition: background-color var(--osirion-transition-duration-150, 150ms) ease, color var(--osirion-transition-duration-150, 150ms) ease;
    -webkit-tap-highlight-color: transparent;
}

    .osirion-menu-item:hover[b-o9wb8gwm50] {
        color: inherit;
        text-decoration: none;
        background-color: var(--osirion-menu-hover-background, color-mix(in srgb, currentColor 8%, transparent));
    }

    /* Keyboard focus has its own indicator, so a focused item never looks like the current page (WCAG 2.4.7) */
    .osirion-menu-item:focus-visible[b-o9wb8gwm50] {
        outline: 2px solid var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
        outline-offset: -2px;
    }

.osirion-menu-item-active[b-o9wb8gwm50],
.osirion-menu-item-active:hover[b-o9wb8gwm50] {
    color: var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
    background-color: var(--osirion-menu-active-background, color-mix(in srgb, var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb))) 12%, transparent));
}

.osirion-menu-item-disabled[b-o9wb8gwm50] {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.osirion-menu-item-icon[b-o9wb8gwm50] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    opacity: 0.8;
}

    .osirion-menu-item-icon[b-o9wb8gwm50]  svg {
        width: 100%;
        height: 100%;
    }

.osirion-menu-item-content[b-o9wb8gwm50] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
}

.osirion-menu-item-text[b-o9wb8gwm50] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.osirion-menu-item-description[b-o9wb8gwm50] {
    margin-top: 0.125rem;
    color: var(--osirion-menu-muted-color, var(--osirion-text-secondary, #6b7280));
    font-size: 0.8125rem;
    font-weight: var(--osirion-font-weight-normal, 400);
    line-height: 1.4;
    white-space: normal;
}

/* Top-level bar items stay on one line and fill the bar's height, so their dropdown's hover area reaches the panel */
.osirion-menu-horizontal .osirion-menu-inner > .osirion-menu-item-wrapper[b-o9wb8gwm50] {
    display: flex;
    align-items: center;
    align-self: stretch;
}

.osirion-menu-horizontal .osirion-menu-inner > .osirion-menu-item-wrapper > .osirion-menu-item[b-o9wb8gwm50] {
    white-space: nowrap;
}

.osirion-menu-horizontal .osirion-menu-inner > .osirion-menu-item-has-submenu > .osirion-submenu-toggle[b-o9wb8gwm50] {
    align-self: center;
    min-height: 2.5rem;
}

/* Submenu toggle: a visually hidden checkbox (the expanded state) shown through a chevron label */
.osirion-submenu-toggler[b-o9wb8gwm50] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.osirion-submenu-toggle[b-o9wb8gwm50] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: inherit;
    border-radius: var(--osirion-menu-radius, 0.5rem);
    cursor: pointer;
    transition: background-color var(--osirion-transition-duration-150, 150ms) ease;
    -webkit-tap-highlight-color: transparent;
}

/* Keyboard focus: the checkbox is visually hidden, so show its focus on the visible toggle */
.osirion-submenu-toggler:focus-visible ~ .osirion-submenu-toggle[b-o9wb8gwm50] {
    outline: 2px solid var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
    outline-offset: -2px;
}

.osirion-menu-item-chevron[b-o9wb8gwm50] {
    display: inline-flex;
    opacity: 0.65;
    transform: rotate(90deg);
    transition: transform var(--osirion-transition-duration-200, 200ms) ease;
}

/* A parent row: the link (or the toggle-only label) and its chevron read as one control */
.osirion-menu-item-has-submenu[b-o9wb8gwm50] {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

    .osirion-menu-item-has-submenu > .osirion-menu-item[b-o9wb8gwm50] {
        flex: 1 1 auto;
        min-width: 0;
        padding-right: 0.25rem;
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }

    .osirion-menu-item-has-submenu > .osirion-submenu-toggle[b-o9wb8gwm50] {
        width: 2rem;
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
    }

.osirion-menu-item-has-submenu:is(:hover, :focus-within) > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
    background-color: var(--osirion-menu-hover-background, color-mix(in srgb, currentColor 8%, transparent));
}

.osirion-menu-item-wrapper-active.osirion-menu-item-has-submenu > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
    color: var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
    background-color: var(--osirion-menu-active-background, color-mix(in srgb, var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb))) 12%, transparent));
}

/* An open top-level submenu turns its chevron up; inside a dropdown, a nested submenu's chevron points at its flyout */
.osirion-menu-inner > .osirion-menu-item-has-submenu:hover > .osirion-submenu-toggle .osirion-menu-item-chevron[b-o9wb8gwm50],
.osirion-menu-inner > .osirion-menu-item-has-submenu:focus-within > .osirion-submenu-toggler:checked ~ .osirion-submenu-toggle .osirion-menu-item-chevron[b-o9wb8gwm50] {
    transform: rotate(-90deg);
}

.osirion-submenu .osirion-menu-item-chevron[b-o9wb8gwm50] {
    transform: none;
}

.osirion-menu-align-right .osirion-submenu .osirion-menu-item-chevron[b-o9wb8gwm50] {
    transform: rotate(180deg);
}

/* Dropdown panel */
.osirion-submenu[b-o9wb8gwm50] {
    display: none;
    position: absolute;
    z-index: var(--osirion-z-index-30, 30);
    min-width: 15rem;
    max-width: min(22rem, calc(100vw - 2rem));
    padding: 0.375rem;
    color: var(--osirion-menu-color, var(--osirion-text-primary, #1f2937));
    text-align: start;
    background-color: var(--osirion-menu-dropdown-background, var(--osirion-menu-background, var(--osirion-background-primary, #ffffff)));
    border: 1px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
    border-radius: var(--osirion-menu-panel-radius, 0.75rem);
    box-shadow: var(--osirion-menu-shadow, 0 18px 40px -12px rgba(15, 23, 42, 0.28), 0 6px 14px -6px rgba(15, 23, 42, 0.14));
}

    /* Invisible strip over the gap above the panel, so the pointer can cross it without closing the panel */
    .osirion-submenu[b-o9wb8gwm50]::before {
        content: "";
        position: absolute;
        top: -0.75rem;
        left: 0;
        right: 0;
        height: 0.75rem;
    }

/* A panel opens on hover, or from the keyboard when its toggle is checked (Space) and focus stays inside it. A closed
   panel is skipped by Tab, so a keyboard user does not have to walk through every link of every menu. */
.osirion-menu-item-has-submenu:hover > .osirion-submenu[b-o9wb8gwm50],
.osirion-menu-item-has-submenu:focus-within > .osirion-submenu-toggler:checked ~ .osirion-submenu[b-o9wb8gwm50] {
    display: block;
}

.osirion-menu-item-has-submenu > .osirion-submenu[b-o9wb8gwm50] {
    top: calc(100% + 0.25rem);
    left: 0;
}

/* In a right-aligned bar, panels open towards the page so the last items' panels stay on screen */
.osirion-menu-align-right .osirion-menu-inner > .osirion-menu-item-has-submenu > .osirion-submenu-regular[b-o9wb8gwm50] {
    left: auto;
    right: 0;
}

.osirion-submenu .osirion-menu-item[b-o9wb8gwm50] {
    min-height: 2.5rem;
}

/* Nested submenus fly out beside their parent row */
.osirion-submenu .osirion-menu-item-has-submenu > .osirion-submenu[b-o9wb8gwm50] {
    top: calc(-0.375rem - 1px);
    left: calc(100% + 0.375rem);
}

    .osirion-submenu .osirion-submenu[b-o9wb8gwm50]::before {
        top: 0;
        bottom: 0;
        left: -0.5rem;
        right: auto;
        width: 0.5rem;
        height: auto;
    }

.osirion-menu-align-right .osirion-submenu .osirion-menu-item-has-submenu > .osirion-submenu[b-o9wb8gwm50] {
    left: auto;
    right: calc(100% + 0.375rem);
}

    .osirion-menu-align-right .osirion-submenu .osirion-submenu[b-o9wb8gwm50]::before {
        left: auto;
        right: -0.5rem;
    }

@media (prefers-reduced-motion: no-preference) {
    .osirion-menu-item-has-submenu:hover > .osirion-submenu[b-o9wb8gwm50],
    .osirion-menu-item-has-submenu:focus-within > .osirion-submenu-toggler:checked ~ .osirion-submenu[b-o9wb8gwm50] {
        animation: osirion-menu-panel-in-b-o9wb8gwm50 160ms ease-out;
    }
}

@keyframes osirion-menu-panel-in-b-o9wb8gwm50 {
    from {
        opacity: 0;
        transform: translateY(-0.25rem);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* ===== Mega submenu ===== */

.osirion-submenu.osirion-submenu-mega[b-o9wb8gwm50] {
    flex-direction: row;
    align-items: stretch;
    gap: 2rem;
    width: min(72rem, calc(100vw - 2rem));
    min-width: 0;
    max-width: none;
    padding: 1.75rem;
    border-radius: var(--osirion-menu-mega-radius, 1rem);
}

.osirion-menu-item-has-submenu:hover > .osirion-submenu-mega[b-o9wb8gwm50],
.osirion-menu-item-has-submenu:focus-within > .osirion-submenu-toggler:checked ~ .osirion-submenu-mega[b-o9wb8gwm50] {
    display: flex;
}

/* A top-level mega item anchors its panel to the menu bar, so the panel centres under the whole bar */
.osirion-menu-horizontal .osirion-menu-inner > .osirion-menu-item-has-mega[b-o9wb8gwm50] {
    position: static;
}

    .osirion-menu-horizontal .osirion-menu-inner > .osirion-menu-item-has-mega > .osirion-submenu-mega[b-o9wb8gwm50] {
        top: calc(100% + 0.5rem);
        left: 50%;
        right: auto;
        translate: -50% 0;
    }

/* Content zone: responsive column grid for MenuGroups */
.osirion-submenu-mega-content[b-o9wb8gwm50] {
    display: grid;
    flex: 1 1 auto;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
    align-content: start;
    gap: 1.75rem 2rem;
    min-width: 0;
}

/* Aside zone: featured panel or image card */
.osirion-submenu-mega-aside[b-o9wb8gwm50] {
    display: flex;
    flex: 0 0 18rem;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

.osirion-submenu-mega .osirion-menu-item[b-o9wb8gwm50] {
    align-items: flex-start;
    gap: 0.75rem;
    min-height: 0;
    margin-inline: -0.75rem;
    padding: 0.625rem 0.75rem;
}

    .osirion-submenu-mega .osirion-menu-item:hover .osirion-menu-item-text[b-o9wb8gwm50] {
        color: var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
    }

.osirion-submenu-mega .osirion-menu-item-text[b-o9wb8gwm50] {
    font-weight: var(--osirion-font-weight-semibold, 600);
}

/* Icons in a mega submenu sit in a tinted tile */
.osirion-submenu-mega .osirion-menu-item-icon[b-o9wb8gwm50] {
    width: 2.25rem;
    height: 2.25rem;
    padding: 0.5rem;
    color: var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb)));
    background-color: var(--osirion-menu-active-background, color-mix(in srgb, var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb))) 12%, transparent));
    border-radius: var(--osirion-menu-radius, 0.5rem);
    opacity: 1;
}

@media (min-width: 769px) and (max-width: 1199.98px) {
    .osirion-submenu.osirion-submenu-mega[b-o9wb8gwm50] {
        gap: 1.25rem;
        width: calc(100vw - 2rem);
        padding: 1.25rem;
    }

    .osirion-submenu-mega-content[b-o9wb8gwm50] {
        grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
        gap: 1.25rem 1.5rem;
    }

    .osirion-submenu-mega-aside[b-o9wb8gwm50] {
        flex-basis: 15rem;
    }
}

/* ===== Stacked layout ===== */

/* The stacked blocks below repeat the same rules once per context, because a media query cannot take a parameter:
   a vertical menu always stacks, and a collapsible menu stacks inside its drawer below its breakpoint. They differ only
   in their selector prefix and media query; change them together. */

/* Vertical menus */
.osirion-menu-vertical .osirion-menu-inner > .osirion-menu-item-wrapper[b-o9wb8gwm50] {
    display: block;
}

.osirion-menu-vertical .osirion-menu-inner > .osirion-menu-item-has-submenu[b-o9wb8gwm50],
.osirion-menu-vertical .osirion-menu-item-has-submenu[b-o9wb8gwm50] {
    display: flex;
    align-items: stretch;
}

.osirion-menu-vertical .osirion-menu-inner > .osirion-menu-item-has-submenu > .osirion-submenu-toggle[b-o9wb8gwm50] {
    align-self: stretch;
}

.osirion-menu-vertical .osirion-menu-item[b-o9wb8gwm50] {
    min-height: 3rem;
    padding: 0.75rem;
    font-size: var(--osirion-font-size-base, 1rem);
}

.osirion-menu-vertical .osirion-menu-item-description[b-o9wb8gwm50] {
    display: none;
}

.osirion-menu-vertical .osirion-menu-item-has-submenu > .osirion-menu-item[b-o9wb8gwm50] {
    flex: 1 1 0%;
}

.osirion-menu-vertical .osirion-menu-item-has-submenu > .osirion-submenu-toggle[b-o9wb8gwm50] {
    width: 3rem;
}

/* The row highlights while the pointer is on it, not while it is on the open submenu below it */
.osirion-menu-vertical .osirion-menu-item-has-submenu:is(:hover, :focus-within) > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
    background-color: transparent;
}

.osirion-menu-vertical .osirion-menu-item-wrapper-active.osirion-menu-item-has-submenu > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
    background-color: var(--osirion-menu-active-background, color-mix(in srgb, var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb))) 12%, transparent));
}

.osirion-menu-vertical .osirion-menu-item-has-submenu:has(> .osirion-menu-item:hover, > .osirion-submenu-toggle:hover) > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
    background-color: var(--osirion-menu-hover-background, color-mix(in srgb, currentColor 8%, transparent));
}

/* Chevrons point down, and up once their submenu is open */
.osirion-menu-vertical .osirion-submenu .osirion-menu-item-chevron[b-o9wb8gwm50],
.osirion-menu-vertical .osirion-menu-inner > .osirion-menu-item-has-submenu:is(:hover, :focus-within) > .osirion-submenu-toggle .osirion-menu-item-chevron[b-o9wb8gwm50] {
    transform: rotate(90deg);
}

.osirion-menu-vertical .osirion-menu-inner .osirion-submenu-toggler:checked ~ .osirion-submenu-toggle .osirion-menu-item-chevron[b-o9wb8gwm50] {
    transform: rotate(-90deg);
}

/* Submenus open in place, as an indented list, and only from their toggle */
.osirion-menu-vertical .osirion-menu-item-has-submenu > .osirion-submenu[b-o9wb8gwm50],
.osirion-menu-vertical .osirion-menu-item-has-submenu > .osirion-submenu.osirion-submenu-mega[b-o9wb8gwm50] {
    display: none;
    position: static;
    flex-basis: 100%;
    width: auto;
    min-width: 0;
    max-width: none;
    margin: 0.125rem 0 0.375rem 0.875rem;
    padding: 0 0 0 0.5rem;
    background-color: transparent;
    border: 0;
    border-left: 2px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
    border-radius: 0;
    box-shadow: none;
    translate: none;
    animation: none;
}

.osirion-menu-vertical .osirion-submenu[b-o9wb8gwm50]::before {
    display: none;
}

.osirion-menu-vertical .osirion-menu-item-has-submenu:is(:hover, :focus-within) > .osirion-submenu[b-o9wb8gwm50] {
    display: none;
}

.osirion-menu-vertical .osirion-submenu-toggler:checked ~ .osirion-submenu[b-o9wb8gwm50] {
    display: block;
}

.osirion-menu-vertical .osirion-submenu-toggler:checked ~ .osirion-submenu-mega[b-o9wb8gwm50] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.osirion-menu-vertical .osirion-submenu .osirion-menu-item[b-o9wb8gwm50] {
    min-height: 2.75rem;
    padding: 0.625rem 0.75rem;
    font-size: 0.9375rem;
}

/* Mega submenus become one list of their groups; the promotional aside is left out */
.osirion-menu-vertical .osirion-submenu-mega-content[b-o9wb8gwm50] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.osirion-menu-vertical .osirion-submenu-mega-aside[b-o9wb8gwm50] {
    display: none;
}

.osirion-menu-vertical .osirion-submenu-mega .osirion-menu-item[b-o9wb8gwm50] {
    align-items: center;
    gap: 0.625rem;
    margin-inline: 0;
}

.osirion-menu-vertical .osirion-submenu-mega .osirion-menu-item-text[b-o9wb8gwm50] {
    font-weight: inherit;
}

.osirion-menu-vertical .osirion-submenu-mega .osirion-menu-item-icon[b-o9wb8gwm50] {
    width: 1.75rem;
    height: 1.75rem;
    padding: 0.375rem;
}

@media (max-width: 768px) {
    .osirion-menu-collapsible .osirion-menu-inner > .osirion-menu-item-wrapper[b-o9wb8gwm50] {
        display: block;
    }

    .osirion-menu-collapsible .osirion-menu-inner > .osirion-menu-item-has-submenu[b-o9wb8gwm50],
    .osirion-menu-collapsible .osirion-menu-item-has-submenu[b-o9wb8gwm50] {
        display: flex;
        align-items: stretch;
    }

    .osirion-menu-collapsible .osirion-menu-inner > .osirion-menu-item-has-submenu > .osirion-submenu-toggle[b-o9wb8gwm50] {
        align-self: stretch;
    }

    .osirion-menu-collapsible .osirion-menu-item[b-o9wb8gwm50] {
        min-height: 3rem;
        padding: 0.75rem;
        font-size: var(--osirion-font-size-base, 1rem);
    }

    .osirion-menu-collapsible .osirion-menu-item-description[b-o9wb8gwm50] {
        display: none;
    }

    .osirion-menu-collapsible .osirion-menu-item-has-submenu > .osirion-menu-item[b-o9wb8gwm50] {
        flex: 1 1 0%;
    }

    .osirion-menu-collapsible .osirion-menu-item-has-submenu > .osirion-submenu-toggle[b-o9wb8gwm50] {
        width: 3rem;
    }

    /* The row highlights while the pointer is on it, not while it is on the open submenu below it */
    .osirion-menu-collapsible .osirion-menu-item-has-submenu:is(:hover, :focus-within) > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
        background-color: transparent;
    }

    .osirion-menu-collapsible .osirion-menu-item-wrapper-active.osirion-menu-item-has-submenu > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
        background-color: var(--osirion-menu-active-background, color-mix(in srgb, var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb))) 12%, transparent));
    }

    .osirion-menu-collapsible .osirion-menu-item-has-submenu:has(> .osirion-menu-item:hover, > .osirion-submenu-toggle:hover) > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
        background-color: var(--osirion-menu-hover-background, color-mix(in srgb, currentColor 8%, transparent));
    }

    /* Chevrons point down, and up once their submenu is open */
    .osirion-menu-collapsible .osirion-submenu .osirion-menu-item-chevron[b-o9wb8gwm50],
    .osirion-menu-collapsible .osirion-menu-inner > .osirion-menu-item-has-submenu:is(:hover, :focus-within) > .osirion-submenu-toggle .osirion-menu-item-chevron[b-o9wb8gwm50] {
        transform: rotate(90deg);
    }

    .osirion-menu-collapsible .osirion-menu-inner .osirion-submenu-toggler:checked ~ .osirion-submenu-toggle .osirion-menu-item-chevron[b-o9wb8gwm50] {
        transform: rotate(-90deg);
    }

    /* Submenus open in place, as an indented list, and only from their toggle */
    .osirion-menu-collapsible .osirion-menu-item-has-submenu > .osirion-submenu[b-o9wb8gwm50],
    .osirion-menu-collapsible .osirion-menu-item-has-submenu > .osirion-submenu.osirion-submenu-mega[b-o9wb8gwm50] {
        display: none;
        position: static;
        flex-basis: 100%;
        width: auto;
        min-width: 0;
        max-width: none;
        margin: 0.125rem 0 0.375rem 0.875rem;
        padding: 0 0 0 0.5rem;
        background-color: transparent;
        border: 0;
        border-left: 2px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
        border-radius: 0;
        box-shadow: none;
        translate: none;
        animation: none;
    }

    .osirion-menu-collapsible .osirion-submenu[b-o9wb8gwm50]::before {
        display: none;
    }

    .osirion-menu-collapsible .osirion-menu-item-has-submenu:is(:hover, :focus-within) > .osirion-submenu[b-o9wb8gwm50] {
        display: none;
    }

    .osirion-menu-collapsible .osirion-submenu-toggler:checked ~ .osirion-submenu[b-o9wb8gwm50] {
        display: block;
    }

    .osirion-menu-collapsible .osirion-submenu-toggler:checked ~ .osirion-submenu-mega[b-o9wb8gwm50] {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
    }

    .osirion-menu-collapsible .osirion-submenu .osirion-menu-item[b-o9wb8gwm50] {
        min-height: 2.75rem;
        padding: 0.625rem 0.75rem;
        font-size: 0.9375rem;
    }

    /* Mega submenus become one list of their groups; the promotional aside is left out */
    .osirion-menu-collapsible .osirion-submenu-mega-content[b-o9wb8gwm50] {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
    }

    .osirion-menu-collapsible .osirion-submenu-mega-aside[b-o9wb8gwm50] {
        display: none;
    }

    .osirion-menu-collapsible .osirion-submenu-mega .osirion-menu-item[b-o9wb8gwm50] {
        align-items: center;
        gap: 0.625rem;
        margin-inline: 0;
    }

    .osirion-menu-collapsible .osirion-submenu-mega .osirion-menu-item-text[b-o9wb8gwm50] {
        font-weight: inherit;
    }

    .osirion-menu-collapsible .osirion-submenu-mega .osirion-menu-item-icon[b-o9wb8gwm50] {
        width: 1.75rem;
        height: 1.75rem;
        padding: 0.375rem;
    }
}

@media (max-width: 1199.98px) {
    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-inner > .osirion-menu-item-wrapper[b-o9wb8gwm50] {
        display: block;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-inner > .osirion-menu-item-has-submenu[b-o9wb8gwm50],
    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-item-has-submenu[b-o9wb8gwm50] {
        display: flex;
        align-items: stretch;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-inner > .osirion-menu-item-has-submenu > .osirion-submenu-toggle[b-o9wb8gwm50] {
        align-self: stretch;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-item[b-o9wb8gwm50] {
        min-height: 3rem;
        padding: 0.75rem;
        font-size: var(--osirion-font-size-base, 1rem);
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-item-description[b-o9wb8gwm50] {
        display: none;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-item-has-submenu > .osirion-menu-item[b-o9wb8gwm50] {
        flex: 1 1 0%;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-item-has-submenu > .osirion-submenu-toggle[b-o9wb8gwm50] {
        width: 3rem;
    }

    /* The row highlights while the pointer is on it, not while it is on the open submenu below it */
    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-item-has-submenu:is(:hover, :focus-within) > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
        background-color: transparent;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-item-wrapper-active.osirion-menu-item-has-submenu > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
        background-color: var(--osirion-menu-active-background, color-mix(in srgb, var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb))) 12%, transparent));
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-item-has-submenu:has(> .osirion-menu-item:hover, > .osirion-submenu-toggle:hover) > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
        background-color: var(--osirion-menu-hover-background, color-mix(in srgb, currentColor 8%, transparent));
    }

    /* Chevrons point down, and up once their submenu is open */
    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-submenu .osirion-menu-item-chevron[b-o9wb8gwm50],
    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-inner > .osirion-menu-item-has-submenu:is(:hover, :focus-within) > .osirion-submenu-toggle .osirion-menu-item-chevron[b-o9wb8gwm50] {
        transform: rotate(90deg);
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-inner .osirion-submenu-toggler:checked ~ .osirion-submenu-toggle .osirion-menu-item-chevron[b-o9wb8gwm50] {
        transform: rotate(-90deg);
    }

    /* Submenus open in place, as an indented list, and only from their toggle */
    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-item-has-submenu > .osirion-submenu[b-o9wb8gwm50],
    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-item-has-submenu > .osirion-submenu.osirion-submenu-mega[b-o9wb8gwm50] {
        display: none;
        position: static;
        flex-basis: 100%;
        width: auto;
        min-width: 0;
        max-width: none;
        margin: 0.125rem 0 0.375rem 0.875rem;
        padding: 0 0 0 0.5rem;
        background-color: transparent;
        border: 0;
        border-left: 2px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
        border-radius: 0;
        box-shadow: none;
        translate: none;
        animation: none;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-submenu[b-o9wb8gwm50]::before {
        display: none;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-menu-item-has-submenu:is(:hover, :focus-within) > .osirion-submenu[b-o9wb8gwm50] {
        display: none;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-submenu-toggler:checked ~ .osirion-submenu[b-o9wb8gwm50] {
        display: block;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-submenu-toggler:checked ~ .osirion-submenu-mega[b-o9wb8gwm50] {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-submenu .osirion-menu-item[b-o9wb8gwm50] {
        min-height: 2.75rem;
        padding: 0.625rem 0.75rem;
        font-size: 0.9375rem;
    }

    /* Mega submenus become one list of their groups; the promotional aside is left out */
    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-submenu-mega-content[b-o9wb8gwm50] {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-submenu-mega-aside[b-o9wb8gwm50] {
        display: none;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-submenu-mega .osirion-menu-item[b-o9wb8gwm50] {
        align-items: center;
        gap: 0.625rem;
        margin-inline: 0;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-submenu-mega .osirion-menu-item-text[b-o9wb8gwm50] {
        font-weight: inherit;
    }

    :is(.osirion-menu-collapse-large, .osirion-menu-collapse-extra-large) .osirion-submenu-mega .osirion-menu-item-icon[b-o9wb8gwm50] {
        width: 1.75rem;
        height: 1.75rem;
        padding: 0.375rem;
    }
}

@media (max-width: 1439.98px) {
    .osirion-menu-collapse-extra-large .osirion-menu-inner > .osirion-menu-item-wrapper[b-o9wb8gwm50] {
        display: block;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-inner > .osirion-menu-item-has-submenu[b-o9wb8gwm50],
    .osirion-menu-collapse-extra-large .osirion-menu-item-has-submenu[b-o9wb8gwm50] {
        display: flex;
        align-items: stretch;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-inner > .osirion-menu-item-has-submenu > .osirion-submenu-toggle[b-o9wb8gwm50] {
        align-self: stretch;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-item[b-o9wb8gwm50] {
        min-height: 3rem;
        padding: 0.75rem;
        font-size: var(--osirion-font-size-base, 1rem);
    }

    .osirion-menu-collapse-extra-large .osirion-menu-item-description[b-o9wb8gwm50] {
        display: none;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-item-has-submenu > .osirion-menu-item[b-o9wb8gwm50] {
        flex: 1 1 0%;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-item-has-submenu > .osirion-submenu-toggle[b-o9wb8gwm50] {
        width: 3rem;
    }

    /* The row highlights while the pointer is on it, not while it is on the open submenu below it */
    .osirion-menu-collapse-extra-large .osirion-menu-item-has-submenu:is(:hover, :focus-within) > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
        background-color: transparent;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-item-wrapper-active.osirion-menu-item-has-submenu > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
        background-color: var(--osirion-menu-active-background, color-mix(in srgb, var(--osirion-menu-accent, var(--osirion-link-color, var(--osirion-action-primary, #2563eb))) 12%, transparent));
    }

    .osirion-menu-collapse-extra-large .osirion-menu-item-has-submenu:has(> .osirion-menu-item:hover, > .osirion-submenu-toggle:hover) > :is(.osirion-menu-item, .osirion-submenu-toggle)[b-o9wb8gwm50] {
        background-color: var(--osirion-menu-hover-background, color-mix(in srgb, currentColor 8%, transparent));
    }

    /* Chevrons point down, and up once their submenu is open */
    .osirion-menu-collapse-extra-large .osirion-submenu .osirion-menu-item-chevron[b-o9wb8gwm50],
    .osirion-menu-collapse-extra-large .osirion-menu-inner > .osirion-menu-item-has-submenu:is(:hover, :focus-within) > .osirion-submenu-toggle .osirion-menu-item-chevron[b-o9wb8gwm50] {
        transform: rotate(90deg);
    }

    .osirion-menu-collapse-extra-large .osirion-menu-inner .osirion-submenu-toggler:checked ~ .osirion-submenu-toggle .osirion-menu-item-chevron[b-o9wb8gwm50] {
        transform: rotate(-90deg);
    }

    /* Submenus open in place, as an indented list, and only from their toggle */
    .osirion-menu-collapse-extra-large .osirion-menu-item-has-submenu > .osirion-submenu[b-o9wb8gwm50],
    .osirion-menu-collapse-extra-large .osirion-menu-item-has-submenu > .osirion-submenu.osirion-submenu-mega[b-o9wb8gwm50] {
        display: none;
        position: static;
        flex-basis: 100%;
        width: auto;
        min-width: 0;
        max-width: none;
        margin: 0.125rem 0 0.375rem 0.875rem;
        padding: 0 0 0 0.5rem;
        background-color: transparent;
        border: 0;
        border-left: 2px solid var(--osirion-menu-border-color, var(--osirion-border-color, rgba(15, 23, 42, 0.12)));
        border-radius: 0;
        box-shadow: none;
        translate: none;
        animation: none;
    }

    .osirion-menu-collapse-extra-large .osirion-submenu[b-o9wb8gwm50]::before {
        display: none;
    }

    .osirion-menu-collapse-extra-large .osirion-menu-item-has-submenu:is(:hover, :focus-within) > .osirion-submenu[b-o9wb8gwm50] {
        display: none;
    }

    .osirion-menu-collapse-extra-large .osirion-submenu-toggler:checked ~ .osirion-submenu[b-o9wb8gwm50] {
        display: block;
    }

    .osirion-menu-collapse-extra-large .osirion-submenu-toggler:checked ~ .osirion-submenu-mega[b-o9wb8gwm50] {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
    }

    .osirion-menu-collapse-extra-large .osirion-submenu .osirion-menu-item[b-o9wb8gwm50] {
        min-height: 2.75rem;
        padding: 0.625rem 0.75rem;
        font-size: 0.9375rem;
    }

    /* Mega submenus become one list of their groups; the promotional aside is left out */
    .osirion-menu-collapse-extra-large .osirion-submenu-mega-content[b-o9wb8gwm50] {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
    }

    .osirion-menu-collapse-extra-large .osirion-submenu-mega-aside[b-o9wb8gwm50] {
        display: none;
    }

    .osirion-menu-collapse-extra-large .osirion-submenu-mega .osirion-menu-item[b-o9wb8gwm50] {
        align-items: center;
        gap: 0.625rem;
        margin-inline: 0;
    }

    .osirion-menu-collapse-extra-large .osirion-submenu-mega .osirion-menu-item-text[b-o9wb8gwm50] {
        font-weight: inherit;
    }

    .osirion-menu-collapse-extra-large .osirion-submenu-mega .osirion-menu-item-icon[b-o9wb8gwm50] {
        width: 1.75rem;
        height: 1.75rem;
        padding: 0.375rem;
    }
}

/* Accessibility: reduced motion */
@media (prefers-reduced-motion: reduce) {
    .osirion-menu-item[b-o9wb8gwm50],
    .osirion-submenu-toggle[b-o9wb8gwm50],
    .osirion-menu-item-chevron[b-o9wb8gwm50] {
        transition-duration: 0.01ms !important;
    }
}
/* _content/Osirion.Blazor.Navigation/Components/MenuPanel.razor.rz.scp.css */
/*
 * MenuPanel Component Styles
 * High-contrast promotional aside for mega menus (SSR compatible).
 * Theme-aware: uses inverted surface tokens so it stays a contrast
 * panel in both light and dark themes. Sites can rebrand it via
 * --osirion-menu-panel-background / --osirion-menu-panel-color.
 */

.osirion-menu-panel[b-ycs050qsb4] {
    display: flex;
    flex-direction: column;
    gap: var(--osirion-spacing-3, 0.75rem);
    height: 100%;
    padding: var(--osirion-spacing-5, 1.25rem);
    background-color: var(--osirion-menu-panel-background, var(--osirion-background-inverted, #111827));
    color: var(--osirion-menu-panel-color, var(--osirion-text-inverted, #ffffff));
    border-radius: var(--osirion-radius-lg, 0.5rem);
}

.osirion-menu-panel-title[b-ycs050qsb4] {
    font-size: var(--osirion-font-size-base, 1rem);
    font-weight: var(--osirion-font-weight-semibold, 600);
    line-height: 1.3;
}

.osirion-menu-panel-description[b-ycs050qsb4] {
    margin: 0;
    font-size: var(--osirion-font-size-sm, 0.875rem);
    line-height: 1.4;
    opacity: 0.8;
}

.osirion-menu-panel-links[b-ycs050qsb4] {
    display: flex;
    flex-direction: column;
    gap: var(--osirion-spacing-2, 0.5rem);
    margin-top: var(--osirion-spacing-1, 0.25rem);
}
/* _content/Osirion.Blazor.Navigation/Components/MenuPanelLink.razor.rz.scp.css */
/*
 * MenuPanelLink Component Styles
 * Pill-style featured link used inside MenuPanel (SSR compatible).
 * Uses currentColor mixes so it adapts to any panel background.
 */

.osirion-menu-panel-link[b-lrvbczhcwf] {
    display: flex;
    align-items: center;
    gap: var(--osirion-spacing-3, 0.75rem);
    padding: var(--osirion-spacing-3, 0.75rem) var(--osirion-spacing-4, 1rem);
    color: inherit;
    font-size: var(--osirion-font-size-sm, 0.875rem);
    font-weight: var(--osirion-font-weight-semibold, 600);
    text-decoration: none;
    border-radius: var(--osirion-radius-md, 0.375rem);
    /* Fallback for browsers without color-mix */
    background-color: rgba(128, 128, 128, 0.18);
    border: 1px solid rgba(128, 128, 128, 0.3);
    background-color: color-mix(in srgb, currentColor 9%, transparent);
    border: 1px solid color-mix(in srgb, currentColor 24%, transparent);
    transition: background-color var(--osirion-transition-duration-150, 150ms) ease, border-color var(--osirion-transition-duration-150, 150ms) ease;
}

.osirion-menu-panel-link:hover[b-lrvbczhcwf],
.osirion-menu-panel-link:focus-visible[b-lrvbczhcwf] {
    color: inherit;
    background-color: rgba(128, 128, 128, 0.3);
    background-color: color-mix(in srgb, currentColor 18%, transparent);
    border-color: color-mix(in srgb, currentColor 45%, transparent);
    outline: none;
}

.osirion-menu-panel-link:focus-visible[b-lrvbczhcwf] {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.osirion-menu-panel-link-icon[b-lrvbczhcwf] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.125rem;
    height: 1.125rem;
    flex-shrink: 0;
}

    .osirion-menu-panel-link-icon svg[b-lrvbczhcwf] {
        width: 100%;
        height: 100%;
    }

.osirion-menu-panel-link-text[b-lrvbczhcwf] {
    flex: 1;
    min-width: 0;
}

.osirion-menu-panel-link-arrow[b-lrvbczhcwf] {
    flex-shrink: 0;
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity var(--osirion-transition-duration-150, 150ms) ease, transform var(--osirion-transition-duration-150, 150ms) ease;
}

.osirion-menu-panel-link:hover .osirion-menu-panel-link-arrow[b-lrvbczhcwf],
.osirion-menu-panel-link:focus-visible .osirion-menu-panel-link-arrow[b-lrvbczhcwf] {
    opacity: 1;
    transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
    .osirion-menu-panel-link[b-lrvbczhcwf],
    .osirion-menu-panel-link-arrow[b-lrvbczhcwf] {
        transition-duration: 0.01ms !important;
    }

    .osirion-menu-panel-link-arrow[b-lrvbczhcwf] {
        transform: none;
    }
}
/* _content/Osirion.Blazor.Navigation/Components/ScrollToTop.razor.rz.scp.css */
/* ScrollToTop Component Styles */
.osirion-scroll-to-top[b-s8mgpkqd5u] {
    position: fixed;
    width: var(--osirion-scroll-size, 45px);
    height: var(--osirion-scroll-size, 45px);
    border: var(--osirion-border-width) solid transparent;
    border-radius: var(--osirion-radius-full);
    box-shadow: var(--osirion-shadow-md);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all var(--osirion-transition-duration-300) var(--osirion-transition-timing-default);
    z-index: 1000;
    opacity: 1;
    visibility: visible;
    font-family: var(--osirion-font-family-base);
}

    .osirion-scroll-to-top.hidden[b-s8mgpkqd5u] {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }

    /* Hover state */
    .osirion-scroll-to-top:hover[b-s8mgpkqd5u] {
        transform: translateY(-2px);
        box-shadow: var(--osirion-shadow-lg);
    }

    /* Active/pressed state */
    .osirion-scroll-to-top:active[b-s8mgpkqd5u] {
        transform: translateY(0);
        box-shadow: var(--osirion-shadow-md);
    }

    /* Position variants */
    .osirion-scroll-to-top.bottom-right[b-s8mgpkqd5u] {
        bottom: var(--osirion-spacing-6);
        right: var(--osirion-spacing-6);
    }

    .osirion-scroll-to-top.bottom-left[b-s8mgpkqd5u] {
        bottom: var(--osirion-spacing-6);
        left: var(--osirion-spacing-6);
    }

    .osirion-scroll-to-top.top-right[b-s8mgpkqd5u] {
        top: var(--osirion-spacing-6);
        right: var(--osirion-spacing-6);
    }

    .osirion-scroll-to-top.top-left[b-s8mgpkqd5u] {
        top: var(--osirion-spacing-6);
        left: var(--osirion-spacing-6);
    }

    /* Icon sizing */
    .osirion-scroll-to-top svg[b-s8mgpkqd5u] {
        width: calc(var(--osirion-scroll-size, 45px) * 0.5);
        height: calc(var(--osirion-scroll-size, 45px) * 0.5);
        stroke-width: 2.5;
    }

    /* Text styling when present */
    .osirion-scroll-to-top .scroll-text[b-s8mgpkqd5u] {
        margin-left: var(--osirion-spacing-3);
        font-size: var(--osirion-font-size-sm);
        font-weight: var(--osirion-font-weight-medium);
    }

    /* When text is present, adjust to pill shape */
    .osirion-scroll-to-top:has(.scroll-text)[b-s8mgpkqd5u] {
        width: auto;
        padding: 0 var(--osirion-spacing-4);
        border-radius: var(--osirion-radius-full);
    }

/* Enhanced visibility animation */
@keyframes fadeInUp-b-s8mgpkqd5u {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.osirion-scroll-to-top:not(.hidden)[b-s8mgpkqd5u] {
    animation: fadeInUp-b-s8mgpkqd5u 0.3s ease-out;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .osirion-scroll-to-top[b-s8mgpkqd5u] {
        --osirion-scroll-size: 40px;
        --osirion-scroll-margin: 20px;
    }

        .osirion-scroll-to-top .scroll-text[b-s8mgpkqd5u] {
            display: none;
        }

        .osirion-scroll-to-top:has(.scroll-text)[b-s8mgpkqd5u] {
            width: var(--osirion-scroll-size, 40px);
            padding: 0;
            border-radius: var(--osirion-radius-full);
        }
}

/* Accessibility - reduce motion preference */
@media (prefers-reduced-motion) {
    .osirion-scroll-to-top[b-s8mgpkqd5u] {
        transition: opacity 0.2s ease;
    }

        .osirion-scroll-to-top:hover[b-s8mgpkqd5u] {
            transform: none;
        }

        .osirion-scroll-to-top:not(.hidden)[b-s8mgpkqd5u] {
            animation: none;
        }
}
