/* /Components/Layout/AdminLayout.razor.rz.scp.css */
/*
 * Admin shell: fixed sidebar beside a scrolling content column.
 *
 * body is a flex column (see app.css) with min-height:100vh, so the shell
 * claims the remaining height and the sidebar reaches the bottom of the window.
 */

.admin-shell[b-mi5d8wqsyj] {
    display: flex;
    flex: 1 0 auto;
    align-items: stretch;
}

.admin-main[b-mi5d8wqsyj] {
    flex: 1 1 auto;

    /* min-width:0 stops a wide table inside the main column from forcing the
       flex item past the viewport and squashing the sidebar. */
    min-width: 0;
    padding: var(--aq-space-8) var(--aq-space-6);
}

/* Signed-out state: the login form centres itself in the full width. */
.admin-main--bare[b-mi5d8wqsyj] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--aq-space-12) var(--aq-space-6);
}

@media (width < 992px) {
    .admin-shell[b-mi5d8wqsyj] {
        flex-direction: column;
    }
}
/* /Components/Layout/AdminSidebar.razor.rz.scp.css */
/*
 * Admin sidebar. Styled from the same --aq-* tokens as the public site so the
 * dashboard stays recognisably ÁLFAR QUEST, but with a denser, more utilitarian
 * rhythm than the marketing pages.
 */

.admin-sidebar[b-teg07pdf3i] {
    display: flex;
    flex-direction: column;
    gap: var(--aq-space-6);
    width: 240px;
    flex: 0 0 240px;
    padding: var(--aq-space-6) var(--aq-space-4);
    background: var(--aq-bg-200);
    border-inline-end: 1px solid var(--aq-border);
}

.admin-sidebar__brand[b-teg07pdf3i] {
    display: block;
    line-height: 0;
}

.admin-sidebar__brand img[b-teg07pdf3i] {
    width: 100%;
    height: auto;
}

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

.admin-sidebar__nav[b-teg07pdf3i] {
    display: flex;
    flex-direction: column;
    gap: var(--aq-space-1);
}

/* NavLink renders a plain <a>, so it is targeted by class rather than element. */
.admin-sidebar__link[b-teg07pdf3i] {
    display: flex;
    gap: var(--aq-space-3);
    align-items: center;
    padding: var(--aq-space-3);
    border-radius: var(--aq-radius-sm);
    color: var(--aq-text-200);
    font-family: var(--aq-font-primary);
    font-size: var(--aq-text-sm);
    text-decoration: none;
    transition: background var(--aq-transition), color var(--aq-transition);
}

.admin-sidebar__link:hover[b-teg07pdf3i],
.admin-sidebar__link:focus-visible[b-teg07pdf3i] {
    background: var(--aq-bg-100);
    color: var(--aq-primary);
}

/* "active" is the class NavLink itself adds for the matching route. */
.admin-sidebar__link.active[b-teg07pdf3i] {
    background: var(--aq-primary);
    color: var(--aq-primary-foreground);
    font-weight: 600;
}

.admin-sidebar__icon[b-teg07pdf3i] {
    font-size: var(--aq-text-lg);
    line-height: 1;
}

/* ---- Footer -------------------------------------------------------------- */

/* margin-top:auto pins the sign-out block to the bottom of the column. */
.admin-sidebar__footer[b-teg07pdf3i] {
    margin-block-start: auto;
    padding-block-start: var(--aq-space-4);
    border-block-start: 1px solid var(--aq-border);
}

/* A long e-mail address must not widen the fixed sidebar. */
.admin-sidebar__user[b-teg07pdf3i] {
    margin-block-end: var(--aq-space-3);
    overflow: hidden;
    color: var(--aq-text-300);
    font-size: var(--aq-text-xs);
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---- Narrow screens ------------------------------------------------------ */

/* Below the lg breakpoint the shell stacks, so the sidebar becomes a full-width
   band with its links in a wrapping row instead of a tall column. */
@media (width < 992px) {
    .admin-sidebar[b-teg07pdf3i] {
        width: 100%;
        flex: 1 1 auto;
        border-inline-end: 0;
        border-block-end: 1px solid var(--aq-border);
    }

    .admin-sidebar__brand img[b-teg07pdf3i] {
        width: 160px;
    }

    .admin-sidebar__nav[b-teg07pdf3i] {
        flex-direction: row;
        flex-wrap: wrap;
    }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-empgnkgzyi] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-empgnkgzyi] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-degyjfe7rz],
