/*
Theme Name: NPQ News
Theme URI: https://npq-news.jp/
Author: No Plan Qyushu
Description: 九州発・地域ニュースメディア「npqnews」用WordPressテーマ。事件・事故・火災・犯罪・自然災害・その他の6カテゴリ、九州7県＋沖縄の地域別ニュースを表示する新聞型レイアウト。
Version: 1.8.3
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: npq-news
*/

/* =========================================================
   変更履歴 (Changelog)
   ---------------------------------------------------------
   1.8.3  トップページの日時表示を「n月j日 H:i」形式に統一（サブリード・
          最新ニュース・カテゴリカード・地域カード）。
   1.8.2  1.8.1（アイコン・ロゴSVG）＋ GA4（G-VQ8WQQGJND）＋
          RankMath register_meta をマージした統合版。
   1.8.1  ロゴSVGアイコン追加・favicon.svg追加・npq-news-icon.png追加。
   1.7.0  固定ページ用テンプレート page.php を追加。
          （プライバシーポリシー等が記事一覧扱いで表示される不具合を修正）
   1.6.2  コメント機能を全面的に無効化（テーマ・テンプレート両方で
          停止）。
   1.6.1  リードの「今日」区分を 8:00起点（当日8:00〜翌7:59）に変更。
          境界時刻は定数 NPQ_DAY_START_HOUR で調整可。
   1.6.0  リード記事を「今日投稿の人気順5件」に変更（不足時は今日の新着で
          穴埋め・今日の記事が無ければ新着で代替）。最新ニュースはリードの
          5件を除外し重複を解消。閲覧数カウンタ追加（WPP併用可）。
   1.5.0  フッターにサイト情報リンク（編集方針/プライバシーポリシー/
          お問い合わせ/運営者情報）を追加。フッターメニュー対応。
   1.4.1  本文「続きを読む」の折りたたみ高さを 320px→150px に変更
   1.4.0  検索窓化（会員登録/ログイン廃止）／リンク入れ子バグ修正
          （トップの記事タイトルが詳細に飛ばない不具合を解消）
   1.3.0  サイト名変更（npqnews / npqnewsnetwork）・ロゴ左寄せ・
          マストヘッドの説明文削除
   1.2.0  タグ表示追加（記事下タグ＋サイドバー「よく使われているタグ」）
   1.1.0  AI要約ブロック追加・本文「続きを読む」折りたたみ
   1.0.0  初版
   ========================================================= */


/* =========================================================
   Design Tokens
   ========================================================= */
:root{
  --color-storm:      #354a5e;
  --color-storm-dark: #2a3b4c;
  --color-storm-deep: #1f2c39;
  --color-storm-ink:  #16212c;
  --color-gold:       #c8a45c;
  --color-gold-deep:  #a9863f;
  --color-gold-soft:  #e7d3a6;
  --color-paper:      #f7f5ef;
  --color-paper-warm: #efece3;
  --color-ink:        #19222c;
  --color-ink-soft:   #3d4651;
  --color-gray:       #5d6772;
  --color-gray-lt:    #8a939d;
  --color-rule:       #ddd7c9;
  --color-rule-dk:    rgba(255,255,255,0.15);

  --font-mincho: "Shippori Mincho","Hiragino Mincho ProN",serif;
  --font-gothic: "Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;

  --pad-x: 44px;
  --gap-card: 18px;
  --gap-main: 28px;
}

/* =========================================================
   Reset / Base
   ========================================================= */
*{box-sizing:border-box;}
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--color-paper);
  color:var(--color-ink);
  font-family:var(--font-gothic);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; height:auto; }
h1,h2,h3,h4,p,figure,blockquote{ margin:0; }

.npq-container{ max-width:1180px; margin:0 auto; }

/* hover states */
.npq-hl{ transition:color .15s; }
.npq-hl:hover{ color:var(--color-gold-deep); }
.npq-row{ transition:background .15s; }
.npq-row:hover{ background:rgba(53,74,94,0.05); border-radius:2px; }
.npq-card-h{ transition:box-shadow .2s, transform .2s; }
.npq-card-h:hover{
  box-shadow:0 2px 6px rgba(25,34,44,0.1), 0 14px 36px rgba(25,34,44,0.12);
  transform:translateY(-2px);
}

