.gallery{
  position:relative;
  padding: var(--section-gap) 0;
  background: var(--base);
}
.gallery__inner{
  position:relative;
  max-width:var(--container);
  margin:0 auto;
  padding:0 clamp(1.25rem, 4vw, 2rem);
}
.gallery__head{ max-width:680px; margin:0 0 clamp(1.8rem, 3.5vw, 2.6rem); }
.gallery__eyebrow{
  font-family:var(--en); font-size:.95rem; letter-spacing:.18em; color:var(--accent);
}
.gallery__eyebrow::before{ content:"( "; }
.gallery__eyebrow::after{ content:" )"; }
.gallery__title{
  margin-top:.6rem;
  font-family:var(--serif); font-weight:500;
  font-size:clamp(1.6rem, 1.8vw + 1rem, 2.4rem);
  color:var(--ink); line-height:1.5; letter-spacing:.08em;
}
.gallery__lead{ margin-top:.9rem; color:var(--ink); line-height:1.85; font-size:var(--ts-lead); }

/* フィルター（タブ風・罫線） */
.gallery__controls{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1.6rem; }
.gallery__filter{
  border:1px solid var(--line);
  background:transparent;
  color:var(--ink-soft);
  font-family:var(--en); font-size:.9rem; letter-spacing:.08em;
  display:inline-flex; align-items:center; justify-content:center; min-height:44px;  /* タップ領域44px確保（旧40px） */
  padding:.5rem 1.3rem;
  cursor:pointer;
  transition:color .24s ease, border-color .24s ease, background .24s ease;
}
.gallery__filter:hover{ color:var(--ink); border-color:var(--ink-soft); }
.gallery__filter:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.gallery__filter.is-active{ background:var(--ink); color:var(--base); border-color:var(--ink); }

/* グリッド */
.gallery__grid{
  margin-top:clamp(1.8rem, 4vw, 2.6rem);
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:clamp(.9rem, 2vw, 1.4rem);
}
.gallery__item{
  position:relative;
  transition:opacity .38s ease, transform .38s ease;
}
.gallery__item.is-entering{ opacity:0; transform:scale(.97); }
.gallery__item.is-leaving{ opacity:0; transform:scale(.97); pointer-events:none; }
.gallery__item.is-hidden{ display:none; }
.gallery__trigger{
  display:block; width:100%; border:none; padding:0; background:none;
  cursor:pointer; text-align:left;
}
.gallery__figure{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--base-2);
  aspect-ratio:4 / 3;
  margin:0;
  width:100%;
}
.gallery__figure picture,
.gallery__figure img,
.gallery__figure video{ display:block; width:100%; height:100%; }
.gallery__figure img,
.gallery__figure video{ object-fit:cover; }

/* キャプション（写真下に墨グラデの帯） */
.gallery__figcaption{
  position:absolute;
  left:0; right:0; bottom:0;
  display:flex;
  flex-direction:column;
  gap:.3rem;
  padding:1.6rem 1.1rem .9rem;
  color:var(--base);
  background:linear-gradient(to top, color-mix(in srgb, var(--ink) 74%, transparent), transparent);
}
.gallery__tag{
  align-self:flex-start;
  font-family:var(--en); font-size:.72rem; letter-spacing:.12em;
  color:var(--base); opacity:.85;
}
.gallery__text{ font-size:.98rem; font-weight:500; letter-spacing:.04em; }

/* ホバーオーバーレイ（拡大アイコン） */
.gallery__overlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:color-mix(in srgb, var(--ink) 34%, transparent);
  opacity:0;
  transition:opacity .3s ease;
}
.gallery__icon{ width:40px; height:40px; color:var(--base); }
.gallery__trigger:hover .gallery__overlay,
.gallery__trigger:focus-visible .gallery__overlay{ opacity:1; }
.gallery__trigger:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }

