@charset "UTF-8";
/* ::::::::::::::::::::::::::::::::::::::::::::::::::
 ::  お知らせ専用スタイル
 ::  /news/css/news.css
 ::  一覧（リスト）＋詳細（記事）
 ::  既存トンマナに準拠（l-/c-/u- プレフィックス、アクセント #ec1c24）
 :::::::::::::::::::::::::::::::::::::: */

:root {
    --news-accent: #ec1c24;
    --news-ink: #222222;
    --news-sub: #666666;
    --news-line: #e3e3e3;
    --news-bg-soft: #f7f6f4;
    --news-max: 880px;
}

/* ::::::::::::::::::::::::::::::::::::::
 :: ページコンテナ
 :: common_2015/common.css は #container/#contents 配下に
 ::   #content { width:674px !important }（旧2カラム）
 ::   #container * { box-sizing:content-box !important }
 :: を強制するため、専用ラッパ .l-news-page で囲み、
 :: border-box とセンタリングを自前で確定させてレイアウト崩れを防ぐ。
 :::::::::::::::::::::::::::::::::::::: */
.l-news-page {
    width: 100%;
    background: #fff;
    color: var(--news-ink);
}

.l-news-page,
.l-news-page *,
.l-news-page *::before,
.l-news-page *::after {
    box-sizing: border-box;
}

.l-news-page__inner {
    max-width: var(--news-max);
    margin: 0 auto;
    padding: 8px 24px 72px;
}

/* パンくず（mega.css の .l-breadcrumb-list を上書き調整） */
.l-news-page .l-breadcrumb-list {
    padding-top: 16px;
    padding-bottom: 16px;
    font-size: 12px;
    color: #888;
    line-height: 1.6;
    align-items: center;
}

.l-news-page .l-breadcrumb-list a {
    color: #666;
    text-decoration: none;
}

.l-news-page .l-breadcrumb-list a:hover {
    color: var(--news-accent);
    text-decoration: underline;
}

.l-news-page .l-breadcrumb-list .current-item {
    color: #aaa;
}

/* ::::::::::::::::::::::::::::::::::::::
 :: 見出し
 :::::::::::::::::::::::::::::::::::::: */
.l-news .c-head01 {
    text-align: center;
    margin-bottom: 40px;
}

.l-news .c-head01__en {
    display: block;
    font-size: 34px;
    letter-spacing: .08em;
    color: var(--news-accent);
    line-height: 1.1;
}

.l-news .c-head01__main {
    display: block;
    margin-top: 8px;
    font-size: 15px;
    color: var(--news-sub);
}

.l-news-empty {
    text-align: center;
    color: var(--news-sub);
    padding: 40px 0;
}

/* ::::::::::::::::::::::::::::::::::::::
 :: 一覧：年切替タブ
 :::::::::::::::::::::::::::::::::::::: */
.c-news-tab {
    display: flex;
    flex-wrap: nowrap;          /* 常に横一列 */
    gap: 8px;
    max-width: var(--news-max);
    margin: 0 auto 28px;
    /* はみ出す場合（主にスマホ）は横スワイプのカルーセルに */
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
}

/* スクロールバーは控えめに（WebKit） */
.c-news-tab::-webkit-scrollbar {
    height: 4px;
}

.c-news-tab::-webkit-scrollbar-thumb {
    background: var(--news-line);
    border-radius: 999px;
}

.c-news-tab__btn {
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    flex: 0 0 auto;             /* 縮ませない＝横並び維持 */
    white-space: nowrap;
    width: max-content;
    scroll-snap-align: start;
    border: 1px solid var(--news-line);
    background: #fff;
    color: var(--news-sub);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1;
    padding: 11px 20px;
    border-radius: 999px;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.c-news-tab__btn:hover {
    border-color: var(--news-accent);
    color: var(--news-accent);
}

.c-news-tab__btn.is-active {
    background: var(--news-accent);
    border-color: var(--news-accent);
    color: #fff;
}

/* 絞り込みで非表示 */
.c-news-item.is-hidden {
    display: none;
}

/* ::::::::::::::::::::::::::::::::::::::
 :: 一覧：お知らせリスト
 :::::::::::::::::::::::::::::::::::::: */
.c-news-list {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    max-width: var(--news-max);
    border-top: 1px solid var(--news-line);
}

.c-news-item {
    display: flex;
    gap: 28px;
    padding: 26px 4px;
    border-bottom: 1px solid var(--news-line);
}

.c-news-item__head {
    flex: 0 0 auto;
    padding-top: 2px;
}

.c-news-item__date {
    font-size: 14px;
    letter-spacing: .04em;
    color: var(--news-sub);
    white-space: nowrap;
}

.c-news-item__body {
    flex: 1 1 auto;
    min-width: 0;
}

.c-news-item__title {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.6;
    color: var(--news-ink);
    margin: 0 0 10px;
}

.c-news-item__text {
    font-size: 14px;
    line-height: 1.9;
    color: #444;
    font-feature-settings: "palt";
}

.c-news-item__text a {
    color: var(--news-accent);
    text-decoration: underline;
}

.c-news-item__more {
    margin-top: 14px;
}

.c-news-item__more a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    background: var(--news-accent);
    padding: 8px 20px;
    border-radius: 999px;
    text-decoration: none;
    transition: opacity .2s ease;
}

