/* 写真が横に流れるギャラリー（マーキー）2026-09-26
   2列が反対方向にゆっくり流れる。マウスを乗せると止まる。 */
.tp-gallery { padding: 56px 0 64px; overflow: hidden; background: #fff; }
.tp-gallery__head { text-align: center; margin-bottom: 28px; }
.tp-gallery__label {
  font-size: 12px; letter-spacing: .3em; font-weight: 800; color: var(--tp-red, #e8313a); margin: 0 0 6px;
}
.tp-gallery__title {
  font-size: clamp(20px, 3vw, 26px); font-weight: 800; letter-spacing: .06em; color: var(--tp-ink, #2b2b2b); margin: 0;
}
.tp-gallery__title::after {
  content: ""; display: block; width: 48px; height: 4px; margin: 12px auto 0;
  background: var(--tp-teal, #0f9fae); border-radius: 2px;
}
.tp-gallery__row { display: flex; width: max-content; will-change: transform; }
.tp-gallery__row.-left  { animation: tp-marquee-left  60s linear infinite; }
.tp-gallery__row.-right { animation: tp-marquee-right 72s linear infinite; margin-top: 14px; }
.tp-gallery:hover .tp-gallery__row { animation-play-state: paused; }
.tp-gallery__item {
  flex: 0 0 auto; width: 260px; height: 175px; margin-right: 14px; overflow: hidden; border-radius: 10px;
  box-shadow: 0 6px 16px rgba(43,43,43,.12);
}
.tp-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.tp-gallery__item:hover img { transform: scale(1.06); }
@keyframes tp-marquee-left  { from { transform: translateX(0) }      to { transform: translateX(-50%) } }
@keyframes tp-marquee-right { from { transform: translateX(-50%) }   to { transform: translateX(0) } }
@media (max-width: 599px) {
  .tp-gallery { padding: 40px 0 44px; }
  .tp-gallery__item { width: 180px; height: 122px; margin-right: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .tp-gallery__row { animation: none !important; overflow-x: auto; }
}
/* SWELL の h2 の帯を打ち消す（ギャラリーの見出しは独自スタイル） */
.tp-gallery h2.tp-gallery__title,
.post_content .tp-gallery h2.tp-gallery__title {
  background: none !important; border: none !important; padding: 0 !important;
  box-shadow: none !important; color: var(--tp-ink, #2b2b2b) !important;
}
.tp-gallery h2.tp-gallery__title::before { display: none !important; }
.tp-gallery__head { margin-bottom: 24px; }
.tp-gallery__label { margin-bottom: 2px; }
