:root{
  --paper:#f3ede6;
  --panel:#fffaf6;
  --nav-bg:#ede2d3;
  --text:#3e2e24;
  --sub:#5b4433;
  /* 線色（ページ共通） */
  --line:#e8ddd2;
  --shadow:0 4px 20px rgba(0,0,0,0.08);
  --radius:12px;

  /* ===== Nils 10 Colors (palette) ===== */
  --c-yellow:#c8bf21;   /* 黄 */
  --c-indigo:#4e328c;   /* 藍 */
  --c-mint:#84b42b;     /* 萌 */
  --c-blue:#2b519c;     /* 青 */
  --c-orange:#e27810;   /* 橙 */
  --c-purple:#7a328c;   /* 紫 */
  --c-red:#ca191d;      /* 赤 */
  --c-crimson:#cc3178;  /* 紅 */
  --c-green:#437536;    /* 緑 */
  --c-cyan:#2387a0;     /* 碧 */

  /* 淡い背景（学問/色マップのカードに使用） */
  --bg-yellow: rgba(200,191,33,.12);
  --bg-indigo: rgba(78,50,140,.12);
  --bg-mint: rgba(132,180,43,.12);
  --bg-blue: rgba(43,81,156,.12);
  --bg-orange: rgba(226,120,16,.12);
  --bg-purple: rgba(122,50,140,.12);
  --bg-red: rgba(202,25,29,.12);
  --bg-crimson: rgba(204,49,120,.12);
  --bg-green: rgba(67,117,54,.12);
  --bg-cyan: rgba(35,135,160,.12);
}

html{ background:var(--paper); }
body{
  margin:0;
  font-family:"Noto Serif JP","Noto Serif CJK JP","Source Han Serif","Hiragino Mincho ProN","Yu Mincho","MS PMincho",serif;
  background:var(--paper);
  color:var(--text);
  line-height:1.8;
}

/* 画像のはみ出し防止（横スクロール事故の原因を潰す） */
img, svg, video, canvas{ max-width:100%; height:auto; }
*{ box-sizing:border-box; }

.page-header{
  padding: 24px 0 10px; /* nav.js が body padding-top を自動で足す */
}
.container{
  width:min(1000px, 100%);
  margin:0 auto;
  padding:0 20px;
}
main.page-main{
  padding: 28px 0 40px;
}

/* カード */
.card{
  background:var(--panel);
  border-radius:var(--radius);
  padding:30px;
  margin:0 0 40px;
  box-shadow:var(--shadow);
}
.card h2{
  margin:0 0 12px;
  font-size:24px;
  color:var(--text);
}
.card p, .card li{ font-size:16px; }

/* ボタン風リンク */
.button{
  display:inline-block;
  background:#d8b46a;
  color:#1f2a26;
  padding:10px 20px;
  border-radius:4px;
  margin:8px 5px;
  text-decoration:none;
  font-weight:700;
  transition:filter .2s ease;
}
.button:hover{ filter:brightness(.97); }

/* クイックリンク（固定ナビ直下） */
.quicklinks{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px 12px;
  padding:10px 12px 0;
  margin:0 auto 8px;
}
.quicklinks a{
  display:inline-block;
  padding:9px 12px;
  border-radius:999px;
  background:var(--panel);
  border:1px solid var(--line);
  color:var(--text);
  font-weight:900;
  font-size:13px;
  letter-spacing:.01em;
  text-decoration:none;
  box-shadow:0 1px 2px rgba(0,0,0,.06);
}
.quicklinks a:hover{ filter:brightness(.985); }
.quicklinks a:active{ transform:translateY(1px); }
@media (max-width:480px){
  .quicklinks{
    justify-content:flex-start;
    overflow-x:auto;
    flex-wrap:nowrap;
    padding-bottom:6px;
    -webkit-overflow-scrolling:touch;
  }
  .quicklinks a{ white-space:nowrap; }
}

/* ページ内ナビ（in01 の導入リンク） */
.localnav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px 10px;
  padding:10px 0 0;
}
.localnav a{
  display:inline-block;
  padding:6px 10px;
  border-radius:999px;
  background:var(--panel);
  border:1px solid var(--line);
  color:var(--sub);
  text-decoration:none;
  font-weight:700;
  font-size:13px;
}
.localnav a:hover{ filter:brightness(.985); }

