/* ===========================================================
   コラムの見た目レイヤー — 2026-08-23 トップページ刷新に合わせて全面刷新
   トップ（assets/home.css）と同じトンマナに揃える:
     ・淡い青の地（#EEF3FA＋ドット柄）に白い角丸カード（14px・薄い青影）
     ・見出しは紺 #183A8A／アクセントは空色 #3B7DE0／CTA・フッターは濃紺
     ・書体は Noto Sans JP 500/700 ＋ 英数字 Poppins（丸ゴシックは廃止）
     ・ボタンは濃い青（旧テーマのオレンジ #E8873A は 2026-08-23 に全廃）
   column.css（構造と可読性の土台）の上に重ねて読み込む。
   見た目を変えたいときは原則こちらを直す。本文の文字サイズ・行間は
   column.css の値をそのまま使う（可読性を落とさないため上書きしない）。
   =========================================================== */

:root{
  /* トップページ（home.css）と同じトークンに置き換える */
  --navy:#183A8A; --navy-deep:#10306F; --navy-footer:#0B2A6B; --sky:#3B7DE0;
  --primary:#183A8A; --primary-deep:#10306F;
  --accent:#3B7DE0; --accent-hover:#10306F;
  --bg:#EEF3FA; --bg2:#F6F9FD; --bg-sub:#E4ECF8; --chip:#E4ECF8; --line:#E1E8F2;
  --ink:#24304A; --ink-soft:#55627D; --muted:#8592A8;
  --radius:14px;
  --shadow:0 6px 22px rgba(24,58,138,.08);
  --shadow-strong:0 14px 40px rgba(24,58,138,.16);
  --shadow-btn:0 8px 20px rgba(24,58,138,.28);
  /* 丸ゴシック（Zen Maru Gothic）は廃止。--maru も標準ゴシックに寄せる */
  --sans:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --maru:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --en:"Poppins",system-ui,sans-serif;
  --wrap:860px;
}

/* 地は淡い青＋ドット柄（トップと同じモチーフ）。本文の字送りは据え置き */
body{
  color:var(--ink);font-family:var(--sans);font-weight:500;letter-spacing:.02em;
  background:
    radial-gradient(circle at 50% 50%,rgba(24,58,138,.05) 0 1px,transparent 1.1px) 0 0/12px 12px,
    linear-gradient(180deg,#E9EFF9 0,#F3F7FC 34%,#FFFFFF 62%,#EEF3FA 100%);
}
a{color:var(--navy)}
a:hover{color:var(--sky)}
/* 読み込むウェイトは 500/700 のみ。土台CSSの 900 指定を 700 に揃える */
h1,h2,h3{font-family:var(--sans);font-weight:700;color:var(--navy)}

/* ---------- ヘッダー（トップと同じ白・中央寄せ） ---------- */
.header{
  background:#fff;max-width:1360px;margin:0 auto;padding:16px 40px;
  border-bottom:0;flex-wrap:nowrap;
}
.brand{gap:0}
.brand .jp{font-family:var(--sans);font-size:21px;font-weight:700;letter-spacing:.12em;color:var(--navy);line-height:1.3}
.brand .en{font-family:var(--en);font-size:10.5px;font-weight:500;letter-spacing:.18em;color:var(--navy)}

/* CTAボタン（トップの .btn.btn-primary と同じ濃い青。ヘッダーだけ角丸12px） */
.btn-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--sans);background:var(--navy);color:#fff;border-radius:999px;
  padding:16px 34px;font-size:15px;font-weight:700;letter-spacing:.06em;white-space:nowrap;
  box-shadow:var(--shadow-btn);
}
.btn-cta:hover{background:var(--navy-deep);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-btn)}
.btn-cta .arrow{font-family:var(--en);font-weight:600}
.header .btn-cta{border-radius:12px;padding:13px 26px;font-size:14px}

/* 英語ラベル */
.en-label{font-family:var(--en);color:var(--sky);font-weight:600;letter-spacing:.26em;font-size:12px}

/* ===========================================================
   一覧ページ  /column/
   =========================================================== */
