/* =================================
  Group Page v8 - Final Proposal
================================= */

.group-page-v6 {
  padding-top: 80px;
  padding-bottom: 80px;
  overflow: hidden;
}

/* --- Hero Section --- */
.group-hero-v6 {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 60px;
  align-items: center;
  margin-bottom: 120px;
}
.group-image-v6 {
  border-radius: 1.5rem;
  box-shadow: 0 0 35px -10px var(--primary-color);
  overflow: hidden;
  transform: scale(1.2);
  transform-origin: center center;
}
.group-image-v6 img {
  width: 100%;
  height: auto;
  display: block;
}
.group-logo-v6 {
  max-width: 320px;
  height: auto;
  margin-bottom: 16px; /* 修正: ロゴの下マージンを増やす */
}
.group-info-v6 .h1 {
  font-size: clamp(2.5rem, 6vw, 4rem);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 24px;
}
.group-info-v6 .prose {
  font-size: 1rem;
  color: var(--muted);
}

/* --- Members Section (Group Detail Page) --- */
.members-section-v6 {
  padding-top: 40px;
}
.section-title-v6 {
  text-align: center;
  margin-bottom: 48px;
}
.section-title-v6 .h2 {
  font-size: 2.25rem;
  font-weight: 800;
}
.member-grid-v6 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 32px;
}

/* メンバーが一人の場合のスタイル */
.member-grid-v6.member-count-1 {
  display: flex;
  justify-content: center;
}
.member-grid-v6.member-count-1 > a {
  flex-basis: 320px;
  max-width: 320px;
}

/* --- Member Card (Group Detail Page) --- */
.member-card-v6 {
  text-align: center;
  transition: transform 0.3s ease;
}
.member-card-v6:hover {
  transform: translateY(-10px);
}
.member-card-v6 .thumb {
  position: relative;
  width: 100%;
  aspect-ratio: 3/4;
  border-radius: 0.75rem;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0,0,0,0.05);
  transition: box-shadow 0.3s ease;
}
.member-card-v6:hover .thumb {
  box-shadow: 0 0 25px -5px var(--primary-color);
}
.member-card-v6 .thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.5s ease-out;
}
.member-card-v6:hover .thumb img {
  transform: scale(1.1);
}
.member-card-v6 .card-body {
  padding: 0.75rem 0; /* 12px */
}
.member-card-v6 .card-title {
  font-size: 1.125rem; /* 18px */
  font-weight: 700;
  color: var(--text);
  line-height: 1.4;
}
.member-card-v6 .card-sub {
  font-size: 0.75rem; /* 12px */
  color: var(--muted);
  margin-top: 2px;
}

/* --- Particle Effect --- */
.particle-container {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  pointer-events: none; overflow: hidden; border-radius: inherit; z-index: 2;
}
.particle {
  position: absolute; background-color: var(--primary-color); border-radius: 50%;
  width: var(--size); height: var(--size); opacity: 0;
}
.member-card-v6:hover .particle {
  animation: particle-animation 0.8s ease-out forwards;
}
@keyframes particle-animation {
  from { transform: scale(0.5) translate(var(--x-from), var(--y-from)); opacity: 1; }
  to { transform: scale(1) translate(var(--x-to), var(--y-to)); opacity: 0; }
}

/* --- Responsive (Group Detail Page) --- */
@media (min-width: 981px) { /* PC画面サイズの場合のみ適用 */
  .group-info-v6 .prose {
    margin-top: 0px; /* ロゴの下マージンを増やした分、文章の上マージンを減らす */
  }
}

@media (max-width: 980px) {
  .group-hero-v6 {
    grid-template-columns: 1fr; gap: 40px; text-align: center; margin-bottom: 80px;
  }
  .group-image-v6 {
    transform: scale(1);
  }
  .group-info-v6 {
    align-items: center;
  }
  .member-grid-v6 {
    gap: 20px;
  }
  .group-logo-v6 { /* モバイルでは元のマージンに戻す、または必要に応じて調整 */
    margin-bottom: 24px;
  }
}

/* =================================
  Group List Page Layout
================================= */

.group-list-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 32px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.group-list-grid > a {
  flex-grow: 0;
  flex-shrink: 0;
  transition: all 0.3s ease-in-out;
}

/* 3つ以上の場合は少し小さく */
.group-list-grid:not(.group-count-2) > a {
  flex-basis: 320px;
  max-width: 320px;
}

/* 2つの場合は大きく */
.group-list-grid.group-count-2 > a {
  flex-basis: 420px;
  max-width: 420px;
}

/* レスポンシブ対応 (Group List Page) */
@media (max-width: 1200px) {
  /* 3つ並びの時に少し小さくして収まりを良くする */
  .group-list-grid:not(.group-count-2) > a {
    flex-basis: 280px;
    max-width: 280px;
  }
}

@media (max-width: 980px) {
  /* 2列表示 */
  .group-list-grid {
    gap: 48px;
  }
  .group-list-grid > a,
  .group-list-grid.group-count-2 > a {
    flex-basis: calc(50% - 24px);
    max-width: calc(50% - 24px);
    min-width: 0;
  }
}

@media (max-width: 768px) {
  /* 1列表示 */
  .group-list-grid > a,
  .group-list-grid.group-count-2 > a {
    flex-basis: 100%;
    max-width: 420px;
  }
}