/* =========================================================
   Utility bar
   ========================================================= */
.npq-utility{
  background:var(--color-storm-deep);
  color:#9fb0bf;
  font-size:11.5px;
  font-family:var(--font-gothic);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 var(--pad-x);height:34px;
}
.npq-utility-left{ display:flex;gap:18px; }
.npq-utility-left .weather{ color:var(--color-gold-soft); }
.npq-utility-right{ display:flex;gap:20px; }
.npq-utility-right a{ cursor:pointer;color:#9fb0bf; }

/* ユーティリティ検索（クリックで展開） */
.npq-search{ display:flex;align-items:center;justify-content:flex-end; }
.npq-search__input{
  width:0;opacity:0;padding:0;border:none;border-bottom:1px solid transparent;
  background:transparent;color:#e7eaee;font-family:var(--font-gothic);font-size:12px;
  height:22px;transition:width .25s ease,opacity .2s ease,border-color .2s ease,padding .25s ease;
  pointer-events:none;
}
.npq-search__input::placeholder{ color:#7d8a96; }
.npq-search.is-open .npq-search__input{
  width:180px;opacity:1;padding:0 8px;border-bottom-color:var(--color-gold-soft);
  pointer-events:auto;
}
.npq-search__toggle{
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:none;color:#9fb0bf;cursor:pointer;
  padding:4px;margin-left:4px;transition:color .15s;
}
.npq-search__toggle:hover{ color:var(--color-gold-soft); }
.npq-search.is-open .npq-search__toggle{ color:var(--color-gold-soft); }

/* =========================================================
   Masthead
   ========================================================= */
.npq-masthead{
  background:var(--color-paper);
  border-bottom:4px double var(--color-storm);
}
.npq-masthead-grid{
  display:flex;align-items:center;
  padding:20px var(--pad-x) 16px;
}
.npq-masthead-brand .npq-logo-link{ display:inline-flex;align-items:center;gap:12px;line-height:1; }
.npq-logo-mark{ flex:0 0 auto;display:block; }
.npq-npq{
  font-family:var(--font-mincho);font-size:30px;font-weight:800;
  letter-spacing:0.5px;color:var(--color-storm);line-height:1;
}
.npq-npq .p{ color:var(--color-gold-deep); }

/* =========================================================
   Category nav
   ========================================================= */
.npq-nav-wrap{ border-top:2px solid var(--color-storm);display:flex; }
.npq-nav{
  flex:1;text-align:center;font-family:var(--font-gothic);font-size:14px;
  font-weight:500;color:var(--color-ink-soft);padding:11px 8px;cursor:pointer;
  white-space:nowrap;border-left:1px solid var(--color-rule);
  border-bottom:3px solid transparent;transition:color .15s,border-color .15s;
}
.npq-nav:first-child{ border-left:none; }
.npq-nav:hover{ color:var(--cat-color,var(--color-storm)); }
.npq-nav.is-active{
  font-weight:800;color:var(--cat-color,var(--color-storm));
  border-bottom:3px solid var(--cat-color,var(--color-storm));
}

/* =========================================================
   Cards / shared
   ========================================================= */
.npq-wc{
  background:#fff;
  box-shadow:0 1px 2px rgba(25,34,44,0.06), 0 4px 14px rgba(25,34,44,0.05);
  border-radius:3px;
}

.cat-tag{
  display:inline-block;font-family:var(--font-gothic);font-size:11px;
  font-weight:700;letter-spacing:.8px;color:var(--cat-color,var(--color-storm));
  border:1px solid var(--cat-color,var(--color-storm));padding:2px 7px;
  line-height:1.4;white-space:nowrap;flex-shrink:0;
}
.cat-tag.sm{ font-size:10px;padding:1px 5px; }

.npq-dot{ display:inline-flex;align-items:center;gap:5px; }
.npq-dot .d{ width:7px;height:7px;border-radius:50%;background:var(--cat-color,var(--color-storm));flex-shrink:0; }
.npq-dot .l{ font-family:var(--font-gothic);font-size:10.5px;font-weight:700;color:var(--cat-color,var(--color-storm)); }

/* =========================================================
   Front page : 3-column grid
   ========================================================= */
.npq-main-grid{
  display:grid;grid-template-columns:1fr 300px 248px;
  padding:0 var(--pad-x);max-width:1180px;margin:0 auto;
}
.npq-col-border{ border-right:1px solid var(--color-rule); }

.col-a{ padding:24px 28px 24px 0; }
.col-b{ padding:24px; }
.col-c{ padding:24px 0 24px 22px; }

/* lead */
.npq-lead{ padding-bottom:20px;border-bottom:1px solid var(--color-rule);cursor:pointer; }
.npq-lead .meta{ display:flex;align-items:center;gap:10px;margin-bottom:8px; }
.npq-lead .meta span{ font-family:var(--font-gothic);font-size:11px;color:var(--color-gray); }
.npq-lead .kicker{ font-family:var(--font-gothic);font-size:11.5px;font-weight:700;color:var(--color-gold-deep);letter-spacing:1px;margin-bottom:7px; }
.npq-lead h1{ font-family:var(--font-mincho);font-size:32px;font-weight:800;line-height:1.4;margin:0 0 12px;color:var(--color-ink); }
.npq-lead .subtitle{ font-family:var(--font-mincho);font-size:14px;line-height:1.85;color:var(--color-ink-soft);margin:0 0 10px; }
.npq-lead .excerpt{ font-family:var(--font-gothic);font-size:13px;line-height:1.9;color:var(--color-gray);margin:0;column-count:2;column-gap:24px;text-align:justify; }

/* sublead */
.npq-sublead{ padding:15px 0;border-bottom:1px solid var(--color-rule);cursor:pointer; }
.npq-sublead .meta{ display:flex;align-items:center;gap:10px;margin-bottom:6px; }
.npq-sublead .meta span{ font-family:var(--font-gothic);font-size:10.5px;color:var(--color-gray-lt); }
.npq-sublead h3{ font-family:var(--font-mincho);font-size:19px;font-weight:700;line-height:1.5;margin:0;color:var(--color-ink); }

/* region chips */
.npq-region-find{ padding-top:18px; }
.npq-region-find .lbl{ font-family:var(--font-gothic);font-size:11px;font-weight:700;letter-spacing:1.5px;color:var(--color-gray-lt);margin-bottom:10px; }
.npq-region-chips{ display:flex;flex-wrap:wrap;gap:6px; }
.npq-region-chips a{ font-family:var(--font-gothic);font-size:12px;color:var(--color-storm);border:1px solid rgba(53,74,94,0.35);padding:5px 12px;cursor:pointer; }

/* col-b latest */
.npq-secthead{ display:flex;align-items:baseline;justify-content:space-between;padding-bottom:8px;border-bottom:3px solid var(--color-storm);margin-bottom:2px; }
.npq-secthead h2{ font-family:var(--font-mincho);font-size:18px;font-weight:800;color:var(--color-storm);margin:0; }
.npq-secthead .upd{ font-family:var(--font-gothic);font-size:10px;color:var(--color-gray); }

.npq-latest-row{ padding:12px 0;border-bottom:1px solid var(--color-rule);cursor:pointer; }
.npq-latest-row .meta{ display:flex;align-items:center;gap:8px;margin-bottom:4px; }
.npq-latest-row .meta span{ font-family:var(--font-gothic);font-size:10px;color:var(--color-gray-lt);font-variant-numeric:tabular-nums; }
.npq-latest-row h4{ font-family:var(--font-mincho);font-size:14.5px;font-weight:600;line-height:1.55;margin:0;color:var(--color-ink); }

.npq-more{ display:block;text-align:center;font-family:var(--font-gothic);font-size:12px;font-weight:700;color:var(--color-storm);padding:12px 0 0;cursor:pointer; }

/* col-c ranking */
.npq-rankhead{ border-bottom:3px solid var(--color-gold);padding-bottom:7px;margin-bottom:4px; }
.npq-rankhead h2{ font-family:var(--font-mincho);font-size:18px;font-weight:800;color:var(--color-storm);margin:0; }
.npq-rank-row{ padding:11px 0;border-bottom:1px solid var(--color-rule);cursor:pointer;display:flex;gap:11px; }
.npq-rank-row .num{ flex-shrink:0;font-family:var(--font-mincho);font-size:24px;font-weight:800;font-style:italic;color:var(--color-gray-lt);line-height:.9;width:22px; }
.npq-rank-row.top .num{ color:var(--color-gold-deep); }
.npq-rank-row .cat{ font-family:var(--font-gothic);font-size:9.5px;font-weight:700;color:var(--cat-color,var(--color-gray));margin-bottom:3px; }
.npq-rank-row h4{ font-family:var(--font-mincho);font-size:13.5px;font-weight:600;line-height:1.5;margin:0;color:var(--color-ink); }

/* col-c category list */
.npq-catlist{ margin-top:20px; }
.npq-catlist-head{ border-bottom:2px solid var(--color-storm);padding-bottom:7px;margin-bottom:8px; }
.npq-catlist-head h2{ font-family:var(--font-mincho);font-size:16px;font-weight:800;color:var(--color-storm);margin:0; }
.npq-catlist a{ display:flex;align-items:center;gap:9px;padding:9px 4px;border-bottom:1px solid var(--color-rule);cursor:pointer; }
.npq-catlist .d{ width:8px;height:8px;border-radius:4px;background:var(--cat-color,var(--color-storm));flex-shrink:0; }
.npq-catlist .n{ font-family:var(--font-gothic);font-size:13px;color:var(--color-ink);flex:1; }
.npq-catlist .arr{ font-size:11px;color:var(--color-gray-lt); }

/* =========================================================
   Pickup band
   ========================================================= */
.npq-wrap-warm{
  background:var(--color-paper-warm);
  border-top:3px solid var(--color-rule);
  padding:38px var(--pad-x) 44px;
}
.npq-wrap-warm .inner{ max-width:1180px;margin:0 auto; }
.npq-pick-head{ display:flex;align-items:center;gap:14px;margin-bottom:18px; }
.npq-pick-head h2{ font-family:var(--font-mincho);font-size:20px;font-weight:800;color:var(--color-storm);margin:0; }
.npq-pick-head .rule{ flex:1;height:1px;background:var(--color-rule); }

.npq-cat-grid{ display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-card); }
.npq-reg-grid{ display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap-card); }
.npq-pick-block{ margin-bottom:34px; }

