@charset "UTF-8";
/**
 * KSB QUICK テキスト版 — フロントページ専用スタイル（新聞型 / テキストファースト）
 *
 * デザインシステム（緑＋セージ、Saira Condensed / Zen Kaku Gothic / Noto Sans JP）に準拠。
 * PC=多段組みの新聞紙面、スマホ=1カラムのテキストファーストへレスポンシブに変化する。
 * フロントページでのみ読み込むため、汎用クラス名でも内部ページに影響しない。
 */

:root{
  --g-deep:#2f5733; --g:#50874b; --g-mid:#6f9f68;
  --sage:#cbdbc9; --sage-soft:#e8efe5; --sage-line:#dce6d8;
  --ink:#1b271c; --ink-mid:#41513f; --ink-soft:#71806e; --ink-faint:#9aa897;
  --line:#e4e8e0; --line-soft:#e1e1e1; --paper:#fbfcf9; --card:#fff;
  --cal-line:#bcc7b3; /* カレンダー罫線（--line では薄すぎるため濃いめ） */
  --okayama:#4a6fa5; --kagawa:#50874b; --accent:#d98b3c;
  --disp:'Saira Condensed','Zen Kaku Gothic New',sans-serif;
  --jp:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  --body:'Noto Sans JP',system-ui,sans-serif;
}
body.kqx{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);line-height:1.7;font-size:15px;-webkit-font-smoothing:antialiased;font-feature-settings:"palt";-webkit-text-size-adjust:100%;text-size-adjust:100%;}
/* リセット：元デザインの *{box-sizing;margin:0;padding:0} を踏襲。フロント専用 .kqx 配下に限定。
   詳細度を低く（クラス1個ぶん）保つことで、後続のコンポーネント指定が正しく上書きする。
   管理バー(#wpadminbar)は自身のID詳細度スタイルが勝つため、このリセットでは崩れない。 */
.kqx *{box-sizing:border-box;margin:0;padding:0;}
.kqx a{color:inherit;text-decoration:none;}
.kqx img{max-width:100%;height:auto;}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px;}

/* slash motif */
.slash-bars{display:inline-flex;gap:4px;vertical-align:middle;}
.slash-bars i{width:6px;height:20px;background:var(--g);transform:skewX(-18deg);display:block;}
.slash-bars i:nth-child(2){background:var(--sage);}

