/* Homepage campaign carousel */
.campaign-hero {
  height: calc(100svh - 86px);
  min-height: 540px;
  background: var(--melatoni-blue-900);
  isolation: isolate;
}
.campaign-hero::after { display: none; }
.campaign-slides, .campaign-slide { position: absolute; inset: 0; }
.campaign-slide {
  z-index: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0, 8px, 0);
  transition: opacity 620ms cubic-bezier(.23, 1, .32, 1), visibility 620ms linear, transform 620ms cubic-bezier(.23, 1, .32, 1);
}
.campaign-slide.is-active { z-index: 1; opacity: 1; visibility: visible; transform: none; }
.campaign-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(16,19,22,.58) 0%, rgba(16,19,22,.34) 31%, rgba(16,19,22,.10) 55%, transparent 72%);
  pointer-events: none;
}
.campaign-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
  transform: translate3d(0, var(--campaign-parallax, 0px), 0);
  scale: 1.025;
  transition: scale 4.4s cubic-bezier(.2,.65,.25,1);
}
.campaign-slide.is-active .campaign-image { scale: 1.075; }
.campaign-copy {
  position: absolute;
  z-index: 2;
  left: clamp(6%, 10.3vw, 13%);
  top: 50%;
  width: min(590px, 52vw);
  transform: translateY(-49%);
  color: var(--melatoni-ivory);
}

.campaign-offer {
  margin: 0 0 4px;
  color: var(--melatoni-ivory);
  font-size: clamp(37px, 5vw, 72px);
  font-weight: 700;
  letter-spacing: -.065em;
  line-height: .98;
  text-wrap: balance;
}
.campaign-copy h1,
.campaign-copy .campaign-title {
  margin: 9px 0 0;
  color: var(--melatoni-ivory);
  font: 400 clamp(44px, 5.2vw, 72px)/1.02 var(--hero-serif);
  letter-spacing: -.045em;
  text-wrap: balance;
}
.campaign-description { max-width: 43ch; margin: 16px 0 25px; color: rgba(246,243,236,.9); font-size: clamp(14px, 1.15vw, 17px); line-height: 1.65; }
.campaign-cta { min-width: 220px; min-height: 54px; gap: 34px; padding-inline: 22px; background: var(--melatoni-ivory); color: var(--melatoni-blue-900); border-radius: 14px; font-size: 12px; font-weight: 700; letter-spacing: .04em; }
.campaign-cta:hover { background: var(--melatoni-blue-400); color: var(--melatoni-blue-900); }
.campaign-cta:focus-visible { outline: 2px solid var(--melatoni-blue-400); outline-offset: 4px; }
@media (max-width: 760px) {
  .campaign-hero { height: calc(100svh - 68px); min-height: 540px; }
  .campaign-slide::after { background: linear-gradient(0deg, rgba(16,19,22,.62) 0%, rgba(16,19,22,.34) 43%, rgba(16,19,22,.06) 100%); }
  .campaign-image { object-position: 57% center; }
  .campaign-copy { left: 7%; right: 7%; top: auto; bottom: 116px; width: auto; transform: none; }
  .campaign-offer { font-size: clamp(35px, 9vw, 54px); }
  .campaign-copy h1, .campaign-copy .campaign-title { font-size: clamp(35px, 9vw, 48px); line-height: 1.02; }
  .campaign-description { max-width: 36ch; margin: 12px 0 19px; font-size: 14px; }
  .campaign-cta { min-height: 49px; min-width: 198px; font-size: 11px; }
}
@media (max-width: 380px) {
  .campaign-hero { min-height: 590px; }
  .campaign-copy { bottom: 109px; }
  .campaign-offer { font-size: 35px; }
  .campaign-copy h1, .campaign-copy .campaign-title { font-size: 27px; }
}
@media (prefers-reduced-motion: reduce) {
  .campaign-slide, .campaign-image { transition: none; transform: none; }
  .campaign-slide.is-active .campaign-image { transform: none; scale: 1; }
}