/* アンカーの見切れ対策（固定ナビ分） */
.anchor-offset{ scroll-margin-top: 90px; }

/* 表（必要なら拡張） */
table{ width:100%; border-collapse:collapse; }
th, td{ padding:10px 12px; border-bottom:1px solid rgba(0,0,0,.08); vertical-align:top; }
th{ text-align:left; color:var(--sub); background:rgba(237,226,211,.55); }

/* ===============================
   Nils Colorworks: 共通部品
   =============================== */

/* 色名（文章中の強調） */
.cname{ font-weight:700; }
.cname.c-yellow, .c-yellow{ color:var(--c-yellow); }
.cname.c-indigo, .c-indigo{ color:var(--c-indigo); }
.cname.c-mint, .c-mint{ color:var(--c-mint); }
.cname.c-blue, .c-blue{ color:var(--c-blue); }
.cname.c-orange, .c-orange{ color:var(--c-orange); }
.cname.c-purple, .c-purple{ color:var(--c-purple); }
.cname.c-red, .c-red{ color:var(--c-red); }
.cname.c-crimson, .c-crimson{ color:var(--c-crimson); }
.cname.c-green, .c-green{ color:var(--c-green); }
.cname.c-cyan, .c-cyan{ color:var(--c-cyan); }

/* 10色カード（2列／スマホ1列） */
.grid10{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
  margin-top: 12px;
}
@media (max-width: 768px){
  .grid10{ grid-template-columns: 1fr; }
}

.mini-card{
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px;
}
.mini-card h3{
  margin: 0 0 8px;
  font-size: 18px;
  color: var(--text);
}

/* 見た目のアクセント（うっすら色のトーンを入れる） */
.mini-card{
  border-top: 4px solid var(--accent, var(--line));
  position: relative;
  overflow: hidden;
}
.mini-card::before{
  content: "";
  position: absolute;
  inset: 0;
  background: var(--accent, transparent);
  opacity: 0.16;
  pointer-events: none;
}
.mini-card > *{ position: relative; }

.chip{
  display:inline-block;
  border: 1px solid var(--line);
  background: #ffffff;
  color: var(--text);
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 13px;
  margin: 2px 6px 6px 0;
}
.kw{
  margin-top: 6px;
  font-size: 14px;
  color: var(--text);
}

.note, .note1, .note11{
  background: var(--nav-bg);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 14px;
  margin: 14px 0;
}
.meta{ font-size: 13px; color: var(--sub); }

.box{
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 14px;
  margin: 12px 0;
}

/* 4領域：社会―自然／想像―科学 を2列（スマホ1列） */
.domain{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-flow: row;
  gap: 14px;
}
.domain .box{ margin: 0; }
@media (max-width: 640px){
  .domain{ grid-template-columns: 1fr; }
}

/* 4領域ボックス背景：10色カードと同じトーンで着色 */
.domain .box{
  background: var(--panel);
  position: relative;
  overflow: hidden;
  border-top: 4px solid var(--accent, var(--line));
}
.domain .box::before{
  content: "";
  position: absolute;
  inset: 0;
  background: var(--accent, transparent);
  opacity: 0.16;
  pointer-events: none;
}
.domain .box > *{ position: relative; }

/* 10色サマリー（リスト） */
.colorlist{ list-style:none; padding-left:0; margin:0; }
.colorlist li{ padding:10px 0; border-bottom:1px solid rgba(0,0,0,0.08); }
.colorlist li:last-child{ border-bottom:none; }

/* 10色サマリー：2列（均衡ペアが横並び） */
.colorlist-2col{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 32px;
  row-gap: 0;
}
@media (max-width: 768px){
  .colorlist-2col{ grid-template-columns: 1fr; }
}

