.gift-promo-v2 {
  position: relative;
  overflow: hidden;
  background: #f0f0f0;
  padding: 50px 0 40px;
}

.gift-promo-v2__inner {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  padding: 0;
}

.gift-promo-v2__watermark {
  position: absolute;
  left: 50%;
  bottom: -30px;
  transform: translateX(-50%);
  font-size: 145px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0;
  text-transform: uppercase;
  background: linear-gradient(180deg, rgba(33, 33, 33, 0.15) 9.25%, rgba(33, 33, 33, 0) 79%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  pointer-events: none;
  white-space: nowrap;
  opacity: 0.6;
}

.gift-promo-v2__content {
  position: relative;
  z-index: 2;
  text-align: center;
}

.gift-promo-v2__title {
  margin: 0;
  color: #212121;
  font-size: 28px;
  font-weight: 500;
  line-height: 30px;
  text-transform: uppercase;
}

.gift-promo-v2__title span {
  display: block;
}

.gift-promo-v2__title-highlight {
  color: #fcba1d;
}

.gift-promo-v2__subtitle {
  margin: 12px 0 0;
  color: #212121;
  font-size: 18px;
  font-weight: 500;
  line-height: 20px;
}

.gift-promo-v2__text {
  margin: 22px auto 0;
  max-width: 335px;
  color: #212121;
  font-size: 16px;
  font-weight: 300;
  line-height: 18px;
}

/* ---- Media container ---- */
.gift-promo-v2__media {
  position: relative;
  width: min(410px, 100%);
  max-width: 100%;
  aspect-ratio: 410 / 274;
  height: auto;
  min-height: 0;
  margin: 0 auto;
  overflow: visible;
  z-index: 3;
}

.gift-promo-v2__media img {
  position: absolute;
  display: block;
}

/*
 * Positions as % of the 410×274 reference container.
 * Figma values: blur → left:73px, top:27px, size:67px
 *               main → fills 410×274
 *               gift → left:272px, top:140px, w:89px, h:83px
 */
.gift-promo-v2__blur {
  width: 35.34%;
  left: 8.8%;
  top: -4.15%;
  height: auto;
  opacity: 0.7;
  transform: translate3d(0, var(--gift-parallax-blur, 0px), 0) rotate(7deg);
  will-change: transform;
  z-index: 1;
}

.gift-promo-v2__main {
  width: 100%;
  left: -6px;
  top: -9px;
  height: 100%;
  object-fit: cover;
  z-index: 2;
}

.gift-promo-v2__gift {
  width: 37.95%;
  right: 5.71%;
  top: 36.09%;
  height: auto;
  transform: translate3d(0, var(--gift-parallax-front, 0px), 0) rotate(2deg);
  will-change: transform;
  z-index: 3;
}

/* ---- 768px + ---- */
@media (min-width: 992px) {
  .gift-promo-v2 {
    padding: 0 0 50px;
  }

  .gift-promo-v2__inner {
    grid-template-columns: minmax(0, 1fr) 410px;
    align-items: start;
    padding: 0;
    gap: 20px;
    max-width: 898px;
  }

  .gift-promo-v2__content {
    text-align: left;
    padding-top: 55px;
  }

  /* Title spans inline on desktop → one line */
  .gift-promo-v2__title span {
    display: inline;
  }

  .gift-promo-v2__title-highlight {
    margin-left: 6px;
  }

  .gift-promo-v2__title {
    white-space: nowrap;
    line-height: 1;
  }

  .gift-promo-v2__subtitle {
    margin-top: 8px;
    font-size: 20px;
  }

  .gift-promo-v2__text {
    margin: 37px 0 0;
    max-width: 467px;
    font-size: 16px;
    line-height: 20px;
  }

  /* Media: fixed 410×274 px, flush with section top */
  .gift-promo-v2__media {
    width: 410px;
    height: 274px;
    max-width: 410px;
    aspect-ratio: auto;
    justify-self: end;
    margin: 0;
  }

  /* Switch from % to px once the container size is fixed */
  .gift-promo-v2__blur {
    width: 126px;
    left: 63px;
    top: 6px;
  }

  .gift-promo-v2__main {
    width: 410px;
    height: 274px;
    left: 16px;
    top: 1px;
  }

  .gift-promo-v2__gift {
    width: 159px;
    right: 1px;
    top: 110px;
  }

  .gift-promo-v2__watermark {
    bottom: -17px;
    font-size: 145px;
  }
}

/* ---- 1200px + ---- */
@media (min-width: 1200px) {
  .gift-promo-v2__inner {
    gap: 20px;
  }

  .gift-promo-v2__watermark {
    left: 50%;
    transform: translateX(-50%);
    bottom: -44px;
    font-size: 200px;
  }
}

/* ---- 1920px + ---- */
@media (min-width: 1600px) {
  .gift-promo-v2 {
    padding-bottom: 60px;
  }

  .gift-promo-v2__inner {
    gap: 65px;
    max-width: 1164px;
  }

  .gift-promo-v2__content {
    padding-top: 65px;
  }

  .gift-promo-v2__title {
    font-size: 35px;
  }

  .gift-promo-v2__subtitle {
    font-size: 25px;
    margin-top: 22px;
  }

  .gift-promo-v2__text {
    max-width: 694px;
    font-size: 18px;
    margin-top: 27px;
  }

  .gift-promo-v2__watermark {
    font-size: 260px;
    bottom: -86px;
  }
}
