@charset "utf-8";
/* monap コラム（/column/ と記事ページ）。form.css の後に読む。
   一覧は PC 3 列・タブレット 2 列・モバイル 1 列（本人指示: カードを小さく 3 列に）。
   記事内の表は .bl_tableWrap > .bl_tableScroll > table（markdown_mini が出す）。
   table 自身に overflow を当てない（ワークスペース規約）。 */

.bl_columnPage{ padding-bottom:110px; }
.bl_columnWrap{ max-width:1040px; margin:0 auto; }
.intro .bl_columnLead{ max-width:680px; }

/* ---- パンくず ---- */
.bl_breadcrumb{ margin:0 0 22px; font-size:12.5px; color:var(--muted); }
.bl_breadcrumb_list{ display:flex; flex-wrap:wrap; gap:6px 0; list-style:none; margin:0; padding:0; }
.bl_breadcrumb_item{ display:inline-flex; align-items:center; }
.bl_breadcrumb_item + .bl_breadcrumb_item::before{ content:"/"; margin:0 10px; opacity:.5; }
.bl_breadcrumb_item a{ color:var(--muted); text-decoration:none; font-weight:700; }
.bl_breadcrumb_item a:hover{ color:var(--bass-ink); }
.bl_breadcrumb_item[aria-current]{ color:var(--ink); font-weight:700; }

