/* =====================================================================
   TAX CONNECTION — 記事スタイル上書き（テーマ vs_newspicks / クラシック）
   article.css  ＝ 既存テーマのクラスにそのまま当てる “上書きCSS”（!important 強制版）
   ---------------------------------------------------------------------
   ※ autoptimize がテーマCSSを後から読み込むため、確実に上書きできるよう
     主要プロパティに !important を付与しています。
   ※ スコープは記事本文（.vsnpick-article / .post-content）のみ。
     2カラム・ヘッダー・ナビ・サイドバー・フッターは対象外。
   ===================================================================== */

@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=Zen+Kaku+Gothic+Antique:wght@500;700&display=swap");

:root{
  --tc-paper:#ffffff;
  --tc-paper-2:oklch(0.975 0.002 250);
  --tc-ink:oklch(0.24 0.010 250);
  --tc-ink-soft:oklch(0.40 0.008 250);
  --tc-muted:oklch(0.56 0.006 250);
  --tc-line:oklch(0.89 0.004 250);
  --tc-line-2:oklch(0.94 0.003 250);
  --tc-accent:oklch(0.42 0.085 250);
  --tc-accent-deep:oklch(0.34 0.085 252);
  --tc-serif:"Zen Kaku Gothic Antique","Noto Sans JP",sans-serif;
  --tc-sans:"Noto Sans JP",sans-serif;
  --tc-display:"Zen Kaku Gothic Antique",sans-serif;
}

/* ============ 記事全体 ============ */
.vsnpick-article{ font-family:var(--tc-sans) !important; color:var(--tc-ink) !important; }

/* タイトル */
.vsnpick-article .post-title-h1{
  font-family:var(--tc-serif) !important; font-weight:700 !important; color:var(--tc-ink) !important;
  font-size:clamp(28px,4.6vw,46px) !important; line-height:1.42 !important; letter-spacing:.01em !important; margin:0 0 16px !important;
}

/* 日付 */
.vsnpick-article .post-dateinfo{ font-size:14px !important; color:var(--tc-muted) !important; letter-spacing:.04em !important; margin:0 0 10px !important; }

/* カテゴリ */
.vsnpick-article .post-metadata{ display:flex !important; flex-wrap:wrap !important; gap:8px !important; margin:0 0 26px !important; padding:0 0 22px !important; border-bottom:1px solid var(--tc-line) !important; }
.vsnpick-article .post-metadata a{
  font-family:var(--tc-display) !important; font-weight:700 !important; font-size:12.5px !important; letter-spacing:.1em !important;
  color:var(--tc-accent) !important; text-decoration:none !important; border:1px solid var(--tc-line) !important; padding:5px 13px !important; border-radius:999px !important; line-height:1.6 !important; background:none !important;
}
.vsnpick-article .post-metadata a:hover{ background:var(--tc-paper-2) !important; border-color:var(--tc-accent) !important; }

/* ============ 本文 ============ */
.vsnpick-article .post-content{ font-family:var(--tc-sans) !important; font-size:19px !important; line-height:2.05 !important; color:var(--tc-ink) !important; font-feature-settings:"palt" 1; }
.vsnpick-article .post-content p{ margin:0 0 1.7em !important; font-size:19px !important; line-height:2.05 !important; }

/* 導入リード（.readTxt） */
.vsnpick-article .post-content .readTxt{
  font-family:var(--tc-serif) !important; font-weight:500 !important; font-size:clamp(16px,1.6vw,18px) !important; line-height:2.0 !important; color:var(--tc-ink-soft) !important;
  background:var(--tc-paper-2) !important; border-left:3px solid var(--tc-accent) !important; padding:20px 24px !important; border-radius:0 4px 4px 0 !important; margin:0 0 2.2em !important;
}

/* セクション見出し（h2）— 上に短い藍のアクセント罫 */
.vsnpick-article .post-content h2,
.vsnpick-article .post-content .taidanBox > h2{
  display:block !important; position:relative !important;
  font-family:var(--tc-serif) !important; font-weight:700 !important; color:var(--tc-ink) !important;
  font-size:clamp(21px,2.8vw,28px) !important; line-height:1.5 !important; margin:2.7em 0 1.05em !important; padding:0 !important; border:0 !important; background:none !important;
}
/* バーは通常フローのブロックで上に積む（position:static でテーマの絶対配置を無効化） */
.vsnpick-article .post-content h2::before,
.vsnpick-article .post-content .taidanBox > h2::before{ content:"" !important; position:static !important; display:block !important; float:none !important; clear:both !important; width:40px !important; height:3px !important; min-width:0 !important; min-height:0 !important; max-width:40px !important; max-height:3px !important; background:var(--tc-accent) !important; background-color:var(--tc-accent) !important; border-radius:2px !important; margin:0 0 16px 0 !important; padding:0 !important; }
.vsnpick-article .post-content h2 .ez-toc-section,
.vsnpick-article .post-content h2 .ez-toc-section-end{ background:none !important; padding:0 !important; margin:0 !important; }
/* テーマが付ける水色の下線（h2::after）を打ち消す */
.vsnpick-article .post-content h2::after,
.vsnpick-article .post-content .taidanBox > h2::after{ content:none !important; display:none !important; }

