/*
  File   : /css/archive-term.css
  Title  : archive-term styles（region term / sidebar / quick filter / random photo / region Lv1）
  Version: 1.4（Refactor：共通トークン化＋重複整理／見た目維持）
  Created: 2026-01-05 JST
  Updated: 2026-01-29 JST
*/

/* ==========================================================
   Common tokens（archive-term.css 共通化）
   ========================================================== */
:root{
  /* Facility Card UI（既存） */
  --r2-blue-border: rgba(11, 94, 215, .18);
  --r2-blue-bg-hover: rgba(11, 94, 215, .06);

  /* link-card / events-card 共通トーン */
  --r2-card-bd: rgba(0,0,0,.10);
  --r2-card-bd-hover: rgba(0,0,0,.16);
  --r2-card-bg: rgba(0,0,0,.02);
  --r2-card-bg-hover: rgba(0,0,0,.04);
  --r2-card-radius: 10px;
  --r2-card-shadow-hover: 0 4px 14px rgba(0,0,0,.06);
  --r2-card-move: -1px;
  --r2-card-gap: 8px;

  /* thumb */
  --r2-thumb-ratio: 4 / 3;
  --r2-thumb-bg: #f3f3f3;

  /* hover link tone */
  --r2-link-hover: #0B66C3;
}

/* 共通：カード（最近の投稿 / イベントカード） */
.tax-region :is(
  .p-region-level1__recentItem,
  .p-region-level2__recentItem,
  .p-region-events__card
){
  border: 1px solid var(--r2-card-bd);
  border-radius: var(--r2-card-radius);
  background: var(--r2-card-bg);
  transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease, border-color .12s ease;
}
.tax-region :is(
  .p-region-level1__recentItem,
  .p-region-level2__recentItem,
  .p-region-events__card
):hover{
  background: var(--r2-card-bg-hover);
  border-color: var(--r2-card-bd-hover);
  transform: translateY(var(--r2-card-move));
  box-shadow: var(--r2-card-shadow-hover);
}