.components-reconnect-repeated-attempt-visible[b-degyjfe7rz],
.components-reconnect-failed-visible[b-degyjfe7rz],
.components-pause-visible[b-degyjfe7rz],
.components-resume-failed-visible[b-degyjfe7rz],
.components-rejoining-animation[b-degyjfe7rz] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-degyjfe7rz],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-degyjfe7rz],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-degyjfe7rz],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-degyjfe7rz],
#components-reconnect-modal.components-reconnect-retrying[b-degyjfe7rz],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-degyjfe7rz],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-degyjfe7rz],
#components-reconnect-modal.components-reconnect-failed[b-degyjfe7rz],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-degyjfe7rz] {
    display: block;
}


#components-reconnect-modal[b-degyjfe7rz] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-degyjfe7rz 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-degyjfe7rz 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-degyjfe7rz 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-degyjfe7rz]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-degyjfe7rz 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-degyjfe7rz {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-degyjfe7rz {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-degyjfe7rz {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-degyjfe7rz] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-degyjfe7rz] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-degyjfe7rz] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-degyjfe7rz] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-degyjfe7rz] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-degyjfe7rz] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-degyjfe7rz] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-degyjfe7rz 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-degyjfe7rz] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-degyjfe7rz {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Admin/Dashboard.razor.rz.scp.css */
/*
 * Dashboard statistic cards and panels.
 */