/* 中見出し（h3） */
.vsnpick-article .post-content h3{ font-family:var(--tc-sans) !important; font-weight:700 !important; font-size:17.5px !important; line-height:1.7 !important; margin:2em 0 .8em !important; color:var(--tc-ink) !important; }

/* リスト */
.vsnpick-article .post-content ul:not(.prof), .vsnpick-article .post-content ol{ margin:0 0 1.7em !important; padding-left:1.4em !important; }
.vsnpick-article .post-content li{ margin:.4em 0 !important; }

/* ============ インタビューQ&A ============ */
.vsnpick-article .post-content .per01{
  display:block !important; position:relative !important; padding-left:36px !important; margin-top:.3em !important;
  font-family:var(--tc-sans) !important; font-weight:700 !important; font-size:17.5px !important; line-height:1.85 !important; color:var(--tc-accent-deep) !important;
}
.vsnpick-article .post-content .per01::before{
  content:"Q" !important; position:absolute !important; left:0 !important; top:.15em !important; width:25px !important; height:25px !important; border-radius:50% !important;
  background:var(--tc-accent) !important; color:#fff !important; font-family:var(--tc-display) !important; font-weight:700 !important; font-size:13px !important;
  display:grid !important; place-items:center !important; line-height:1 !important;
}
.vsnpick-article .post-content p:has(.per01){ margin-top:2.2em !important; }
.vsnpick-article .post-content p:has(.per02),
.vsnpick-article .post-content p:has(.per03),
.vsnpick-article .post-content p:has(.per04),
.vsnpick-article .post-content p:has(.per05),
.vsnpick-article .post-content p:has(.per06),
.vsnpick-article .post-content p:has(.per07),
.vsnpick-article .post-content p:has(.per08),
.vsnpick-article .post-content p:has(.per09){ padding-left:36px !important; }
/* 話者段落に続く継続段落（per系spanを持たない p）にも同じインデントを付与 */
.vsnpick-article .post-content p:is(:has(.per02),:has(.per03),:has(.per04),:has(.per05),:has(.per06),:has(.per07),:has(.per08),:has(.per09)) ~ p:not(:has(.per01),:has(.per02),:has(.per03),:has(.per04),:has(.per05),:has(.per06),:has(.per07),:has(.per08),:has(.per09)){ padding-left:36px !important; }
/* 話者名ラベル（per02〜per09）を色分け。明度・彩度は揃え色相のみ変える */
.vsnpick-article .post-content .per02,
.vsnpick-article .post-content .per03,
.vsnpick-article .post-content .per04,
.vsnpick-article .post-content .per05,
.vsnpick-article .post-content .per06,
.vsnpick-article .post-content .per07,
.vsnpick-article .post-content .per08,
.vsnpick-article .post-content .per09{ font-weight:700 !important; }
.vsnpick-article .post-content .per02{ color:oklch(0.46 0.09 165) !important; }  /* 緑 */
.vsnpick-article .post-content .per03{ color:oklch(0.42 0.085 250) !important; } /* 藍（メイン話者） */
.vsnpick-article .post-content .per04{ color:oklch(0.50 0.11 45) !important; }   /* 橙 */
.vsnpick-article .post-content .per05{ color:oklch(0.46 0.11 305) !important; }  /* 紫 */
.vsnpick-article .post-content .per06{ color:oklch(0.48 0.10 20) !important; }   /* 赤 */
.vsnpick-article .post-content .per07{ color:oklch(0.48 0.09 200) !important; }  /* 青緑 */
.vsnpick-article .post-content .per08{ color:oklch(0.46 0.10 120) !important; }  /* 黄緑 */
.vsnpick-article .post-content .per09{ color:oklch(0.48 0.09 80) !important; }   /* 黄 */

/* 用語解説ボックス（.yougoCap） */
.vsnpick-article .post-content .yougoCap{
  background:var(--tc-paper-2) !important; border:1px solid var(--tc-line) !important; border-radius:4px !important;
  padding:18px 20px !important; font-size:14.5px !important; line-height:1.95 !important; color:var(--tc-ink-soft) !important; margin:2.2em 0 !important;
}

/* ============ 実例ボックス（.Box01） ============ */
.vsnpick-article .post-content .Box01{
  background:var(--tc-paper-2) !important; border:1px solid var(--tc-line) !important; border-left:3px solid var(--tc-accent) !important;
  border-radius:0 6px 6px 0 !important; padding:22px 26px !important; margin:2.4em 0 !important;
}
.vsnpick-article .post-content .Box01 > p{ font-size:90% !important; line-height:1.95 !important; color:var(--tc-ink-soft) !important; margin:0 0 .9em !important; }
.vsnpick-article .post-content .Box01 > p:last-child{ margin-bottom:0 !important; }
/* 先頭の見出し（<strong>）をラベル調に */
.vsnpick-article .post-content .Box01 > p:first-child{ margin-bottom:.7em !important; padding-bottom:.7em !important; border-bottom:1px solid var(--tc-line) !important; }
.vsnpick-article .post-content .Box01 > p:first-child strong{
  font-family:var(--tc-serif) !important; font-weight:700 !important; font-size:16px !important; color:var(--tc-accent-deep) !important; letter-spacing:.02em !important;
}

