/* ===== Pinterest Style Gallery (Original HTML Structure) ===== */

/* ギャラリー全体のコンテナ */
.gg-container {
  padding: 40px 0 80px;
  max-width: 1200px;
  margin: 0 auto;
}

/* Pinterest風レイアウトの核：CSS Column を使用 */
.gg-box {
  column-count: 4; /* デフォルト4カラム */
  column-gap: 20px; /* 横の隙間 */
  width: 100%;
}

/* 各画像アイテム */
.gg-box img {
  width: 100%;
  height: auto; /* Pinterest風にするため高さは自由 */
  display: block;
  margin-bottom: 20px; /* 縦の隙間 */
  border-radius: 8px; /* 柔らかい印象に */
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.4s ease;
  cursor: pointer;
  
  /* 画像がカラムの途中で分割されるのを防ぐ */
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
}

/* アニメーション：ホバー時に浮き上がる演出 */
.gg-box img:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 24px rgba(0,0,0,0.12);
}

/* ===== Lightbox (拡大画面) のデザイン調整 ===== */
.lightbox {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(255, 255, 255, 0.98); /* 白背景で作品を際立たせる */
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  flex-direction: column;
}

.lightbox.is-active {
  display: flex;
}

.lightbox img {
  max-width: 90%;
  max-height: 80vh;
  object-fit: contain;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

.lightbox__caption {
  margin-top: 20px;
  font-family: serif;
  font-size: 1.1rem;
  color: #333;
  padding: 0 20px;
  text-align: center;
}

/* クローズボタン等 */
.lightbox__close {
  position: absolute;
  top: 20px; right: 20px;
  font-size: 2rem;
  background: none; border: none; cursor: pointer;
}

/* ===== レスポンシブ (デバイスごとにカラム数を調整) ===== */

@media (max-width: 1100px) {
  .gg-box { column-count: 3; } /* タブレット：3カラム */
}

@media (max-width: 800px) {
  .gg-box { column-count: 2; } /* スマホ横：2カラム */
}

@media (max-width: 500px) {
  .gg-box { column-count: 1; } /* スマホ縦：1カラム */
  .gg-container { padding: 20px 10px; }
}

/* ギャラリー全体のコンテナ */
.gg-box {
  /* PCでは4段、タブレットでは2段、スマホでは1段 */
  column-count: 4;
  column-gap: 15px; /* 横の隙間 */
  width: 100%;
}

/* 各画像アイテム */
.gg-item {
  display: inline-block; /* 必須：崩れ防止 */
  width: 100%;
  margin-bottom: 15px; /* 縦の隙間 */
  break-inside: avoid; /* 画像が途中でちぎれるのを防ぐ */
}

.gg-item img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
  cursor: pointer;
  transition: transform 0.3s ease;
}

.gg-item img:hover {
  transform: scale(1.02);
  opacity: 0.9;
}

/* レスポンシブ対応 */
@media (max-width: 1024px) {
  .gg-box { column-count: 3; }
}
@media (max-width: 768px) {
  .gg-box { column-count: 2; }
}
@media (max-width: 480px) {
  .gg-box { column-count: 1; }
}

/* --- ギャラリーの基本設定 --- */
.gg-box {
  column-count: 4;
  column-gap: 15px;
  width: 100%;
  margin-top: 2rem;
}

.gg-item {
  display: inline-block;
  width: 100%;
  margin-bottom: 15px;
  break-inside: avoid;
}

.gg-item img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
  cursor: pointer;
  transition: opacity 0.3s, transform 0.3s;
}

.gg-item img:hover {
  opacity: 0.8;
  transform: translateY(-5px);
}

/* --- ライトボックス（拡大画面）のスタイル --- */
.lightbox {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

.lightbox.is-active {
  opacity: 1;
  visibility: visible;
}

.lightbox__image-wrap {
  position: relative;
  max-width: 90%;
  max-height: 80%;
  text-align: center;
}

.lightbox__image-wrap img {
  max-width: 100%;
  max-height: 80vh;
  object-fit: contain;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
}

.lightbox__caption {
  color: #fff;
  margin-top: 15px;
  font-size: 0.9rem;
  line-height: 1.6;
}

/* 閉じる・前後ボタン */
.lightbox__close, .lightbox__btn {
  position: absolute;
  background: none;
  border: none;
  color: #fff;
  font-size: 2rem;
  cursor: pointer;
  padding: 10px;
  z-index: 2100;
}

.lightbox__close { top: 20px; right: 20px; }
.lightbox__prev { left: 10px; top: 50%; transform: translateY(-50%); }
.lightbox__next { right: 10px; top: 50%; transform: translateY(-50%); }

/* レスポンシブ対応 */
@media (max-width: 1024px) { .gg-box { column-count: 3; } }
@media (max-width: 768px) { .gg-box { column-count: 2; } }
@media (max-width: 480px) { 
  .gg-box { column-count: 1; }
  .lightbox__btn { font-size: 1.5rem; }
}

/* ギャラリー全体の枠 */
.gg-box {
  column-count: 4; /* PCは4列 */
  column-gap: 15px;
  width: 100%;
}

/* 各アイテムのカード */
.gg-item {
  display: inline-block; /* 必須：隙間を埋めるため */
  width: 100%;
  margin-bottom: 15px;
  break-inside: avoid; /* 画像が列をまたいで分割されるのを防ぐ */
  background: #f9f9f9;
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.3s ease;
}

.gg-item img {
  width: 100%;
  height: auto;
  display: block;
  cursor: pointer;
}

.gg-item:hover {
  transform: translateY(-5px); /* 少し浮き上がる */
}

/* レスポンシブ */
@media (max-width: 1024px) { .gg-box { column-count: 3; } }
@media (max-width: 768px) { .gg-box { column-count: 2; } }
@media (max-width: 480px) { .gg-box { column-count: 1; } }

/* ライトボックス全体の表示設定 */
.lightbox.is-active {
  display: flex !important; /* 強制的に表示 */
  opacity: 1;
  visibility: visible;
}

/* キャプションのスタイルを強化 */
.lightbox__caption {
  display: block !important;
  color: #ffffff !important; /* 必ず白文字にする */
  margin-top: 20px;
  font-size: 1rem;
  text-align: center;
  width: 100%;
  max-width: 600px;
  z-index: 2200;
  font-family: serif; /* ブランドに合わせて上品に */
  text-shadow: 1px 1px 4px rgba(0,0,0,0.8); /* 文字を読みやすく */
}

/* 画像コンテナがキャプションを押し出さないように調整 */
.lightbox__image-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 90%;
  max-height: 85vh;
}

/* ギャラリー全体の枠 */
.gg-box {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start; /* 上揃え */
  gap: 15px; /* アイテム間の隙間 */
  width: 100%;
}

.gg-item {
  /* 4カラムの場合：(100% - 隙間15px * 3) / 4 = 約23.5% */
  width: calc(25% - 12px); 
  margin-bottom: 5px;
  /* 高さを画像に合わせる */
}

.gg-item img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

/* スマホ対応 */
@media (max-width: 768px) {
  .gg-item { width: calc(50% - 8px); } /* 2カラム */
}