/* =========================================================
   NISSIN NEWS ENTRY (demo.a-blogcms.jp 風の読みやすさ寄せ)
   Scope: .nissin-news-entry の中だけ
   ========================================================= */

.nissin-news-entry{
  /* 既存テーマの変数があればそれを優先しつつフォールバック */
  --nn-max: 860px;
  --nn-text: var(--color-text, #111827);
  --nn-muted: var(--color-muted, #6b7280);
  --nn-border: var(--color-border, #e5e7eb);
  --nn-link: var(--color-link, #0b57d0);
  --nn-bg-soft: var(--color-bg-soft, #f8fafc);
  --nn-radius: 12px;
  --nn-leading: 1.9;

  color: var(--nn-text);

  /* ここで記事幅を整える（既に親が制限してても崩れません） */
  max-width: var(--nn-max);
  margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 24px);

  font-size: 16px;
  line-height: var(--nn-leading);
  word-break: break-word;
}

/* タイトル・メタ：既存HTMLに合わせて“どれか”に当たればOK */
.nissin-news-entry :where(h1, .entry-title, .acms-entry-title){
  font-size: clamp(1.6rem, 1.15rem + 1.2vw, 2.2rem);
  line-height: 1.25;
  letter-spacing: .02em;
  margin: 0 0 .6em;
}

.nissin-news-entry :where(time, .entry-date, .date, .acms-entry-date){
  color: var(--nn-muted);
  font-size: .92rem;
}

/* 本文の基本マージン */
.nissin-news-entry > *:first-child{ margin-top: 0; }
.nissin-news-entry > *{ margin-top: 1.15em; }

.nissin-news-entry :where(p){
  margin: 1.15em 0;
}

/* リンク */
.nissin-news-entry :where(a){
  color: var(--nn-link);
  text-decoration: underline;
  text-underline-offset: .18em;
}
.nissin-news-entry :where(a:hover){
  text-decoration-thickness: 2px;
}

/* 見出し */
.nissin-news-entry :where(h2){
  font-size: 2rem;
  line-height: 1.5;
  margin: 2.2em 0 .9em;
}

.nissin-news-entry .entry-style h2 {
    margin: 0 10px 25px 10px;
    padding: 5px 10px;
    font-size: 20px;
    color: #000;
    border-left: 4px solid #C92D2D;
}

.nissin-news-entry :where(h3){
  font-size: 1.5rem;
color: #000000;
font-weight: bold;
  line-height: 1.4;
  margin: 1.9em 0 .8em;
  padding-left: .75em;
  border-left: 4px solid var(--color-secondary, #C92D2D);
}

.nissin-news-entry :where(h4){
  font-size: 1.05rem;
  margin: 1.6em 0 .7em;
}

.entry-style p {
    margin-top: 0;
    margin-bottom: 16px;
    font-size: 16px;
    line-height: 1.7;
}

/* リスト */
.nissin-news-entry :where(ul, ol){
  padding-left: 1.4em;
  margin: 1.1em 0;
}
.nissin-news-entry :where(li){
  margin: .35em 0;
}

/* 画像・図 */
.nissin-news-entry :where(img){
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: var(--nn-radius);
}
.nissin-news-entry :where(figure){
  margin: 1.4em 0;
}
.nissin-news-entry :where(figcaption){
  margin-top: .6em;
  color: var(--nn-muted);
  font-size: .9rem;
}

/* 引用 */
.nissin-news-entry :where(blockquote){
  margin: 1.4em 0;
  padding: 1em 1.1em;
  border-left: 4px solid var(--nn-border);
  background: var(--nn-bg-soft);
  border-radius: var(--nn-radius);
}
.nissin-news-entry blockquote > *:first-child{ margin-top: 0; }
.nissin-news-entry blockquote > *:last-child{ margin-bottom: 0; }

/* 区切り線 */
.nissin-news-entry :where(hr){
  border: 0;
  border-top: 1px solid var(--nn-border);
  margin: 2em 0;
}

/* 表（横スクロール対応） */
.nissin-news-entry :where(table){
  width: 100%;
  border-collapse: collapse;
  margin: 1.4em 0;
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.nissin-news-entry :where(th, td){
  border: 1px solid var(--nn-border);
  padding: .7em .85em;
  vertical-align: top;
  white-space: nowrap;
}
.nissin-news-entry :where(th){
  background: var(--nn-bg-soft);
  font-weight: 600;
}

/* コード */
.nissin-news-entry :where(pre){
  background: #0b1020;
  color: #e5e7eb;
  padding: 1em 1.1em;
  border-radius: var(--nn-radius);
  overflow-x: auto;
  margin: 1.4em 0;
}
.nissin-news-entry :where(code){
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: .95em;
}
.nissin-news-entry :where(:not(pre) > code){
  background: #f1f5f9;
  color: #0f172a;
  padding: .15em .35em;
  border-radius: 6px;
}

/* iframe 等（埋め込みがあれば） */
.nissin-news-entry :where(iframe, video){
  max-width: 100%;
}

/* スマホ微調整 */
@media (max-width: 640px){
  .nissin-news-entry{
    font-size: 15px;
    line-height: 1.85;
  }
  .nissin-news-entry :where(h2){
    font-size: 1.25rem;
  }
}