/* みんなの星型（ランダムレーダー） */
.radar-wall{ margin-top: 12px; }
.radar-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 900px){
  .radar-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
/* スマホ：8枚を「4×2（4種類ずつ×2段）」 */
@media (max-width: 480px){
  .radar-grid{ grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; }
  .radar-item{ padding: 6px; border-radius: 10px; }
  .radar-caption{ display:none; }
  .radar-item canvas{ max-width:none; }
}
.radar-item{
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px;
  text-align:center;
}
.radar-item canvas{
  width: 100%;
  height: auto;
  max-width: 280px;
  aspect-ratio: 1 / 1;
  display:block;
  margin: 0 auto;
}
.radar-caption{ font-size: 12px; color: var(--sub); margin-top: 6px; }
.radar-note{ font-size: 13px; color: var(--sub); margin-top: 8px; text-align:center; }

/* ===============================
   in01 / 学問・色マップ向け
   =============================== */

/* 目次（accordion） */
details.accordion summary{
  cursor:pointer;
  font-weight: bold;
  color: var(--text);
  outline: none;
  list-style: none;
}
details.accordion summary::-webkit-details-marker{ display:none; }
details.accordion summary::before{
  content:"＋";
  display:inline-block;
  width: 1.2em;
  margin-right: 2px;
  color: var(--sub);
}
details.accordion[open] summary::before{ content:"−"; }
details.accordion .accordion-body{
  margin-top: 10px;
  color: var(--text);
  line-height: 1.8;
  font-size: 15px;
}
details.accordion .accordion-body p{ margin: 8px 0; }
details.accordion .accordion-body ul{ margin: 8px 0 8px 1.2em; }
details.accordion .accordion-body li{ margin: 6px 0; }

details.accordion .mini-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
  margin-top: 10px;
}
@media (max-width: 640px){
  details.accordion .mini-grid{ grid-template-columns: 1fr; }
}
details.accordion .mini-box{
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px 12px;
}
details.accordion .mini-box .ttl{ font-weight: bold; margin-bottom: 4px; }

/* Finder（色で絞り込み） */
.picker{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin-top: 10px;
}
.pick{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background: var(--panel);
  color: var(--sub);
  cursor:pointer;
  font-weight:bold;
}
.pick:hover{ background: var(--nav-bg); }
.pick.active{ box-shadow: 0 0 0 2px rgba(0,0,0,.06) inset; }

.map-hidden{ display:none !important; }
.map-focus{
  outline: 2px solid rgba(0,0,0,.06);
  box-shadow: 0 8px 26px rgba(0,0,0,0.10);
  transform: translateY(-1px);
}

/* ===== 学問カードの色枠（重要） ===== */
#academics .mini-card{
  border: 2px solid var(--accent);
  background: var(--panel);
}
#academics .mini-card[data-color="yellow"]{ background: var(--bg-yellow); }
#academics .mini-card[data-color="indigo"]{ background: var(--bg-indigo); }
#academics .mini-card[data-color="mint"]{ background: var(--bg-mint); }
#academics .mini-card[data-color="blue"]{ background: var(--bg-blue); }
#academics .mini-card[data-color="orange"]{ background: var(--bg-orange); }
#academics .mini-card[data-color="purple"]{ background: var(--bg-purple); }
#academics .mini-card[data-color="red"]{ background: var(--bg-red); }
#academics .mini-card[data-color="crimson"]{ background: var(--bg-crimson); }
#academics .mini-card[data-color="green"]{ background: var(--bg-green); }
#academics .mini-card[data-color="cyan"]{ background: var(--bg-cyan); }

#academics .mini-card .roleline{
  margin: 6px 0 10px;
  font-size: 0.92rem;
  line-height: 1.35;
  color: var(--text);
  opacity: .88;
}
#academics .mini-card .roleline .cname{ font-weight: 800; }

/* cname の色をカード内でも確実に反映 */
#academics .cname.c-yellow{ color: var(--c-yellow) !important; }
#academics .cname.c-indigo{ color: var(--c-indigo) !important; }
#academics .cname.c-mint{ color: var(--c-mint) !important; }
#academics .cname.c-blue{ color: var(--c-blue) !important; }
#academics .cname.c-orange{ color: var(--c-orange) !important; }
#academics .cname.c-purple{ color: var(--c-purple) !important; }
#academics .cname.c-red{ color: var(--c-red) !important; }
#academics .cname.c-crimson{ color: var(--c-crimson) !important; }
#academics .cname.c-green{ color: var(--c-green) !important; }
#academics .cname.c-cyan{ color: var(--c-cyan) !important; }

/* 旧accordionを展開表示したブロック */
.accordion-block{
  margin-top: 14px;
  padding: 14px 14px 12px;
  border: 1px solid var(--line);
  background: var(--panel);
  border-radius: 14px;
}
.accordion-block h3{ margin: 0 0 8px; font-size: 1.05rem; }
.accordion-block p{ margin: 8px 0; }

