.portfolio-archive-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(40px, 7vw, 112px) clamp(20px, 4vw, 64px);
  margin-top: 64px;
}

.portfolio-card {
  background: transparent;
  color: var(--card-color);
}

.object-position--top { object-position: center top !important; }
.object-position--bottom { object-position: center bottom !important; }
.object-position--left { object-position: left center !important; }
.object-position--right { object-position: right center !important; }

/* Selected Works: 画像比率を保つ、静かなエディトリアルグリッド */
.works-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 28px);
  align-items: stretch;
}

.works-grid .selected-work {
  grid-column: auto !important;
  width: 100%;
  margin: 0 !important;
  aspect-ratio: auto !important;
  overflow: visible;
  background: transparent;
}

.works-grid .selected-work:nth-child(n) {
  display: grid;
  place-items: center;
  grid-column: auto !important;
  width: 100%;
  height: clamp(180px, 22vw, 340px);
  margin: 0 !important;
  overflow: hidden;
}

.works-grid .selected-work img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  aspect-ratio: auto !important;
  object-fit: contain;
}

.portfolio-single__hero {
  width: min(100% - var(--page-gutter) * 2, 1440px);
  margin-inline: auto;
}

.portfolio-single__hero img { width: 100%; height: auto; }
.portfolio-single__body { padding-block: var(--section-space); }
.portfolio-single__body dl { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-bottom: 64px; }
.portfolio-single__body dt { font-size: 11px; letter-spacing: .1em; color: var(--color-text-sub); }
.portfolio-single__body img { width: 100%; height: auto; margin-top: 48px; }

@media (max-width: 1023px) {
  .works-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .works-grid .selected-work:nth-child(n) { height: clamp(200px, 38vw, 360px); }
}

@media (max-width: 767px) {
  .portfolio-archive-grid { grid-template-columns: 1fr; }
  .works-grid { grid-template-columns: 1fr; gap: 20px; }

  .works-grid .work,
  .works-grid .selected-work:nth-child(n) {
    width: 100%;
    height: min(90vw, 520px);
    margin: 0 !important;
  }

  .portfolio-single__body dl { grid-template-columns: 1fr 1fr; }
}