.admin-cards[b-2a0069rd7i] {
    display: grid;
    gap: var(--aq-space-4);
    margin-block: var(--aq-space-8);

    /* auto-fit + minmax reflows from four columns to one without any
       breakpoints of its own. */
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.admin-card[b-2a0069rd7i] {
    padding: var(--aq-space-6);
    background: var(--aq-bg-200);
    border: 1px solid var(--aq-border);
    border-radius: var(--aq-radius);
}

.admin-card__value[b-2a0069rd7i] {
    margin-block-end: var(--aq-space-2);
    color: var(--aq-primary);
    font-family: var(--aq-font-primary);
    font-size: var(--aq-text-2xl);
    font-weight: 700;
    line-height: 1;
}

.admin-card__label[b-2a0069rd7i] {
    margin-block-end: var(--aq-space-2);
    font-size: var(--aq-text-base);
}

.admin-card__hint[b-2a0069rd7i] {
    margin-block-end: 0;
    color: var(--aq-text-300);
    font-size: var(--aq-text-xs);
}

/* NOTE: .admin-panel is intentionally NOT defined here. It is shared with the
   other admin screens, and Blazor's CSS isolation would confine it to this one
   component, so it lives in wwwroot/app.css instead. */
/* /Components/Pages/Admin/Login.razor.rz.scp.css */
/*
 * Sign-in card. Narrow and centred by the bare variant of the admin shell.
 */

.admin-login[b-4ovb3r3s4z] {
    width: 100%;
    max-width: 380px;
    padding: var(--aq-space-8);
    background: var(--aq-bg-200);
    border: 1px solid var(--aq-border);
    border-radius: var(--aq-radius-lg);
    box-shadow: var(--aq-shadow);
}

.admin-login__heading[b-4ovb3r3s4z] {
    margin-block-end: var(--aq-space-6);
    font-size: var(--aq-text-xl);
    text-align: center;
}

.admin-login__back[b-4ovb3r3s4z] {
    margin-block-end: 0;
    margin-block-start: var(--aq-space-6);
    font-size: var(--aq-text-sm);
    text-align: center;
}
/* /Components/Shared/HomeSectionRenderer.razor.rz.scp.css */
/*
 * Homepage section block. Deliberately generic: the administrator can reorder
 * and retype sections freely, so the layout must not assume a fixed sequence.
 */

.home-section[b-pqsgnd9gg2] {
    position: relative;
    display: grid;
    padding: var(--aq-space-16) var(--aq-space-6);
    overflow: hidden;
}

.home-section__content[b-pqsgnd9gg2] {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: var(--aq-content-width);
    margin-inline: auto;
}

/* The background sits behind the copy and is dimmed for legibility. */
.home-section__background[b-pqsgnd9gg2] {
    position: absolute;
    inset: 0;
    z-index: 0;
    margin: 0;
    border-radius: 0;
    opacity: 0.45;
}

.home-section__heading[b-pqsgnd9gg2] {
    margin: 0 0 var(--aq-space-4);
    color: var(--aq-text-100);
    font-family: var(--aq-font-primary);
    font-size: var(--aq-text-2xl);
    line-height: 1.1;
}

/* The hero's heading is the page's focal point. */
.home-section--hero .home-section__heading[b-pqsgnd9gg2] {
    font-size: var(--aq-text-hero);
}

.home-section--hero[b-pqsgnd9gg2] {
    min-height: min(80vh, 40rem);
    place-content: center;
    text-align: center;
}

.home-section__subheading[b-pqsgnd9gg2] {
    margin: 0 0 var(--aq-space-6);
    color: var(--aq-text-200);
    font-family: var(--aq-font-secondary);
    font-size: var(--aq-text-lg);
}

.home-section__body[b-pqsgnd9gg2] {
    color: var(--aq-text-200);
    font-family: var(--aq-font-secondary);
    font-size: var(--aq-text-base);
    line-height: 1.7;
}

.home-section__cta[b-pqsgnd9gg2] {
    display: inline-block;
    margin-block-start: var(--aq-space-6);
    padding: var(--aq-space-3) var(--aq-space-8);
    background: var(--aq-primary);
    border-radius: var(--aq-radius-pill);
    color: var(--aq-primary-foreground);
    font-family: var(--aq-font-primary);
    font-size: var(--aq-text-sm);
    letter-spacing: 0.06em;
    text-decoration: none;
    text-transform: uppercase;
    transition: opacity var(--aq-transition);
}

.home-section__cta:hover[b-pqsgnd9gg2],
.home-section__cta:focus-visible[b-pqsgnd9gg2] {
    opacity: 0.85;
}

/* Flags seeded sample copy and untranslated content. */
.placeholder-note[b-pqsgnd9gg2] {
    margin-block-start: var(--aq-space-4);
    padding: var(--aq-space-2) var(--aq-space-3);
    border: 1px dashed var(--aq-border);
    border-radius: var(--aq-radius-sm);
    color: var(--aq-text-300);
    font-family: var(--aq-font-secondary);
    font-size: var(--aq-text-xs);
}
/* /Components/Shared/LanguageSwitcher.razor.rz.scp.css */
/* Language switcher: three small inline forms, so it works without JS. */

.language-switcher[b-vakth9qcmo] {
    display: flex;
    flex: 0 0 auto;
    gap: var(--aq-space-1);
    align-items: center;
}

.language-switcher__form[b-vakth9qcmo] {
    margin: 0;
}

.language-switcher__button[b-vakth9qcmo] {
    padding: var(--aq-space-1) var(--aq-space-3);
    background: transparent;
    border: 1px solid var(--aq-border);
    border-radius: var(--aq-radius-pill);
    color: var(--aq-text-300);
    cursor: pointer;
    font-family: var(--aq-font-secondary);
    font-size: var(--aq-text-xs);
    transition: color var(--aq-transition), border-color var(--aq-transition);
}

.language-switcher__button:hover[b-vakth9qcmo],
.language-switcher__button:focus-visible[b-vakth9qcmo] {
    border-color: var(--aq-primary);
    color: var(--aq-text-100);
}

/* The active language is disabled, so it must not look clickable. */
.language-switcher__button.is-current[b-vakth9qcmo] {
    background: var(--aq-primary);
    border-color: var(--aq-primary);
    color: var(--aq-primary-foreground);
    cursor: default;
}
/* /Components/Shared/RichTextEditor.razor.rz.scp.css */
/*
    Styling for the rich-text field.

    Quill ships its own "snow" theme, which is light by default. The rules
    below re-tint it with the ÁLFAR QUEST design tokens so it does not appear
    as a white rectangle in the dark admin.

    ::deep is required throughout: Quill builds its DOM at runtime, so those
    nodes carry no scope attribute from this component.
*/

.rich-text[b-3rffwa7bz4] {
    margin-block-end: var(--aq-space-3);
}

/*
    The textarea stays in the form (it is what actually posts) but is taken
    out of view once Quill is live. Hidden with clip rather than
    display:none - a display:none field is still submitted, but some browsers
    skip validation UI on it, and clip keeps behaviour predictable.
*/
.rich-text__source--hidden[b-3rffwa7bz4] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ---- Quill, re-tinted for the dark admin ------------------------------- */

[b-3rffwa7bz4] .ql-toolbar.ql-snow {
    background: var(--aq-bg-100);
    border: 1px solid var(--aq-border);
    border-start-start-radius: var(--aq-radius);
    border-start-end-radius: var(--aq-radius);
}

[b-3rffwa7bz4] .ql-container.ql-snow {
    background: var(--aq-bg-200);
    border: 1px solid var(--aq-border);
    border-top: 0;
    border-end-end-radius: var(--aq-radius);
    border-end-start-radius: var(--aq-radius);
    font-family: var(--aq-font-primary, inherit);
}

[b-3rffwa7bz4] .ql-editor {
    min-height: 12rem;
    color: var(--aq-text-100);
}

/* Quill's own placeholder text, shown when the field is empty. */
[b-3rffwa7bz4] .ql-editor.ql-blank::before {
    color: var(--aq-text-300);
    font-style: normal;
}

/*
    The toolbar icons are drawn as inline SVG with hardcoded dark strokes,
    which would be invisible against the dark panel.
*/
[b-3rffwa7bz4] .ql-snow .ql-stroke {
    stroke: var(--aq-text-200);
}

[b-3rffwa7bz4] .ql-snow .ql-fill {
    fill: var(--aq-text-200);
}

[b-3rffwa7bz4] .ql-snow .ql-picker {
    color: var(--aq-text-200);
}

[b-3rffwa7bz4] .ql-snow .ql-picker-options {
    background: var(--aq-bg-100);
    border-color: var(--aq-border);
}

/* Active / hovered controls take the brand accent. */
[b-3rffwa7bz4] .ql-snow .ql-active .ql-stroke,
[b-3rffwa7bz4] .ql-snow button:hover .ql-stroke {
    stroke: var(--aq-primary);
}

[b-3rffwa7bz4] .ql-snow .ql-active .ql-fill,
[b-3rffwa7bz4] .ql-snow button:hover .ql-fill {
    fill: var(--aq-primary);
}

/* The link tooltip is a floating panel and needs the same treatment. */
[b-3rffwa7bz4] .ql-snow .ql-tooltip {
    background: var(--aq-bg-100);
    border-color: var(--aq-border);
    box-shadow: none;
    color: var(--aq-text-100);
}

[b-3rffwa7bz4] .ql-snow .ql-tooltip input[type="text"] {
    background: var(--aq-bg-200);
    border-color: var(--aq-border);
    color: var(--aq-text-100);
}
/* /Components/Shared/SiteFooter.razor.rz.scp.css */
/* Site footer: data-driven links plus optional contact address. */

.site-footer[b-aalrlo9zv3] {
    display: flex;
    flex-direction: column;
    gap: var(--aq-space-4);
    align-items: center;
    margin-block-start: var(--aq-space-16);
    padding: var(--aq-space-12) var(--aq-space-6);
    background: var(--aq-footer-bg);
    border-block-start: 1px solid var(--aq-border);
    text-align: center;
}

.site-footer__nav ul[b-aalrlo9zv3] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--aq-space-4);
    justify-content: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer a[b-aalrlo9zv3] {
    color: var(--aq-text-300);
    font-family: var(--aq-font-secondary);
    font-size: var(--aq-text-sm);
    text-decoration: none;
    transition: color var(--aq-transition);
}