/* --- ギャラリー・ハイブリッドナビ（PC≥960・pointer:fine・非reduced-motion時にJSが .gallery--nav を付与。
       左=大型タイポ行（罫線ホバー・縦操縦）／右=固定プレビュー面（常時1枚を大きく安定表示）。
       条件を満たさない環境ではグリッドのまま＝フォールバック） --- */
.gallery--nav .gallery__grid{
  display:flex; gap:clamp(24px, 4vw, 56px); align-items:stretch;
  position:relative;
  height:min(72vh, 600px);   /* 箱を固定＝CLSゼロ・この中で左列が操縦される */
  overflow:hidden;
}
.gallery--nav .gallery__navcol{ flex:1 1 54%; min-width:0; position:relative; overflow:hidden; }
.gallery--nav .gallery__navlist{ position:relative; will-change:transform; }
.gallery--nav .gallery__item{ position:relative; }
.gallery--nav .gallery__trigger{ position:relative; width:100%; }
.gallery--nav .gallery__row{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:clamp(12px, 1.6vw, 22px); row-gap:2px;
  padding:clamp(10px, 1.8vw, 20px) 2px;
  border-top:1px solid transparent; border-bottom:1px solid transparent;
  transition:border-color .25s ease;
}
.gallery--nav .gallery__row em{
  font-style:normal; font-family:var(--en); font-weight:500;
  font-size:clamp(1.9rem, 3.4vw, 3.4rem); line-height:1.12; letter-spacing:.02em;
  color:color-mix(in srgb, var(--ink) 32%, transparent);
  transition:color .25s ease;
  white-space:nowrap;
}
.gallery--nav .gallery__row small{
  font-family:var(--sans); font-size:13px; letter-spacing:.08em; color:var(--ink-soft);
}
.gallery--nav .gallery__trigger:hover .gallery__row,
.gallery--nav .gallery__trigger:focus-visible .gallery__row{
  border-top-color:var(--ink); border-bottom-color:var(--ink);
}
.gallery--nav .gallery__trigger:hover .gallery__row em,
.gallery--nav .gallery__trigger:focus-visible .gallery__row em{ color:var(--ink); }
/* プレビュー面（各itemのfigureをJSがここへ移設。is-activeの1枚をクロスフェード表示） */
.gallery--nav .gallery__navview{
  flex:1 1 46%; position:relative; align-self:center;
  aspect-ratio:4 / 3; max-height:100%;
  border:1px solid var(--line); background:var(--base-2);
  overflow:hidden;
}
.gallery--nav .gallery__navview .gallery__figure{
  position:absolute; inset:0; width:100%; height:100%;
  margin:0; border:none; aspect-ratio:auto;
  opacity:0; transition:opacity .35s ease;
  pointer-events:none;
}
.gallery--nav .gallery__navview .gallery__figure.is-active{ opacity:1; }
.gallery--nav .gallery__overlay{ display:none; }   /* ＋アイコンはトリガー外に出たため非表示（クリック誘導はカーソルで担保） */

/* モーダル */
.gallery__dialog{ border:none; padding:0; background:transparent; max-width:none; width:100%; overscroll-behavior:contain; }
.gallery__dialog::backdrop{ background:color-mix(in srgb, var(--ink) 60%, transparent); backdrop-filter:blur(4px); }
.gallery__dialog-inner{
  position:relative;
  margin:4vh auto;
  width:min(90vw, 920px);
  background:var(--base);
  border:1px solid var(--line);
  overflow:hidden;
  transform:translateY(18px) scale(.96);
  opacity:0;
  transition:transform .32s ease, opacity .32s ease;
}
.gallery__dialog[data-state="open"] .gallery__dialog-inner{ transform:translateY(0) scale(1); opacity:1; }
.gallery__dialog-close{
  position:absolute;
  top:12px; right:12px;
  width:44px; height:44px;
  border:1px solid var(--line);
  background:color-mix(in srgb, var(--ink) 72%, transparent);
  color:var(--base);
  font-size:1.6rem; line-height:1;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .24s ease;
}
.gallery__dialog-close:hover{ background:var(--ink); }
.gallery__dialog-close:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.gallery__dialog-figure{
  display:flex; flex-direction:column; gap:1.3rem;
  padding:clamp(1.4rem, 3vw, 2.2rem);
}
.gallery__dialog-picture{ display:block; }
.gallery__dialog-picture[hidden]{ display:none; }
.gallery__dialog-picture img{ width:100%; height:auto; border:1px solid var(--line); }
.gallery__dialog-video{
  width:100%;
  max-height:min(80vh, 640px);
  border:1px solid var(--line);
  background:#000;
  display:none;
  object-fit:cover;
}
.gallery__dialog-video.is-active{ display:block; }
.gallery__dialog-caption{ display:flex; flex-direction:column; gap:.4rem; color:var(--ink); }
.gallery__dialog-title{
  font-family:var(--serif); font-weight:500;
  font-size:1.3rem; letter-spacing:.06em; color:var(--ink);
}
.gallery__dialog-text{ color:var(--ink-soft); line-height:1.9; font-size:.92rem; }

