/* RW-UI-088. Mobile navigation belongs at the thumb edge, not above the page.
   Kept separate from legacy header rules; desktop remains unchanged. */
.rw-mobile-dock { display: none; }

/* RW-UI-089: use the same monochrome brand treatment as header and footer. */
.rw-catalog-design #mainNav .logo-n {
    filter: brightness(0) invert(1);
}

@media (max-width: 1199px) {
    html {
        scroll-padding-top: 16px;
        scroll-padding-bottom: calc(var(--rw-dock-occupied, calc(68px + env(safe-area-inset-bottom, 0px))) + 16px);
    }

    body.rw-catalog-design {
        --rw-header-height: 0px;
        --rw-dock-height: 68px;
        padding-top: 0;
        padding-bottom: calc(var(--rw-dock-occupied, calc(var(--rw-dock-height) + env(safe-area-inset-bottom, 0px))) + 4px);
    }

    .rw-catalog-design .rw-mobile-header {
        position: relative !important;
        z-index: 1;
        height: auto;
        min-height: 64px;
        padding-top: env(safe-area-inset-top, 0px);
    }

    .rw-catalog-design .rw-mobile-header__inner {
        width: 100%;
        height: 64px;
        min-height: 64px;
        padding: 7px max(16px, env(safe-area-inset-right, 0px)) 7px max(16px, env(safe-area-inset-left, 0px));
    }

    .rw-catalog-design .rw-mobile-header__logo img { width: 142px; }
    .rw-catalog-design .rw-mobile-header__phone { border-color: rgba(199, 168, 106, .34); }

    .rw-catalog-design .rw-mobile-dock {
        display: block;
        position: fixed;
        z-index: 980;
        inset: auto 0 0;
        box-sizing: border-box;
        padding: 0 env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px);
        border-top: 1px solid rgba(199, 168, 106, .45);
        background: var(--rw-ink, #0e1521);
        color: var(--rw-ivory, #f6f2ea);
        box-shadow: 0 -5px 20px rgba(9, 16, 26, .09);
    }

    .rw-mobile-dock .rw-mobile-dock__list {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(max(44px, 3em), 1fr));
        width: min(100%, 720px);
        min-height: var(--rw-dock-height);
        margin: 0 auto;
        padding: 0;
        list-style: none;
    }

    .rw-mobile-dock__list > li { min-width: 0; margin: 0; padding: 0; }

    .rw-catalog-design .rw-mobile-dock .rw-mobile-dock__item {
        position: relative;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        gap: 5px;
        width: 100%;
        min-width: 0;
        height: 100%;
        min-height: var(--rw-dock-height);
        padding: 10px 2px 5px;
        border: 0;
        border-radius: 0;
        background: transparent;
        color: var(--rw-ivory, #f6f2ea) !important;
        font: 500 10px/1.2 var(--rw-font-body, sans-serif);
        letter-spacing: 0;
        text-align: center;
        text-decoration: none !important;
        text-transform: none;
        cursor: pointer;
        -webkit-tap-highlight-color: rgba(199, 168, 106, .16);
        transition: color 160ms ease, background-color 160ms ease;
    }

    .rw-mobile-dock .rw-mobile-dock__item > .rw-mobile-dock__label {
        display: block;
        width: auto;
        max-width: 100%;
        height: auto;
        background: none;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .rw-mobile-dock__icon { display: block; flex: 0 0 22px; width: 22px; height: 22px; }

    .rw-catalog-design .rw-mobile-dock .rw-mobile-dock__item:is([aria-current], [aria-expanded="true"], :hover, :focus-visible) {
        color: var(--rw-gold, #c7a86a) !important;
        background: rgba(199, 168, 106, .08);
    }

    .rw-mobile-dock__item[aria-current]::before {
        position: absolute;
        top: -1px;
        left: 30%;
        width: 40%;
        height: 2px;
        background: currentColor;
        content: "";
    }

    .rw-mobile-dock .rw-mobile-dock__item:focus-visible {
        outline: 2px solid var(--rw-gold, #c7a86a);
        outline-offset: -4px;
    }

    .rw-catalog-design .scroll-up {
        bottom: calc(var(--rw-dock-occupied, calc(var(--rw-dock-height) + env(safe-area-inset-bottom, 0px))) + 12px) !important;
    }

    /* A modal or a full-screen filter owns the viewport while it is open. */
    .rw-catalog-design:is(.rw-filter-open, .rw-mobile-input-active) .rw-mobile-dock,
    .rw-mobile-dock[inert],
    .rw-mobile-dock[data-overlay-open] {
        visibility: hidden;
        pointer-events: none;
    }

    .rw-catalog-design .cookie_notice {
        top: max(12px, env(safe-area-inset-top, 0px)) !important;
        max-height: calc(100dvh - var(--rw-dock-occupied, calc(var(--rw-dock-height) + env(safe-area-inset-bottom, 0px))) - 24px);
    }

    /* Keep all top-level sections discoverable on the first menu screen. */
    .rw-catalog-design #mainNav .rw-mobile-nav-item--projects {
        order: 0;
        margin-bottom: 0;
        border-top: 0;
        border-bottom-color: rgba(199, 168, 106, .2);
    }

    .rw-catalog-design #mainNav .rw-mobile-nav-item > .uk-accordion-title {
        min-height: 48px;
        padding-block: 12px;
        font-size: 18px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 1.3;
        text-transform: none;
    }

    .rw-catalog-design #mainNav .rw-mobile-nav-item:not(.rw-current) > .uk-accordion-title {
        color: var(--rw-ivory) !important;
    }

    .rw-catalog-design #mainNav .rw-mobile-nav-item.rw-current > .uk-accordion-title {
        color: var(--rw-gold) !important;
    }

    .rw-catalog-design #mainNav .uk-modal-dialog {
        padding-top: env(safe-area-inset-top, 0px);
        padding-bottom: max(20px, env(safe-area-inset-bottom, 0px));
    }
}

