@charset "utf-8";
/* ==========================================================
   CMS 公開ページ標準CSS（list.htm / item.htm / preview.htm）2026-10
   - .cmsx の中だけに効く。書体・文字色はサイト側を引き継ぐ
   - サイトごとの調整は、このファイルの後に次の変数だけ書く：
       .cmsx{
         --cms-accent: #1F6F8B;   リンク・カテゴリ・ボタンの色
         --cms-cols: 3;           カード一覧の列数（PC）
         --cms-thumb: 4/3;        一覧サムネイルの縦横比（1/1、16/9 など）
         --cms-photo-w: 45%;      記事ページで右に置く写真の幅
         --cms-grid-cols: 4;      写真投稿の列数（PC。タブレットは3、スマホは2）
       }
   - 一覧の形：list.htm の入れ物のクラス cms-cards（カード）／cms-mlist（写真付きリスト）／cms-list（文字だけ）
   旧 simpleitem.css / simplelist.css は使わない
   ========================================================== */
.cmsx{
  --cms-accent:#1F6F8B;
  --cms-new:#D0452B;
  --cms-text:inherit;
  --cms-muted:#6B6B6B;
  --cms-line:#E3E3E3;
  --cms-tint:#F5F5F3;
  --cms-radius:6px;
  --cms-cols:3;
  --cms-thumb:4/3;
  --cms-photo-w:45%;
  --cms-grid-cols:4;
  --cms-max:884px;
  color:var(--cms-text);line-height:1.85;font-size:15px;
  max-width:1180px;margin:0 auto;padding:24px 20px 48px;
}
.cmsx *,.cmsx *::before,.cmsx *::after{box-sizing:border-box}
.cmsx a{color:var(--cms-accent)}
.cmsx img{max-width:100%;height:auto;display:block;border:0}
.cmsx h1,.cmsx h2,.cmsx h3,.cmsx p,.cmsx ul,.cmsx figure{margin:0}

/* パンくず・ページ見出し */
.cmsx .cms-bread{font-size:12px;color:var(--cms-muted);margin:0 0 14px;display:flex;flex-wrap:wrap;gap:4px;list-style:none;padding:0}
.cmsx .cms-bread a{color:var(--cms-muted);text-decoration:none}
.cmsx .cms-bread a:hover{text-decoration:underline}
.cmsx .cms-bread a::after{content:"›";margin-left:6px}
.cmsx .cms-pagetitle{font-size:24px;margin:0 0 18px;line-height:1.4;text-wrap:balance}