/* 共通：サムネ枠（containで全体表示） */
.tax-region :is(
  .p-region-level1__photoThumb,
  .p-region-level2__photoThumb,
  .p-photoRelated__item > a,
  .p-region-gallery__thumb
){
  aspect-ratio: var(--r2-thumb-ratio);
  background: var(--r2-thumb-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* 共通：サムネ画像（枠の中に収める） */
.tax-region :is(
  .p-region-level1__photoImg,
  .p-region-level2__photoImg,
  .p-photoRelated__item img,
  .p-region-gallery__img
){
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain !important;
  display: block;
}

/* ==========================================================
   第4階層：クイック絞り込み（条件検索）
   ========================================================== */
.tax-region .p-region-level4 .p-region-events__quick {
  background: rgba(0, 0, 0, 0.03);
  border-radius: 8px;
  padding: 0.6em 0.8em;
  margin: 0.8em 0 1.4em;
}

.tax-region .p-region-level4 .p-region-events__quick .c-btn--thin {
  font-size: 0.9em;
  padding: 0.4em 0.8em;
  border-color: rgba(0, 0, 0, 0.25);
  color: #0b5ed7;
  background: #fff;
}

.tax-region .p-region-level4 .p-region-events__quick .c-btn--thin:hover {
  background: rgba(11, 94, 215, 0.08);
  color: #0b5ed7;
}

.tax-region .p-region-level4 .p-region-events > .c-secTitle {
  margin-bottom: 0.6em;
}

/* ==========================================================
   親リンク（上位階層への導線）
   ========================================================== */
.tax-region .p-region-parentLink {
  font-size: 0.9em;
  color: #555;
}

.tax-region .p-region-parentNav {
  margin-top: 0.3em;
}

.tax-region .p-region-parentNav .c-btn {
  color: #444;
  border-color: rgba(0,0,0,.25);
  background: transparent;
}

.tax-region .p-region-parentNav .c-btn:hover {
  background: rgba(0,0,0,.04);
}

/* ==========================================================
   第1階層（地方）サイドバー
   ========================================================== */
.tax-region .r2-sidebox{
  padding: 14px 14px;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 10px;
  margin-bottom: 18px;
  background: rgba(0,0,0,.02);
}

.tax-region .r2-sidebox__title{
  font-size: 1.02em;
  margin: 0 0 10px;
  font-weight: 600;
  letter-spacing: .02em;
}

.tax-region .r2-sidebox__list{
  margin: 0;
  padding-left: 1.2em;
  list-style: disc;
  list-style-position: outside;
}

.tax-region .r2-sidebox__list li{
  margin: 0 0 6px;
  line-height: 1.6;
}

.tax-region .r2-sidebox__note{
  margin: 10px 0 0;
  font-size: .92em;
  opacity: .85;
}

.tax-region .r2-sidebox a{
  text-decoration: none;
}

.tax-region .r2-sidebox a:hover{
  text-decoration: underline;
}

/* =========================================================
   Region term: random photo (Top Hero)
   ※ここは背景画像的な役割のため、あえて cover のまま維持
========================================================= */
.tax-region .p-termBackPhoto{
  margin: 12px 0 18px;
  width: 100%;
}

.tax-region .p-termBackPhoto__ttl{
  font-weight: 700;
  margin: 0 0 8px;
}

.tax-region .p-termBackPhoto__a{
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 1px 10px rgba(0,0,0,.06);
}

.tax-region .p-termBackPhoto__img{
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover; /* ここは全体の雰囲気を出すため切り抜きを維持 */
}

.tax-region .p-termBackPhoto__wm{
  position: absolute;
  right: 10px;
  bottom: 10px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.35;
  border-radius: 10px;
  background: rgba(0,0,0,.42);
  color: rgba(255,255,255,.92);
  text-shadow: 0 1px 2px rgba(0,0,0,.45);
  pointer-events: none;
  text-align: right;
  max-width: 78%;
}

@media (min-width: 768px){
  .tax-region .p-termBackPhoto{
    width: 85%;
    margin-left: auto;
    margin-right: auto;
  }
}

/* =========================================================
   region Lv1（地方）
========================================================= */
.tax-region .p-region-level1{
  margin: 2.0em 0;
  line-height: 1.6;
}

.tax-region .p-region-level1__list{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: .8em 1em;
  list-style: none;
  padding: 0;
  margin: 0;
}

.tax-region .p-region-level1__btn{
  display: block;
  padding: .8em 1em;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 10px;
  text-align: center;
  text-decoration: none;
  line-height: 1.35;
}

.tax-region .p-region-level1__photos{
  margin: 1.6em 0 0;
}

.tax-region .p-region-level1__photoList{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: .7em;
  list-style: none;
  padding: 0;
  margin: 0;
}

.tax-region .p-region-level1__photoItem{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 10px;
  overflow: hidden;
}

/* ==========================================================
   region Lv2（都道府県）
   ========================================================== */
.tax-region .p-region-level2 {
  margin: 2.5em 0;
}

.tax-region .p-region-level2__cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1.2em;
}

.tax-region .p-region-level2__card {
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  padding: 1.2em;
}

.tax-region .p-region-level2__photoList {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 1em;
  list-style: none;
  margin: .8em 0 0;
  padding: 0;
}

/* ======================================================================
   Photo Related（同じ場所の写真） / 共通パーツ
====================================================================== */
.tax-region .p-photoRelated__list,
.p-region-gallery .gallery-list { /* my_region_gallery想定 */
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: .8em;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tax-region .p-photoRelated__item{
  margin: 0;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  overflow: hidden;
}

.tax-region .p-photoRelated__title{
  display: block;
  padding: .6em .75em;
  margin: 0;
  font-size: .92em;
  line-height: 1.4;
}

/* ==========================================================
   region: タイトル直下の戻るリンク
   ========================================================== */
.tax-region .p-termBackLink{
  margin: .35em 0 .7em;
  font-size: .95em;
}

.tax-region .p-termBackLink__a{
  text-decoration: none;
}

.tax-region .p-termBackLink__a:hover{
  text-decoration: underline;
}

/* ==========================================================
   Pager / Facility Card / Events / AI Links
   ※これらは既存コードのまま維持（変更なし）
   ========================================================== */

/* Pager */
.r2-pager{ margin: 1.2em 0 0; }
.r2-pager__list{
  list-style:none; margin:0; padding:0;
  display:flex; flex-wrap:wrap; gap:.45em; justify-content:center; align-items:center;
}
.r2-pager .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  height: 2.25em; min-width: 2.25em; padding: 0 .65em;
  border-radius: 999px; border: 1px solid rgba(0,0,0,.12); background: #fff;
  font-size: .95em; line-height: 1; text-decoration:none;
}
.r2-pager a.page-numbers{ color:#333; }
.r2-pager span.page-numbers.current{ background: #0b5ed7; border-color: #0b5ed7; color: #fff; font-weight: 700; }

/* Facility Card UI */
.tax-region .p-region-gallery__item--facility,
.tax-region .p-region-view-facility__item{
  border: 1px solid var(--r2-blue-border) !important;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 6px rgba(0,0,0,.04);
  transition: all .15s ease;
}
.tax-region .p-region-gallery__item--facility:hover,
.tax-region .p-region-view-facility__item:hover{
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(0,0,0,.10);
  background: var(--r2-blue-bg-hover);
}

/* Lv4 Events Grid（既存互換：gap を共通トーンへ寄せる） */
.tax-region .p-region-level4 .p-region-events__grid,
.tax-region .p-region-level4 .p-region-events > ul {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--r2-card-gap);
  margin-top: .9em;
  padding: 0;
  list-style: none;
}

/* AI Region Links */
.tax-region .p-ai-region-links .ai-region-links-header{
  display: flex; align-items: center; justify-content: space-between; gap: .9em; flex-wrap: wrap;
}
.tax-region .p-ai-region-links .ai-region-links-all{
  display: inline-flex; align-items: center; justify-content: center;
  padding: .72em 1.15em; border-radius: 10px;
  background: #0b5ed7; color: #fff; font-weight: 700;
  text-decoration: none; transition: all .15s ease;
}

/* ==========================================================
   ギャラリー（grid / card / body / title）
   ※thumb / img は共通ブロックへ集約
   ========================================================== */

/* ギャラリーのグリッド設定 */
.p-region-gallery__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: .8em;
}

/* 各アイテムのカード装飾 */
.p-region-gallery__item {
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.p-region-gallery__link {
  display: block;
  text-decoration: none;
  color: inherit;
}

/* タイトル部分 */
.p-region-gallery__body {
  padding: .6em .75em;
}

.p-region-gallery__title {
  margin: 0;
  font-size: .92em;
  line-height: 1.4;
  font-weight: 700;
}

/*======================================================================
  Target : Region「最近の投稿」（Lv1/Lv2）
  Match  : home.php「見られているページから案内」リンク行カード
  File   : /css/archive-term.css
  Version: 1.0
  Created: 2026-01-29 JST
  Updated: 2026-01-29 JST
======================================================================*/

/* リスト：トップの gap に合わせる */
.p-region-level1__recentList,
.p-region-level2__recentList{
  list-style: none;
  padding-left: 0;
  margin: .6em 0 0;
  display: grid;
  gap: var(--r2-card-gap);
}

/* 1件：カード風（枠/背景/hover は共通カードへ集約） */
.p-region-level1__recentItem,
.p-region-level2__recentItem{
  padding: .42em .85em;
}

/* タイトルリンク：リンク行の“主役”にする */
.p-region-level1__recentTitle,
.p-region-level2__recentTitle{
  display: flex;
  align-items: center;
  gap: .55em;
  text-decoration: none;
  font-size: .94em;
  line-height: 1.35;
  margin: 0; /* 念のため */
}

/* 左に小さな矢印（案内感） */
.p-region-level1__recentTitle::before,
.p-region-level2__recentTitle::before{
  content: "→";
  opacity: .65;
  flex: 0 0 auto;
  line-height: 1;
}

/* visited を紫にしない（トップと同じ） */
.p-region-level1__recentTitle:visited,
.p-region-level2__recentTitle:visited{
  color: inherit;
}

/* フォーカス可視（トップと同じ） */
.p-region-level1__recentTitle:focus-visible,
.p-region-level2__recentTitle:focus-visible{
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

/* メタ（種別・日付）：控えめ + タイトルの矢印位置に揃える */
.p-region-level1__recentMeta,
.p-region-level2__recentMeta{
  display: flex;
  gap: .8em;
  align-items: baseline;
  font-size: .82em;
  opacity: .78;
  margin: 0 0 .25em;
  padding-left: 1.1em; /* タイトルの "→" 幅ぶん揃える */
}

/*======================================================================
  Target : /parts/region/region-event-gallery.php
  Policy : inline style撤去 → classで統一（トップ「案内リンク行」トーン寄せ）
  File   : /css/archive-term.css
  Version: 1.0
  Created: 2026-01-29 JST
  Updated: 2026-01-29 JST
======================================================================*/

.p-region-events{
  margin-bottom: 2.2em;
}

/* 見出し行 */
.p-region-events__head{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .8em;
}
.p-region-events__title{
  margin: 0;
}
.p-region-events__more{
  margin: .2em 0;
}

/* 一覧レイアウト */
.p-region-events__list--grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--r2-card-gap);
}
.p-region-events__list--stack{
  display: grid;
  gap: var(--r2-card-gap);
}

/* カード（枠/背景/hover は共通カードへ集約） */
.p-region-events__card{
  overflow: hidden;
}

/* リンク */
.p-region-events__link{
  display: block;
  text-decoration: none;
  color: inherit;
}
.p-region-events__link:visited{ color: inherit; }
.p-region-events__link:focus-visible{
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

/* textカード（サムネ無し） */
.p-region-events__link--pad{
  padding: .42em .85em; /* 縦詰め */
}

/* サムネあり body */
.p-region-events__body{
  padding: .9em 1em;
}

/* タイトル（矢印付与で“案内感”） */
.p-region-events__cardTitle{
  margin: 0 0 .25em;
  font-size: .94em;
  line-height: 1.35;
}
.p-region-events__cardTitle::before{
  content: "→";
  opacity: .65;
  margin-right: .55em;
}

/* メタ（📅/📍） */
.p-region-events__meta{
  margin: .2em 0;
  font-size: .92em;
  opacity: .85;
  line-height: 1.35;
}

/* 抜粋 */
.p-region-events__excerpt{
  margin: .55em 0 0;
  font-size: .92em;
  opacity: .9;
  line-height: 1.35;
}

/* ==========================================================
   hover時のリンク色（共通）
   ========================================================== */
.tax-region .p-region-level1__recentItem:hover .p-region-level1__recentTitle,
.tax-region .p-region-level2__recentItem:hover .p-region-level2__recentTitle,
.tax-region .p-region-events__card:hover .p-region-events__link{
  color: var(--r2-link-hover);
}

/* ==========================================================
   region view=photo（地域に絞った写真一覧ビュー）
   Added: 2026-01-29 JST
   ========================================================== */
.tax-region .p-region-view-photo {
  margin-top: 1.8em;
}

.tax-region .p-region-view-photo__filter {
  margin: 0 0 1.2em;
}

.tax-region .p-region-view-photo__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .8em;
  justify-content: space-between;
}

.tax-region .p-region-view-photo__title {
  margin: 0;
}

.tax-region .p-region-view-photo__nav {
  display: flex;
  flex-wrap: wrap;
  gap: .6em;
}

.tax-region .p-region-view-photo__count {
  margin: .6em 0 1.2em;
  opacity: .92;
}

.tax-region .p-region-view-photo__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: .8em;
}

.tax-region .p-region-view-photo__item {
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 10px;
  overflow: hidden;
}

.tax-region .p-region-view-photo__link {
  display: block;
  text-decoration: none;
  color: inherit;
}

.tax-region .p-region-view-photo__img {
  width: 100%;
  height: auto;
  display: block;
}

.tax-region .p-region-view-photo__thumb--empty {
  padding: 2.2em 1em;
  text-align: center;
  opacity: .75;
}

.tax-region .p-region-view-photo__meta {
  padding: .75em .9em;
}

.tax-region .p-region-view-photo__itemTitle {
  margin: 0 0 .25em;
  font-size: 1em;
  line-height: 1.35;
}

.tax-region .p-region-view-photo__date {
  margin: 0;
  opacity: .85;
  font-size: .92em;
}

.tax-region .p-region-view-photo__pagination {
  margin: 1.2em 0 0;
}

.tax-region .p-region-view-photo__cta {
  margin-top: 1.0em;
  padding: 1em;
  border: 1px dashed rgba(0,0,0,.18);
  border-radius: 10px;
}

.tax-region .p-region-view-photo__ctaText {
  margin: 0 0 .8em;
}

