/* ==========================================================================
   DESIGN 01 — Editorial / Magazine
   副業マネー通信 (sideplus.net) — 親テーマ: Neve
   スコープ: body.d01-editorial
   設計方針: カードを使わない。罫線・余白・書体の強弱だけで階層をつくる。
   ========================================================================== */

body.d01-editorial{
  /* --- 版面 --- */
  --ed-ink:#14110F;
  --ed-paper:#FFFDF9;
  --ed-muted:#6F6862;
  --ed-rule:#DFD8CE;
  --ed-accent:#B45309;      /* 見出しの罫・カテゴリ表記のみに使う */
  --ed-accent-soft:#FFF4E2;
  --ed-dark:#3B1A05;
  --ed-max:1240px;

  background:var(--ed-paper);
  color:var(--ed-ink);
  font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  font-size:16px;
  line-height:1.8;
  letter-spacing:.012em;
}

/* 見出しは明朝。これがこのサイトだけの視覚文法 */
body.d01-editorial h1,
body.d01-editorial h2,
body.d01-editorial h3,
body.d01-editorial .entry-title,
body.d01-editorial .site-title{
  font-family:"Noto Serif JP",'Hiragino Mincho ProN','Yu Mincho',serif;
  font-weight:700;
  letter-spacing:.02em;
}

/* --------------------------------------------------------------------------
   ヘッダー / フッター（ブランド共通部。装飾だけ版面に合わせる）
   -------------------------------------------------------------------------- */
body.d01-editorial header.header{
  background:var(--ed-paper);
  border-top:3px solid var(--ed-ink);
  border-bottom:1px solid var(--ed-rule);
}
body.d01-editorial .site-title a{
  color:var(--ed-ink);
  font-size:1.32rem;
  text-decoration:none;
}
body.d01-editorial .site-title a:hover{color:var(--ed-accent)}
body.d01-editorial .nv-nav-wrap a,
body.d01-editorial .nav-ul a{
  font-size:.86rem;
  letter-spacing:.06em;
  color:var(--ed-ink);
}
body.d01-editorial .nv-nav-wrap a:hover,
body.d01-editorial .nav-ul a:hover{color:var(--ed-accent)}

body.d01-editorial .site-footer,
body.d01-editorial .nv-footer,
body.d01-editorial footer.site-footer{
  background:var(--ed-dark);
  color:#E7DDD2;
}
body.d01-editorial .site-footer a,
body.d01-editorial .nv-footer a{color:#F3EAE0}
body.d01-editorial .site-footer a:hover{color:#fff;text-decoration:underline}

/* --------------------------------------------------------------------------
   共通ラッパ
   -------------------------------------------------------------------------- */
.ed-wrap{
  max-width:var(--ed-max);
  margin:0 auto;
  padding:0 28px 96px;
}

/* 題字まわり（新聞の題号罫）。ヒーローバナーは置かない */
.ed-masthead{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid var(--ed-rule);
  border-bottom:3px double var(--ed-ink);   /* 雑誌の題号罫 */
  padding:14px 0 12px;
  margin-bottom:40px;
}
.ed-mast-label{
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--ed-accent);
}
.ed-mast-lead{
  flex:1 1 auto;
  font-size:.82rem;
  color:var(--ed-muted);
  letter-spacing:.04em;
}
.ed-mast-date{
  font-size:.72rem;
  color:var(--ed-muted);
  letter-spacing:.08em;
  white-space:nowrap;
}

/* 節タイトル：上に2pxの罫、小さなラベル。ほかの4サイトとは別文法 */
.ed-rule-label{
  border-top:2px solid var(--ed-ink);
  padding-top:11px;
  margin:0 0 22px;
  font-family:"Noto Sans JP",sans-serif !important;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ed-ink);
}
.ed-rule-label .ja{
  display:block;
  font-size:.9rem;
  letter-spacing:.08em;
  text-transform:none;
  color:var(--ed-muted);
  font-weight:500;
  margin-top:3px;
}

/* --------------------------------------------------------------------------
   トップ：非対称のリード面（本記事 + 罫をはさんで一覧）
   -------------------------------------------------------------------------- */
