/*
 * 左カラムのナビ (ナビ再編 実装仕様 版1.2 §6)。マークアップは inc/side-nav.php。
 * 寸法は確定版モックの値 (第1階層 14px/700、配下 12px/500、配下は左に 1px の線)。
 * 見出し (カテゴリー / エリア) と外枠の破線は style.css の既存スタイルをそのまま使う。
 * style.css に手を入れず別ファイルにしているのは global-nav.css と同じ理由 (stg/本番で書式が違う)。
 */

[hidden] {
    display: none !important;
}

.side_nav .side_nav_items {
    margin-top: 20px;
    /* 既存の左カラム (style.css) は text-align: center を継承させているので左寄せに戻す */
    text-align: left;
}
.side_nav .side_nav_item > a,
.side_nav .side_nav_toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    padding: 10px 0;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.5;
    color: #212121;
    text-align: left;
}
.side_nav .side_nav_toggle {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    background: none;
    font-family: inherit;
    cursor: pointer;
}
.side_nav .side_nav_toggle:focus-visible,
.side_nav .side_nav_all:focus-visible {
    outline: 2px solid #159EB7;
    outline-offset: 2px;
}
.side_nav .side_nav_chev {
    flex: none;
    width: 7px;
    height: 7px;
    margin-right: 3px;
    border-right: 1px solid #212121;
    border-bottom: 1px solid #212121;
    transform: rotate(45deg);
    transition: transform .2s;
}
.side_nav .side_nav_toggle[aria-expanded="true"] .side_nav_chev {
    transform: rotate(-135deg);
    margin-top: 3px;
}

/* 配下 */
.side_nav .side_nav_sub {
    margin: 6px 0 8px;
    padding-left: 11px;
    border-left: 1px solid #E2E2E2;
}
.side_nav .side_nav_sub li a {
    display: block;
    padding: 6px 0;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .04em;
    line-height: 1.5;
    color: #212121;
}

/* エリアの配下は2列 (海外は国名が長いので1列) */
.side_nav_area .side_nav_kids {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 8px 3px;
    padding: 2px 0 4px 9px;
}
.side_nav_area .side_nav_kids li {
    width: 50%;
}
.side_nav_area .side_nav_kids.wide li {
    width: 100%;
}
.side_nav_area .side_nav_kids li a {
    padding: 5px 0;
    letter-spacing: .02em;
}

.side_nav .side_nav_sub a:hover,
.side_nav .side_nav_item > a:hover {
    opacity: .6;
}

/* すべて展開 / 折りたたむ */
.side_nav_area .side_nav_tools {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
}
.side_nav_area .side_nav_all {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    background: none;
    padding: 0;
    font-family: inherit;
    font-size: 11px;
    color: #707070;
    text-decoration: underline;
    cursor: pointer;
}
.side_nav_area .side_nav_tools + .side_nav_items {
    margin-top: 4px;
}

/* ---------- SP ハンバーガー (header.php の nav#globalnav .inner.util_sp) ----------
 * 左カラムと同じ部品を読み込むが、ハンバーガー側の既存指定
 * (nav#globalnav > .inner .container_navi_main a / span など、id から当てていて強い) が
 * 余白と文字サイズを上書きするので、同じ起点から当て直す。
 * タップしやすいよう、行の上下余白は左カラムより広げている。 */
nav#globalnav > .inner .side_nav_sp .container_side_inner {
    padding: 0 6.928vw 4vw;
}
nav#globalnav > .inner .side_nav_sp .side_nav_items {
    margin-top: 2vw;
}
nav#globalnav > .inner .side_nav_sp span {
    display: inline;
    margin-left: 0;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
}
nav#globalnav > .inner .side_nav_sp .side_nav_item > a,
nav#globalnav > .inner .side_nav_sp .side_nav_toggle {
    display: flex;
    padding: 12px 0;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .06em;
    color: #212121;
}
nav#globalnav > .inner .side_nav_sp .side_nav_sub li a {
    display: block;
    padding: 9px 0;
    font-size: 13px;
    font-weight: 500;
    color: #212121;
}
nav#globalnav > .inner .side_nav_sp .side_nav_tools {
    margin-top: 3vw;
}

/* ---------- 番組サイトの左メニュー (program/side_bar.php ほか、.side_bar の中) ----------
 * 番組サイトの CSS が .side_bar li:not(:last-child) { margin-bottom: 45px } でブロックの間隔を取っていて、
 * 部品の中の li にもかかってしまうので、部品の中だけ打ち消す (外側の li.category / li.area の間隔は残す) */
.side_bar .side_nav_program li:not(:last-child) {
    margin-bottom: 0;
}