/* レイヤー例：枠レイアウト */
.accordion-block .mini-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 10px;
}
@media (max-width: 640px){
  .accordion-block .mini-grid{ grid-template-columns: 1fr; }
}
.accordion-block .mini-box{
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 12px 10px;
}
.accordion-block .mini-box .ttl{
  font-weight: 800;
  font-size: 16px;
  margin: 0 0 10px;
  color: var(--text);
}
.accordion-block .mini-box p{
  margin: 8px 0;
  padding: 10px 10px;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 10px;
  background: rgba(255,255,255,.65);
  line-height: 1.6;
  overflow-wrap: anywhere;
}

/* サイクル歪みカード */
.cycle-distortion-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
  margin: 14px 0 6px;
}
@media (max-width: 640px){
  .cycle-distortion-grid{ grid-template-columns: 1fr; }
}
.cycle-distortion-card{
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 12px 10px;
}
.cycle-distortion-card h5{ margin: 0 0 8px; font-size: 15px; }
.cycle-distortion-card p{ margin: 8px 0; line-height: 1.7; }
.cycle-distortion-card ul{ margin: 8px 0 0 1.2em; padding: 0; }
.cycle-distortion-card li{ margin: 6px 0; line-height: 1.7; }
ul.tight{ margin-top: 8px; margin-bottom: 8px; }
ul.tight li{ margin: 6px 0; }
.cycle-distortion-conclusion{
  background: rgba(255,255,255,.65);
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 12px;
  padding: 10px 10px;
  line-height: 1.7;
}

/* 対応理由：枠＋背景 */
.box.criteria{
  margin: 18px 0 22px;
  padding: 18px 18px;
  border: 2px solid rgba(62, 46, 36, 0.18);
  background: rgba(255, 255, 255, 0.72);
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}
.box.criteria h3{ margin: 0 0 10px; }
.box.criteria p:last-child{ margin-bottom: 0; }
.box.criteria ul{ margin-top: 10px; }

/* 10色ごとの対応理由：各色をカード化 */
.reason-list{ list-style:none; padding-left:0; margin:12px 0 0; }
.reason-item{
  --accent: rgba(62, 46, 36, 0.35);
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(62, 46, 36, 0.14);
  border-left: 10px solid var(--accent);
  border-radius: 14px;
  padding: 12px 14px;
  margin: 10px 0;
  line-height: 1.7;
  box-shadow: 0 6px 14px rgba(0,0,0,0.06);
}
.reason-label{ font-weight: 700; }
.reason-example{ font-weight: 700; }
@media (max-width: 640px){
  .reason-item{ padding: 11px 12px; border-radius: 13px; border-left-width: 8px; }
  .box.criteria{ padding: 14px 14px; border-radius: 14px; }
}

/* ==============================
   Nils Colorworks common parts
   （index / Colorworks / 学問 色マップ 共通）
============================== */

/* 文字色（色名） */
.cname{ font-weight:700; }
.c-yellow{ color:var(--c-yellow); }
.c-indigo{ color:var(--c-indigo); }
.c-mint{ color:var(--c-mint); }
.c-blue{ color:var(--c-blue); }
.c-orange{ color:var(--c-orange); }
.c-purple{ color:var(--c-purple); }
.c-red{ color:var(--c-red); }
.c-crimson{ color:var(--c-crimson); }
.c-green{ color:var(--c-green); }
.c-cyan{ color:var(--c-cyan); }