/* cat card */
.cat-card{ overflow:hidden; }
.cat-card .head{ display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--color-rule);border-top:3px solid var(--cat-color,var(--color-storm)); }
.cat-card .head .ttl{ display:inline-flex;align-items:center;gap:7px; }
.cat-card .head .d{ width:9px;height:9px;border-radius:50%;background:var(--cat-color,var(--color-storm)); }
.cat-card .head .name{ font-family:var(--font-mincho);font-size:16px;font-weight:800;color:var(--color-ink); }
.cat-card .head .more{ font-family:var(--font-gothic);font-size:11px;color:var(--color-gray-lt);cursor:pointer; }
.cat-card .row{ padding:12px 16px;border-bottom:1px solid var(--color-rule); display:block; }
.cat-card .row:last-child{ border-bottom:none; }
.cat-card .row .meta{ display:flex;justify-content:space-between;margin-bottom:5px; }
.cat-card .row .meta .place{ font-family:var(--font-gothic);font-size:10px;color:var(--color-gray-lt); }
.cat-card .row .meta .t{ font-family:var(--font-gothic);font-size:10.5px;font-weight:700;color:var(--color-gray-lt);font-variant-numeric:tabular-nums; }
.cat-card .row .body{ border-left:2px solid var(--cat-color,var(--color-storm));padding-left:9px; }
.cat-card .row h4{ font-family:var(--font-mincho);font-size:15px;font-weight:700;line-height:1.55;margin:0;color:var(--color-ink); }

