/* Shared campaign treatment for the seven requested pages only.
   About supplies the frame geometry; Terms supplies the title typography. */
.snv-campaign-banner-frame {
  display: flow-root;
  padding: clamp(.75rem, 1.2vw, 1.25rem);
  background: var(--snv-paper);
}
.snv-client-page--campaign { background: var(--snv-paper); }
.snv-about.snv-about--campaign { background: var(--snv-paper); }
.snv-about .snv-about-hero.snv-campaign-banner { display: flex !important; border-bottom: 0; }
.snv-client-page__hero.snv-campaign-banner,
.snv-about .snv-about-hero.snv-campaign-banner,
.snv-contact .snv-contact-hero.snv-campaign-banner {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: clamp(12.5rem, 18.4vw, 22rem) !important;
  height: auto;
  margin: 0;
  overflow: hidden;
  background: var(--snv-ink);
}
.snv-campaign-banner .snv-client-page__hero-image,
.snv-about .snv-campaign-banner .snv-about-hero__image,
.snv-contact .snv-campaign-banner .snv-contact-hero__image {
  position: absolute;
  z-index: -2;
  inset: 0 0 0 auto;
  width: 63%;
  height: 100%;
  min-height: 0;
  max-width: none;
  object-fit: cover;
  object-position: center 37%;
  filter: brightness(.75);
}
.snv-client-page__hero.snv-campaign-banner::after,
.snv-about-hero.snv-campaign-banner::after,
.snv-contact-hero.snv-campaign-banner::after {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, var(--snv-ink) 0 37%, rgba(10,9,8,.8) 45%, rgba(10,9,8,.28) 70%, rgba(10,9,8,.12));
  pointer-events: none;
}
.snv-campaign-banner .snv-client-page__hero-copy,
.snv-about .snv-campaign-banner .snv-about-hero__copy,
.snv-contact .snv-campaign-banner .snv-contact-hero__copy {
  position: relative;
  z-index: 2;
  width: 100%;
  min-height: 0;
  max-width: none;
  padding: clamp(2rem, 4vw, 3.5rem) var(--snv-gutter) !important;
  text-align: center;
}
.snv-campaign-banner .snv-client-page__hero-copy h1,
.snv-about .snv-campaign-banner .snv-about-hero__copy h1,
.snv-contact .snv-campaign-banner .snv-contact-hero__copy h1 {
  width: 100%;
  max-width: 100%;
  margin: 0 !important;
  color: var(--snv-paper) !important;
  font-family: var(--snv-font-heading) !important;
  font-size: clamp(2.5rem, 5.5vw, 5.5rem) !important;
  font-weight: 700 !important;
  line-height: 1.05 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase;
  white-space: normal !important;
  overflow-wrap: normal;
}
.snv-contact-introduction {
  max-width: 48rem;
  margin: 0 auto clamp(3rem, 5vw, 5rem);
  text-align: center;
}
.snv-contact .snv-contact-introduction h2 {
  margin: .65rem 0 .75rem;
  font-size: clamp(2.2rem,3vw,2.8rem);
  line-height: .88;
}
.snv-contact-introduction > p:last-child {
  margin: 1.25rem auto 0;
  color: var(--snv-muted);
  font: 400 clamp(1rem,1.2vw,1.2rem)/1.5 var(--snv-font-editorial);
}
@media (max-width: 800px) {
  .snv-contact .snv-contact-introduction h2 { font-size: clamp(2.7rem,12vw,4.25rem); }
}
@media (max-width: 700px) {
  .snv-campaign-banner .snv-client-page__hero-image,
  .snv-about .snv-campaign-banner .snv-about-hero__image,
  .snv-contact .snv-campaign-banner .snv-contact-hero__image {
    width: 100%;
    object-position: 70% 30%;
  }
  .snv-client-page__hero.snv-campaign-banner::after,
  .snv-about-hero.snv-campaign-banner::after,
  .snv-contact-hero.snv-campaign-banner::after {
    background: linear-gradient(90deg, rgba(10,9,8,.82), rgba(10,9,8,.52) 60%, rgba(10,9,8,.35));
  }
}