/* ============ 写真・キャプション ============ */
.vsnpick-article .post-content .photo{ margin:2.2em 0 !important; text-align:center !important; }
.vsnpick-article .post-content .photo img{ border-radius:6px !important; height:auto !important; display:inline-block !important; }
.vsnpick-article .post-content .photoBox{ margin:2.2em 0 !important; }
.vsnpick-article .post-content .photoBox > p.photo{ margin-bottom:0 !important; }
.vsnpick-article .post-content .prof{ list-style:none !important; margin:9px 0 0 !important; padding:0 !important; font-size:13px !important; color:var(--tc-muted) !important; text-align:center !important; }
.vsnpick-article .post-content .prof li{ margin:0 !important; font-size:100% !important; }

/* ============ 目次（Easy TOC） ============ */
.vsnpick-article #ez-toc-container{
  background:var(--tc-paper-2) !important; border:1px solid var(--tc-line) !important; border-radius:4px !important;
  padding:18px 22px !important; margin:2em auto !important; width:auto !important; max-width:560px !important; font-size:15px !important;
}
.vsnpick-article #ez-toc-container .ez-toc-title{ font-family:var(--tc-serif) !important; font-weight:700 !important; color:var(--tc-ink) !important; }
.vsnpick-article #ez-toc-container ul ul{ margin:0 !important; padding:0 !important; }
.vsnpick-article #ez-toc-container a{ color:var(--tc-ink-soft) !important; }
.vsnpick-article #ez-toc-container a:hover{ color:var(--tc-accent) !important; }

/* ============ 参加者プロフィール（.profTxtBox）= カード型 ============ */
.vsnpick-article .post-content .profTxtBox{ background:none !important; border:0 !important; padding:0 !important; margin:2.4em 0 !important; }
.vsnpick-article .post-content .profTxtBox dl{ margin:0 !important; display:flex !important; flex-direction:column !important; gap:16px !important; }
.vsnpick-article .post-content .profTxtBox dl > div{
  position:relative !important; background:var(--tc-paper-2) !important;
  border:1px solid var(--tc-line) !important; border-left:3px solid var(--tc-accent) !important;
  border-radius:6px !important; padding:22px 26px !important;
}
.vsnpick-article .post-content .profTxtBox dt{
  font-family:var(--tc-serif) !important; font-weight:700 !important; font-size:19px !important; color:var(--tc-ink) !important;
  margin:0 0 12px !important; padding-bottom:10px !important; border-bottom:1px solid var(--tc-line) !important;
}
.vsnpick-article .post-content .profTxtBox dt::before{
  content:"PROFILE" !important; display:block !important; font-family:var(--tc-display) !important; font-weight:700 !important;
  font-size:11px !important; letter-spacing:.16em !important; color:var(--tc-accent) !important; margin-bottom:7px !important;
}
.vsnpick-article .post-content .profTxtBox dd{ margin:0 !important; font-size:14.5px !important; line-height:1.95 !important; color:var(--tc-ink-soft) !important; }

/* ============ 企業情報（dl.companyInfo）= 仕様表（項目/詳細の見出し行は非表示） ============ */
.vsnpick-article .post-content .companyInfo{
  display:grid !important; grid-template-columns:10em 1fr !important; margin:2.4em 0 !important;
  border:1px solid var(--tc-line) !important; border-top:3px solid var(--tc-accent) !important; border-radius:6px !important; overflow:hidden !important;
}
/* 先頭の「項目 / 詳細」行は隠す */
.vsnpick-article .post-content .companyInfo dt:first-of-type,
.vsnpick-article .post-content .companyInfo dd:nth-of-type(1){ display:none !important; }
.vsnpick-article .post-content .companyInfo dt{
  background:var(--tc-paper-2) !important; color:var(--tc-ink) !important; font-weight:700 !important; font-size:14px !important;
  padding:14px 18px !important; border-bottom:1px solid var(--tc-line-2) !important; margin:0 !important;
}
.vsnpick-article .post-content .companyInfo dd{
  background:#fff !important; color:var(--tc-ink-soft) !important; font-size:15px !important; line-height:1.8 !important;
  padding:14px 20px !important; border-bottom:1px solid var(--tc-line-2) !important; margin:0 !important;
}
.vsnpick-article .post-content .companyInfo dt:last-of-type,
.vsnpick-article .post-content .companyInfo dd:last-of-type{ border-bottom:none !important; }