/* 画像の見た目（既存ページに合わせる） */
main img{
  width: 100%;
  height: auto;
  border-radius: 10px;
  display:block;
  margin: 16px auto;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

/* 2列レイアウト（index の導入など） */
.two-col{
  display:flex;
  gap: 18px;
  flex-wrap: wrap;
  align-items:flex-start;
}
.two-col > div{
  flex: 1 1 320px;
  min-width: 280px;
}

/* 10色カード */
.grid10{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
  margin-top: 12px;
}
@media (max-width: 768px){
  .grid10{ grid-template-columns: 1fr; }
}

.mini-card{
  background: #fffaf6;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px;
}
.mini-card h3{
  margin: 0 0 8px;
  font-size: 18px;
  color: #3e2e24;
}

.chip{
  display:inline-block;
  border: 1px solid var(--line);
  background: #ffffff;
  color:#3e2e24;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 13px;
  margin: 2px 6px 6px 0;
}
.kw{
  margin-top: 6px;
  font-size: 14px;
  color:#3e2e24;
}

.note, .note1, .note11{
  background: #ede2d3;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 14px;
  margin: 14px 0;
}

.meta{
  font-size: 13px;
  color:#5b4433;
}

.box{
  background:#f3ede6;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 14px;
  margin: 12px 0;
}

/* 4領域：社会―自然／想像―科学 を2列（スマホ1列） */
.domain{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-flow: row;
  gap: 14px;
}
.domain .box{ margin: 0; }
@media (max-width: 640px){
  .domain{ grid-template-columns: 1fr; }
}

/* 4領域ボックス背景：10色カードと同じトーンで着色 */
.domain .box{
  background: #fffaf6;
  position: relative;
  overflow: hidden;
  border-top: 4px solid var(--accent, var(--line));
}
.domain .box::before{
  content: "";
  position: absolute;
  inset: 0;
  background: var(--accent, transparent);
  opacity: 0.16;
  pointer-events: none;
}
.domain .box > *{ position: relative; }

/* 10色サマリー（箇条書きの羅列に見えないように） */
.colorlist{
  list-style: none;
  padding-left: 0;
  margin: 0;
}
.colorlist li{
  padding: 10px 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}
.colorlist li:last-child{ border-bottom: none; }

/* 2列：均衡ペアが横並びになるよう grid */
.colorlist-2col{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 32px;
  row-gap: 0px;
}
@media (max-width: 768px){
  .colorlist-2col{ grid-template-columns: 1fr; }
}

/* ===== Random radar wall (みんなの星型) ===== */
.radar-wall{ margin-top: 12px; }
.radar-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 900px){
  .radar-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
/* スマホ：8枚を「4×2」 */
@media (max-width: 480px){
  .radar-grid{ grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; }
  .radar-item{ padding: 6px; border-radius: 10px; }
  .radar-caption{ display:none; }
  .radar-item canvas{ max-width:none; }
}
.radar-item{
  background:#fffaf6;
  border:1px solid var(--line);
  border-radius: 12px;
  padding: 10px;
  text-align:center;
}
.radar-item canvas{
  width: 100%;
  height: auto;
  max-width: 280px;
  aspect-ratio: 1 / 1;
  display:block;
  margin: 0 auto;
}
.radar-caption{
  font-size: 12px;
  color:#5b4433;
  margin-top: 6px;
}
.radar-note{
  font-size: 13px;
  color:#5b4433;
  margin-top: 8px;
  text-align:center;
}

/* ===== Back to top (each section) ===== */
.section-bottom{
  display:flex;
  justify-content:flex-end;
  margin-top: 18px;
}
.section-bottom a{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fffaf6;
  color: #5b4433;
  text-decoration:none;
  font-weight: bold;
  font-size: 14px;
}
.section-bottom a:hover{ background:#ede2d3; }

/* ===== Book section (covers side-by-side, mobile stacked) ===== */
.book-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 14px;
}
@media (max-width: 640px){
  .book-grid{ grid-template-columns: 1fr; }
}
.book-item{
  background:#fffaf6;
  border:1px solid var(--line);
  border-radius: 12px;
  padding: 14px;
}
.book-item img{ margin: 0; box-shadow: 0 4px 20px rgba(0,0,0,0.08); }
.book-item h3{ margin: 10px 0 6px; font-size: 18px; color: #3e2e24; }
.book-item p{ margin: 0; font-size: 14px; color:#5b4433; line-height:1.7; }

/* ==============================
   学問/色マップ（in01）
============================== */

/* Finder */
.picker{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin-top: 10px;
}
.pick{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fffaf6;
  color:#5b4433;
  cursor:pointer;
  font-weight:bold;
}
.pick:hover{ background:#ede2d3; }
.pick.active{ box-shadow: 0 0 0 2px rgba(0,0,0,.06) inset; }
.map-hidden{ display:none !important; }
.map-focus{
  outline: 2px solid rgba(0,0,0,.06);
  box-shadow: 0 8px 26px rgba(0,0,0,0.10);
  transform: translateY(-1px);
}

/* academics cards : 枠＋淡い背景 */
#academics .mini-card{
  border: 2px solid var(--accent);
  background: var(--panel);
}
#academics .mini-card[data-color="yellow"]{ background: var(--bg-yellow); }
#academics .mini-card[data-color="indigo"]{ background: var(--bg-indigo); }
#academics .mini-card[data-color="mint"]{ background: var(--bg-mint); }
#academics .mini-card[data-color="blue"]{ background: var(--bg-blue); }
#academics .mini-card[data-color="orange"]{ background: var(--bg-orange); }
#academics .mini-card[data-color="purple"]{ background: var(--bg-purple); }
#academics .mini-card[data-color="red"]{ background: var(--bg-red); }
#academics .mini-card[data-color="crimson"]{ background: var(--bg-crimson); }
#academics .mini-card[data-color="green"]{ background: var(--bg-green); }
#academics .mini-card[data-color="cyan"]{ background: var(--bg-cyan); }

#academics .mini-card .roleline{
  margin: 6px 0 10px;
  font-size: 0.92rem;
  line-height: 1.35;
  color: var(--text);
  opacity: .88;
}
#academics .mini-card .roleline .cname{ font-weight: 800; }

/* cname を学問カード内でも必ず色表示 */
#academics .cname.c-yellow{ color: var(--c-yellow) !important; }
#academics .cname.c-indigo{ color: var(--c-indigo) !important; }
#academics .cname.c-mint{ color: var(--c-mint) !important; }
#academics .cname.c-blue{ color: var(--c-blue) !important; }
#academics .cname.c-orange{ color: var(--c-orange) !important; }
#academics .cname.c-purple{ color: var(--c-purple) !important; }
#academics .cname.c-red{ color: var(--c-red) !important; }
#academics .cname.c-crimson{ color: var(--c-crimson) !important; }
#academics .cname.c-green{ color: var(--c-green) !important; }
#academics .cname.c-cyan{ color: var(--c-cyan) !important; }

/* details.accordion（もし in01 に残っている場合） */
details.accordion summary{
  cursor:pointer;
  font-weight: bold;
  color:#3e2e24;
  outline: none;
  list-style: none;
}
details.accordion summary::-webkit-details-marker{ display:none; }
details.accordion summary::before{
  content:"＋";
  display:inline-block;
  width: 1.2em;
  margin-right: 2px;
  color:#5b4433;
}
details.accordion[open] summary::before{ content:"−"; }
details.accordion .accordion-body{
  margin-top: 10px;
  color:#3e2e24;
  line-height: 1.8;
  font-size: 15px;
}
details.accordion .accordion-body p{ margin: 8px 0; }
details.accordion .accordion-body ul{ margin: 8px 0 8px 1.2em; }
details.accordion .accordion-body li{ margin: 6px 0; }
details.accordion .mini-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
  margin-top: 10px;
}
@media (max-width: 640px){
  details.accordion .mini-grid{ grid-template-columns: 1fr; }
}
details.accordion .mini-box{
  background:#f3ede6;
  border:1px solid var(--line);
  border-radius: 10px;
  padding: 10px 12px;
}
details.accordion .mini-box .ttl{ font-weight: bold; margin-bottom: 4px; }

/* expanded blocks（in01 が accordion を使わない構成でも見やすく） */
.accordion-block{
  margin-top: 14px;
  padding: 14px 14px 12px;
  border: 1px solid var(--line);
  background: #fffaf6;
  border-radius: 14px;
}
.accordion-block h3{ margin: 0 0 8px; font-size: 1.05rem; }
.accordion-block p{ margin: 8px 0; }

.accordion-block .mini-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 10px;
}
@media (max-width: 640px){
  .accordion-block .mini-grid{ grid-template-columns: 1fr; }
}
.accordion-block .mini-box{
  background:#f3ede6;
  border:1px solid var(--line);
  border-radius: 12px;
  padding: 12px 12px 10px;
}
.accordion-block .mini-box .ttl{
  font-weight: 800;
  font-size: 16px;
  margin: 0 0 10px;
  color:#3e2e24;
}
.accordion-block .mini-box p{
  margin: 8px 0;
  padding: 10px 10px;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 10px;
  background: rgba(255,255,255,.65);
  line-height: 1.6;
  overflow-wrap: anywhere;
}