.site-footer a:hover[b-aalrlo9zv3],
.site-footer a:focus-visible[b-aalrlo9zv3] {
    color: var(--aq-primary);
}

.site-footer__contact[b-aalrlo9zv3],
.site-footer__legal[b-aalrlo9zv3] {
    margin: 0;
    color: var(--aq-text-300);
    font-family: var(--aq-font-secondary);
    font-size: var(--aq-text-xs);
}
/* /Components/Shared/SiteHeader.razor.rz.scp.css */
/*
 * Site header: logo, data-driven menu and language switcher.
 *
 * Bootstrap supplies the responsive behaviour (row on desktop, collapsed
 * behind the hamburger on mobile); this file only re-skins it with the brand
 * tokens. Because the markup inside the navbar is Bootstrap's own, the rules
 * below use ::deep so Blazor's CSS isolation still applies to them.
 */

.site-header[b-rdhwm6b3z0] {
    background: var(--aq-bg-200);
    border-block-end: 1px solid var(--aq-border);
}

/* Bootstrap's .navbar brings its own padding; align it with the token scale
   and let the header keep its intended minimum height. */
.site-navbar[b-rdhwm6b3z0] {
    min-height: var(--aq-header-height);
    padding: var(--aq-space-2) 0;
}

.site-navbar[b-rdhwm6b3z0]  .site-navbar__inner {
    max-width: var(--aq-content-width);
    padding-inline: var(--aq-space-6);
    margin-inline: auto;
    gap: var(--aq-space-4);
}

/* ---- Logo ---------------------------------------------------------------- */

.site-header__logo[b-rdhwm6b3z0] {
    flex: 0 0 auto;
    padding: 0;
    line-height: 0;
}

/* The master logo is 1.9:1; height-constrain it so the header stays compact. */
.site-header__logo img[b-rdhwm6b3z0] {
    width: auto;
    height: 40px;
}

/* ---- Hamburger ----------------------------------------------------------- */

.site-navbar[b-rdhwm6b3z0]  .site-navbar__toggler {
    padding: var(--aq-space-2) var(--aq-space-3);
    border-color: var(--aq-border);
    border-radius: var(--aq-radius-sm);
    color: var(--aq-text-200);
}