/* kicker */
.kicker{display:inline-block;font-family:var(--jp);font-weight:700;font-size:11px;letter-spacing:.04em;color:#fff;background:var(--g);padding:4px 11px 3px;transform:skewX(-12deg);}
.kicker>span{display:inline-block;transform:skewX(12deg);}
.kicker.warm{background:var(--accent);}
.kicker.ka{background:var(--kagawa);}
.kicker.ink{background:var(--ink);}

/* image placeholder（グルメ等の意図的画像セクション） */
.ph{position:relative;overflow:hidden;background:linear-gradient(135deg,#e8eae5 0%,#d4d8cf 100%);display:block;}
.ph::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,transparent 0,transparent 13px,rgba(0,0,0,.025) 13px,rgba(0,0,0,.025) 14px);}
.ph.v2{background:linear-gradient(135deg,#e6e8ec 0%,#d2d6dc 100%);}
.ph.v3{background:linear-gradient(135deg,#eae7e2 0%,#d9d4cb 100%);}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.ph-label{position:absolute;bottom:10px;left:12px;font-family:ui-monospace,Menlo,monospace;font-size:9px;color:rgba(0,0,0,.38);letter-spacing:.5px;z-index:1;}
.gcard-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.gcard{cursor:pointer;}
.gcard .ph{height:150px;margin-bottom:11px;}
.gcard .kicker{position:absolute;top:10px;left:10px;z-index:1;}
.gcard h4{font-family:var(--jp);font-weight:700;font-size:15px;line-height:1.4;letter-spacing:.005em;}
.gcard:hover h4{color:var(--g-deep);}
.gcard .g-sub{font-size:11px;color:var(--ink-soft);margin-top:4px;}

/* ===== masthead ===== */
.mast{background:#fff;border-bottom:1px solid var(--line);}
.mast .wrap{display:flex;align-items:center;justify-content:space-between;padding:22px 32px;}
.mast-logo img{height:34px;width:auto;display:block;}
.mast-logo p{font-size: 12px;margin-top:4px;}
.mast-r{display:flex;align-items:center;gap:14px;}
.area-pick{display:flex;align-items:center;gap:7px;border:1px solid var(--sage-line);background:var(--sage-soft);padding:8px 14px;font-family:var(--jp);font-weight:700;font-size:13px;color:var(--g-deep);cursor:pointer;}
.area-pick svg{color:var(--g);}
/* ヘッダー検索フォーム。WordPress が検索結果ページの body へ付与する .search と
   衝突しないよう .mast 配下に限定する（body.search に当たるとレイアウトが壊れる）。 */
.mast .search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:9px 14px;width:200px;color:var(--ink-soft);font-size:13px;background:#fff;cursor:pointer;font-family:var(--body);text-align:left;}
.mast .search:hover{border-color:var(--sage-line);background:var(--sage-soft);color:var(--g-deep);}
.mast .search .search-ph{flex:1;}
.mast .search input{border:none;outline:none;flex:1;font-family:var(--body);font-size:13px;background:none;color:var(--ink);}

/* ===== nav ===== */
.nav{background:var(--g-deep);position:sticky;top:0;z-index:30;}
.nav .wrap{display:flex;align-items:stretch;gap:2px;}
.nav a{position:relative;font-family:var(--jp);font-weight:700;font-size:15px;color:#cfe0cc;padding:15px 22px;letter-spacing:.02em;transition:color .15s,background .15s;white-space:nowrap;}
.nav a:hover{color:#fff;background:rgba(255,255,255,.06);}
.nav a.on{color:#fff;}
.nav a.on::after{content:'';position:absolute;left:18px;right:18px;bottom:0;height:4px;background:var(--sage);transform:skewX(-18deg);}
.nav-spacer{flex:1;}
/* メニュー並び替え：ナビ右端の編集ボタン */
.nav-edit{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:#cfe0cc;padding:0 18px;cursor:pointer;flex-shrink:0;align-self:stretch;}
.nav-edit:hover{color:#fff;background:rgba(255,255,255,.06);}
.nav-edit svg{width:26px;height:26px;display:block;}
.nav-edit svg circle{fill:var(--g-deep);}/* ノブはナビ背景色で塗り、線の上に乗って見える（スライダー表現） */
/* 並び替えモーダルの項目（タップ順に番号） */
.kq-order-item{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);padding:12px 14px;background:#fff;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s;}
.kq-order-item.sel{border-color:var(--g);background:var(--sage-soft);}
.kq-order-num{width:24px;height:24px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-family:var(--disp);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink-faint);background:var(--sage-soft);border:1px solid var(--line);}
.kq-order-item.sel .kq-order-num{color:#fff;background:var(--g);border-color:var(--g);}
.kq-order-name{flex:1;font-family:var(--jp);font-size:14px;font-weight:700;color:var(--ink);}
.kq-order-actions{padding:6px 22px 22px;}
.kq-order-save{width:100%;height:50px;border:none;background:var(--g);color:#fff;font-family:var(--jp);font-weight:800;font-size:15px;cursor:pointer;transition:background .15s,transform .1s;}
.kq-order-save:hover{background:var(--g-deep);}
.kq-order-save:active{transform:scale(.99);}
.nav .nav-live{display:flex;align-items:center;gap:8px;color:#fff;font-family:var(--disp);font-weight:700;font-size:13px;letter-spacing:.12em;padding:15px 0;text-transform:uppercase;}
.nav .nav-live .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:kqpulse 1.6s infinite;}
@keyframes kqpulse{0%,100%{opacity:1}50%{opacity:.3}}

/* ================= HERO ================= */
.hero{padding:36px 0 8px;}
.hero-grid{display:grid;grid-template-columns:2.05fr 1fr;gap:0;}
.hero-lead{position:relative;padding:0 38px 30px 0;border-right:1px solid var(--line);}
/* リード全体をクリック可能に：見出しリンクを疑似要素でカード全面へ拡張（署名はリンク化していないので入れ子リンクにならない）。 */
.hero-lead>a::after{content:'';position:absolute;inset:0;z-index:1;}
.hero-lead .lead-cats{display:inline-flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;}
.hero-lead h1{font-family:var(--jp);font-weight:900;font-size:clamp(24px,3vw,40px);line-height:1.24;letter-spacing:.01em;}
.hero-lead a:hover h1{color:var(--g-deep);}
.hero-lead .dek{font-size:15.5px;color:var(--ink-mid);margin-top:16px;line-height:1.85;}
.hero-lead .byline{display:flex;align-items:center;gap:12px;margin-top:18px;font-size:12px;color:var(--ink-soft);flex-wrap:wrap;}
.hero-lead .byline .area{font-weight:700;color:var(--ink);}/* トップは色分けしない（黒） */
.hero-lead .byline a.area:hover{text-decoration:underline;text-underline-offset:2px;}
.hero-lead .pull{margin-top:22px;padding:16px 0 4px 22px;border-left:4px solid var(--sage);font-family:var(--jp);font-weight:700;font-size:17px;line-height:1.6;color:var(--g-deep);}
.hero-side{padding:0 0 30px 45px;display:flex;flex-direction:column;}
.hero-side .hs-label{display:flex;align-items:center;gap:10px;font-family:var(--disp);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;}
.hs-item{padding:16px 0;border-top:1px solid var(--line);cursor:pointer;display:block;}
.hs-item:first-of-type{border-top:none;}
.hs-item .kicker{margin-bottom:8px;}/* カテゴリーは kicker（緑チップ）の見た目で表示 */
.hs-item h3{font-family:var(--jp);font-weight:700;font-size:16px;line-height:1.5;letter-spacing:.005em;}
.hs-item:hover h3{color:var(--g-deep);}
.hs-item .hs-time{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-family:var(--body);font-weight:600;font-size:11px;color:var(--ink-faint);letter-spacing:.04em;margin-top:6px;}
.hs-item .hs-time .area{font-weight:700;color:var(--ink);}/* エリアは他と同様に黒（クリック不可） */

/* ================= section head ================= */
.sec{padding:34px 0;}
.sec-latest{padding-top:6px;}/* 先頭セクションはヒーロー直後で上を詰める（PC）。SPは下のメディアクエリで広げる */
.sec-head{display:flex;align-items:center;gap:14px;margin-bottom:22px;padding-bottom:14px;border-bottom:2px solid var(--ink);}
.sec-head h2{font-family:var(--jp);font-weight:900;font-size:23px;letter-spacing:.01em;}
.sec-head .en{font-family:var(--disp);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);}
/* 単体ボタンと分かる縁取り＋背景。矢印がサイドのランキングを指して見える誤解を避ける。 */
.sec-head .more{margin-left:auto;font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--g);display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--sage-line);background:var(--sage-soft);padding:7px 14px;transition:color .15s,background .15s,border-color .15s;}
.sec-head .more:hover{color:#fff;background:var(--g);border-color:var(--g);}

/* ================= body ================= */
.body-grid{display:grid;grid-template-columns:1fr 340px;gap:48px;padding-bottom:30px;}
/* グリッド子の min-width:auto による横はみ出し（gcard 横スクロール等が main を押し広げる）を防ぐ */
.body-grid>main,.body-grid>aside{min-width:0;}

/* headline grid — newspaper columns */
.hl-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 28px;position:relative;}
.hl-col:not(:last-child){border-right:1px solid var(--line);padding-right:28px;}
.hl{padding:20px 0;border-top:1px solid var(--line-soft);cursor:pointer;display:block;}
.hl.tophead{border-top:none;}
.hl .kicker{margin-bottom:9px;}
.hl h3{font-family:var(--jp);font-weight:700;font-size:17px;line-height:1.46;letter-spacing:.005em;}
.hl:hover h3{color:var(--g-deep);}
.hl p{font-size:12.5px;color:var(--ink-mid);margin-top:7px;line-height:1.6;}
.hl .hl-meta{display:flex;flex-wrap:wrap;gap:4px 9px;align-items:center;margin-top:8px;font-size:11px;color:var(--ink-soft);}
.hl .hl-meta .area{font-weight:700;}/* 色はテンプレ側でエリア色をインライン指定（親エリア色を踏襲） */
.hl .hl-meta .kq-src{color:var(--g);}

/* category headline list (two-up) */
.cat-list{display:grid;grid-template-columns:1fr 1fr;gap:0 36px;}
.cl-item{display:flex;gap:14px;padding:16px 0;border-top:1px solid var(--line-soft);cursor:pointer;align-items:baseline;}
.cl-item:first-child,.cl-item:nth-child(2){border-top:none;}
.cl-item .cl-no{font-family:var(--disp);font-weight:800;font-size:20px;color:var(--sage);width:26px;flex-shrink:0;line-height:1;font-feature-settings:"tnum";}
.cl-item .cl-body{min-width:0;}
.cl-item .cl-cat{font-family:var(--jp);font-weight:700;font-size:11px;color:var(--g);}
.cl-item h4{font-family:var(--jp);font-weight:700;font-size:15px;line-height:1.45;margin-top:3px;letter-spacing:.005em;}
.cl-item:hover h4{color:var(--g-deep);}

/* ===== フロント：アイキャッチ有無での出し分け（front-page.php） =====
   新規クラス（.mlist/.mfig/.ncard 等）＋既存への .has-photo/.txt/.noimg 修飾。 */

/* --- HERO リード：アイキャッチ有りのみ上に大画像（無しは現行のまま） --- */
.hero-lead.has-photo .lead-ph{display:block;position:relative;aspect-ratio:16/9;margin-bottom:20px;overflow:hidden;background:linear-gradient(135deg,#e8eae5,#d4d8cf);}
.hero-lead.has-photo .lead-ph img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-lead.has-photo .lead-ph .lead-cats{position:absolute;top:12px;left:12px;right:12px;z-index:1;margin:0;}
.hero-lead.has-photo h1{font-size:clamp(24px,3vw,38px);}

/* --- HERO サイド：アイキャッチ有りは左サムネ（無しは現行のまま：.hs-main は素の縦積み） --- */
.hs-item.has-photo{display:flex;gap:14px;align-items:flex-start;}
.hs-item.has-photo .hs-ph{width:104px;aspect-ratio:16/9;flex-shrink:0;overflow:hidden;background:linear-gradient(135deg,#e8eae5,#d4d8cf);}
.hs-item.has-photo .hs-ph img{width:100%;height:100%;object-fit:cover;display:block;}
.hs-item .hs-main{min-width:0;}

/* --- 最新情報：2カラムカード（有り＝写真上／無し＝サージュ地テキストカード） --- */
.ncard-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 28px;}
.ncard{cursor:pointer;}
.ncard .nc-ph{display:block;position:relative;aspect-ratio:16/9;margin-bottom:13px;overflow:hidden;background:linear-gradient(135deg,#e8eae5,#d4d8cf);}
.ncard .nc-ph img{width:100%;height:100%;object-fit:cover;display:block;}
.ncard .kicker{margin-bottom:9px;}
.ncard h3{font-family:var(--jp);font-weight:700;font-size:18px;line-height:1.44;letter-spacing:.005em;}
.ncard:hover h3{color:var(--g-deep);}
.ncard .nc-meta{display:flex;gap:10px;align-items:center;margin-top:9px;font-size:11px;color:var(--ink-soft);}
.ncard .nc-meta .area{font-weight:700;color:var(--ink);}/* クリック不可のため色分けせず黒 */
.ncard .nc-meta .kq-src{color:var(--g);font-weight:700;}
.ncard.txt{background:var(--sage-soft);padding:22px 24px 20px;position:relative;display:flex;flex-direction:column;}
.ncard.txt::before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--g);}
.ncard.txt .kicker{margin-bottom:12px;width:fit-content;}
.ncard.txt h3{font-size:18px;line-height:1.42;}
.ncard.txt .nc-meta{margin-top:auto;padding-top:13px;}
/* サムネ無しリンク記事：出典はエリア・日付の下の行に */
.ncard .nc-src-line{margin-top:5px;font-size:11px;}
.ncard .nc-src-line .kq-src{color:var(--g);font-weight:700;}

/* --- 各カテゴリー一覧：混在リスト（有り＝左サムネ／無し＝緑の左アクセント） --- */
.mlist .mrow{display:flex;gap:16px;padding:16px 0;border-top:1px solid var(--line);align-items:flex-start;}
.mlist .mrow:first-child{border-top:none;padding-top:2px;}
.mlist .mrow:hover h3{color:var(--g-deep);}
.mfig{width:132px;aspect-ratio:16/9;flex-shrink:0;position:relative;overflow:hidden;background:linear-gradient(135deg,#e8eae5,#d4d8cf);}
.mfig img{width:100%;height:100%;object-fit:cover;display:block;}
.mfig .kicker{position:absolute;top:6px;left:6px;z-index:1;margin:0;}
.mbody{flex:1;min-width:0;border-left:3px solid var(--sage);padding-left:16px;}/* サムネ有無に関わらず左に sage アクセント */
.mbody .mcat{font-family:var(--jp);font-weight:700;font-size:11px;color:var(--g);margin-bottom:5px;}
.mbody h3{font-family:var(--jp);font-weight:700;font-size:17px;line-height:1.5;letter-spacing:.005em;}
.mbody .mm{display:flex;gap:10px;align-items:center;margin-top:7px;font-size:11px;color:var(--ink-soft);}
.mbody .mm .area{font-weight:700;color:var(--ink);}/* クリック不可のため色分けせず黒 */
.mbody .mm .kq-src{color:var(--g);font-weight:700;}
.mbody .mm-src{margin-top:5px;}
.mbody .mm-src .kq-src{color:var(--g);font-weight:700;font-size:11px;}

/* グルメ：アイキャッチ無しはテキストカード（空プレースホルダを出さない） */
.gcard.txt{background:var(--sage-soft);padding:18px 18px 16px;position:relative;}
.gcard.txt::before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--g);}
.gcard.txt .kicker{position:static;display:inline-block;margin:0 0 10px;}
.gcard.txt h4{font-size:17px;}
/* グルメ画像カードのサムネも 16:9 に統一（既定 front-page.php の .gcard は据え置き） */
.gcard-row.gcard-16x9 .ph{aspect-ratio:16/9;height:auto;margin-bottom:11px;}
/* 注目のお店一覧（画像カード）の下に余白（続く混在リストと分離） */
.gcard-row.gcard-16x9{margin-bottom:30px;}

@media (max-width:1080px){
  .ncard-grid{grid-template-columns:1fr;}
}
@media (max-width:680px){
  .mfig{width:104px;}
}
/* ===== /フロント：アイキャッチ有無での出し分け ===== */

/* external news link rows */
.linkrow{border-top:1px solid var(--line);}
.linkrow a{display:block;padding:14px 0;cursor:pointer;border-top:1px solid var(--line-soft);}
.linkrow a:first-child{border-top:none;}
.linkrow a:hover h4{color:var(--g-deep);}
.lr-body{min-width:0;}
.linkrow h4{font-family:var(--jp);font-weight:700;font-size:15px;line-height:1.45;letter-spacing:.005em;}
.lr-meta{display:flex;align-items:center;gap:4px 10px;flex-wrap:wrap;margin-top:6px;}
.lr-time{font-family:var(--body);font-weight:700;font-size:12px;color:var(--ink-faint);letter-spacing:.04em;}
.lr-src{display:inline-flex;align-items:center;gap:5px;flex-basis:100%;font-family:var(--jp);font-weight:700;font-size:11px;color:var(--g);}
.lr-src svg{width:11px;height:11px;flex-shrink:0;}

/* リンク出典「〇〇で読む」は時刻の下に単体行で出す（全セクション共通）。 */
.kq-src{display:block;flex-basis:100%;width:100%;margin-top:2px;font-weight:700;color:var(--g);}
.cl-meta{display:flex;gap:4px 9px;align-items:center;flex-wrap:wrap;margin-top:6px;font-size:12px;color:var(--ink-soft);}
/* イベント見出しの開催期間（タイトル後ろ・小さめ）。 */
.kq-ev-period{font-size:.72em;font-weight:600;color:var(--ink-soft);margin-left:.4em;letter-spacing:.01em;}

/* ===== sidebar ===== */
.side-block{margin-bottom:38px;}
.side-title{display:flex;align-items:center;gap:11px;margin-bottom:16px;}
.side-title h3{font-family:var(--jp);font-weight:900;font-size:17px;letter-spacing:.01em;}
.seg{display:inline-flex;margin-left:auto;border:1px solid var(--sage-line);background:#fff;}
.seg button{font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.06em;color:var(--ink-soft);background:none;border:none;padding:5px 12px 4px;cursor:pointer;text-transform:uppercase;}
.seg button.on{background:var(--g);color:#fff;}
.rk{display:flex;align-items:flex-start;gap:14px;padding:13px 0;border-top:1px solid var(--line-soft);cursor:pointer;}
.rk:first-child{border-top:none;}
.rk .n{font-family:var(--disp);font-weight:800;font-size:30px;line-height:.9;color:var(--sage);width:34px;flex-shrink:0;font-feature-settings:"tnum";}
.rk:nth-child(-n+3) .n{color:var(--g);}
.rk .rk-cat{font-family:var(--jp);font-size:11px;font-weight:700;color:var(--g);margin-bottom:2px;}
.rk h4{font-family:var(--jp);font-weight:700;font-size:14px;line-height:1.45;letter-spacing:.005em;}
.rk:hover h4{color:var(--g-deep);}
.kq-rk-panel[hidden]{display:none;}

.cal-promo{background:var(--g-deep);color:#fff;padding:24px 22px;position:relative;overflow:hidden;cursor:pointer;display:block;}
.cal-promo .bars{position:absolute;top:-10px;right:-6px;display:flex;gap:6px;opacity:.22;}
.cal-promo .bars i{width:18px;height:120px;background:var(--sage);transform:skewX(-18deg);display:block;}
.cal-promo .bars i:nth-child(2){height:96px;margin-top:14px;}
.cal-promo .bars i:nth-child(3){height:72px;margin-top:28px;}
.cal-promo .en{font-family:var(--disp);font-weight:600;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);}
.cal-promo h3{font-family:var(--jp);font-weight:900;color:#ffffff;font-size:21px;margin:8px 0 6px;position:relative;}
.cal-promo p{font-size:12.5px;color:#cfe0cc;position:relative;}
.cal-promo .go{margin-top:16px;display:inline-flex;align-items:center;gap:8px;font-family:var(--jp);font-weight:700;font-size:13px;background:var(--sage);color:var(--g-deep);padding:9px 16px;clip-path:polygon(0 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%);}

.ev{display:flex;gap:14px;padding:13px 0;border-top:1px solid var(--line-soft);cursor:pointer;}
.ev:first-child{border-top:none;}
.ev .ev-date{text-align:center;flex-shrink:0;width:46px;}
.ev .ev-mon{font-family:var(--disp);font-weight:700;font-size:11px;letter-spacing:.1em;color:var(--g);text-transform:uppercase;}
.ev .ev-day{font-family:var(--disp);font-weight:800;font-size:26px;line-height:1;color:var(--ink);}
.ev .ev-wk{font-size:10px;color:var(--ink-soft);}
.ev .ev-body{min-width:0;}
.ev .ev-cat{font-size:10px;font-weight:700;color:var(--ink-soft);}
.ev h4{font-family:var(--jp);font-weight:700;font-size:14px;line-height:1.4;margin:3px 0;letter-spacing:.005em;}
.ev:hover h4{color:var(--g-deep);}
.ev .ev-where{font-size:11px;color:var(--ink-soft);}

.kqx-empty{padding:16px 0;color:var(--ink-soft);font-size:13px;}

/* ===== footer ===== */
.foot{background:var(--g-deep);color:rgba(255,255,255,.9);margin-top:30px;padding:46px 0 30px;}
.foot .wrap{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.foot-brand img{height:26px;filter:brightness(0) invert(1);opacity:.92;}
.foot-brand p{font-size:12px;color:rgba(255,255,255,.8);margin-top:14px;line-height:1.7;}
.foot-cols{display:flex;gap:54px;flex-wrap:wrap;}
.foot-col h5{font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin-bottom:12px;}
.foot-col a{display:block;font-size:13px;color:rgba(255,255,255,.85);padding:5px 0;}
.foot-col a:hover{color:#fff;text-decoration:underline;}
.foot-base{border-top:1px solid rgba(255,255,255,.25);margin-top:34px;padding-top:18px;font-size:11px;color:rgba(255,255,255,.75);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}

/* ===== responsive ===== */
@media (max-width:1080px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-lead{border-right:none;border-bottom:1px solid var(--line);padding:0 0 26px;}
  .hero-side{padding:26px 0 0;}
  .body-grid{grid-template-columns:1fr;}
  .hl-grid{grid-template-columns:1fr 1fr;}
  .hl-col:nth-child(2){border-right:none;padding-right:0;}
  .gcard-row{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:680px){
  .wrap{padding:0 18px;}
  .mast .wrap{padding:16px 14px;}
  .mast-logo img{height:26px;}
  .mast-logo p{font-size: 10px;}
  .mast-r{gap:10px;}
  /* スマホは検索をアイコンのみのボタンに（プレースホルダ文字は隠す） */
  .mast .search{width:auto;padding:9px;gap:0;}
  .mast .search .search-ph{display:none;}
  /* nav → App版 .tabs に準拠：緑バーをやめ白地タブ化（文字=ink-soft、アクティブ=緑文字＋緑スキュー下線）。LIVEは非表示。 */
  .nav{background:#fff;border-bottom:1px solid var(--line);}
  .nav .wrap{overflow-x:auto;scrollbar-width:none;gap:0;padding-right:0;}
  .nav .wrap::-webkit-scrollbar{display:none;}
  /* 端のフェード演出は撤去（右端は常時表示の編集ボタンでスクロールに気づけるため不要。
     フェードは緑ナビ上で帯として悪目立ちし、iOS で固定ボタンにも干渉していた）。 */
  .nav a{font-family:var(--jp);font-size:13.5px;padding:13px 15px;color:var(--ink-soft);}
  .nav a:hover{background:none;color:var(--g-deep);}
  .nav a.on{color:var(--g-deep);}
  .nav a.on::after{left:11px;right:11px;height:3px;background:var(--g);}
  .nav-spacer,.nav .nav-live{display:none;}
  /* 設定ボタンは緑背景で右端に固定。タブが左側（ボタンの背後）をスクロールし
     「スライドできる」ことが分かる。SPは .nav .wrap の右パディングを 0 にして密着。 */
  .nav-edit{position:sticky;right:0;z-index:3;background:var(--g-deep);color:#fff;padding:0 18px;box-shadow:-14px 0 14px -8px rgba(0,0,0,.22);}
  .nav-edit:hover{background:var(--g-deep);color:#fff;}
  /* セクションをアプリ風に8pxの区切りで分割 */
  .hero{padding:18px 0 0;}
  .hero-lead{padding-bottom:18px;}
  .hero-lead h1{font-size:20px;line-height:1.4;}
  .hero-lead .dek{font-size:13px;}
  .hero-lead .pull{display:none;}
  /* SPは各セクション上部の余白を広げて区切りを分かりやすく。padding で付与すればマージン
     相殺の影響を受けず、先頭の「すべての記事」を含め全セクションに確実に効く。 */
  .sec{padding:34px 0 20px;border-top:4px solid var(--line-soft);}
  .sec-latest{padding-top:34px;}/* 先頭の PC 用 6px を SP では他セクションと同じ広さに上書き */
  .sec-head h2{font-size:18px;}
  .sec-head .en{display:none;}
  .hl-grid,.cat-list{grid-template-columns:1fr;}
  .hl-col{border-right:none!important;padding-right:0!important;}
  .hl-col:not(:last-child) .hl:last-child{border-bottom:none;}
  .hl h3{font-size:16px;}
  .gcard-row{display:flex;gap:13px;overflow-x:auto;scrollbar-width:none;margin:0 -18px;padding:0 18px;}
  .gcard-row::-webkit-scrollbar{display:none;}
  .gcard{flex:0 0 172px;}
  .gcard .ph{height:116px;}
  /* 1カラム時、サイドバー（ランキング等）が前のコンテンツと密着しないよう行間を確保。
     列間は1カラムなので0でよい。 */
  .body-grid{gap:34px 0;}
  .foot .wrap{flex-direction:column;gap:24px;}

  .area-pick{padding:8px 6px;font-weight:600;font-size:12px;}
}

/* =================================================================
   下層ページ（記事詳細／イベント詳細／人物紹介／カレンダー／
   アーカイブ／検索）。共通チャーム（.mast/.nav/.foot/.kicker/
   .slash-bars/.ph/.rk）はフロントと共有し、ここでは本文系を追加。
   ================================================================= */

/* パンくず */
.crumb{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft);padding:18px 0 0;flex-wrap:wrap;}
.crumb a:hover{color:var(--g);}
.crumb .sep{color:var(--ink-faint);}
.crumb .cur{color:var(--ink);font-weight:700;}

/* 画像/テキスト出し分け（記事・アーカイブ） */
.only-image,.only-text{display:none;}
body.mode-image .only-image{display:block;}
body.mode-text .only-text{display:block;}
.inline-image.only-image{display:inline-block;}

/* ページ内セクション見出し（下罫） */
.sech{display:flex;align-items:center;gap:13px;margin:50px 0 22px;padding-bottom:13px;border-bottom:2px solid var(--ink);}
.sech h2{font-family:var(--jp);font-weight:900;font-size:21px;}
.sech .en{font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);}

/* ===== 記事詳細 ===== */
.art{display:grid;grid-template-columns:1fr 320px;gap:54px;padding:20px 0 60px;}
/* PC：サイドバーはスクロールに追随（スティッキー）。スクロール時、固定ナビ(top:0)の
   下＝72px の位置で貼り付き、本文を読む間も見え続ける。スマホでは解除（下で reset）。 */
.art>aside{position:sticky;align-self:start;top:72px;}
.art-main{min-width:0;max-width:720px;}
.art-head .kicker{margin-bottom:16px;}
.art-title{font-family:var(--jp);font-weight:900;font-size:28px;line-height:1.4;letter-spacing:.01em;margin-bottom:16px;}
.art-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-soft);padding-bottom:18px;border-bottom:1px solid var(--line);}
.art-meta .area{font-weight:700;color:var(--g);}/* 色はテンプレ側でエリア色をインライン指定（親エリア色を踏襲） */
.art-meta a.area:hover{text-decoration:underline;text-underline-offset:2px;}
.art-meta .sp{margin-left:auto;display:flex;gap:8px;}
.art-meta .sp a{width:32px;height:32px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink-mid);}
.art-meta .sp a:hover{background:var(--sage-soft);color:var(--g-deep);}
/* URLコピー：完了時に「コピーしました」を吹き出し表示 */
.art-meta .sp a.kq-copy-url{position:relative;}
.kq-copy-url.is-copied::after{content:'コピーしました';position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);white-space:nowrap;background:var(--ink);color:#fff;font-family:var(--body);font-size:11px;font-weight:700;line-height:1;padding:6px 9px;pointer-events:none;z-index:5;}
.art-hero{margin:24px 0 6px;display:block;}
.art-hero img{width:100%;height:auto;max-height:600px;object-fit:contain;}
.art-hero-cap,.art-body .wp-element-caption{font-size:11px;color:var(--ink-soft);margin-bottom:26px;padding-top:0;}
.art-body p{font-size:15.5px;line-height:2;color:var(--ink-mid);margin-bottom:22px;}
.art-body h2{font-family:var(--jp);font-weight:900;font-size:20px;color:var(--ink);margin:34px 0 16px;}
.art-body h3{font-family:var(--jp);font-weight:700;font-size:17px;color:var(--ink);margin:28px 0 12px;}
.art-body ul,.art-body ol{margin:0 0 0 0;color:var(--ink-mid);line-height:2;}
.art-body img{max-width:100%;height:auto;margin:24px 0 0;}
.art-body .wp-block-image{margin-bottom:24px;}
/* 埋め込み（YouTube等）はコンテンツ幅いっぱい・16:9 レスポンシブ。
   YouTube が返す固定寸法(width/height)やコアCSSに依存せず確実に全幅化する。 */
.art-body .wp-block-embed{margin:24px 0;}
.art-body .wp-block-embed__wrapper{position:relative;width:100%;padding-top:56.25%;}
.art-body .wp-block-embed__wrapper iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.art-body a{color:#1a66c0;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;}
.art-body a:hover{color:#0f4e97;}
.art-h{display:flex;align-items:center;gap:11px;margin:34px 0 16px;}
.art-h h2{font-family:var(--jp);font-weight:900;font-size:20px;margin:0;}
.art-pull{margin:30px 0;padding:6px 0 6px 24px;border-left:4px solid var(--sage);font-family:var(--jp);font-weight:700;font-size:19px;line-height:1.7;color:var(--g-deep);}
.art-fig{margin:30px 0;}
.art-fig .ph{height:300px;}
.art-fig figcaption{font-size:11px;color:var(--ink-soft);margin-top:8px;}
/* 本文下の著者クレジット */
.art-byline{display:flex;align-items:center;gap:13px;margin:34px 0;padding:16px 18px;background:var(--sage-soft);border-left:4px solid var(--g);}
.art-byline-avatar{width:42px;height:42px;border-radius:50%;background:var(--g);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--jp);font-weight:900;font-size:17px;flex-shrink:0;overflow:hidden;}
.art-byline-avatar--img{background:none;}
.art-byline-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;}
.art-byline-text{display:flex;flex-direction:column;min-width:0;}
.art-byline-label{font-size:11px;color:var(--ink-soft);letter-spacing:.04em;}
.art-byline-name{font-family:var(--jp);font-weight:900;font-size:15px;color:var(--ink);margin-top:2px;}
.art-byline-bio{font-size:12.5px;color:var(--ink-mid);line-height:1.6;margin-top:4px;}
.art-tags{display:flex;flex-wrap:wrap;gap:8px;margin:34px 0;}
.art-tag{font-size:12px;color:var(--ink-mid);background:var(--sage-soft);padding:5px 13px;}
.art-tag::before{content:'#';color:var(--g);font-weight:700;margin-right:2px;}

/* サイドバー（記事右） */
.art aside .side-block{margin-bottom:34px;}
.art aside .side-title{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.art aside .side-title h3{font-family:var(--jp);font-weight:900;font-size:16px;}

/* 関連（行・グリッド） */
.rel{display:flex;gap:13px;padding:13px 0;border-top:1px solid var(--line-soft);}
.rel:first-child{border-top:none;}
.rel .ph{width:84px;height:60px;flex-shrink:0;}
.rel .rc{font-family:var(--jp);font-weight:700;font-size:10px;color:var(--g);}
.rel h4{font-family:var(--jp);font-weight:700;font-size:13.5px;line-height:1.4;margin-top:4px;}
.rel:hover h4{color:var(--g-deep);}
.rel>div{min-width:0;}

/* ===== イベント詳細 ===== */
.evd{max-width:840px;margin:0 auto;padding:18px 0 60px;}
.carousel{position:relative;margin:24px 0;}
.ctrack{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;}
.ctrack::-webkit-scrollbar{display:none;}
.cslide{flex:0 0 100%;scroll-snap-align:center;max-height:500px;}
.cslide img{width:100%;height:100%;object-fit:contain;}
.cslide.ph{background:linear-gradient(135deg,#e8eae5,#d4d8cf);}
.ccount{position:absolute;top:14px;right:14px;font-family:var(--disp);font-weight:700;font-size:13px;color:#fff;background:rgba(0,0,0,.5);padding:4px 12px;letter-spacing:.06em;}
.cdots{position:absolute;bottom:14px;left:0;right:0;display:flex;justify-content:center;gap:6px;}
.cdot{width:7px;height:7px;background:rgba(255,255,255,.55);cursor:pointer;}
.cdot.on{width:20px;background:#fff;}
.cnav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;background:rgba(0,0,0,.45);color:#fff;cursor:pointer;transition:background .2s;}
.cnav:hover{background:rgba(0,0,0,.72);}
.cnav:focus-visible{outline:2px solid #fff;outline-offset:2px;}
.cprev{left:12px;}
.cnext{right:12px;}
.evd-title{font-family:var(--jp);font-weight:900;font-size:30px;line-height:1.4;margin:24px 0 12px;}
.evd-stamp{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--ink-soft);padding-bottom:22px;border-bottom:1px solid var(--line);}
.evd-lead{font-size:15.5px;line-height:1.95;color:var(--ink-mid);margin:24px 0;}
.evd-desc{margin:24px 0;}
.evd-desc>p:first-child{margin-top:0;}
.evd-desc>p:last-child{margin-bottom:0;}
.evd-actions{display:flex;gap:12px;margin-top:40px;}
.evd-btn{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;padding:15px 12px;font-family:var(--jp);font-weight:700;font-size:14px;color:var(--ink);background:var(--sage-soft);border:1px solid #c4cdb6;text-decoration:none;transition:background .2s;}
.evd-btn:hover{background:#e3e8da;}
/* 詳細テーブル（イベント詳細・店舗情報ブロック共通。kq_dl_row 出力クラス） */
/* 罫線は --line / --line-soft だと薄すぎて見えないため、詳細テーブル（イベント詳細・
   店舗情報ブロック）は視認できる濃さの罫線にする。 */
.art-detail{border:1px solid #c4cdb6;margin:24px 0;}
.art-detail-head{display:flex;align-items:center;gap:9px;font-family:var(--jp);font-weight:900;font-size:15px;padding:14px 18px;background:var(--sage-soft);border-bottom:1px solid #c4cdb6;}
.art-detail-head svg{color:var(--g);flex-shrink:0;}
.art-dl-row{display:grid;grid-template-columns:120px 1fr;gap:14px;padding:13px 18px;border-bottom:1px solid #d7ddcb;}
.art-dl-row:last-child{border-bottom:none;}
.art-dl-key{font-family:var(--jp);font-weight:700;font-size:13px;color:var(--ink-soft);}
.art-dl-val{font-size:14px;color:var(--ink);line-height:1.7;}
.art-dl-val .line{display:block;}
.art-dl-val a{color:var(--g);border-bottom:1px solid var(--sage);word-break:break-all;}
.art-dl-cats{display:flex;flex-wrap:wrap;}
.art-dl-cat-pill{display:inline-block;font-size:11px;font-weight:700;color:var(--g-deep);background:var(--sage-soft);padding:2px 9px;margin:0 5px 5px 0;}
.evd-map{height:240px;margin:26px 0 0;}

/* ===== 人物紹介（kq_article＋ksb/people ブロック。本文内の people-grid を再スキン） ===== */
.ppl{max-width:1000px;margin:0 auto;padding:18px 0 60px;}
.art-section-head{display:flex;align-items:center;gap:11px;font-family:var(--jp);font-weight:900;font-size:20px;color:var(--ink);margin:34px 0 18px;padding-bottom:13px;border-bottom:2px solid var(--ink);}
.people-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px 26px;margin:18px 0 30px;}
.person-card .person-photo{width:74%;aspect-ratio:1/1;margin-bottom:12px;display:block;overflow:hidden;background:linear-gradient(135deg,#e8eae5,#d4d8cf);}
.person-card .person-photo img{width:100%;height:100%;object-fit:cover;}
.person-card .person-photo .kq-ph{display:block;width:100%;height:100%;}
.person-role{display:inline-block;font-family:var(--jp);font-weight:700;font-size:10px;color:var(--g-deep);background:var(--sage-soft);padding:3px 9px;margin-bottom:7px;}
.person-name{font-family:var(--jp);font-weight:900;font-size:17px;letter-spacing:.01em;margin-bottom:7px;}
.person-text{font-size:12.5px;line-height:1.8;color:var(--ink-mid);white-space:pre-line;}

/* ===== カレンダー ===== */
.cal{max-width:1000px;margin:0 auto;padding:18px 0 60px;}
.cal-bar{display:flex;align-items:center;gap:14px;margin:8px 0 18px;flex-wrap:wrap;}
.cal-nav{display:flex;align-items:center;gap:10px;}
.cal-nav a,.cal-nav button{width:34px;height:34px;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;color:var(--ink-mid);cursor:pointer;}
.cal-nav a:hover,.cal-nav button:hover{background:var(--sage-soft);}
.cal-title{font-family:var(--disp);font-weight:800;font-size:22px;min-width:130px;text-align:center;}
.cal-seg{display:inline-flex;margin-left:auto;border:1px solid var(--sage-line);}
.cal-seg button{font-family:var(--jp);font-weight:700;font-size:12px;color:var(--ink-soft);background:none;border:none;padding:7px 15px;cursor:pointer;}
.cal-seg button.on{background:var(--ink);color:#fff;}
.cal-seg button[data-ca="ok"].on{background:var(--okayama);}
.cal-seg button[data-ca="ka"].on{background:var(--kagawa);}
.cgrid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--cal-line);border-bottom:none;}
.cgrid .cdh{font-family:var(--jp);font-weight:700;font-size:12px;color:var(--ink-soft);text-align:center;padding:10px 0;border-bottom:1px solid var(--cal-line);background:var(--sage-soft);}
.cgrid .cdh.sun{color:#c04848;}
.cgrid .cdh.sat{color:#4a6fa5;}/* 土曜は暦慣習の青（エリア色スワップの影響を受けない固定値） */
.cell{min-height:96px;border-bottom:1px solid var(--cal-line);border-right:1px solid var(--cal-line);padding:7px 8px;}
.cell:nth-child(7n){border-right:none;}
.cell.out{background:#f4f6f1;color:var(--ink-faint);}
.cell .dn{font-family:var(--disp);font-weight:700;font-size:14px;color:var(--ink);}
.cell.today .dn{background:var(--ink);color:#fff;width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;}
.cell.sel{background:var(--sage-soft);}
/* 同日に複数イベントが入る想定。名称は出さず、岡山=青/香川=緑のドットで
   件数とエリアを示す（詳細は日付クリックで下の一覧に表示）。 */
.emarks{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;}
.echip{display:inline-flex;align-items:center;gap:2px;height:17px;padding:0 6px;border-radius:3px;font-family:var(--jp);font-weight:700;font-size:10.5px;color:#fff;line-height:1;cursor:pointer;}
.echip .n{font-family:var(--disp);font-weight:800;font-size:10.5px;letter-spacing:.02em;}
.echip.ok{background:var(--okayama);}
.echip.ka{background:var(--kagawa);}
.cal-day{margin-top:24px;}
.cal-day h3{font-family:var(--jp);font-weight:900;font-size:18px;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:6px;}
.cal-ev{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line-soft);align-items:flex-start;}
.cal-ev .bar{width:3px;align-self:stretch;min-height:40px;}
.cal-ev .bar.ok{background:var(--okayama);}
.cal-ev .bar.ka{background:var(--kagawa);}
.cal-ev .ab{font-size:10px;font-weight:700;padding:2px 8px;}
.cal-ev .ab.ok{background:#eef2f7;color:var(--okayama);}/* 岡山=青 */
.cal-ev .ab.ka{background:var(--sage-soft);color:var(--g-deep);}/* 香川=緑 */
.cal-ev .et{font-family:var(--disp);font-weight:700;font-size:12px;color:var(--ink-mid);margin-left:8px;}
.cal-ev h4{font-family:var(--jp);font-weight:700;font-size:15px;margin:5px 0 3px;}
.cal-ev .ew{font-size:11px;color:var(--ink-soft);}

/* ===== アーカイブ＆検索 ===== */
.arch{padding:6px 0 60px;}
.arch-hd{padding:26px 0;border-bottom:2px solid var(--g);margin-bottom:8px;}
/* パンくずと差別化：緑のスラッシュ意匠＋見出し色でページタイトルらしく見せる。 */
.arch-hd h1{font-family:var(--jp);font-weight:900;font-size:30px;color:var(--g-deep);display:flex;align-items:center;gap:14px;}
.arch-hd h1::before{content:'';flex-shrink:0;width:8px;height:1em;background:var(--g);transform:skewX(-18deg);}
/* エリアから探す（/area/）：県ごとに市区町村をグループ表示 */
.area-idx{margin-top:40px;margin-bottom:34px;}
/* 見出しはサイト共通のスキュー・バー意匠（.arch-hd h1 と同系）＋下罫線で統一。
   色は県色（岡山=青/香川=緑）を h2 に指定し、バー(currentColor)と文字(inherit)へ踏襲。 */
.area-idx-h{display:flex;align-items:center;gap:12px;font-family:var(--jp);font-weight:900;font-size:20px;line-height:1.2;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line);}
.area-idx-h::before{content:'';flex-shrink:0;width:7px;height:22px;background:currentColor;transform:skewX(-18deg);}
.area-idx-h a{color:inherit;}
.area-idx-h a:hover{text-decoration:underline;text-underline-offset:3px;}
.area-idx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;}
.area-idx-grid a{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border:1px solid var(--line);background:#fff;padding:12px 14px;font-family:var(--jp);font-weight:700;font-size:14px;color:var(--ink);transition:border-color .15s,background .15s,color .15s;}
.area-idx-grid a:hover{border-color:var(--g);background:var(--sage-soft);color:var(--g-deep);}
.area-idx-count{flex-shrink:0;font-family:var(--disp);font-weight:700;font-size:12px;color:var(--ink-faint);font-variant-numeric:tabular-nums;}
.area-idx-count::after{content:'件';margin-left:2px;font-family:var(--jp);font-weight:400;font-size:.9em;}
.area-idx-grid a:hover .area-idx-count{color:var(--g-deep);}
.arch-hd p{font-size:13.5px;color:var(--ink-mid);margin-top:8px;max-width:62ch;}
.filt{display:flex;align-items:center;gap:8px;padding:16px 0;flex-wrap:wrap;}
.filt .fl{font-family:var(--jp);font-weight:700;font-size:12px;color:var(--ink-soft);margin-right:4px;}
.chip2{font-family:var(--jp);font-weight:700;font-size:12.5px;color:var(--ink-mid);border:1px solid var(--line);padding:6px 13px;cursor:pointer;background:#fff;}
.chip2.on{background:var(--g);color:#fff;border-color:var(--g);}
.filt .sort{margin-left:auto;font-size:12.5px;color:var(--ink-mid);display:flex;align-items:center;gap:6px;}
/* アーカイブ一覧：横並び行（サムネイルは任意）。写真が無くても空き枠が出ず、
   テキストファースト（新聞型）として自然に見える。写真がある記事だけ右に小さく添える。 */
.acards{display:block;border-top:1px solid var(--line);}
.acard{display:flex;gap:22px;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--line);cursor:pointer;}
.acard-body{flex:1;min-width:0;}
.acard-cat{font-family:var(--jp);font-weight:700;font-size:11px;color:var(--g);margin-bottom:9px;letter-spacing:.02em;}
.acard h3{font-family:var(--jp);font-weight:700;font-size:18px;line-height:1.46;letter-spacing:.005em;}
.acard:hover h3{color:var(--g-deep);}
.acard .am{margin-top:9px;font-size:11px;color:var(--ink-soft);}
.acard .am .area{font-weight:700;color:var(--ink);}/* クリック不可のため色分けせず黒 */
.acard-thumb{flex-shrink:0;width:150px;height:100px;overflow:hidden;background:var(--line-soft);align-self:center;}
.acard-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.trow{display:flex;gap:18px;padding:18px 0;border-top:1px solid var(--line);cursor:pointer;align-items:flex-start;}
.trow:first-child{border-top:none;}
.trow .tthumb{width:150px;height:96px;flex-shrink:0;}
.trow .tb{flex:1;min-width:0;}
.trow .kicker{margin-bottom:8px;}
.trow h3{font-family:var(--jp);font-weight:700;font-size:18px;line-height:1.45;}
.trow:hover h3{color:var(--g-deep);}
.trow h3 mark{background:var(--sage);color:inherit;}
.trow p{font-size:13px;color:var(--ink-mid);margin-top:7px;line-height:1.65;}
.trow .tm{display:flex;gap:10px;align-items:center;margin-top:9px;font-size:11px;color:var(--ink-soft);}
.trow .tm .area{font-weight:700;}/* 色はテンプレ側でエリア色をインライン指定（親エリア色を踏襲） */
.trow .src{display:inline-flex;align-items:center;gap:5px;font-family:var(--jp);font-weight:700;font-size:11px;color:var(--g);margin-top:8px;}
.trow .src svg{width:11px;height:11px;}
.pager{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:44px;flex-wrap:wrap;}
.pager a,.pager span.current{min-width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);font-family:var(--disp);font-weight:700;font-size:14px;color:var(--ink-mid);background:#fff;padding:0 6px;}
.pager span.current,.pager a.on{background:var(--g);color:#fff;border-color:var(--g);}
.pager a:hover{background:var(--sage-soft);}
.srch-hd{padding:26px 0 18px;}
.srch-hd .lbl{font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);}
.srch-hd h1{font-family:var(--jp);font-weight:900;font-size:28px;margin:8px 0 6px;}
.srch-hd h1 em{font-style:normal;color:var(--g);}
.srch-hd .cnt{font-size:13px;color:var(--ink-soft);}
.kqx-empty{padding:40px 0;color:var(--ink-soft);font-size:14px;}

/* ================= 404 ================= */
.kq404{text-align:center;padding:56px 0 84px;}
.kq404-code{font-family:var(--disp);font-weight:800;font-size:clamp(72px,15vw,132px);line-height:.95;letter-spacing:.02em;color:var(--sage);}
.kq404-title{font-family:var(--jp);font-weight:900;font-size:clamp(20px,3vw,28px);color:var(--ink);margin-top:6px;}
.kq404-lead{font-size:14px;line-height:1.9;color:var(--ink-mid);margin-top:14px;}
.kq404-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:stretch;margin-top:32px;}
/* 均等な2ボタン：主＝塗り、副＝アウトライン。どちらも同じ高さ・字面で対等に見せる。 */
.kq404-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--jp);font-weight:700;font-size:14px;padding:14px 26px;border:1.5px solid transparent;transition:background .15s,color .15s,border-color .15s;}
.kq404-btn svg{flex-shrink:0;}
/* 色は2クラスで指定（リセットの .kqx a{color:inherit} に特異度で勝たせ、白/緑を確実に効かせる）。 */
.kq404-btn.kq404-btn-primary{background:var(--g);border-color:var(--g);color:#fff;}
.kq404-btn.kq404-btn-primary:hover{background:var(--g-deep);border-color:var(--g-deep);color:#fff;}
.kq404-btn.kq404-btn-ghost{background:#fff;border-color:var(--sage-line);color:var(--g);}
.kq404-btn.kq404-btn-ghost:hover{background:var(--sage-soft);border-color:var(--g);color:var(--g-deep);}
@media (max-width:680px){
  .kq404-actions{flex-direction:column;}
  .kq404-btn{width:100%;}
}

/* 下層ページのレスポンシブ */
@media (max-width:1000px){
  .art{grid-template-columns:1fr;}
  /* スマホ・タブレットでは1カラムなのでサイドバー追随を解除（通常フロー） */
  .art>aside{position:static;}
  .people-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:680px){
  .art-title{font-size:24px;}
  .art-lead{font-size:16px;}
  .evd-title{font-size:23px;}
  .cslide{height:260px;}
  .art-dl-row{grid-template-columns:96px 1fr;gap:10px;padding:11px 14px;}
  .people-grid{grid-template-columns:repeat(2,1fr);gap:22px 16px;}
  .acard{gap:14px;padding:16px 0;}
  .acard h3{font-size:16px;}
  .acard-thumb{width:104px;height:74px;}
  .sech{margin:34px 0 18px;}
  .cell{min-height:62px;padding:4px 4px;}
  .cell .dn{font-size:12px;}
  .emarks{gap:3px;margin-top:4px;}
  .echip{height:15px;padding:0 4px;font-size:9.5px;}
  .echip .n{font-size:9.5px;}
  .trow .tthumb{width:104px;height:72px;}
  .trow h3{font-size:16px;}
  .arch-hd h1,.srch-hd h1{font-size:23px;}
}

/* =================================================================
   モーダル（検索 / エリア選択）。ヘッダーの検索アイコン・エリアピルから開く。
   トップの新テキストデザインに準拠：スラッシュ見出し・緑/セージ・スキューボタン。
   PC=中央オーバーレイ、スマホ=ボトムシート。
   ================================================================= */
.kqx-overlay{position:fixed;inset:0;background:rgba(15,22,12,.46);z-index:80;display:flex;align-items:center;justify-content:center;padding:24px;animation:kqx-fade .18s ease;}
.kqx-overlay[hidden]{display:none;}
@keyframes kqx-fade{from{opacity:0;}to{opacity:1;}}
.kqx-modal{position:relative;background:#fff;width:100%;max-width:460px;max-height:88vh;overflow-y:auto;border-top:3px solid var(--ink);padding:0 0 26px;animation:kqx-pop .22s cubic-bezier(.2,.7,.3,1);}
@keyframes kqx-pop{from{opacity:0;transform:translateY(16px) scale(.985);}to{opacity:1;transform:translateY(0) scale(1);}}
.kqx-modal-close{position:absolute;top:10px;right:10px;width:34px;height:34px;border:none;background:none;font-size:24px;line-height:1;color:var(--ink-soft);cursor:pointer;}
.kqx-modal-close:hover{color:var(--g-deep);}
.kqx-modal-head{display:flex;align-items:flex-start;gap:12px;padding:24px 22px 16px;border-bottom:1px solid var(--line);}
.kqx-modal-head .slash-bars{margin-top:4px;}
.kqx-modal-title{font-family:var(--jp);font-weight:900;font-size:19px;color:var(--ink);letter-spacing:.01em;}
.kqx-modal-sub{font-size:12px;color:var(--ink-soft);line-height:1.65;margin-top:5px;}
/* エリア選択 */
.kqx-modal-list{display:flex;flex-direction:column;gap:8px;padding:18px 22px 4px;}
.kqx-modal-item{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);background:#fff;padding:13px 15px;cursor:pointer;font:inherit;text-align:left;transition:border-color .15s,background .15s;}
.kqx-modal-item:hover{border-color:var(--sage-line);background:var(--sage-soft);}
.kqx-modal-item.sel{border-color:var(--g);background:var(--sage-soft);}
.kqx-item-name{flex:1;font-family:var(--jp);font-weight:700;font-size:14px;color:var(--ink);}
.kqx-check{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line);flex-shrink:0;}
.kqx-modal-item.sel .kqx-check{background:var(--g) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6l3 3 5-5' stroke='white' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center/11px no-repeat;border-color:var(--g);}
/* 検索フォーム */
.kqx-search-form{padding:18px 22px 20px;}
.kqx-field{margin-bottom:14px;}
.kqx-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.kqx-label{display:block;font-family:var(--jp);font-weight:700;font-size:11.5px;color:var(--ink-soft);margin-bottom:6px;}
.kqx-inputwrap{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:10px 13px;}
.kqx-inputwrap:focus-within{border-color:var(--g);}
.kqx-search-icon{color:var(--ink-soft);flex-shrink:0;}
.kqx-inputwrap input{flex:1;border:none;outline:none;background:none;font-family:var(--body);font-size:14px;color:var(--ink);min-width:0;}
/* iOS Safari は select を角丸＋独自意匠で描くため、appearance を消して Android と同じ四角に統一。
   ネイティブの矢印も消えるので SVG の矢印を背景で付与する。 */
.kqx-select{-webkit-appearance:none;appearance:none;width:100%;border:1px solid var(--line);border-radius:0;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2371806e' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 13px center;padding:10px 34px 10px 13px;font-family:var(--body);font-size:14px;color:var(--ink);cursor:pointer;}
.kqx-select:focus{outline:none;border-color:var(--g);}
/* 検索モーダル：市区町村（エリア）索引ページ /area/ への誘導リンク */
.kqx-submit{margin-top:6px;width:100%;border:none;cursor:pointer;background:var(--g);color:#fff;font-family:var(--jp);font-weight:700;font-size:14px;padding:13px;transform:skewX(-10deg);}
.kqx-submit:hover{background:var(--g-deep);}
.kqx-submit>span{display:inline-block;transform:skewX(10deg);}
/* 検索ボタンの下：1px の区切り線（上下に余白）＋ 送信ボタンと同型のセカンダリボタンで
   エリア索引（/area/）へ誘導。緑塗りの送信と区別するため塗りは控えめ（セージ）。 */
.kqx-more{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);}
.kqx-more .kqx-arealink{display:block;width:100%;text-align:center;cursor:pointer;background:var(--sage-soft);border:1.5px solid var(--sage-line);color:var(--g-deep);font-family:var(--jp);font-weight:700;font-size:14px;padding:11px;transform:skewX(-10deg);transition:background .15s,border-color .15s,color .15s;}
.kqx-more .kqx-arealink:hover{background:var(--g);border-color:var(--g);color:#fff;}
.kqx-more .kqx-arealink>span{display:inline-block;transform:skewX(10deg);}

@media (max-width:680px){
  .kqx-overlay{align-items:flex-end;padding:0;}
  .kqx-modal{max-width:100%;max-height:92vh;border-top:3px solid var(--g);animation:kqx-up .26s cubic-bezier(.2,.7,.3,1);}
  @keyframes kqx-up{from{opacity:.4;transform:translateY(100%);}to{opacity:1;transform:translateY(0);}}
}

/* 横スクロール領域：タッチ慣性＋マウスドラッグ中のカーソル/選択制御 */
.nav .wrap,.gcard-row{-webkit-overflow-scrolling:touch;}
.nav .wrap.kqx-dragging,.gcard-row.kqx-dragging{cursor:grabbing;user-select:none;scroll-behavior:auto;}
.gcard-row.kqx-dragging a{pointer-events:none;}
