/* Trzy filary — selected for all PL/EN project cards. */
.ls-pc-panorama .ls-pc-scope-pillars {
  padding: 0;
  border: 0;
  background: transparent;
}
.ls-pc-panorama .ls-pc-scope-heading {
  padding-bottom: 22px;
  margin-bottom: 28px;
  border-bottom: 1px solid var(--pc-line);
}
.ls-pc-panorama .ls-pc-scope-heading p {
  margin-bottom: 12px;
  color: var(--pc-link);
  font: 600 12px/18px Barlow, sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.ls-pc-panorama .ls-pc-scope-heading h2 {
  margin: 0;
  font-size: 40px;
  line-height: 42px;
  text-align: left;
  scroll-margin-top: 125px;
}
.ls-pc-panorama .ls-pc-scope-pillars dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px 20px;
}
.ls-pc-panorama .ls-pc-scope-pillars dl > div {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  min-width: 0;
  padding: 24px;
  border: 1px solid #d0c5ab;
  border-radius: 12px;
  background: #efe9db;
}
.ls-pc-panorama .ls-pc-scope-pillars dt {
  margin: 0;
  color: var(--pc-ink);
  font: 600 26px/29px var(--pc-heading);
  text-transform: none;
  text-align: left;
}
.ls-pc-panorama .ls-pc-pillar-number {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
  color: #94732a;
  font: 500 36px/40px var(--pc-heading);
}
.ls-pc-panorama .ls-pc-pillar-number::after {
  content: '';
  width: 36px;
  height: 1px;
  background: currentColor;
}
.ls-pc-panorama .ls-pc-scope-pillars dd {
  margin: 0;
  font: 400 18px/30px Barlow, sans-serif;
  text-align: left;
}

/* Equal photograph frames and cards, without stretching source pixels. */
.ls-pc-panorama .ls-pc-panorama-photos,
.ls-pc-panorama .ls-pc-gallery-grid:not(.ls-pc-poster-grid) {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  grid-auto-rows: 1fr;
  gap: 24px;
}
.ls-pc-panorama .ls-pc-gallery-grid:not(.ls-pc-poster-grid) figure:nth-child(n),
.ls-pc-panorama .ls-pc-panorama-photos figure {
  grid-column: auto;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-width: 0;
}
.ls-pc-panorama .ls-pc-panorama-photos img,
.ls-pc-panorama .ls-pc-gallery-grid:not(.ls-pc-poster-grid) img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  flex-shrink: 0;
}
.ls-pc-panorama .ls-pc-poster-grid { align-items: stretch; grid-auto-rows: 1fr; }
.ls-pc-panorama .ls-pc-poster-grid figure {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.ls-pc-panorama .ls-pc-poster-grid figure > a {
  flex-shrink: 0;
  min-height: 0;
}
.ls-pc-panorama .ls-pc-poster-grid img {
  width: 100%;
  height: 100%;
  aspect-ratio: 2 / 3;
  object-fit: contain;
}

/* Keep the complete heads in the original 4:3 group portrait. */
.ls-pc-panorama[data-ls-project-case="the-cinematic-orchestra"] .ls-pc-panorama-photos figure:first-child img { object-position: 50% 0%; }

/* The generic internal-link treatment removes bottom borders; restore only this CTA. */
.ls-pc-panorama .ls-pc-contact {
  align-items: center;
  gap: 18px 24px;
  padding-block: 30px;
}
.ls-pc-panorama .ls-pc-contact a {
  border: 1px solid var(--pc-gold);
  border-radius: 10px;
  min-height: 52px;
  max-width: 100%;
}
#ls-case-page .ls-pc-contact a { border-bottom: 1px solid var(--pc-gold) !important; }
@media (max-width: 800px) {
  .ls-pc-panorama .ls-pc-scope-pillars dl { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .ls-pc-panorama .ls-pc-scope-pillars dl > div { display: block; }
  .ls-pc-panorama .ls-pc-scope-pillars dt { margin-bottom: 14px; }
  .ls-pc-panorama .ls-pc-panorama-photos,
  .ls-pc-panorama .ls-pc-gallery-grid:not(.ls-pc-poster-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }
}
@media (max-width: 600px) {
  .ls-pc-panorama .ls-pc-scope-heading h2 { font-size: 36px; line-height: 38px; }
  .ls-pc-panorama .ls-pc-scope-pillars dl > div { padding: 22px; }
  .ls-pc-panorama .ls-pc-panorama-photos,
  .ls-pc-panorama .ls-pc-gallery-grid:not(.ls-pc-poster-grid) { grid-template-columns: minmax(0, 1fr); }
  /* In a single column, longer credits must not add empty space to every tile. */
  .ls-pc-panorama .ls-pc-panorama-photos,
  .ls-pc-panorama .ls-pc-gallery-grid:not(.ls-pc-poster-grid) { grid-auto-rows: auto; }
  .ls-pc-panorama .ls-pc-contact { flex-direction: column; align-items: stretch; padding-block: 26px 30px; }
  .ls-pc-panorama .ls-pc-contact a { width: 100%; }
}

/* Keep each mobile poster row as tall as its own captions, not the longest in the gallery. */
@media (max-width: 640px) {
  .ls-pc-panorama .ls-pc-poster-grid { grid-auto-rows: auto; }
}