@media (max-width:767px){
  .gallery__dialog-inner{ margin:8vh auto; width:min(94vw, 560px); }
  .gallery__dialog-figure{ padding:1.3rem; }
  .gallery__dialog-close{ top:10px; right:10px; width:44px; height:44px; }
}


/* =========================================================
   News Ticker (hero直下) — C案（フラット罫線）
========================================================= */
.p-news-ticker{
  max-width:var(--container);
  margin:clamp(1.2rem, 2.5vw, 2rem) auto 0;
  padding:0 clamp(1rem, 3vw, 2rem);
  animation:ticker-in .5s cubic-bezier(.22,1,.36,1) both;
}
@keyframes ticker-in{
  from{ opacity:0; transform:translateY(12px); }
  to{ opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion:reduce){
  .p-news-ticker{ animation:none; }
}
.p-news-ticker__link{
  display:flex; align-items:center; gap:clamp(.6rem, 1.4vw, 1rem);
  padding:.8rem 1.3rem;
  background:var(--base);
  border:1px solid var(--line);
  border-left:3px solid var(--accent);
  text-decoration:none;
  transition:border-color .25s ease, background .25s ease;
}
.p-news-ticker__link:hover,
.p-news-ticker__link:focus-visible{
  border-color:var(--accent);
  text-decoration:none;
}
.p-news-ticker__badge{
  flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  padding:.2rem .6rem; min-width:40px;
  font-family:var(--en); font-size:.66rem; font-weight:700; letter-spacing:.12em;
  color:var(--base); background:var(--accent);
  line-height:1.5; text-align:center;
}
.p-news-ticker__date{
  flex-shrink:0;
  font-family:var(--en); font-size:.82rem; letter-spacing:.08em;
  color:var(--ink); white-space:nowrap;
}
.p-news-ticker__title{
  flex:1; min-width:0;
  font-size:.88rem; color:var(--ink-soft); line-height:1.5;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.p-news-ticker__arrow{
  flex-shrink:0; width:24px; height:24px; position:relative;
}
.p-news-ticker__arrow::after{
  content:""; position:absolute; top:50%; left:50%;
  width:7px; height:7px;
  border-top:1.5px solid var(--accent); border-right:1.5px solid var(--accent);
  transform:translate(-60%,-50%) rotate(45deg);
}
@media (max-width:599px){
  .p-news-ticker{ padding:0 .8rem; }
  .p-news-ticker__link{ padding:.65rem .85rem; gap:.5rem; }
  .p-news-ticker__badge{ font-size:.6rem; padding:.15rem .5rem; min-width:34px; }
  .p-news-ticker__date{ font-size:.74rem; }
  .p-news-ticker__title{ font-size:.8rem; }
}

/* =========================================================
   News Section — C案（comp .news / note最新3件リスト）
========================================================= */
.news{ background:var(--base); padding:var(--section-gap) 0; }
.n-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; }
.n-head .h-ja{ margin:10px 0 0; }
.news ul{ margin-top:clamp(36px, 5vw, 50px); border-top:1px solid var(--line); list-style:none; padding:0; }
.news li a{ display:flex; gap:clamp(16px, 3vw, 30px); align-items:baseline; padding:22px 0; border-bottom:1px solid var(--line); font-size:var(--ts-body); color:var(--ink-body); }
.news li time{ font-family:var(--en); letter-spacing:.1em; flex:none; color:var(--ink); }
.news li a:hover{ color:var(--ink); text-decoration:none; }
/* Restore browsing functions within the shared illustrated field. */
.continuation>.gallery{background:transparent;padding:var(--space-section) var(--gutter)}.gallery__inner{width:100%;max-width:1250px;padding:0}.gallery__eyebrow{font:500 12px var(--sans);color:var(--accent)}.gallery__eyebrow::before,.gallery__eyebrow::after{content:none}.gallery__title{font-family:var(--heading)}.gallery__controls{margin:var(--l) 0 var(--m);position:relative;z-index:2}.gallery__filter{border-radius:30px;font:500 14px var(--sans);padding:12px 24px;border-color:var(--line);background:var(--base)}.gallery__filter.is-active{background:var(--sage-dark);color:var(--base);border-color:var(--sage-dark)}.gallery__grid{gap:var(--l);position:relative;z-index:1}.gallery__trigger{font-family:var(--sans);border-radius:10px;overflow:hidden;background:var(--base);padding:8px}.gallery__figure{border:0;border-radius:5px}.gallery__figcaption{font-family:var(--sans)}.gallery__tag{font-family:var(--sans)}.gallery__dialog{z-index:1500}.gallery__dialog-title{font-family:var(--heading)}.gallery__dialog-figure{border-radius:12px}.gallery__dialog-video{max-height:65vh;object-fit:contain}.gallery__dialog img{max-height:65vh;width:100%;height:auto;object-fit:contain}.gallery .scene-art{margin-bottom:calc(-1 * var(--m));height:240px}.access-details{min-width:0}.ac-map{display:block;width:100%;height:360px;border:1px solid var(--line);border-radius:12px;background:var(--base)}.map-link{display:inline-block;margin:var(--s) 0 var(--m);font-size:14px}.ac-grid{align-items:start}.continuation>.news{background:transparent}.continuation>.p-news-ticker{padding:var(--m) var(--gutter);max-width:none}.news-fallback{padding:var(--m) 0}.news .news-fallback a{display:inline;padding:0;border:0}.news li a{line-height:1.9}.gallery__item.is-hidden{display:none!important}.gallery__dialog:not([open]){display:none}.gallery__dialog-picture[hidden]{display:none!important}
@media(max-width:959px){.gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--m)}.gallery__controls{gap:8px}.gallery__filter{padding:10px 16px;font-size:12px}.gallery__dialog-inner{width:94vw}.gallery__text{font-size:14px}.gallery__figcaption{padding:var(--m) var(--s) var(--s)}.ac-map{height:300px}.news li a{flex-direction:column;gap:8px}}
@media(max-width:599px){.gallery__grid{grid-template-columns:1fr}.gallery__dialog-figure{padding:var(--s)}.gallery__dialog-caption{padding:var(--s)}}

/* スマホ要約 .m-fold（main の style.css から移植・2026-09-23）。PC/no-JS は全文表示 */
.m-fold-btn{display:none;align-items:center;gap:8px;min-height:44px;margin-top:8px;padding:4px 0;background:none;border:0;cursor:pointer;font:500 13px/1.7 var(--sans);letter-spacing:.08em;color:var(--accent)}
.m-fold-btn::after{content:"＋"}
.m-fold-btn[aria-expanded="true"]::after{content:"−"}
.m-fold-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:599px){html:not(.no-js) .m-fold-hide{display:none}html:not(.no-js) .m-fold-hide.is-open{display:block}html:not(.no-js) .m-fold-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}html:not(.no-js) .m-fold-clamp.is-open{display:block;-webkit-line-clamp:unset;overflow:visible}html:not(.no-js) .m-fold-btn{display:inline-flex}}