/* Cycle distortion cards */
.cycle-distortion-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
  margin: 14px 0 6px;
}
@media (max-width: 640px){
  .cycle-distortion-grid{ grid-template-columns: 1fr; }
}
.cycle-distortion-card{
  background: #fffaf6;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 12px 10px;
}
.cycle-distortion-card h5{ margin: 0 0 8px; font-size: 15px; }
.cycle-distortion-card p{ margin: 8px 0; line-height: 1.7; }
.cycle-distortion-card ul{ margin: 8px 0 0 1.2em; padding: 0; }
.cycle-distortion-card li{ margin: 6px 0; line-height: 1.7; }
ul.tight{ margin-top: 8px; margin-bottom: 8px; }
ul.tight li{ margin: 6px 0; }
.cycle-distortion-conclusion{
  background: rgba(255,255,255,65);
  border: 1px solid rgba(0,0,0,10);
  border-radius: 12px;
  padding: 10px 10px;
  line-height: 1.7;
}

/* 対応理由：枠＋背景 */
.box.criteria{
  margin: 18px 0 22px;
  padding: 18px 18px;
  border: 2px solid rgba(62, 46, 36, 0.18);
  background: rgba(255, 255, 255, 0.72);
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}
.box.criteria h3{ margin: 0 0 10px; }
.box.criteria p:last-child{ margin-bottom: 0; }
.box.criteria ul{ margin-top: 10px; }
@media (max-width: 640px){
  .box.criteria{ padding: 14px 14px; border-radius: 14px; }
}