.c-news-item__more a::after {
    content: "→";
    font-size: 12px;
}

.c-news-item__more a:hover {
    opacity: .8;
}

/* ::::::::::::::::::::::::::::::::::::::
 :: 詳細ページ
 :::::::::::::::::::::::::::::::::::::: */
.l-news-detail {
    max-width: var(--news-max);
    margin: 0 auto;
}

.l-news-detail__head {
    padding-bottom: 24px;
    border-bottom: 2px solid var(--news-ink);
    margin-bottom: 32px;
    box-shadow: none;
}

.l-news-detail__date {
    display: block;
    font-size: 14px;
    letter-spacing: .04em;
    color: var(--news-sub);
    margin-bottom: 12px;
}

.l-news-detail__title {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    color: var(--news-ink);
}

.l-news-detail__body {
    font-size: 15px;
    line-height: 2;
    color: #333;
    font-feature-settings: "palt";
}

.l-news-detail__body p {
    margin: 0 0 1.5em;
}

.l-news-detail__body a {
    color: var(--news-accent);
    text-decoration: underline;
}

/* 詳細ページ：本文セクション（見出し＋本文／リスト。記事共通で流用） */
.l-news-detail__lead {
    margin-bottom: 2em;
}

.c-article-block {
    margin: 0 0 2.4em;
}

.c-article-block__title {
    font-size: 17px;
    font-weight: 700;
    color: var(--news-ink);
    line-height: 1.6;
    margin: 0 0 .7em;
    padding-left: 12px;
    border-left: 4px solid var(--news-accent);
}

.c-article-block > p {
    margin: 0 0 .4em;
}

.c-article-list {
    list-style: none;
    margin: .4em 0 0;
    padding: 0;
}

.c-article-list li {
    position: relative;
    padding-left: 1.2em;
    margin-bottom: .5em;
}

.c-article-list li::before {
    content: "・";
    position: absolute;
    left: 0;
    color: var(--news-accent);
}

/* 詳細ページ：本文テーブル（記事共通で流用）
   （legacy mega.css の table/th/td リセットを上書きするため
     .l-news-detail__body で詳細度を上げて確実に適用する） */
.c-article-table-wrap {
    margin-top: 1.4em;
    overflow-x: auto;
}

.l-news-detail__body .c-article-table {
    width: 100%;
    table-layout: auto;
    border-collapse: collapse;
    border: 1px solid #c9c9c9;
    font-size: 14px;
    line-height: 1.5;
    background: #fff;
}

.l-news-detail__body .c-article-table th,
.l-news-detail__body .c-article-table td {
    border: 1px solid #c9c9c9;
    padding: 13px 16px;
    text-align: center;
    vertical-align: middle;
}

/* 見出し行（列ヘッダー） */
.l-news-detail__body .c-article-table thead th {
    background: #3a3a3a;
    color: #fff;
    letter-spacing: .02em;
}

.l-news-detail__body .c-article-table thead th:first-child {
    width: 34%;
}

/* 行見出し（区分の列） */
.l-news-detail__body .c-article-table tbody th {
    background: #f1efec;
    color: var(--news-ink);
    white-space: nowrap;
}

/* 数値セル */
.l-news-detail__body .c-article-table tbody td {
    background: #fff;
    font-size: 16px;
}

.c-article-table__sub {
    display: inline-block;
    margin-top: 2px;
    font-size: 11px;
    color: rgba(255, 255, 255, .82);
}
.l-news-detail__body .c-article-table__note {
    margin-top: 8px;
    font-size: 12px;
    color: var(--news-sub);
}
.l-news-detail__back {
    margin-top: 48px;
    text-align: center;
}

.l-news-detail__back a {
    display: inline-block;
    font-size: 14px;
    color: var(--news-ink);
    border: 1px solid #ccc;
    padding: 12px 40px;
    border-radius: 999px;
    text-decoration: none;
    transition: background .2s ease, color .2s ease;
}

.l-news-detail__back a:hover {
    background: var(--news-ink);
    color: #fff;
}

/* ::::::::::::::::::::::::::::::::::::::
 :: レスポンシブ
 :::::::::::::::::::::::::::::::::::::: */
@media screen and (max-width: 767px) {
    .l-news-page__inner {
        padding: 8px 16px 56px;
    }

    .c-news-item {
        display: block;
        gap: 0;
        padding: 20px 2px;
    }

    .c-news-item__date {
        display: block;
        margin-bottom: 8px;
    }

    .l-news-detail__title {
        font-size: 20px;
    }

    .l-news .c-head01__en {
        font-size: 28px;
    }

    .c-article-table th,
    .c-article-table td {
        padding: 10px 8px;
    }

    .c-article-table {
        font-size: 13px;
    }

    .c-article-table tbody td {
        font-size: 15px;
    }
}
