/*
 * COCORO Pulse. — list pages: 大カテゴリ / サブカテゴリ / ニュース (docs/design-system.md §10).
 * Visual reference: wp/design/mock/list-theme.html, list-subtheme.html, list-news.html.
 * The theme colour arrives as --tc / --tb on .cp-list (cp_list_color_style()).
 */

:root { --cp-hd-h: 72px; }
.admin-bar { --cp-hd-h: 104px; }

.cp-list { --tc: var(--cp-purple); --tb: var(--cp-lav); line-height: 1.8; }
.cp-list [id] { scroll-margin-top: calc(var(--cp-hd-h) + 16px); }
.cp-empty { margin: 24px 0; padding: 20px; border-radius: 14px; background: #fff; border: 1px dashed var(--cp-line-strong); font-size: 14px; color: var(--cp-sub); }

/* ---------- hero ---------- */
.cp-lh { position: relative; overflow: hidden; border-bottom: 1px solid var(--cp-line); background:
  radial-gradient(700px 360px at 92% -20%, color-mix(in srgb, var(--tc) 12%, transparent), transparent 65%),
  radial-gradient(600px 360px at 0% 120%, rgba(119, 227, 214, .28), transparent 62%),
  linear-gradient(180deg, color-mix(in srgb, var(--tb) 40%, #fff), #fff); }
.cp-lh--news { background:
  radial-gradient(700px 360px at 92% -20%, rgba(194, 126, 254, .28), transparent 65%),
  radial-gradient(600px 360px at 0% 120%, rgba(119, 227, 214, .3), transparent 62%),
  linear-gradient(180deg, #f8f3ff, #fff); }
.cp-crumb ol { list-style: none; display: flex; margin: 0; padding: 18px 0 0; overflow-x: auto; white-space: nowrap; scrollbar-width: none; font-size: 12.5px; color: var(--cp-muted); }
.cp-crumb ol::-webkit-scrollbar { display: none; }
.cp-crumb li + li::before { content: "›"; margin: 0 8px; color: var(--cp-line-strong); }
.cp-list .cp-crumb a { color: var(--cp-muted); }
.cp-list .cp-crumb a:hover { color: var(--cp-purple); }
.cp-lh__in { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: end; padding: 26px 0 40px; }
.cp-lh__in--single { grid-template-columns: minmax(0, 1fr); }
/* 2026-11-01: centred against a shorter 今週の要対応 (3 items, 2 lines each) instead of bottom-aligned to a tall one */
.cp-lh__in--news { grid-template-columns: minmax(0, 1fr) 440px; align-items: center; padding: 24px 0 36px; }
.cp-lh__in--news.cp-lh__in--single { grid-template-columns: minmax(0, 1fr); }
.cp-list .cp-lh__label { display: inline-flex; align-items: center; gap: 10px; font-size: 12.5px; font-weight: 700; color: var(--tc); }
.cp-lh__label::before { content: ""; width: 18px; height: 3px; border-radius: 2px; background: var(--tc); }
.cp-lh .cp-en::before { content: ""; display: inline-block; width: 18px; height: 2px; border-radius: 1px; background: var(--cp-teal); vertical-align: middle; margin: -2px 10px 0 0; }
.cp-lh h1 { margin: 10px 0 16px; font-size: 34px; line-height: 1.4; font-weight: 700; color: var(--cp-heading); }
.cp-list--subtheme .cp-lh h1 { margin: 8px 0 10px; font-size: 32px; line-height: 1.45; }
.cp-lh--news h1 { margin: 8px 0 10px; }
.cp-lh--paged .cp-lh__in { padding: 16px 0 24px; }
.cp-list .cp-lh--paged h1 { margin-bottom: 0; font-size: 26px; }
.cp-pno { display: inline-block; margin-left: 10px; font-family: var(--cp-latin); font-size: 13px; font-weight: 600; color: var(--cp-muted); vertical-align: 4px; white-space: nowrap; }
.cp-lh__desc { margin: 0; max-width: 680px; font-size: 15px; line-height: 1.9; color: var(--cp-text); }
.cp-lh--news .cp-lh__desc { font-size: 14.5px; color: var(--cp-sub); }
.cp-why { margin: 0; padding: 18px 20px 18px 22px; border-radius: 14px; background: #fff; border: 1px solid color-mix(in srgb, var(--tc) 18%, #fff); font-size: 15px; line-height: 1.95; color: var(--cp-text); }
.cp-why b { display: block; margin-bottom: 4px; font-size: 12.5px; letter-spacing: .06em; color: var(--tc); }

/* situation chips (大カテゴリ) */
.cp-words { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 18px 0 0; }
.cp-words > span { margin-right: 4px; font-size: 12.5px; color: var(--cp-muted); }
.cp-words a { font-size: 13px; min-height: 34px; display: inline-flex; align-items: center; padding: 4px 14px; border-radius: 999px; border: 1px solid var(--cp-line-strong); background: #fff; color: var(--cp-text); text-decoration: none; }
.cp-words a:hover, .cp-words a:focus-visible { border-color: var(--cp-heading); color: var(--cp-heading); }

/* reading card */
.cp-prog { padding: 20px 22px; border-radius: 16px; background: #fff; border: 1px solid var(--cp-line); box-shadow: 0 18px 36px -28px rgba(83, 43, 118, .35); }
.cp-prog__top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 13px; color: var(--cp-sub); }
.cp-prog__num { font-family: var(--cp-latin); font-size: 28px; font-weight: 600; color: var(--cp-heading); white-space: nowrap; }
.cp-prog__num small { font-size: 14px; font-weight: 500; color: var(--cp-muted); }
.cp-prog__bar { height: 8px; margin: 10px 0 12px; border-radius: 4px; background: var(--cp-lav); overflow: hidden; }
.cp-prog__bar i { display: block; width: 0; height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--cp-violet), var(--cp-teal)); transition: width .4s; }
.cp-prog p { margin: 0; font-size: 12px; line-height: 1.6; color: var(--cp-muted); }
.cp-list .cp-prog__next { display: block; margin-top: 12px; padding: 10px 12px; border-radius: 10px; background: var(--cp-lav); font-size: 13px; font-weight: 700; line-height: 1.6; color: var(--cp-purple-deep); }
.cp-prog__next small { display: block; font-size: 11.5px; font-weight: 500; color: var(--cp-muted); }

/* ---------- shared list bits ---------- */
.cp-new { display: inline-block; margin-left: 6px; padding: 0 7px; border-radius: 999px; background: var(--cp-new); color: var(--cp-new-ink); font-family: var(--cp-latin); font-size: 10.5px; font-weight: 700; letter-spacing: .06em; line-height: 18px; vertical-align: 2px; }
.cp-tag { display: inline-block; padding: 1px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; line-height: 1.7; }
.cp-tag--pillar { background: var(--cp-purple); color: #fff; }
.cp-tag--first { background: var(--tb); color: var(--tc); }
.cp-tag--upd { background: #fff1d6; color: var(--cp-c5); }
.cp-chk { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border-radius: 50%; border: 2px solid var(--cp-line-strong); background: #fff; font-family: var(--cp-latin); font-size: 13px; font-weight: 600; color: var(--cp-muted); cursor: pointer; }
.cp-chk.is-read { background: var(--cp-teal); border-color: var(--cp-teal); }
.cp-chk.is-read span { display: none; }
.cp-chk.is-read::after { content: ""; width: 10px; height: 6px; border: 2.5px solid #fff; border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px); }
.cp-chk::before { content: ""; position: absolute; inset: -6px; } /* 44px hit area */
.cp-terms--s { gap: 6px 8px; }
.cp-terms--s a { padding: 5px 12px; font-size: 13px; }

/* ---------- 大カテゴリ ---------- */
.cp-tbody { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 56px; padding-top: 44px; padding-bottom: 80px; }
.cp-ltoc { position: sticky; top: calc(var(--cp-hd-h) + 24px); align-self: start; }
.cp-ltoc p { margin: 0 0 10px; font-size: 12.5px; font-weight: 700; color: var(--cp-muted); }
.cp-ltoc ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--cp-line); }
.cp-list .cp-ltoc a { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 6px; margin-left: -2px; padding: 7px 0 7px 14px; border-left: 2px solid transparent; font-size: 13.5px; line-height: 1.5; color: var(--cp-sub); }
.cp-list .cp-ltoc a.is-on { border-color: var(--tc); color: var(--cp-heading); font-weight: 700; }
.cp-ltoc b { width: 10px; height: 3px; margin-top: 9px; border-radius: 2px; background: var(--cp-line-strong); }
.cp-ltoc a.is-on b { background: var(--tc); }
.cp-ltoc__dots { grid-column: 2; display: flex; gap: 3px; margin-top: 4px; }
.cp-ltoc__dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--cp-line-strong); }
.cp-ltoc__dots i.is-read { background: var(--cp-teal); }
.cp-start { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 24px; align-items: center; margin-bottom: 44px; padding: 20px; border-radius: 18px; background: #fff; border: 1px solid var(--cp-line); }
.cp-start__img { display: block; border-radius: 12px; overflow: hidden; line-height: 0; box-shadow: 0 10px 22px -18px rgba(43, 39, 64, .5); }
.cp-start__img img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.cp-start__k { display: inline-block; margin-bottom: 8px; padding: 2px 10px; border-radius: 999px; background: var(--tc); color: #fff; font-size: 12px; font-weight: 700; }
.cp-start h2 { margin: 0 0 6px; font-size: 21px; line-height: 1.55; }
.cp-list .cp-start h2 a { color: var(--cp-heading); }
.cp-start p { margin: 0; font-size: 14px; color: var(--cp-sub); }
.cp-ch { padding: 34px 0 10px; border-top: 1px solid var(--cp-line-strong); }
.cp-ch__h { display: flex; align-items: baseline; gap: 14px; }
.cp-ch__h h2 { margin: 0; font-size: 22px; line-height: 1.5; color: var(--cp-heading); }
.cp-ch__cnt { margin-left: auto; font-family: var(--cp-latin); font-size: 12.5px; color: var(--cp-muted); white-space: nowrap; }
.cp-ch__lead { margin: 8px 0 18px; font-size: 14.5px; color: var(--cp-sub); }
.cp-path { position: relative; list-style: none; margin: 0; padding: 0; }
.cp-path::before { content: ""; position: absolute; left: 15px; top: 18px; bottom: 18px; width: 2px; background: var(--cp-line); }
.cp-path__i { position: relative; display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 12px 0; }
.cp-list .cp-path__t { font-size: 16.5px; font-weight: 700; line-height: 1.6; color: var(--cp-heading); }
.cp-list .cp-path__t:hover { color: var(--cp-purple); }
.cp-path__i.is-pillar .cp-path__t { font-size: 17.5px; }
.cp-path__s { margin: 2px 0 0; font-size: 13.5px; line-height: 1.7; color: var(--cp-sub); }
.cp-path__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 0; }
.cp-path__d { padding-top: 4px; font-family: var(--cp-latin); font-size: 12px; color: var(--cp-muted); white-space: nowrap; }
.cp-list .cp-ch__all { display: inline-block; margin: 6px 0 0 46px; font-size: 13.5px; font-weight: 700; }
.cp-after { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 24px; margin-top: 40px; }
.cp-box { padding: 24px 26px; border-radius: 18px; background: #fff; border: 1px solid var(--cp-line); }
.cp-box h2 { margin: 0 0 14px; font-size: 17px; color: var(--cp-heading); }
.cp-list .cp-box__more { display: inline-block; margin-top: 14px; font-size: 13px; font-weight: 700; }
.cp-nw { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; padding: 12px 0; border-top: 1px solid var(--cp-line); }
.cp-box h2 + .cp-nw { border-top: 0; padding-top: 0; }
.cp-list .cp-nw a { font-size: 14.5px; font-weight: 700; line-height: 1.6; color: var(--cp-heading); }
.cp-list .cp-nw a:hover { color: var(--cp-purple); }
.cp-nw small { grid-column: 2; font-family: var(--cp-latin); font-size: 12px; color: var(--cp-muted); }
.cp-imp-pill { align-self: start; margin-top: 3px; padding: 2px 9px; border-radius: 6px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.cp-imp-pill--action { background: #fde8ee; color: var(--cp-red); }
.cp-imp-pill--watch { background: #fff1d6; color: var(--cp-c5); }
.cp-imp-pill--info { background: var(--cp-lav); color: var(--cp-muted); }

/* ---------- サブカテゴリ ---------- */
.cp-sbody { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 56px; padding-top: 40px; padding-bottom: 80px; }
.cp-sech { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin: 0 0 4px; }
.cp-sech .cp-en { font-size: 12.5px; letter-spacing: .18em; }
.cp-sech h2 { margin: 0; font-size: 22px; color: var(--cp-heading); }
.cp-secp { margin: 0 0 18px; font-size: 14px; color: var(--cp-sub); }
.cp-ess { position: relative; list-style: none; margin: 0 0 56px; padding: 0; }
.cp-ess::before { content: ""; position: absolute; left: 15px; top: 30px; bottom: 30px; width: 2px; background: var(--cp-line); }
.cp-ess li { position: relative; display: grid; grid-template-columns: 32px 208px minmax(0, 1fr); gap: 18px; align-items: center; padding: 14px 0; }
.cp-ess__img { display: block; border-radius: 10px; overflow: hidden; line-height: 0; box-shadow: 0 10px 22px -18px rgba(43, 39, 64, .5); }
.cp-ess__img img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.cp-ess__img .cp-thumb-fallback, .cp-start__img .cp-thumb-fallback { font-size: 12px; line-height: 1.35; }
.cp-list .cp-ess__t { font-size: 16.5px; font-weight: 700; line-height: 1.6; color: var(--cp-heading); }
.cp-list .cp-ess__t:hover { color: var(--cp-purple); }
.cp-ess__s { margin: 4px 0 0; font-size: 13.5px; line-height: 1.7; color: var(--cp-sub); }
.cp-ess__m { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 8px 0 0; font-family: var(--cp-latin); font-size: 12px; color: var(--cp-muted); }
.cp-ess__m .cp-tag { font-family: var(--cp-sans); }
.cp-back { display: flex; align-items: center; gap: 14px; margin: 0 0 28px; padding: 14px 18px; border-radius: 14px; background: #fff; border: 1px solid var(--cp-line); font-size: 14px; color: var(--cp-text) !important; }
.cp-back b { color: var(--cp-heading); }
.cp-back__go { margin-left: auto; font-weight: 700; color: var(--cp-purple); white-space: nowrap; }
.cp-lib[aria-busy="true"] .cp-lt { opacity: .45; transition: opacity .15s; }
.cp-lib__tools { position: sticky; top: var(--cp-hd-h); z-index: 5; margin: 0 -20px; padding: 12px 20px; background: rgba(251, 250, 254, .96); backdrop-filter: blur(6px); border-bottom: 1px solid var(--cp-line); }
.cp-chips { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.cp-chips::-webkit-scrollbar { display: none; }
.cp-list .cp-chips a { flex: none; display: inline-flex; align-items: center; gap: 5px; height: 36px; padding: 0 13px; border-radius: 999px; border: 1px solid var(--cp-line-strong); background: #fff; font-size: 13px; color: var(--cp-text); }
.cp-chips a small { font-family: var(--cp-latin); font-size: 11.5px; color: var(--cp-muted); }
.cp-list .cp-chips a[aria-current] { background: var(--cp-heading); border-color: var(--cp-heading); color: #fff; }
.cp-chips a[aria-current] small { color: #cfc9e2; }
.cp-lib__res { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; font-size: 13px; color: var(--cp-sub); }
.cp-lib__res b { margin: 0 2px; font-family: var(--cp-latin); font-size: 15px; color: var(--cp-heading); }
.cp-lib__rng { color: var(--cp-muted); }
.cp-seg { flex: none; display: inline-flex; padding: 3px; border-radius: 10px; background: var(--cp-lav); }
.cp-list .cp-seg a { padding: 5px 11px; border-radius: 8px; font-size: 12.5px; color: var(--cp-sub); white-space: nowrap; }
.cp-list .cp-seg a[aria-current] { background: #fff; color: var(--cp-heading); font-weight: 700; box-shadow: 0 2px 6px rgba(43, 39, 64, .1); }
.cp-lt { list-style: none; margin: 0; padding: 0; }
.cp-lt li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 20px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--cp-line); }
.cp-lt__mn { min-width: 0; }
.cp-list .cp-lt__mn > a { font-size: 15.5px; font-weight: 700; line-height: 1.65; color: var(--cp-heading); }
.cp-list .cp-lt__mn > a:hover { color: var(--cp-purple); }
.cp-types { margin-left: 4px; }
.cp-types span { display: inline-block; margin: 2px 5px 2px 0; padding: 0 8px; border-radius: 6px; border: 1px solid var(--cp-line-strong); background: #fff; font-size: 11.5px; line-height: 20px; color: var(--cp-sub); white-space: nowrap; vertical-align: 2px; }
.cp-types span.is-on { border-color: var(--cp-heading); color: var(--cp-heading); font-weight: 700; }
.cp-lt__d { font-family: var(--cp-latin); font-size: 12px; color: var(--cp-muted); white-space: nowrap; }
.cp-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 30px; }
.cp-list .cp-pager a, .cp-pager span { min-width: 44px; height: 44px; padding: 0 14px; display: flex; align-items: center; justify-content: center; border-radius: 12px; border: 1px solid var(--cp-line-strong); background: #fff; font-family: var(--cp-latin); font-size: 14px; color: var(--cp-text); }
.cp-pager span[aria-current] { background: var(--cp-heading); border-color: var(--cp-heading); color: #fff; }
.cp-pager .cp-pager__gap { border: 0; background: none; min-width: 20px; padding: 0; color: var(--cp-muted); }
.cp-list .cp-pager a:hover { border-color: var(--cp-purple-soft); color: var(--cp-purple); }
.cp-side { position: sticky; top: calc(var(--cp-hd-h) + 24px); align-self: start; display: grid; gap: 18px; }
.cp-scard { padding: 20px; border-radius: 16px; background: #fff; border: 1px solid var(--cp-line); }
.cp-scard__cap { margin: 0 0 2px; font-size: 12px; color: var(--cp-muted); }
.cp-scard h2 { margin: 0 0 10px; font-size: 14px; line-height: 1.6; color: var(--cp-heading); }
.cp-list .cp-scard h2 a { color: var(--cp-heading); }
.cp-list .cp-scard h2 a:hover { color: var(--cp-purple); }
.cp-sibs { list-style: none; margin: 0; padding: 0; }
.cp-list .cp-sibs a { display: block; padding: 7px 10px; border-radius: 8px; font-size: 13.5px; line-height: 1.5; color: var(--cp-sub); }
.cp-list .cp-sibs a:hover { background: var(--cp-lav); }
.cp-list .cp-sibs a[aria-current] { background: var(--tb); color: var(--tc); font-weight: 700; }
.cp-list .cp-scard__more { display: inline-block; margin-top: 10px; font-size: 13px; font-weight: 700; }

/* ---------- 領域 (provisional) ---------- */
.cp-lbody-plain { padding-top: 40px; padding-bottom: 80px; }

/* ---------- ニュース ---------- */
.cp-week { padding: 20px 22px; border-radius: 16px; background: #fff; border: 1px solid var(--cp-line); box-shadow: 0 18px 36px -28px rgba(83, 43, 118, .35); }
.cp-week__h { display: flex; justify-content: space-between; gap: 12px; margin: 0 0 8px; font-size: 14px; font-weight: 700; color: var(--cp-heading); }
.cp-week__h small { font-family: var(--cp-latin); font-weight: 500; color: var(--cp-muted); }
.cp-week ul { list-style: none; margin: 0; padding: 0; }
.cp-week li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; padding: 6px 0; border-top: 1px solid var(--cp-line); font-size: 13.5px; line-height: 1.6; }
.cp-week li:first-child { border-top: 0; }
.cp-list .cp-week li a { color: var(--cp-text); }
.cp-list .cp-week li a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cp-list .cp-week li a:hover { color: var(--cp-purple); }
.cp-list .cp-week__more { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 700; color: var(--cp-purple); }
.cp-week__none { margin: 0; font-size: 13px; color: var(--cp-muted); }
.cp-nf { position: sticky; top: var(--cp-hd-h); z-index: 10; background: rgba(251, 250, 254, .96); backdrop-filter: blur(6px); border-bottom: 1px solid var(--cp-line); }
.cp-nf .cp-wrap { display: flex; align-items: center; gap: 18px; padding-top: 12px; padding-bottom: 12px; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
.cp-nf .cp-wrap::-webkit-scrollbar { display: none; }
.cp-nf__g { display: flex; align-items: center; gap: 6px; }
.cp-nf__g > span { margin-right: 2px; font-size: 12px; color: var(--cp-muted); }
.cp-list .cp-nf__g a { display: inline-flex; align-items: center; height: 34px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--cp-line-strong); background: #fff; font-size: 12.5px; color: var(--cp-text); }
.cp-list .cp-nf__g a[aria-current] { background: var(--cp-heading); border-color: var(--cp-heading); color: #fff; }
.cp-nf__sep { flex: none; width: 1px; height: 22px; background: var(--cp-line-strong); }
.cp-news-region[aria-busy="true"] .cp-nlist { opacity: .45; transition: opacity .15s; }
.cp-nlist { max-width: 860px; margin: 0 auto; padding: 36px 20px 80px; }
/* day heading: phones only (pinned under the filter bar); on PC the date column of each item carries the day */
.cp-nday { display: none; margin: 0; }
.cp-nitem { position: relative; padding: 22px 0 24px; }
.cp-nmeta { display: flex; flex-wrap: wrap; align-items: center; font-family: var(--cp-latin); font-size: 12px; color: var(--cp-muted); }
.cp-nmeta > * + *:not(.cp-new)::before { content: ""; display: inline-block; width: 1px; height: 10px; margin: 0 10px; background: var(--cp-line-strong); vertical-align: -1px; }
.cp-nmeta .cp-new { margin-left: 10px; vertical-align: 0; }
/* news list (.cp-nitem): no dividers, a gap instead; NEW as small teal letters, not a pill (the list has no images; pills
   made it look generated). Everything below for the list is scoped to .cp-nitem — the same meta line is used on the news
   page, tag pages and search. */
.cp-nitem .cp-nmeta { column-gap: 12px; }
.cp-nitem .cp-nmeta > *::before, .cp-nitem .cp-nmeta > *::after { display: none !important; }
.cp-nitem .cp-nmeta .cp-new { margin-left: 0; padding: 0; border-radius: 0; background: none; color: var(--cp-teal-deep); font-size: 11px; letter-spacing: .12em; line-height: inherit; vertical-align: 0; }
.cp-imp { display: inline-flex; align-items: center; gap: 6px; font-family: var(--cp-sans); font-size: 12px; font-weight: 700; letter-spacing: .04em; }
.cp-imp::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.cp-imp--action { color: var(--cp-red); }
.cp-imp--watch { color: var(--cp-c5); }
.cp-imp--info { color: var(--cp-muted); }
.cp-list .cp-ncat { font-family: var(--cp-sans); font-weight: 700; color: var(--cp-purple); }
.cp-nitem h2 { margin: 6px 0; font-size: 18.5px; line-height: 1.6; }
.cp-list .cp-nitem h2 a { color: var(--cp-heading); }
.cp-list .cp-nitem h2 a:hover { color: var(--cp-purple); }
.cp-nitem p { margin: 0 0 8px; font-size: 14.5px; color: var(--cp-sub); }

/* 紙面＋細い縦線 (2026-10-27, mock: build2.py F2): the date column, one thin rule, a tick per item whose length and colour
   say the impact. Horizontal rules are pale: across the page where the day changes, on the text side between items. */
@media (min-width: 901px) {
  .cp-nlist { max-width: 960px; }
  .cp-nitem { padding: 24px 0 26px 160px; background: linear-gradient(var(--cp-line), var(--cp-line)) no-repeat 160px 0 / calc(100% - 160px) 1px; }
  .cp-nitem.is-first { margin-top: 14px; background: linear-gradient(var(--cp-line-strong), var(--cp-line-strong)) no-repeat 0 0 / 100% 1px; }
  .cp-nitem:first-of-type { margin-top: 0; background: none; }
  .cp-nitem::after { content: ""; position: absolute; left: 132px; top: 0; bottom: 0; width: 1px; background: var(--cp-line-strong); }
  .cp-nitem.is-first:not(:first-of-type)::after { top: -14px; }
  .cp-nitem::before { content: ""; position: absolute; left: 132px; top: 35px; width: 9px; height: 1.5px; background: #b9b3cc; }
  .cp-nitem--watch::before { width: 14px; background: #c98a1b; }
  .cp-nitem--action::before { width: 20px; height: 2px; background: var(--cp-red); }
  .cp-nitem .cp-nmeta .cp-ndate { position: absolute; left: 0; top: 26px; width: 116px; text-align: right; font-size: 14px; color: var(--cp-heading); }
  .cp-nitem .cp-nmeta .cp-imp { position: absolute; left: 0; top: 50px; width: 116px; justify-content: flex-end; }
  /* later items of the same day keep their date (design-system §10-1), quieter */
  .cp-nitem.is-cont .cp-ndate { font-size: 12.5px; font-weight: 500; color: var(--cp-muted); }
}

/* ---------- responsive ---------- */
@media (max-width: 900px) {
  :root { --cp-hd-h: 60px; }
  .admin-bar { --cp-hd-h: 92px; }
  .cp-lh__in, .cp-lh__in--news { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 18px 0 28px; }
  .cp-lh h1 { font-size: 25px; }
  .cp-list--subtheme .cp-lh h1 { font-size: 24px; }
  .cp-list .cp-lh--paged h1 { font-size: 21px; }
  .cp-lh__desc { font-size: 14.5px; }
  .cp-why { font-size: 14px; }
  .cp-prog { padding: 14px 16px; }
  .cp-prog__num { font-size: 22px; }

  .cp-tbody { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 0; }
  .cp-ltoc { top: var(--cp-hd-h); z-index: 10; margin: 0 -16px 20px; padding: 10px 16px; background: rgba(251, 250, 254, .96); border-bottom: 1px solid var(--cp-line); overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
  .cp-ltoc::-webkit-scrollbar { display: none; }
  .cp-ltoc p { display: none; }
  .cp-ltoc ol { display: flex; gap: 6px; border: 0; white-space: nowrap; }
  .cp-list .cp-ltoc a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; margin: 0; padding: 4px 12px; border: 1px solid var(--cp-line-strong); border-radius: 999px; background: #fff; font-size: 12.5px; }
  .cp-list .cp-ltoc a.is-on { border-color: var(--tc); }
  .cp-ltoc b { margin-top: 0; }
  .cp-ltoc__dots { display: none; }
  .cp-start { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 16px; }
  .cp-start h2 { font-size: 18px; }
  .cp-ch__h h2 { font-size: 19px; }
  .cp-path__i { grid-template-columns: 32px minmax(0, 1fr); }
  .cp-path__d { display: none; }
  .cp-list .cp-path__t { font-size: 15.5px; }
  .cp-path__i.is-pillar .cp-path__t { font-size: 16.5px; }
  .cp-after { grid-template-columns: minmax(0, 1fr); }
  .cp-box { padding: 20px; }

  .cp-sbody { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-top: 28px; }
  .cp-ess::before { left: 13px; top: 24px; bottom: 24px; }
  .cp-ess li { grid-template-columns: 28px 112px minmax(0, 1fr); gap: 12px; align-items: start; padding: 12px 0; }
  .cp-ess .cp-chk { width: 28px; height: 28px; margin-top: 2px; font-size: 12px; }
  .cp-list .cp-ess__t { font-size: 15px; line-height: 1.55; }
  .cp-ess__s { display: none; }
  .cp-ess__img .cp-thumb-fallback { padding: 6px 8px; font-size: 9.5px; }
  .cp-ess__m { margin-top: 6px; }
  .cp-lib__tools { margin: 0 -16px; padding: 10px 16px; }
  .cp-chips { -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
  .cp-lib__res { font-size: 12.5px; }
  .cp-lib__rng { display: none; }
  .cp-lt li { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 14px 0; }
  .cp-list .cp-lt__mn > a { font-size: 15px; }
  .cp-side { position: static; }
  .cp-back { flex-wrap: wrap; gap: 4px 12px; padding: 12px 14px; font-size: 13.5px; }
  .cp-back__go { margin-left: 0; }

  .cp-nf .cp-wrap { -webkit-mask-image: linear-gradient(90deg, #000 90%, transparent); mask-image: linear-gradient(90deg, #000 90%, transparent); }
  .cp-nlist { padding: 28px 16px 64px; }
  .cp-nitem h2 { font-size: 17.5px; }
  /* phones: the same rule and ticks at the left edge; the day heading stays pinned under the filter bar while that day's
     items scroll by, so the 3rd or 4th item of a day still shows its date */
  .cp-nitem { padding: 18px 0 20px 28px; background: linear-gradient(var(--cp-line), var(--cp-line)) no-repeat 28px 0 / calc(100% - 28px) 1px; }
  .cp-nday + .cp-nitem { background: none; }
  .cp-nitem::after { content: ""; position: absolute; left: 4px; top: 0; bottom: 0; width: 1px; background: var(--cp-line-strong); }
  .cp-nitem::before { content: ""; position: absolute; left: 4px; top: 29px; width: 9px; height: 1.5px; background: #b9b3cc; }
  .cp-nitem--watch::before { width: 13px; background: #c98a1b; }
  .cp-nitem--action::before { width: 17px; height: 2px; background: var(--cp-red); }
  .cp-nitem .cp-nmeta .cp-ndate { display: none; }
  .cp-nday { display: flex; position: sticky; top: calc(var(--cp-hd-h) + var(--cp-nf-h, 59px)); z-index: 5; margin: 0 -16px; padding: 12px 16px 9px 44px; background: rgba(251, 250, 254, .97); border-bottom: 1px solid var(--cp-line); font-family: var(--cp-latin); font-size: 14px; font-weight: 600; letter-spacing: .03em; color: var(--cp-heading); }
  .cp-nday:not(:first-child) { margin-top: 22px; }
  .cp-nday::before { content: ""; position: absolute; left: 20px; top: 0; bottom: 0; width: 1px; background: var(--cp-line-strong); }
  .cp-nday:first-child::before { top: 50%; }
  .cp-nday:not(:first-child)::before { top: -22px; }
  .cp-nday::after { content: ""; position: absolute; left: 16px; top: 50%; width: 9px; height: 9px; margin-top: -4px; border-radius: 2px; background: var(--cp-purple-soft); }
}
@media (max-width: 782px) { .admin-bar { --cp-hd-h: 106px; } }

/* Phone: list thumbnails full width above the title (案A, 2026-10-08). The eyecatch carries the theme word and copy;
   at 120px wide it could not be read. */
@media (max-width: 560px) {
  .cp-ess li { grid-template-columns: 28px minmax(0, 1fr); row-gap: 10px; }
  .cp-ess li > :not(.cp-chk) { grid-column: 2; }
  .cp-ess__img { border-radius: 12px; }
  .cp-ess__img .cp-thumb-fallback { padding: 14px 16px; font-size: 15px; }
}

/* ニュース一覧 (2026-10-10): the item opens the news page (stretched title link) and shows 「続きを読む」; the summary is
   cut at 3 lines so the list does not read as the whole story. Related articles are on the news page, not in the list
   (2026-10-27: the list is for choosing what to read). */
.cp-nmeta .cp-ndate { font-weight: 600; letter-spacing: .04em; color: var(--cp-sub); }
/* date | label elsewhere (news page, tags, search): the divider belongs to the date (the label's ::before is its dot) */
.cp-nmeta .cp-ndate::after { content: ""; display: inline-block; width: 1px; height: 10px; margin: 0 10px; background: var(--cp-line-strong); vertical-align: -1px; }
.cp-nmeta .cp-ndate + .cp-imp::before { display: none; }
.cp-nitem h2 a::after { content: ""; position: absolute; inset: 0; }
.cp-nitem .cp-ncat { position: relative; z-index: 1; }
.cp-nitem:hover h2 a { color: var(--cp-purple); }
.cp-nitem .cp-nsum { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.cp-nitem .cp-nmore { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; margin: 0 0 10px; font-size: 13.5px; font-weight: 700; color: var(--cp-purple); }
.cp-nitem .cp-nmore span { font-size: 12px; font-weight: 500; color: var(--cp-muted); }

/* ---------- 編集部からのお知らせ: list and single (rows are in site.css) ---------- */
.cp-info-list { max-width: 880px; margin: 0 auto; padding: 36px 20px 80px; }
.cp-info-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.cp-list .cp-info-chips a { padding: 5px 14px; border-radius: 999px; border: 1px solid var(--cp-line-strong); background: #fff; font-size: 13px; color: var(--cp-text); }
.cp-list .cp-info-chips a.is-on { background: var(--cp-heading); border-color: var(--cp-heading); color: #fff; font-weight: 700; }
.cp-lh--bare { border-bottom: 0; background: none; }
.cp-lh--bare .cp-crumb ol { padding-bottom: 8px; }
.cp-info-single { max-width: 760px; margin: 0 auto; padding: 24px 20px 88px; }
.cp-info-single__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 10px; font-family: var(--cp-latin); font-size: 13px; color: var(--cp-muted); }
.cp-info-single h1 { margin: 0 0 28px; font-size: 28px; line-height: 1.55; font-weight: 700; color: var(--cp-heading); }
.cp-info-single__sign { margin: 36px 0 0; padding-top: 18px; border-top: 1px solid var(--cp-line-strong); font-size: 13.5px; color: var(--cp-sub); }
.cp-info-single__nav { display: grid; grid-template-columns: 1fr auto 1fr; gap: 16px; align-items: center; margin-top: 40px; font-size: 14px; font-weight: 700; }
.cp-info-single__nav span:last-child { text-align: right; }
@media (max-width: 560px) {
  .cp-info-list { padding: 28px 16px 64px; }
  .cp-info-single { padding: 16px 16px 64px; }
  .cp-info-single h1 { font-size: 22px; }
  .cp-info-single__nav { font-size: 13px; }
}
/* notices are short: lighter headings than an article's */
.cp-info-single__body h2 { margin: 1.8em 0 .7em; padding: 0; border: 0; font-size: 20px; }
.cp-info-single__body h2::before, .cp-info-single__body h2::after { content: none; }