.ed-lead{
  display:grid;
  grid-template-columns:minmax(0,1fr) 336px;
  align-items:start;
}
.ed-lead-side{
  border-left:1px solid var(--ed-rule);
  margin-left:44px;
  padding-left:36px;
}

.ed-kicker{
  display:inline-block;
  font-size:.71rem;
  font-weight:700;
  letter-spacing:.16em;
  color:var(--ed-accent);
  border-left:3px solid var(--ed-accent);
  padding-left:9px;
  margin-bottom:14px;
  line-height:1.4;
}
.ed-lead-title{
  margin:0 0 18px;
  font-size:clamp(1.95rem,3.9vw,2.95rem);
  line-height:1.32;
}
.ed-lead-title a{color:var(--ed-ink);text-decoration:none}
.ed-lead-title a:hover{color:var(--ed-accent)}
.ed-lead-excerpt{
  margin:0 0 18px;
  font-size:1.02rem;
  line-height:1.95;
  color:#33302C;
  max-width:44em;
}
.ed-byline{
  font-size:.74rem;
  letter-spacing:.08em;
  color:var(--ed-muted);
  margin-bottom:16px;
}
.ed-byline span+span::before{content:"／";margin:0 .5em;color:var(--ed-rule)}
/* CTA は本文の一部としての文字リンク。ボタンにしない */
.ed-more{
  display:inline-block;
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--ed-ink);
  text-decoration:none;
  border-bottom:2px solid var(--ed-accent);
  padding-bottom:2px;
}
.ed-more:hover{color:var(--ed-accent)}
.ed-more::after{content:" →"}

/* リード記事にアイキャッチがあるときだけ 3:2 で入る（無くても崩れない） */
.ed-lead-figure{margin:0 0 22px}
.ed-lead-figure img{
  display:block;width:100%;height:auto;
  aspect-ratio:3/2;object-fit:cover;
}

/* 右側：番号つきの一覧。カードではない */
.ed-list{list-style:none;margin:0;padding:0;counter-reset:edn}
.ed-list li{
  counter-increment:edn;
  border-top:1px solid var(--ed-rule);
  padding:15px 0;
}
.ed-list li:first-child{border-top:0;padding-top:0}
.ed-list-num{
  display:block;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.12em;
  color:var(--ed-accent);
  margin-bottom:5px;
}
.ed-list-num::before{content:counter(edn,decimal-leading-zero)}
.ed-list a{
  display:block;
  font-family:"Noto Serif JP",'Hiragino Mincho ProN',serif;
  font-size:1rem;
  font-weight:600;
  line-height:1.6;
  color:var(--ed-ink);
  text-decoration:none;
}
.ed-list a:hover{color:var(--ed-accent)}
.ed-list-meta{
  display:block;
  margin-top:6px;
  font-size:.7rem;
  letter-spacing:.07em;
  color:var(--ed-muted);
}

/* --------------------------------------------------------------------------
   トップ下段：2段組の記事段（縦罫で仕切る）
   -------------------------------------------------------------------------- */
.ed-section{margin-top:84px}
.ed-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:56px;
  row-gap:34px;
}
.ed-col-item{
  border-top:1px solid var(--ed-rule);
  padding-top:20px;
}
.ed-col-item h3{
  margin:8px 0 10px;
  font-size:1.24rem;
  line-height:1.5;
}
.ed-col-item h3 a{color:var(--ed-ink);text-decoration:none}
.ed-col-item h3 a:hover{color:var(--ed-accent)}
.ed-col-item p{
  margin:0;
  font-size:.92rem;
  line-height:1.85;
  color:#44403C;
}
.ed-col-cat{
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--ed-accent);
}

/* テーマ索引：見出し行の羅列。バッジやチップは使わない */
.ed-index{list-style:none;margin:0;padding:0;border-top:1px solid var(--ed-rule)}
.ed-index li{border-bottom:1px solid var(--ed-rule)}
.ed-index a,
.ed-index .ed-index-off{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  padding:16px 2px;
  min-height:44px;
  text-decoration:none;
  color:var(--ed-ink);
}
.ed-index a:hover{color:var(--ed-accent);background:var(--ed-accent-soft)}
.ed-index-name{
  font-family:"Noto Serif JP",'Hiragino Mincho ProN',serif;
  font-size:1.04rem;
  font-weight:600;
}
.ed-index-desc{
  flex:1 1 auto;
  font-size:.8rem;
  color:var(--ed-muted);
  border-bottom:1px dotted var(--ed-rule);
  transform:translateY(-3px);
}
.ed-index-count{
  font-size:.72rem;
  letter-spacing:.1em;
  color:var(--ed-muted);
  white-space:nowrap;
}
.ed-index-off{color:var(--ed-muted);cursor:default}