@media (min-width: 375px) and (max-width: 1199px) {
    .rw-catalog-design .rw-mobile-dock .rw-mobile-dock__item { font-size: 11px; }
}

@media (max-width: 639px) {
    /* Keep carousel controls above the dock on the first portrait screen.
       On very short screens content can still scroll instead of shrinking text. */
    .rw-catalog-design #main-slider.rw-hero-slider {
        --rw-hero-media-height: clamp(480px, calc(100svh - 224px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)), 720px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .rw-catalog-design .rw-mobile-dock .rw-mobile-dock__item { transition: none; }
}

@media (max-width: 1199px) and (prefers-reduced-motion: reduce) {
    /* UIkit reorders slides before measuring their offsets. Even a .01ms
       transition on flex order leaves it measuring the previous slide order. */
    .rw-catalog-design #main-slider .uk-slider-items > li { transition: none !important; }

    /* A sub-frame transition can miss UIkit's modal completion listener.
       No motion also guarantees that focus/background cleanup runs on close. */
    .rw-catalog-design .rw-form-modal .uk-modal-dialog { transition: none !important; }
}

@media print { .rw-mobile-dock { display: none !important; } }

/* RW-UI-101: keep descendant visibility synchronized in WebKit. */
@media (max-width:1199px) {
.rw-mobile-dock .rw-mobile-dock__list,
.rw-mobile-dock .rw-mobile-dock__list * { visibility: visible; }
.rw-mobile-dock[inert] .rw-mobile-dock__list,
.rw-mobile-dock[inert] .rw-mobile-dock__list *,
.rw-mobile-dock[data-overlay-open] .rw-mobile-dock__list,
.rw-mobile-dock[data-overlay-open] .rw-mobile-dock__list *,
.rw-catalog-design:is(.rw-filter-open,.rw-mobile-input-active) .rw-mobile-dock .rw-mobile-dock__list,
.rw-catalog-design:is(.rw-filter-open,.rw-mobile-input-active) .rw-mobile-dock .rw-mobile-dock__list * { visibility:hidden; }
}

/* RW-FIX-109: finish menu lifecycle synchronously for reduced motion. */
@media (prefers-reduced-motion: reduce) {
    .rw-catalog-design #mainNav,
    .rw-catalog-design #mainNav * {
        transition: none !important;
        animation: none !important;
    }
}