/* 日付・カテゴリ・NEW */
.cmsx .cms-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.cmsx .cms-date{font-size:13px;color:var(--cms-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.cmsx .cms-cat{display:inline-block;font-size:11.5px;line-height:1.6;padding:1px 10px;border-radius:999px;border:1px solid var(--cms-accent);color:var(--cms-accent);white-space:nowrap}
.cmsx .cms-new{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.06em;color:#fff;background:var(--cms-new);border-radius:3px;padding:0 6px;line-height:1.7}

/* カテゴリで絞り込み */
.cmsx .cms-filter{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px;padding:0;list-style:none}
.cmsx .cms-filter a{display:block;text-decoration:none;font-size:13px;padding:4px 14px;border-radius:999px;border:1px solid var(--cms-line);color:inherit}
.cmsx .cms-filter a:hover{border-color:var(--cms-accent);color:var(--cms-accent)}
.cmsx .cms-filter a[aria-current="page"]{background:var(--cms-accent);border-color:var(--cms-accent);color:#fff}

/* ---------- 一覧 ---------- */
/* 文字だけ */
.cmsx .cms-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--cms-line)}
.cmsx .cms-list li{border-bottom:1px solid var(--cms-line)}
.cmsx .cms-list a{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:4px 14px;align-items:baseline;padding:14px 4px;text-decoration:none;color:inherit}
.cmsx .cms-list a:hover .cms-ttl{color:var(--cms-accent);text-decoration:underline}
/* 写真付きリスト */
.cmsx .cms-mlist{display:flex;flex-direction:column;border-top:1px solid var(--cms-line)}
.cmsx .cms-mlist .cms-item{display:grid;grid-template-columns:200px minmax(0,1fr);gap:18px;padding:18px 0;border-bottom:1px solid var(--cms-line)}
/* カード */
.cmsx .cms-cards{display:grid;grid-template-columns:repeat(var(--cms-cols),minmax(0,1fr));gap:28px 20px}
.cmsx .cms-cards .cms-item{display:flex;flex-direction:column;gap:10px}
/* 共通 */
.cmsx .cms-item{text-decoration:none;color:inherit;min-width:0}
.cmsx .cms-item .cms-body{display:flex;flex-direction:column;gap:6px;min-width:0}
.cmsx .cms-item h3{font-size:16px;line-height:1.5;text-wrap:balance;transition:color .15s;word-break:break-word}
.cmsx .cms-item:hover h3{color:var(--cms-accent)}
.cmsx .cms-item p{font-size:13.5px;color:var(--cms-muted);line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cmsx .cms-thumb{position:relative;aspect-ratio:var(--cms-thumb);max-width:100%;overflow:hidden;border-radius:var(--cms-radius);background:var(--cms-tint)}
.cmsx .cms-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.cmsx .cms-item:hover .cms-thumb img{transform:scale(1.04)}
.cmsx .cms-thumb.nophoto::after{content:"NO IMAGE";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;letter-spacing:.12em;color:var(--cms-muted)}
.cmsx .cms-empty{padding:40px 0;text-align:center;color:var(--cms-muted)}

/* ボタン・ページ送り */
.cmsx .cms-pager{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:28px 0 0}
.cmsx .cms-btn{display:inline-flex;align-items:center;gap:6px;text-decoration:none;border:1px solid var(--cms-accent);color:var(--cms-accent);border-radius:999px;padding:6px 20px;font-size:13.5px;line-height:1.6;background:transparent;transition:background .15s,color .15s}
.cmsx .cms-btn:hover{background:var(--cms-accent);color:#fff}

/* ---------- 記事ページ ---------- */
.cmsx .cms-article{max-width:var(--cms-max);margin:0 auto;display:grid;grid-template-columns:repeat(var(--cms-grid-cols),minmax(0,1fr));column-gap:14px}
.cmsx .cms-article > *{grid-column:1/-1;min-width:0}
.cmsx .cms-head{border-bottom:2px solid var(--cms-accent);padding-bottom:12px;margin-bottom:24px}
.cmsx .cms-head h1{font-size:24px;line-height:1.45;margin-top:8px;text-wrap:balance}
.cmsx .cms-sec{margin:0 0 32px}
.cmsx .cms-sec::after{content:"";display:block;clear:both}
.cmsx .cms-sec h2{font-size:18px;line-height:1.5;margin:0 0 12px;padding-left:12px;border-left:4px solid var(--cms-accent)}
.cmsx .cms-sec p{word-break:break-word}
.cmsx .cms-fig{float:right;width:var(--cms-photo-w);margin:4px 0 12px 24px}
.cmsx .cms-fig a,.cmsx .cms-grid a{display:block;border-radius:var(--cms-radius);overflow:hidden;cursor:zoom-in}
.cmsx .cms-fig img{width:100%}
/* 文章のない段（写真だけ）は回り込ませずに幅いっぱい */
.cmsx .cms-fig:only-child{float:none;width:100%;margin:0}
/* 段落投稿で文章のない段が続く時は、写真投稿と同じように横に並べる（2段目以降。:has 非対応のブラウザでは幅いっぱいのまま） */
.cmsx .cms-article > .cms-sec:not(:first-of-type):has(> .cms-fig:only-child){grid-column:auto;margin-bottom:14px;padding:0}
.cmsx .cms-article > .cms-sec:not(:first-of-type):has(> .cms-fig:only-child) .cms-fig a{aspect-ratio:1/1;background:var(--cms-tint)}
.cmsx .cms-article > .cms-sec:not(:first-of-type):has(> .cms-fig:only-child) .cms-fig img{height:100%;object-fit:cover}
.cmsx .cms-pagetitle,.cmsx .cms-head h1,.cmsx .cms-sec h2{text-align:left}
.cmsx figcaption{font-size:12.5px;color:var(--cms-muted);margin-top:6px;line-height:1.6}
/* 写真投稿（写真グリッド） */
/*  列数：PC 4（--cms-grid-cols）／タブレット 3／スマホ 2 */
.cmsx .cms-grid{display:grid;grid-template-columns:repeat(var(--cms-grid-cols),minmax(0,1fr));gap:14px;margin:0 0 32px}
@media (max-width:839px){.cmsx .cms-grid,.cmsx .cms-article{grid-template-columns:repeat(3,minmax(0,1fr))}}
.cmsx .cms-grid a{aspect-ratio:1/1;background:var(--cms-tint)}
.cmsx .cms-grid img{width:100%;height:100%;object-fit:cover}
/* 動画・地図 */
.cmsx .cms-embed{display:block;margin:16px 0;border-radius:var(--cms-radius);overflow:hidden;background:var(--cms-tint);clear:both}
.cmsx .cms-embed iframe{display:block;width:100%;height:auto;border:0}
.cmsx .cms-embed-video iframe{aspect-ratio:16/9}
.cmsx .cms-embed-map iframe{aspect-ratio:4/3;max-height:420px}
.cmsx .cms-embed-tail{margin:0 0 32px}
/* 添付ファイル */
.cmsx .cms-files{background:var(--cms-tint);border-radius:var(--cms-radius);padding:16px 18px;margin:0 0 32px}
.cmsx .cms-files h2{font-size:14px;margin:0 0 8px}
.cmsx .cms-files ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}
.cmsx .cms-files a{display:inline-flex;gap:8px;align-items:center;text-decoration:none}
.cmsx .cms-files a:hover .n{text-decoration:underline}
.cmsx .cms-files small{color:var(--cms-muted);margin-left:4px}
.cmsx .cms-ext{font-size:10.5px;font-weight:700;letter-spacing:.04em;color:#fff;border-radius:3px;padding:1px 6px;background:#777;flex:none;line-height:1.6}
.cmsx .cms-ext.pdf{background:#C8382B}
.cmsx .cms-ext.xls{background:#1E7145}
.cmsx .cms-ext.doc{background:#2B5797}
.cmsx .cms-ext.ppt{background:#C4512C}
.cmsx .cms-ext.zip{background:#7A6A3A}
.cmsx .cms-ext.img{background:#5B6E8C}
.cmsx .cms-footer{margin:0 0 32px}
/* 前後の記事 */
.cmsx .cms-nav{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center;border-top:1px solid var(--cms-line);padding-top:18px;font-size:13px}
.cmsx .cms-nav .prev,.cmsx .cms-nav .next{text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:2px;min-width:0}
.cmsx .cms-nav .next{text-align:right;grid-column:3}
.cmsx .cms-nav .mid{grid-column:2}
.cmsx .cms-nav small{color:var(--cms-muted)}
.cmsx .cms-nav .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmsx .cms-nav a.prev:hover .t,.cmsx .cms-nav a.next:hover .t{color:var(--cms-accent);text-decoration:underline}
/* 確認画面 */
.cmsx .cms-preview-bar{background:#C8382B;color:#fff;font-weight:700;font-size:13px;padding:8px 14px;border-radius:var(--cms-radius);margin:0 0 10px}

/* 写真の拡大表示（cms-info.js） */
.cms-lb{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.86);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;gap:10px}
.cms-lb[hidden]{display:none}
.cms-lb img{max-width:min(94vw,1400px);max-height:82vh;border-radius:4px;box-shadow:0 4px 30px rgba(0,0,0,.4)}
.cms-lb p{color:#eee;font-size:13px;margin:0;text-align:center;max-width:90vw}
.cms-lb button{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;width:44px;height:44px;border-radius:50%;font-size:22px;line-height:44px;cursor:pointer;padding:0}
.cms-lb button:hover{background:rgba(255,255,255,.3)}
.cms-lb .x{top:16px;right:16px}
.cms-lb .pv{left:16px;top:50%;margin-top:-22px}
.cms-lb .nx{right:16px;top:50%;margin-top:-22px}

/* ---------- スマホ ---------- */
@media (max-width:640px){
  .cmsx{padding:18px 16px 32px}
  .cmsx .cms-pagetitle,.cmsx .cms-head h1{font-size:20px}
  .cmsx .cms-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}
  .cmsx .cms-cards .cms-item h3{font-size:14px}
  .cmsx .cms-cards .cms-item p{display:none}
  .cmsx .cms-mlist .cms-item{grid-template-columns:110px minmax(0,1fr);gap:12px;padding:14px 0}
  .cmsx .cms-mlist .cms-item h3{font-size:14.5px}
  .cmsx .cms-mlist .cms-item p{font-size:12.5px}
  .cmsx .cms-list a{grid-template-columns:auto minmax(0,1fr);padding:12px 2px}
  .cmsx .cms-list .cms-ttl{grid-column:1/-1}
  .cmsx .cms-fig{float:none;width:100%;margin:0 0 12px}
  .cmsx .cms-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .cmsx .cms-article{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:10px}
  .cmsx .cms-nav{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .cmsx .cms-nav .next{grid-column:2}
  .cmsx .cms-nav .mid{grid-column:1/-1;grid-row:2;justify-self:center}
  .cms-lb .pv,.cms-lb .nx{top:auto;bottom:20px;margin-top:0}
}
@media (prefers-reduced-motion:reduce){.cmsx *{transition:none !important}}