/* 10色ごとの対応理由：カード化 */
.reason-list{
  list-style: none;
  padding-left: 0;
  margin: 12px 0 0;
}
.reason-item{
  --accent: rgba(62, 46, 36, 0.35);
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(62, 46, 36, 0.14);
  border-left: 10px solid var(--accent);
  border-radius: 14px;
  padding: 12px 14px;
  margin: 10px 0;
  line-height: 1.7;
  box-shadow: 0 6px 14px rgba(0,0,0,0.06);
}
.reason-label{ font-weight: 700; }
.reason-example{ font-weight: 700; }
@media (max-width: 640px){
  .reason-item{ padding: 11px 12px; border-radius: 13px; border-left-width: 8px; }
}

/* 2列（PC）→ 1列（スマホ） */
.reason-grid-2col{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 16px;
}
@media (max-width: 768px){
  .reason-grid-2col{ grid-template-columns: 1fr; }
}

/* ===============================
   画像を枠いっぱいに表示（カラーワークス等）
   =============================== */
figure{ margin: 0; }
.card figure{ margin: 14px 0; }
.card figure:first-child{ margin-top: 0; }
figure > img{
  display: block;
  width: 100%;
  height: auto;
}
.card > img{
  display: block;
  width: 100%;
  height: auto;
}


/* ===== 魔法ページ専用（他ページへ影響しない） =====
   ※ magic03 など「魔法解説」ページだけに効かせるため、
      body.magic-page で完全にスコープします。
==================================================== */

/* 最大2列（スマホ1列） */
body.magic-page .grid{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
}
@media (max-width: 720px){
  body.magic-page .grid{ grid-template-columns: 1fr !important; }
}

/* 共通 .card の padding(30px) が details.card に当たって間延びするのを抑制 */
body.magic-page details.card{
  padding: 0 !important;
  margin: 0 !important;
}

/* 閉じている時の見た目（summary部分） */
body.magic-page details.card > summary{
  padding: 16px 18px !important;
}
body.magic-page details.card > summary .head-row{
  gap: 10px !important;
}
body.magic-page details.card > summary .title{
  font-size: 18px !important;
  line-height: 1.25 !important;
}
body.magic-page details.card > summary .subtitle{
  font-size: 13px !important;
  line-height: 1.25 !important;
  margin-top: 2px !important;
}

/* チップ列（右上） */
body.magic-page details.card > summary .meta{
  gap: 6px !important;
}
body.magic-page details.card > summary .tagrow{
  margin-top: 10px !important;
}

/* チップ（タグ） */
body.magic-page .chip{
  font-size: 12px !important;
  padding: 4px 10px !important;
  margin: 2px 6px 0 0 !important;
}