/* region card */
.reg-card{ overflow:hidden; }
.reg-card .head{ display:flex;align-items:center;justify-content:space-between;padding:9px 14px;background:var(--reg-color,var(--color-storm)); }
.reg-card .head .name{ font-family:var(--font-mincho);font-size:15px;font-weight:800;color:#fff; }
.reg-card .head .more{ font-family:var(--font-gothic);font-size:10.5px;color:rgba(255,255,255,0.7);cursor:pointer; }
.reg-card .row{ padding:11px 14px;border-bottom:1px solid var(--color-rule);display:block; }
.reg-card .row:last-child{ border-bottom:none; }
.reg-card .row .meta{ display:flex;align-items:center;gap:6px;margin-bottom:5px; }
.reg-card .row .meta .t{ font-family:var(--font-gothic);font-size:10px;color:var(--color-gray-lt);font-variant-numeric:tabular-nums; }
.reg-card .row h4{ font-family:var(--font-mincho);font-size:14px;font-weight:600;line-height:1.55;margin:0;color:var(--color-ink); }

/* =========================================================
   Footer
   ========================================================= */
.npq-footer{
  background:var(--color-storm-ink);color:#9fb0bf;padding:26px var(--pad-x) 22px;
  font-family:var(--font-gothic);font-size:12px;
}
.npq-footer-top{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:14px;
  padding-bottom:16px;margin-bottom:14px;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
.npq-footer .brand{ font-family:var(--font-mincho);font-size:17px;font-weight:800;color:#fff;letter-spacing:2px; }
.npq-footer .brand .net{ color:var(--color-gold); }
.npq-footer-nav{ display:flex;flex-wrap:wrap;gap:8px 22px; }
.npq-footer-nav a{ color:#9fb0bf;transition:color .15s; }
.npq-footer-nav a:hover{ color:var(--color-gold-soft); }
.npq-footer-copy{ color:#6f7d89;font-size:11.5px; }
@media (max-width:600px){
  .npq-footer-top{ flex-direction:column;align-items:flex-start; }
  .npq-footer-nav{ gap:10px 20px; }
}

/* =========================================================
   Single article
   ========================================================= */
.npq-art-band{ background:var(--color-storm);padding:32px var(--pad-x) 36px; }
.npq-art-band .inner{ max-width:1180px;margin:0 auto; }
.npq-breadcrumb{ display:flex;align-items:center;gap:8px;margin-bottom:18px;font-family:var(--font-gothic);font-size:12px;flex-wrap:wrap; }
.npq-breadcrumb a{ color:var(--color-gold-soft);cursor:pointer;font-weight:600; }
.npq-breadcrumb .sep{ color:var(--color-rule-dk); }
.npq-breadcrumb .cur{ color:rgba(255,255,255,0.6); }
.npq-art-badge{ display:inline-block;font-family:var(--font-gothic);font-size:12px;font-weight:800;letter-spacing:1px;color:var(--color-storm-ink);background:var(--color-gold);padding:4px 12px;border-radius:2px;margin-bottom:12px; }
.npq-art-title{ font-family:var(--font-mincho);font-size:36px;font-weight:800;line-height:1.42;margin:0 0 14px;color:#fff;letter-spacing:.5px;max-width:780px; }
.npq-art-meta{ display:flex;align-items:center;gap:18px;font-family:var(--font-gothic);font-size:12px;color:#9ab5c4;flex-wrap:wrap; }
.npq-art-meta .back{ margin-left:auto;color:var(--color-gold-soft);cursor:pointer;font-weight:600; }

/* =========================================================
   固定ページ（プライバシーポリシー等）
   ========================================================= */
.npq-page-band{ padding-bottom:28px; }
.npq-page-title{ margin-bottom:0; }
.npq-page-wrap{
  max-width:840px;margin:0 auto;padding:28px var(--pad-x) 56px;
}
.npq-page-body{ padding:32px 36px 40px; }
@media (max-width:600px){
  .npq-page-body{ padding:22px 18px 28px; }
}

.npq-art-grid{
  display:grid;grid-template-columns:1fr 288px;gap:var(--gap-main);
  max-width:1180px;margin:0 auto;padding:28px var(--pad-x);
  background:var(--color-paper-warm);
}
.npq-art-body{ padding:32px 36px 36px; }
.npq-art-lead{ font-family:var(--font-mincho);font-size:18px;line-height:1.95;color:var(--color-ink);margin:0 0 24px;padding-bottom:24px;border-bottom:1px solid var(--color-rule);font-weight:500; }

/* AI要約ボックス */
.npq-ai-summary{
  background:var(--color-paper-warm);
  border:1px solid var(--color-rule);
  border-left:4px solid var(--cat-color,var(--color-storm));
  border-radius:0 4px 4px 0;
  padding:16px 20px 18px;
  margin:0 0 26px;
}
.npq-ai-summary__head{
  display:flex;align-items:center;gap:7px;
  font-family:var(--font-gothic);font-size:12px;font-weight:800;
  letter-spacing:.5px;color:var(--color-storm);
  margin-bottom:12px;padding-bottom:10px;
  border-bottom:1px dashed var(--color-rule);
}
.npq-ai-summary__head .ico{ font-size:14px;line-height:1; }
.npq-ai-summary__list{ margin:0;padding:0;list-style:none; }
.npq-ai-summary__list li{
  position:relative;font-family:var(--font-mincho);font-size:15px;
  line-height:1.75;color:var(--color-ink);padding:0 0 8px 18px;
}
.npq-ai-summary__list li:last-child{ padding-bottom:0; }
.npq-ai-summary__list li::before{
  content:"";position:absolute;left:2px;top:11px;
  width:7px;height:7px;border-radius:50%;
  background:var(--cat-color,var(--color-storm));
}
.npq-ai-summary__text{ font-family:var(--font-mincho);font-size:15.5px;line-height:1.85;color:var(--color-ink);margin:0; }

/* 本文折りたたみ */
.npq-collapsible.is-collapsed{
  max-height:150px;overflow:hidden;position:relative;
}
.npq-collapsible.is-collapsed::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:120px;
  background:linear-gradient(to bottom, rgba(255,255,255,0), #fff 88%);
  pointer-events:none;
}
.npq-readmore-wrap{ text-align:center;margin:14px 0 0; }
.npq-readmore{
  font-family:var(--font-gothic);font-size:13px;font-weight:700;
  color:#fff;background:var(--color-storm);
  border:none;border-radius:3px;padding:11px 32px;cursor:pointer;
  letter-spacing:.5px;transition:background .15s;
}
.npq-readmore:hover{ background:var(--color-storm-dark); }
.npq-readmore::after{ content:" ▼";font-size:10px; }
.npq-readmore.is-open::after{ content:" ▲"; }
/* JS無効時は全文表示（折りたたみ無効・ボタン非表示） */
.no-js .npq-collapsible{ max-height:none; }
.no-js .npq-readmore-wrap{ display:none; }
.npq-art-content{ font-family:var(--font-gothic);font-size:14.5px;line-height:2.1;color:var(--color-ink-soft); }
.npq-art-content p{ margin:0 0 20px;text-align:justify; }
.npq-art-content h2{ font-family:var(--font-mincho);font-size:22px;font-weight:800;color:var(--color-storm);margin:32px 0 16px;padding-bottom:8px;border-bottom:2px solid var(--color-rule); }
.npq-art-content h3{ font-family:var(--font-mincho);font-size:18px;font-weight:700;color:var(--color-ink);margin:24px 0 12px; }
.npq-art-content blockquote{ margin:28px 0;padding:18px 22px;border-left:4px solid var(--cat-color,var(--color-storm));background:var(--color-paper-warm);border-radius:0 3px 3px 0; }
.npq-art-content blockquote p{ font-family:var(--font-mincho);font-size:16px;line-height:1.8;color:var(--color-ink);margin:0;font-weight:600;text-align:left; }
.npq-art-content img{ border-radius:3px;margin:8px 0; }
.npq-art-content a{ color:var(--color-gold-deep);text-decoration:underline; }
.npq-art-content ul,.npq-art-content ol{ padding-left:1.4em;margin:0 0 20px; }
.npq-art-content li{ margin-bottom:8px; }

.npq-art-foot{ margin-top:32px;padding-top:20px;border-top:1px solid var(--color-rule); }

/* 記事下タグ */
.npq-tags{ margin-top:26px;padding-top:20px;border-top:1px solid var(--color-rule); }
.npq-tags__ttl{ font-family:var(--font-gothic);font-size:11px;font-weight:700;letter-spacing:1px;color:var(--color-gray-lt);margin-bottom:12px; }
.npq-tags__list{ display:flex;flex-wrap:wrap;gap:8px; }
.npq-tag{
  font-family:var(--font-gothic);font-size:12.5px;color:var(--color-storm);
  border:1px solid rgba(53,74,94,0.32);background:var(--color-paper);
  padding:6px 13px;border-radius:2px;transition:background .15s,color .15s,border-color .15s;
}
.npq-tag .h{ color:var(--color-gold-deep);font-weight:700;margin-right:1px; }
.npq-tag:hover{ background:var(--color-storm);color:#fff;border-color:var(--color-storm); }
.npq-tag:hover .h{ color:var(--color-gold); }

/* サイドバー タグ */
.npq-tagcloud{ padding:14px 16px 16px; }
.npq-tagcloud .ttl{ font-family:var(--font-mincho);font-size:14px;font-weight:700;color:var(--color-storm);margin-bottom:13px;padding-bottom:9px;border-bottom:2px solid var(--color-rule); }
.npq-tagcloud .chips{ display:flex;flex-wrap:wrap;gap:8px; }
.npq-tagcloud .chips a{
  font-family:var(--font-gothic);font-size:12px;color:var(--color-storm);
  border:1px solid rgba(53,74,94,0.3);background:var(--color-paper-warm);
  padding:5px 11px;border-radius:2px;transition:background .15s,color .15s,border-color .15s;
}
.npq-tagcloud .chips a:hover{ background:var(--color-storm);color:#fff;border-color:var(--color-storm); }
.npq-share{ display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:8px; }
.npq-share .btns{ display:flex;gap:10px;flex-wrap:wrap; }
.npq-share a{ font-family:var(--font-gothic);font-size:12px;font-weight:700;color:var(--color-storm);background:transparent;border:1px solid rgba(53,74,94,0.3);padding:7px 14px;border-radius:2px;cursor:pointer; }
.npq-share .back{ font-family:var(--font-gothic);font-size:12.5px;font-weight:700;color:var(--color-storm);cursor:pointer; }

/* related */
.npq-related{ margin-top:24px; }
.npq-related-head{ display:flex;align-items:center;gap:12px;margin-bottom:14px; }
.npq-related-head h3{ font-family:var(--font-mincho);font-size:18px;font-weight:800;color:var(--color-storm);margin:0; }
.npq-related-head .rule{ flex:1;height:1px;background:var(--color-rule); }
.npq-related-list{ padding:0 20px; }
.npq-related-list .row{ padding:14px 0;border-bottom:1px solid var(--color-rule);cursor:pointer;display:flex;gap:10px;align-items:flex-start; }
.npq-related-list .row:last-child{ border-bottom:none; }
.npq-related-list .row h4{ font-family:var(--font-mincho);font-size:15.5px;font-weight:600;line-height:1.5;margin:0;color:var(--color-ink); }

/* sidebar */
.npq-aside{ display:flex;flex-direction:column;gap:20px; }
.npq-rank-card{ overflow:hidden; }
.npq-rank-card .head{ background:var(--color-storm);padding:12px 16px; }
.npq-rank-card .head span{ font-family:var(--font-mincho);font-size:15px;font-weight:800;color:#fff; }
.npq-rank-card .body{ padding:0 16px; }
.npq-rank-card .row{ display:flex;gap:11px;padding:12px 0;border-bottom:1px solid var(--color-rule);cursor:pointer; }
.npq-rank-card .row:last-child{ border-bottom:none; }
.npq-rank-card .num{ flex-shrink:0;font-family:var(--font-mincho);font-size:22px;font-weight:800;font-style:italic;color:var(--color-gray-lt);width:20px;line-height:.9; }
.npq-rank-card .row.top .num{ color:var(--color-gold-deep); }
.npq-rank-card .cat{ font-family:var(--font-gothic);font-size:9.5px;font-weight:700;color:var(--cat-color,var(--color-gray));margin-bottom:3px; }
.npq-rank-card h4{ font-family:var(--font-mincho);font-size:13px;font-weight:600;line-height:1.5;margin:0;color:var(--color-ink); }

.npq-region-card{ padding:14px 16px 16px; }
.npq-region-card .ttl{ font-family:var(--font-mincho);font-size:14px;font-weight:700;color:var(--color-storm);margin-bottom:12px; }
.npq-region-card .chips{ display:flex;flex-wrap:wrap;gap:7px; }
.npq-region-card .chips a{ font-family:var(--font-gothic);font-size:12px;color:var(--color-storm);border:1px solid rgba(53,74,94,0.3);background:var(--color-paper-warm);padding:5px 11px;cursor:pointer;border-radius:2px; }

/* =========================================================
   Archive
   ========================================================= */
.npq-archive{ max-width:1180px;margin:0 auto;padding:28px var(--pad-x); }
.npq-archive-head{ border-bottom:3px solid var(--color-storm);padding-bottom:10px;margin-bottom:20px;display:flex;align-items:baseline;gap:12px; }
.npq-archive-head h1{ font-family:var(--font-mincho);font-size:24px;font-weight:800;color:var(--color-storm);margin:0; }
.npq-archive-head .cnt{ font-family:var(--font-gothic);font-size:12px;color:var(--color-gray); }
.npq-archive-grid{ display:grid;grid-template-columns:1fr 288px;gap:var(--gap-main); }
.npq-archive-list .npq-latest-row{ padding:16px 0; }
.npq-archive-list .npq-latest-row h4{ font-size:17px; }

.npq-pagination{ margin-top:24px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap; }
.npq-pagination a,.npq-pagination span{ font-family:var(--font-gothic);font-size:13px;color:var(--color-storm);border:1px solid var(--color-rule);padding:8px 14px;cursor:pointer; }
.npq-pagination .current{ background:var(--color-storm);color:#fff;border-color:var(--color-storm); }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:900px){
  :root{ --pad-x:18px; }
  .npq-main-grid{ grid-template-columns:1fr; }
  .npq-col-border{ border-right:none;border-bottom:1px solid var(--color-rule); }
  .col-a,.col-b,.col-c{ padding:20px 0; }
  .npq-cat-grid{ grid-template-columns:repeat(2,1fr); }
  .npq-reg-grid{ grid-template-columns:repeat(2,1fr); }
  .npq-art-grid{ grid-template-columns:1fr; }
  .npq-archive-grid{ grid-template-columns:1fr; }
  .npq-art-title{ font-size:28px; }
  .npq-npq{ font-size:26px; }
  .npq-lead .excerpt{ column-count:1; }
}
@media (max-width:600px){
  .npq-cat-grid{ grid-template-columns:1fr; }
  .npq-reg-grid{ grid-template-columns:repeat(2,1fr); }
  .npq-utility{ font-size:10px;padding:0 18px; }
  .npq-utility-right{ gap:12px; }
  .npq-search.is-open .npq-search__input{ width:130px; }
  .npq-nav{ font-size:12px;padding:9px 4px; }
  .npq-art-body{ padding:22px 18px 26px; }
  .npq-lead h1{ font-size:24px; }
}
