/* Occasion typography scales with its own column, not the entire viewport. */
.fp-campaign .fp-campaign-hero__copy { container-type: inline-size; }
.fp-campaign .fp-campaign-hero__inner {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
  gap: clamp(2rem, 4vw, 4rem);
}
.fp-campaign .fp-campaign-hero h1 {
  font-size: clamp(2rem, 4.1vw, 4.8rem);
  font-size: clamp(2rem, 11.6cqw, 5.5rem);
  letter-spacing: -.045em;
  line-height: 1.02;
  max-width: 100%;
}
.fp-campaign .fp-campaign-hero h1 span { max-width: 100%; }
.fp-campaign .fp-campaign-hero__visual {
  min-height: 0;
  aspect-ratio: 5 / 4;
  border-radius: 24% 1rem 1rem 1rem;
  box-shadow: 0 1.2rem 4rem #0005;
}
.fp-campaign .fp-campaign-hero__visual img { object-position: center; }
.fp-campaign .fp-campaign-hero__visual::after {
  background: linear-gradient(180deg, transparent 62%, rgba(2,7,5,.8));
  pointer-events: none;
}
.fp-campaign .fp-campaign-hero__visual figcaption {
  display: grid;
  gap: .4rem;
  left: 1.4rem;
  right: 1.4rem;
  max-width: none;
  text-align: left;
}
.fp-campaign .fp-campaign-hero__visual figcaption small {
  color: #e5e8df;
  font-size: .6rem;
  font-weight: 500;
  text-transform: none;
  letter-spacing: .02em;
}
@media (max-width: 1100px) {
  .fp-campaign .fp-campaign-hero__inner { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .fp-campaign .fp-campaign-hero__copy { width: min(100%, 43rem); margin-inline: auto; text-align: center; }
  .fp-campaign .fp-campaign-hero__visual { width: min(100%, 43rem); aspect-ratio: 4 / 3; margin-inline: auto; }
}
@media (max-width: 600px) {
  .fp-campaign .fp-campaign-hero h1 { font-size: clamp(1.85rem, 11.6cqw, 3.5rem); }
  .fp-campaign .fp-campaign-hero__visual { aspect-ratio: 1; border-radius: 20% .8rem .8rem .8rem; }
  .fp-campaign .fp-campaign-hero__visual figcaption { left: 1rem; right: 1rem; bottom: 1rem; }
}