.page-title{
  background:linear-gradient(180deg,#E6EDF8 0,#EEF3FA 100%);
  border-top:1px solid #DFE7F3;padding:44px 24px 40px;
}
.page-title .circle{display:none}
.page-title-inner{gap:14px}
/* 見出しの左右に点線（トップの .sec-title と同じ） */
.page-title h1{
  display:flex;align-items:center;justify-content:center;gap:22px;
  font-size:27px;font-weight:700;letter-spacing:.12em;line-height:1.5;color:var(--navy);
}
.page-title h1::before,.page-title h1::after{
  content:"";display:block;flex:none;width:64px;height:0;margin:0;
  border-top:2px dotted #9DB6E2;background:none;border-radius:0;
}
.page-lead{font-family:var(--sans);font-size:14.5px;color:var(--ink);letter-spacing:.04em}

.list-area{gap:30px;padding-bottom:80px}

/* カテゴリ絞り込み */
.cat-filter button{
  font-family:var(--sans);font-size:12.5px;font-weight:700;letter-spacing:.06em;
  background:#fff;color:var(--navy);border:1.5px solid #C8D6EE;border-radius:999px;padding:10px 22px;
  box-shadow:0 6px 16px rgba(24,58,138,.08);
}
.cat-filter button:hover{border-color:var(--navy);transform:translateY(-1px)}
.cat-filter button[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:var(--shadow-btn)}

/* 白い角丸カード（トップの .column-card と同じ質感） */
a.column-card{
  background:#fff;border:0;border-radius:var(--radius);box-shadow:var(--shadow);
  padding:26px 26px 22px;gap:12px;color:var(--ink);
}
a.column-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-strong);border:0}
.column-meta{gap:10px}
.column-card h2{font-size:15.5px;font-weight:700;letter-spacing:.04em;line-height:1.7;color:var(--navy)}
.card-excerpt{font-family:var(--sans);font-size:12.5px;line-height:1.85;color:var(--ink-soft)}
.column-date{font-family:var(--en);font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--ink-soft)}

/* カテゴリチップはトップと同じ濃紺の角丸ラベルに統一
   （column.js がカテゴリ別クラスを足すので、その分も同じ指定で上書きする） */
.cat-badge,.cat-badge[class*="cat-"]{
  background:var(--navy);color:#fff;border-radius:6px;padding:3px 12px;
  font-size:11px;font-weight:700;letter-spacing:.04em;line-height:1.7;
}

