@charset "UTF-8";

/* ページ左側のナビゲーション。色・配置はページ固有の指定を維持する。 */
body .page-side-navigation,
body .page-side-navigation nav {
    font-size: clamp(12px, .825vw, 16px);
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: normal;
}

body .page-side-navigation :is(nav, .information-filters) :is(a, button, span) {
    font-family: inherit;
    font-size: clamp(12px, .825vw, 16px);
    font-weight: 600;
    font-style: normal;
    line-height: 1.7;
    letter-spacing: normal;
    word-spacing: normal;
}

@media (max-width: 991.98px) {
    body .page-side-navigation,
    body .page-side-navigation nav,
    body .page-side-navigation :is(nav, .information-filters) :is(a, button, span) {
        font-size: 12px;
    }
}

/* 左バーのあるデスクトップ表示では、メニューを本文の範囲内で追従させる。 */
@media (min-width: 992px) {
    body .page-side-navigation {
        --sidebar-sticky-top: calc(13.05vw + 20px);
        align-self: stretch;
        height: auto;
    }

    body .page-side-navigation > nav {
        position: sticky;
        top: var(--sidebar-sticky-top);
        bottom: auto;
        max-height: calc(100vh - var(--sidebar-sticky-top) - 16px);
        max-height: calc(100dvh - var(--sidebar-sticky-top) - 16px);
        overflow-y: auto;
        scrollbar-width: thin;
    }

    /* hiddenが作るスクロール領域をなくし、画面のスクロールに追従させる。 */
    body.care-page .care-layout,
    body.barrier-page .care-layout {
        overflow: clip;
    }

    body .page-side-navigation > .side-bottom {
        display: none;
    }
}