/* --------------------------------------------------------------------------
   アーカイブ：ぶら下げ（左に日付とカテゴリ、右に本文）
   -------------------------------------------------------------------------- */
.ed-arch-head{
  border-top:3px solid var(--ed-ink);
  padding-top:20px;
  margin:30px 0 46px;
}
.ed-arch-kind{
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ed-accent);
}
.ed-arch-title{
  margin:8px 0 10px;
  font-size:clamp(1.7rem,3.2vw,2.4rem);
  line-height:1.35;
}
.ed-arch-desc{
  margin:0;
  max-width:52em;
  font-size:.95rem;
  color:var(--ed-muted);
}

.ed-rows{margin:0;padding:0;list-style:none}
.ed-row{
  display:grid;
  grid-template-columns:186px minmax(0,1fr);
  gap:32px;
  border-top:1px solid var(--ed-rule);
  padding:30px 0;
}
.ed-row:last-child{border-bottom:1px solid var(--ed-rule)}
.ed-row-side{padding-top:4px}
.ed-row-date{
  display:block;
  font-size:.74rem;
  letter-spacing:.1em;
  color:var(--ed-muted);
  margin-bottom:7px;
}
.ed-row-cat{
  display:block;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.13em;
  color:var(--ed-accent);
  text-decoration:none;
}
.ed-row-cat:hover{text-decoration:underline}
.ed-row-title{
  margin:0 0 10px;
  font-size:1.38rem;
  line-height:1.5;
}
.ed-row-title a{color:var(--ed-ink);text-decoration:none}
.ed-row-title a:hover{color:var(--ed-accent)}
.ed-row-ex{
  margin:0;
  font-size:.94rem;
  line-height:1.9;
  color:#44403C;
  max-width:46em;
}

.ed-empty{
  border-top:1px solid var(--ed-rule);
  border-bottom:1px solid var(--ed-rule);
  padding:56px 0;
  text-align:center;
  color:var(--ed-muted);
}

/* 検索フォーム（アーカイブ最下部）— 飾らない */
.ed-search{margin-top:56px;border-top:1px solid var(--ed-rule);padding-top:22px}
.ed-search form{display:flex;gap:0;max-width:460px}
.ed-search input[type=search]{
  flex:1 1 auto;
  border:1px solid var(--ed-rule);
  border-right:0;
  background:#fff;
  padding:11px 14px;
  font-size:.9rem;
  border-radius:0;
  min-height:44px;
}
.ed-search button{
  border:1px solid var(--ed-ink);
  background:var(--ed-ink);
  color:#fff;
  font-size:.8rem;
  letter-spacing:.1em;
  padding:0 20px;
  min-height:44px;
  border-radius:0;
  cursor:pointer;
}
.ed-search button:hover{background:var(--ed-accent);border-color:var(--ed-accent)}

/* ページ送り */
.ed-pag{margin-top:60px;border-top:2px solid var(--ed-ink);padding-top:18px}
.ed-pag .nav-links{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ed-pag .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;min-height:44px;padding:0 12px;
  font-size:.85rem;letter-spacing:.06em;
  color:var(--ed-ink);text-decoration:none;
  border:1px solid transparent;
}
.ed-pag .page-numbers:hover{border-color:var(--ed-rule);color:var(--ed-accent)}
.ed-pag .page-numbers.current{border-color:var(--ed-ink);font-weight:700}
.ed-pag .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* --------------------------------------------------------------------------
   本文（single / page）— 明朝見出し・色の面は使わない
   -------------------------------------------------------------------------- */