.read-more{font-family:var(--en);font-size:11.5px;font-weight:600;letter-spacing:.2em;color:var(--sky);padding-top:10px}
.circle-arrow{
  width:26px;height:26px;border-radius:50%;background:transparent;
  border:1.5px solid var(--sky);color:var(--sky);font-family:var(--en);font-weight:600;font-size:12px;margin:0;
}
a.column-card:hover .circle-arrow,
a.related-card:hover .circle-arrow,
.back-pill:hover .circle-arrow{background:var(--sky);color:#fff;transform:translateX(3px)}

.note-card{
  background:#fff;border:0;border-radius:var(--radius);box-shadow:var(--shadow);
  font-family:var(--sans);font-size:13.5px;color:var(--ink-soft);text-align:center;max-width:680px;
}
.note-card a{color:var(--navy);font-weight:700}

/* 戻るボタン（トップの .btn-outline に合わせる） */
.back-pill{
  background:#fff;color:var(--navy);border:1.5px solid var(--navy);border-radius:999px;
  padding:11px 30px 11px 14px;font-family:var(--sans);font-size:13.5px;font-weight:700;letter-spacing:.06em;
  box-shadow:0 6px 16px rgba(24,58,138,.08);gap:12px;
}
.back-pill:hover{transform:translateY(-1px)}
.back-pill .circle-arrow{width:30px;height:30px;border-color:var(--navy);color:var(--navy)}
.back-pill:hover .circle-arrow{background:var(--navy);color:#fff}

/* ===========================================================
   記事ページ  /column/<slug>/
   =========================================================== */
.breadcrumb{max-width:var(--wrap);padding-top:18px;font-family:var(--sans);color:var(--ink-soft)}
.breadcrumb a{color:var(--ink-soft)}
.breadcrumb a:hover{color:var(--navy)}

.article-head{padding:26px 24px 26px;gap:16px}
.article-head h1{font-size:29px;font-weight:700;letter-spacing:.04em;line-height:1.6;color:var(--navy)}
.article-head h1::after{width:44px;height:3px;border-radius:2px;background:var(--sky);margin:20px 0 0}
.article-date{font-family:var(--en);font-size:12px;font-weight:500;letter-spacing:.08em;color:var(--ink-soft)}

.article-card{
  background:#fff;border:0;border-radius:18px;box-shadow:var(--shadow);padding:52px 54px 56px;
}

/* --- 本文（文字サイズ・行間は column.css のまま） --- */
.prose{color:var(--ink)}
.prose>p:first-child{
  background:var(--bg2);border:1px solid var(--line);border-left:5px solid var(--navy);
  border-radius:12px;padding:24px 26px;color:var(--ink);
}
.prose h2{
  font-family:var(--sans);font-weight:700;color:var(--navy);
  background:var(--chip);border-left:5px solid var(--navy);border-radius:10px;
  padding:13px 20px;letter-spacing:.06em;
}
.prose>h2::after{color:#B7CBEA;font-size:22px;right:16px}
.prose h3{
  font-family:var(--sans);font-weight:700;color:var(--navy);
  border-left:4px solid var(--sky);padding-left:12px;
}
.prose ul li::before{background:var(--navy);width:7px;height:7px;top:12px}
.prose ol li::before{background:var(--navy);color:#fff;border-radius:50%;font-weight:600}
.prose strong,.lead-strong{color:var(--navy);font-weight:700}
.prose a{color:var(--navy);text-decoration-color:rgba(24,58,138,.4)}
.prose a:hover{color:var(--sky);text-decoration-color:var(--sky)}

/* 要点ボックス／注意ボックス */
.point-box{background:var(--chip);border-radius:12px;color:var(--ink)}
.point-box .point-title{font-family:var(--sans);font-weight:700;color:var(--navy)}
.point-box .point-title::before{background:var(--sky);height:4px}
.caution-box{background:#FFF6E9;border:1px solid #F0DCBE;border-radius:12px;color:var(--ink)}

/* --- もくじ --- */
.toc{background:var(--chip);border:0;border-radius:12px;padding:24px 28px 26px}
.toc-title{font-family:var(--sans);font-weight:700;color:var(--navy);letter-spacing:.14em}
.toc-title::before{background:var(--sky);height:4px}
.toc a{color:var(--ink)}
.toc a::before{color:var(--sky);font-weight:600}
.toc a:hover{color:var(--navy)}

/* --- 表 --- */
.table-wrap{border-radius:12px;border:1px solid var(--line)}
.table-wrap th{background:var(--navy);color:#fff;font-weight:700;border-color:rgba(255,255,255,.28)}
.table-wrap th:last-child{border-right:none}
.table-wrap td{color:var(--ink)}
.note-text,.table-hint{font-family:var(--sans);color:var(--ink-soft)}

/* --- 記事末CTA（トップの .contact-sec と同じ濃紺グラデ） --- */
.cta-block{
  margin-top:52px;padding:36px 28px;border-radius:20px;
  background:linear-gradient(180deg,#2B5BB8 0%,#183A8A 100%);
  box-shadow:0 14px 34px rgba(24,58,138,.26);gap:16px;
}
.cta-block .cta-title{font-size:18px;font-weight:700;letter-spacing:.08em;color:#fff}
.cta-block .cta-note{font-family:var(--sans);color:rgba(255,255,255,.88)}
.cta-block .btn-cta{background:#fff;color:var(--navy);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.cta-block .btn-cta:hover{background:#EAF0FA;color:var(--navy)}

/* --- 記事下のセクション --- */
.sub-sec .sub-title{
  display:flex;align-items:center;justify-content:center;gap:18px;
  font-size:21px;font-weight:700;letter-spacing:.12em;color:var(--navy);
}
.sub-sec .sub-title::before,.sub-sec .sub-title::after{
  content:"";display:block;flex:none;width:52px;height:0;margin:0;
  border-top:2px dotted #9DB6E2;background:none;border-radius:0;
}

.faq{background:#fff;border:0;border-radius:var(--radius);box-shadow:var(--shadow)}
.faq summary{font-size:14.5px;font-weight:700;letter-spacing:.06em;color:var(--navy)}
.faq-q{width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-family:var(--en);font-weight:600;font-size:12px}
.faq-a{color:var(--ink)}
.faq-a .faq-q{background:var(--sky)}
.faq-mark::before,.faq-mark::after{background:var(--navy)}

.author-box{background:#fff;border:0;border-radius:var(--radius);box-shadow:var(--shadow)}
.author-body{font-family:var(--sans);color:var(--ink)}
.author-name{font-family:var(--sans);font-size:16px;font-weight:700;letter-spacing:.1em;color:var(--navy)}
.author-role{color:var(--ink-soft)}
.author-link{font-family:var(--sans);font-weight:700;letter-spacing:.06em;color:var(--navy)}
.author-link:hover{color:var(--sky)}

a.related-card{background:#fff;border:0;border-radius:var(--radius);box-shadow:var(--shadow);color:var(--ink)}
a.related-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-strong);border:0}
.related-card h3{font-size:14px;font-weight:700;letter-spacing:.04em;line-height:1.75;color:var(--navy)}

.read-progress{background:var(--sky)}

/* --- スマホの追従CTA --- */
.sticky-cta{
  background:rgba(255,255,255,.97);border-top:1px solid var(--line);
  box-shadow:0 -6px 20px rgba(24,58,138,.14);
}
.sticky-cta .sticky-text{font-family:var(--sans);font-weight:700;color:var(--navy)}
.sticky-cta .sticky-text small{color:var(--ink-soft)}
.sticky-cta .btn-cta{border-radius:999px;padding:12px 22px;font-size:13px;box-shadow:none}

/* ---------- フッター（トップと同じ濃紺グラデ） ---------- */
.footer{
  background:linear-gradient(180deg,#0E2E72 0,#0B2A6B 100%);
  border-radius:0;color:#fff;padding:48px 24px 28px;
}
.footer::before{display:none}
.footer .jp{font-family:var(--sans);font-size:20px;font-weight:700;letter-spacing:.12em;color:#fff}
.footer .en{font-family:var(--en);font-size:10.5px;letter-spacing:.18em;color:rgba(255,255,255,.85);margin-top:4px}
.footer-info{font-size:12.5px;line-height:1.95;color:rgba(255,255,255,.85)}
.footer a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.5);text-underline-offset:.2em}
.footer a:hover{color:#fff;text-decoration-color:#fff}
.copyright{font-family:var(--en);font-size:11.5px;letter-spacing:.14em;color:rgba(255,255,255,.7);margin-top:28px}

/* ===========================================================
   レスポンシブ（土台CSSのブレークポイントに合わせて微調整）
   =========================================================== */
@media(max-width:900px){
  .header{padding:16px 22px}
}
@media(max-width:640px){
  .header{padding:14px 18px;gap:10px}
  .brand .jp{font-size:17px;letter-spacing:.08em}
  .brand .en{font-size:9px;letter-spacing:.14em}
  .header .btn-cta{padding:11px 16px;font-size:12px;border-radius:10px;gap:6px}
  .page-title{padding:32px 20px 30px}
  .page-title h1{font-size:20px;gap:12px;letter-spacing:.08em}
  .page-title h1::before,.page-title h1::after{width:24px}
  .article-head h1{font-size:22px;line-height:1.7}
  .article-card{padding:30px 20px 36px;border-radius:16px}
  .prose h2{font-size:18px;padding:12px 16px;border-radius:8px}
  .prose>h2::after{display:none}
  .sub-sec .sub-title{font-size:18px;gap:12px}
  .sub-sec .sub-title::before,.sub-sec .sub-title::after{width:24px}
  .cta-block{padding:30px 20px;border-radius:16px}
  .cta-block .btn-cta{width:100%;padding:16px 20px}
  .back-pill{padding:10px 22px 10px 12px;font-size:12.5px}
}