/* ---- 絞り込み ---- */
.bl_newsFilters{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 26px; }
.el_newsFilter{ border:1.5px solid var(--line); background:#fff; color:var(--ink); font:inherit; font-size:13px; font-weight:700; padding:8px 16px; border-radius:99px; cursor:pointer; transition:border-color .2s, background .2s, color .2s; }
.el_newsFilter:hover{ border-color:var(--bass-line); }
.el_newsFilter.is_on{ border-color:var(--bass); background:var(--bass); color:#fff; }

/* ---- 一覧（1 列 / 48rem 以上 2 列 / 64rem 以上 3 列） ---- */
.bl_newsList{ display:grid; grid-template-columns:1fr; gap:20px; margin:0; padding:0; list-style:none; }
@media (min-width:48rem){ .bl_newsList{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:64rem){ .bl_newsList{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; } }
.bl_newsCard{ background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; transition:border-color .25s, box-shadow .25s, transform .25s; }
.bl_newsCard:hover{ border-color:var(--bass-line); box-shadow:0 18px 40px -30px rgba(23,18,17,.4); transform:translateY(-2px); }
.bl_newsCard.is_hidden{ display:none; }
.bl_newsCard_link{ display:flex; flex-direction:column; height:100%; color:inherit; text-decoration:none; }
.bl_newsCard_thumb{ display:block; aspect-ratio:1200 / 630; background:var(--surface); border-bottom:1px solid var(--line-soft); }
.bl_newsCard_thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.bl_newsCard_body{ display:flex; flex-direction:column; gap:8px; padding:14px 16px 16px; }
.bl_newsCard_meta{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:12px; color:var(--muted); font-weight:700; }
.bl_newsCard_title{ font-size:15px; font-weight:700; line-height:1.55; color:var(--ink); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

/* ---- バッジ（クラスタ別・NEW） ---- */
.el_newsBadge{ display:inline-block; padding:.2em .8em; border-radius:999px; color:#fff; font-size:11px; font-weight:700; line-height:1.6; white-space:nowrap; }
.el_newsBadge__law{ background:#a03e3e; }
.el_newsBadge__mgmt{ background:#3f639e; }
.el_newsBadge__tech{ background:#2f7a41; }
.el_newsBadge__case{ background:#a8641f; }
.el_newsBadge__new{ background:var(--bass); letter-spacing:.06em; }
.newsitem .el_newsBadge__new{ margin-left:8px; vertical-align:middle; }

/* ---- ページャー ---- */
.bl_newsPager{ display:flex; justify-content:center; align-items:center; gap:14px; margin-top:34px; }
.bl_newsPager:empty{ display:none; }
.el_newsPagerButton{ border:1.5px solid var(--line); background:#fff; color:var(--ink); font:inherit; font-size:13px; font-weight:700; padding:9px 18px; border-radius:10px; cursor:pointer; }
.el_newsPagerButton:hover{ border-color:var(--bass); color:var(--bass-ink); }
.el_newsPagerButton[disabled]{ opacity:.4; cursor:default; }
.el_newsPagerInfo{ font-size:13px; color:var(--muted); font-weight:700; }

/* ---- 記事 ---- */
.bl_article{ max-width:760px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:18px; padding:40px 44px 44px; box-shadow:0 26px 56px -44px rgba(23,18,17,.35); }
.bl_article_header{ margin:0 0 26px; }
.bl_article_meta{ display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:0 0 14px; font-size:13px; color:var(--muted); font-weight:700; }
.bl_article_updated{ color:var(--muted); font-weight:500; }
.bl_article_title{ font-size:30px; font-weight:900; line-height:1.4; letter-spacing:-.02em; margin:0; color:var(--ink); }
.bl_article_hero{ margin:0 0 30px; }
.bl_article_hero img{ width:100%; height:auto; display:block; border-radius:12px; border:1px solid var(--line-soft); }
.bl_articleBody{ font-size:16px; line-height:1.95; color:var(--body); }
.bl_articleBody h2{ font-size:22px; font-weight:900; line-height:1.5; margin:44px 0 16px; padding-bottom:10px; border-bottom:2px solid var(--bass-line); color:var(--ink); }
.bl_articleBody h3{ font-size:18px; font-weight:700; line-height:1.55; margin:32px 0 12px; color:var(--ink); }
.bl_articleBody h4{ font-size:16px; font-weight:700; margin:24px 0 8px; color:var(--ink); }
.bl_articleBody p{ margin:0 0 1.2em; }
.bl_articleBody ul, .bl_articleBody ol{ margin:0 0 1.2em; padding-left:1.6em; }
.bl_articleBody li{ margin:.3em 0; }
.bl_articleBody a{ color:var(--bass-ink); text-decoration:underline; text-underline-offset:2px; }
.bl_articleBody strong{ color:var(--ink); }
.bl_articleBody img{ max-width:100%; height:auto; }
.bl_articleBody blockquote{ margin:0 0 1.2em; padding:12px 18px; border-left:3px solid var(--bass-line); background:var(--surface); }

/* ---- 表（PC は全体・モバイルは横スクロール・はみ出しは JS が印を付ける） ---- */
.bl_articleBody .bl_tableWrap{ position:relative; margin:0 0 1.4em; }
.bl_articleBody .bl_tableScroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px; }
.bl_articleBody .bl_tableScroll::-webkit-scrollbar{ height:10px; }
.bl_articleBody .bl_tableScroll::-webkit-scrollbar-track{ background:var(--line-soft); border-radius:999px; }
.bl_articleBody .bl_tableScroll::-webkit-scrollbar-thumb{ background:#cfc6c2; border-radius:999px; }
.bl_articleBody table{ border-collapse:collapse; width:100%; font-size:14.5px; line-height:1.7; }
.bl_articleBody .bl_tableScroll table{ display:table; table-layout:fixed; min-width:34em; margin:0; }
.bl_articleBody th, .bl_articleBody td{ border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top; }
.bl_articleBody th{ background:var(--surface); color:var(--ink); font-weight:700; }
.bl_articleBody .bl_tableScroll_hint{ display:none; }
.bl_articleBody .bl_tableWrap.is_scrollable .bl_tableScroll_hint{ display:flex; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); flex-direction:column; align-items:center; gap:6px; padding:12px 18px; border-radius:12px; background:rgba(23,18,17,.78); color:#fff; font-size:12px; font-weight:700; pointer-events:none; transition:opacity .3s; }
.bl_articleBody .bl_tableWrap.is_scrolled .bl_tableScroll_hint{ opacity:0; }
.bl_articleBody .bl_tableScroll_icon{ width:38px; height:27px; fill:currentColor; }

/* ---- 注記・出典・関連・CTA ---- */
.bl_columnDisclaimer{ margin:36px 0 0; padding:16px 20px; border-radius:12px; background:var(--surface); border:1px solid var(--line); font-size:13.5px; line-height:1.85; color:var(--body); }
.bl_columnDisclaimer p{ margin:0; }
.bl_columnDisclaimer a{ color:var(--bass-ink); }
.bl_columnSources{ margin-top:36px; padding-top:24px; border-top:1px solid var(--line); }
.bl_columnSources_title, .bl_columnRelated_title{ font-size:13px; font-weight:900; letter-spacing:.12em; color:var(--muted); margin:0 0 14px; }
.bl_columnSources_list{ margin:0; padding-left:1.4em; font-size:13.5px; line-height:1.8; }
.bl_columnSources_item + .bl_columnSources_item{ margin-top:8px; }
.bl_columnSources_item a{ color:var(--ink); font-weight:700; text-decoration:none; }
.bl_columnSources_item a:hover{ color:var(--bass-ink); text-decoration:underline; }
.bl_columnSources_meta{ display:block; font-size:12px; color:var(--muted); word-break:break-all; }
.el_icon__inline, .bl_columnSources_item svg, .bl_columnDisclaimer svg{ width:.85em; height:.85em; margin-left:.25em; vertical-align:-.05em; fill:currentColor; }
.bl_columnRelated{ max-width:760px; margin:32px auto 0; }
.bl_columnRelated_list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.bl_columnRelated_link{ display:block; padding:14px 18px; background:#fff; border:1px solid var(--line); border-radius:12px; color:var(--ink); font-weight:700; text-decoration:none; transition:border-color .2s, color .2s; }
.bl_columnRelated_link:hover{ border-color:var(--bass); color:var(--bass-ink); }
.bl_articleCta{ max-width:760px; margin:40px auto 0; padding:30px; border-radius:16px; background:var(--bass); color:#fff; text-align:center; box-shadow:0 20px 44px -30px rgba(192,80,80,.7); }
.bl_articleCta_text{ margin:0 0 18px; font-size:15.5px; font-weight:700; }
.bl_articleCta_buttons{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin:0; }
.bl_articleCta .btn{ display:inline-flex; align-items:center; justify-content:center; padding:14px 24px; border-radius:10px; font-size:15px; font-weight:700; text-decoration:none; }
.bl_articleCta .btn-main{ background:#fff; color:var(--bass-ink); }
.bl_articleCta .btn-sub{ background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.7); }
.ly_button{ text-align:center; margin:30px 0 0; }
.el_buttonSub{ display:inline-flex; align-items:center; gap:8px; padding:12px 22px; border:1.5px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); font-size:14px; font-weight:700; text-decoration:none; }
.el_buttonSub:hover{ border-color:var(--bass); color:var(--bass-ink); }

/* 見えないシンボル定義 */
.el_symbols{ position:absolute; width:0; height:0; overflow:hidden; }

@media (max-width:860px){
  .bl_columnPage{ padding-bottom:80px; }
  .bl_article{ padding:26px 20px 30px; border-radius:14px; }
  .bl_article_title{ font-size:23px; }
  .bl_articleBody{ font-size:15.5px; }
  .bl_articleBody h2{ font-size:20px; margin-top:36px; }
  .bl_articleCta{ padding:24px 20px; }
}