body.d01-editorial.single .entry-title,
body.d01-editorial.page .entry-title{
  font-size:clamp(1.7rem,3.3vw,2.45rem);
  line-height:1.4;
}
body.d01-editorial .entry-content{font-size:1rem;line-height:1.95}
body.d01-editorial .entry-content p{margin:0 0 1.6em}
body.d01-editorial .entry-content h2{
  border-top:2px solid var(--ed-ink);
  padding:.7em 0 .1em;
  margin:2.6em 0 1em;
  font-size:1.42em;
  line-height:1.5;
  background:none;
  border-left:0;
  border-radius:0;
}
body.d01-editorial .entry-content h3{
  border-left:3px solid var(--ed-accent);
  border-bottom:0;
  padding:.05em 0 .05em .7em;
  margin:2.1em 0 .8em;
  font-size:1.16em;
}
body.d01-editorial .entry-content h3::after{content:none}
body.d01-editorial .entry-content blockquote{
  border-left:0;
  border-top:1px solid var(--ed-rule);
  border-bottom:1px solid var(--ed-rule);
  background:none;
  padding:1.2em 0;
  margin:2em 0;
  font-family:"Noto Serif JP",serif;
  color:#332F2B;
}
body.d01-editorial .entry-content table{border-collapse:collapse;width:100%;font-size:.93em}
body.d01-editorial .entry-content th{
  background:none;
  border-bottom:2px solid var(--ed-ink);
  border-top:0;border-left:0;border-right:0;
  font-weight:700;
  text-align:left;
  padding:.6em .4em;
}
body.d01-editorial .entry-content td{
  border:0;
  border-bottom:1px solid var(--ed-rule);
  padding:.6em .4em;
}
body.d01-editorial .entry-content a{color:var(--ed-accent);text-underline-offset:.2em}
body.d01-editorial .entry-content ul li::marker{color:var(--ed-accent)}
body.d01-editorial .entry-content img{max-width:100%;height:auto}

/* 記事内の補足ブロック（丸みと影は使わない） */
body.d01-editorial .nb-point,
body.d01-editorial .nb-caution{
  border:0;
  border-left:3px solid var(--ed-accent);
  background:var(--ed-accent-soft);
  border-radius:0;
  padding:1.1em 1.3em;
  margin:2em 0;
  font-size:.96em;
}
body.d01-editorial .nb-caution{
  border-left-color:#9A3412;
  background:#FFF6F0;
}
body.d01-editorial .nb-point::before,
body.d01-editorial .nb-caution::before{
  position:static;
  display:block;
  color:var(--ed-accent);
  background:none;
  font-size:.7em;
  font-weight:700;
  letter-spacing:.18em;
  margin-bottom:.5em;
  padding:0;
}
body.d01-editorial .nb-caution::before{color:#9A3412}

/* 記事末：関連記事（番号つきの索引。囲み枠にしない） */
.ed-related{margin:3.4em 0 1.6em}
.ed-related-head{
  border-top:2px solid var(--ed-ink);
  padding-top:11px;
  margin:0 0 4px !important;
  font-family:"Noto Sans JP",sans-serif !important;
  font-size:.72rem !important;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ed-ink);
  background:none !important;
  border-left:0 !important;
  border-radius:0 !important;
}
.ed-related ol{list-style:none;margin:0;padding:0;counter-reset:edr}
.ed-related li{counter-increment:edr;border-bottom:1px solid var(--ed-rule)}
.ed-related a{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  align-items:baseline;
  gap:8px;
  padding:14px 2px;
  min-height:44px;
  color:var(--ed-ink);
  text-decoration:none;
  font-family:"Noto Serif JP",'Hiragino Mincho ProN',serif;
  font-size:1rem;
  line-height:1.6;
}
.ed-related a::before{
  content:counter(edr,decimal-leading-zero);
  font-family:"Noto Sans JP",sans-serif;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--ed-accent);
}
.ed-related a:hover{color:var(--ed-accent)}

.ed-disclaimer{
  margin:2.2em 0 0;
  padding:1.1em 0 0;
  border-top:1px solid var(--ed-rule);
  font-size:.78rem;
  line-height:1.85;
  color:var(--ed-muted);
}

/* 長い日本語見出しの折り返し（PC・タブレットでも効かせる） */
.ed-lead-title,
.ed-row-title,
.ed-col-item h3,
.ed-list a,
.ed-arch-title,
.ed-related a{
  word-break:auto-phrase;
  overflow-wrap:anywhere;
}

