/* Current products and past camps share the same full-bleed photo cover. */
main:has(.camp-product-hero) { padding-top: 0; }
:is(.product-page, .past-camp-page) .camp-product-hero {
  box-sizing: border-box;
  position: relative;
  isolation: isolate;
  display: block;
  width: 100vw;
  max-width: none;
  height: 600px;
  min-height: 0;
  margin: 0 calc(50% - 50vw);
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: #004740;
}
.camp-product-hero::before { display: none; }
.camp-product-hero-picture { display: contents; }
.camp-product-hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 55% 0 0;
  pointer-events: none;
  background: linear-gradient(to bottom, transparent, rgba(0,71,64,.75));
}
.camp-product-hero .camp-product-hero-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  border: 0;
  border-radius: 0;
  object-fit: cover;
  object-position: var(--camp-cover-position, 50% 50%);
  filter: none;
  opacity: 1;
}
/* Before JS runs, conservative top framing avoids the old bottom-biased crop. */
.camp-product-hero[data-head-regions] { --camp-cover-position: 50% 0%; }
.camp-product-hero .camp-product-hero-copy {
  position: absolute;
  z-index: 2;
  left: max(28px, calc((100vw - 1200px)/2));
  right: max(28px, calc((100vw - 1200px)/2));
  bottom: 56px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding: 0;
  margin: 0;
  background: none;
  text-align: left;
  font-family: "PingFang SC", "Noto Sans SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  letter-spacing: 0;
}
.camp-product-hero .camp-product-hero-info {
  margin: 0;
  padding: 0;
  max-width: 100%;
  color: rgba(255,255,255,.85);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
  letter-spacing: 0;
}
.camp-product-hero h1 {
  margin: 0;
  padding: 0;
  max-width: 100%;
  color: #fff;
  font: 700 44px/1.25 "PingFang SC", "Noto Sans SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  letter-spacing: 0;
  text-shadow: none;
  word-break: normal;
  overflow-wrap: break-word;
}
.camp-product-hero .camp-product-hero-credit {
  position: absolute;
  z-index: 2;
  right: 24px;
  bottom: 20px;
  margin: 0;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(0,35,30,.65);
  color: rgba(255,255,255,.9);
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0;
}
@media (max-width: 719px) {
  :is(.product-page, .past-camp-page) .camp-product-hero { height: 480px; }
  .camp-product-hero .camp-product-hero-image { object-position: var(--camp-cover-mobile-position, 50% 50%); }
  .camp-product-hero .camp-product-hero-copy { left: 24px; right: 24px; bottom: 32px; gap: 10px; }
  .camp-product-hero .camp-product-hero-info { font-size: 14px; }
  .camp-product-hero h1 { font-size: 30px; }
  .camp-product-hero .camp-product-hero-credit { right: 16px; bottom: 8px; font-size: 11px; padding: 2px 8px; }
  .camp-product-hero--leadership:not([data-framing-ready]) .camp-product-hero-image { height: auto; object-fit: contain; }
}