/* Bootstrap draws the bars as an SVG background, so the colour comes from
   --bs-navbar-color rather than `color`. Tie it to the brand palette. */
.site-navbar[b-rdhwm6b3z0]  .site-navbar__toggler {
    --bs-navbar-color: var(--aq-text-200);
}

.site-navbar[b-rdhwm6b3z0]  .site-navbar__toggler:focus-visible {
    border-color: var(--aq-primary);
    box-shadow: 0 0 0 0.2rem rgb(108 140 255 / 35%);
    outline: none;
}

/* Bootstrap's default focus ring on the toggler is a wide box-shadow; drop it
   in favour of the focus-visible ring above. */
.site-navbar[b-rdhwm6b3z0]  .site-navbar__toggler:focus {
    box-shadow: none;
}

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

/* Pushes the language switcher to the opposite end on desktop. */
.site-navbar[b-rdhwm6b3z0]  .site-nav__list {
    gap: var(--aq-space-2);
    margin-inline-end: auto;
}

.site-navbar[b-rdhwm6b3z0]  .nav-link {
    color: var(--aq-text-200);
    font-family: var(--aq-font-primary);
    font-size: var(--aq-text-sm);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    transition: color var(--aq-transition);
}

.site-navbar[b-rdhwm6b3z0]  .nav-link:hover,
.site-navbar[b-rdhwm6b3z0]  .nav-link:focus-visible {
    color: var(--aq-primary);
}

/* ---- Dropdowns ----------------------------------------------------------- */

.site-navbar[b-rdhwm6b3z0]  .dropdown-menu {
    --bs-dropdown-bg: var(--aq-bg-200);
    --bs-dropdown-border-color: var(--aq-border);
    --bs-dropdown-link-color: var(--aq-text-200);
    --bs-dropdown-link-hover-bg: var(--aq-bg-100);
    --bs-dropdown-link-hover-color: var(--aq-primary);
    --bs-dropdown-link-active-bg: var(--aq-primary);
    --bs-dropdown-link-active-color: var(--aq-primary-foreground);

    border-radius: var(--aq-radius);
    box-shadow: var(--aq-shadow);
}

.site-navbar[b-rdhwm6b3z0]  .dropdown-item {
    font-family: var(--aq-font-secondary);
    font-size: var(--aq-text-sm);
}

/* ---- Collapsed (mobile) state -------------------------------------------- */

/* Below the lg breakpoint the panel stacks under the logo, so it needs its own
   breathing room and a rule separating it from the header bar. */
@media (width < 992px) {
    .site-navbar[b-rdhwm6b3z0]  .site-navbar__collapse {
        padding-block: var(--aq-space-3);
        margin-block-start: var(--aq-space-2);
        border-block-start: 1px solid var(--aq-border);
    }

    .site-navbar[b-rdhwm6b3z0]  .site-nav__list {
        gap: 0;
        margin-block-end: var(--aq-space-3);
    }

    /* Full-width rows are a much larger touch target than inline links. */
    .site-navbar[b-rdhwm6b3z0]  .nav-link {
        padding-block: var(--aq-space-3);
    }

    /* A nested menu has nowhere to pop out to on a narrow screen, so it is
       shown inline and indented instead of as a floating panel. */
    .site-navbar[b-rdhwm6b3z0]  .dropdown-menu {
        padding-inline-start: var(--aq-space-4);
        border: 0;
        box-shadow: none;
    }
}
/* /Components/Shared/SiteImage.razor.rz.scp.css */
/*
 * SiteImage — the single content-image component.
 * The mockup styling is intentionally conspicuous so a placeholder is never
 * mistaken for the band's official artwork during review.
 */

.site-image[b-8ait4j15vx] {
    position: relative;
    margin: 0;
    overflow: hidden;
    border-radius: var(--aq-radius);
}

.site-image img[b-8ait4j15vx] {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

/* Dashed outline marks the image as a temporary stand-in. */
.site-image--mockup[b-8ait4j15vx] {
    outline: 2px dashed var(--aq-border);
    outline-offset: -2px;
}

.site-image__badge[b-8ait4j15vx] {
    position: absolute;
    inset-block-start: var(--aq-space-2);
    inset-inline-end: var(--aq-space-2);
    padding: var(--aq-space-1) var(--aq-space-2);
    border-radius: var(--aq-radius-pill);
    background: var(--aq-overlay);
    color: var(--aq-text-300);
    font-family: var(--aq-font-secondary);
    font-size: var(--aq-text-xs);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