/* --------------------------------------------------------------------------
   フォーカス可視化
   -------------------------------------------------------------------------- */
body.d01-editorial a:focus-visible,
body.d01-editorial button:focus-visible,
body.d01-editorial input:focus-visible{
  outline:2px solid var(--ed-accent);
  outline-offset:2px;
}

/* --------------------------------------------------------------------------
   タブレット
   -------------------------------------------------------------------------- */
@media (max-width:1080px){
  .ed-wrap{padding:0 22px 76px}
  .ed-lead{grid-template-columns:minmax(0,1fr) 288px}
  .ed-lead-side{margin-left:30px;padding-left:26px}
  .ed-columns{column-gap:40px}
  .ed-row{grid-template-columns:148px minmax(0,1fr);gap:24px}
}

@media (max-width:860px){
  /* リード面は縦積みにするが、右一覧は「見出し付きの別ブロック」に組み替える */
  .ed-lead{grid-template-columns:minmax(0,1fr)}
  .ed-lead-side{
    border-left:0;
    border-top:2px solid var(--ed-ink);
    margin:44px 0 0;
    padding:16px 0 0;
  }
  .ed-lead-side .ed-rule-label{border-top:0;padding-top:0}
  .ed-columns{grid-template-columns:minmax(0,1fr);row-gap:0}
  .ed-col-item{padding:20px 0}
  .ed-section{margin-top:64px}
}

/* --------------------------------------------------------------------------
   モバイル（縦積みで終わりにせず、行の組み方自体を変える）
   -------------------------------------------------------------------------- */
@media (max-width:600px){
  body.d01-editorial{font-size:15.5px;line-height:1.78}
  .ed-wrap{padding:0 18px 60px}

  .ed-masthead{
    flex-wrap:wrap;
    gap:4px 14px;
    padding:18px 0 10px;
    margin-bottom:26px;
  }
  .ed-mast-lead{display:none}          /* 長文タグラインはヘッダーと重複するため落とす */
  .ed-mast-label{font-size:.66rem;letter-spacing:.2em}
  .ed-mast-date{font-size:.66rem}

  .ed-lead-title{font-size:1.62rem;line-height:1.42}
  .ed-lead-excerpt{font-size:.95rem;line-height:1.85}
  .ed-lead-figure img{aspect-ratio:4/3}   /* 縦幅を稼いで小画面で存在感を保つ */

  /* 一覧は番号を左に回して1行あたりの高さを詰める */
  .ed-list li{
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    gap:10px;
    padding:13px 0;
  }
  .ed-list-num{margin:0;padding-top:3px}
  .ed-list a{font-size:.98rem;word-break:auto-phrase;overflow-wrap:anywhere}

  /* アーカイブ行：日付・カテゴリを見出しの上に一列で置く */
  .ed-row{
    grid-template-columns:minmax(0,1fr);
    gap:0;
    padding:22px 0;
  }
  .ed-row-side{
    display:flex;
    align-items:baseline;
    gap:12px;
    margin-bottom:9px;
    padding-top:0;
  }
  .ed-row-date{margin:0}
  .ed-row-title{font-size:1.16rem;line-height:1.55;word-break:auto-phrase;overflow-wrap:anywhere}
  .ed-row-ex{font-size:.89rem}

  .ed-arch-title{font-size:1.5rem}
  .ed-index a{padding:14px 2px}
  .ed-index-desc{display:none}
  .ed-related a{grid-template-columns:34px minmax(0,1fr);font-size:.97rem}
  .ed-search form{max-width:none}
  /* iOS が入力欄で自動ズームしないよう 16px 以上にする */
  .ed-search input[type=search]{font-size:16px;min-height:46px}
  .ed-search button{min-height:46px}
}

.ed-wrap .screen-reader-text{
  position:absolute !important;
  width:1px;height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}

/* 横スクロール防止 */
body.d01-editorial{overflow-x:hidden}
body.d01-editorial img,
body.d01-editorial table{max-width:100%}
body.d01-editorial .entry-content table{display:block;overflow-x:auto}
@media (min-width:601px){
  body.d01-editorial .entry-content table{display:table}
}
