/* Final contact scene: the contact copy floats over the Halo coin-and-flower motion. */
.final-contact {
  position: relative;
  isolation: isolate;
  display: grid;
  min-height: min(100svh, 940px);
  padding: clamp(68px, 7.5vw, 124px) clamp(28px, 5.3vw, 108px) clamp(154px, 15vw, 218px);
  overflow: hidden;
  color: #251536;
  background: #ded8e5;
}

.final-contact .contact-visual.contact-halo {
  position: absolute;
  inset: 0;
  z-index: -2;
  display: block;
  min-height: 0;
  height: auto;
  border: 0;
  background: #ded8e5;
}

.final-contact .contact-halo video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 58% 52%;
  filter: saturate(.78) brightness(1.04) contrast(.94);
  transform: scale(1.018);
}

.final-contact::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(248, 246, 252, .88) 0%, rgba(248, 246, 252, .64) 39%, rgba(248, 246, 252, .22) 68%, rgba(248, 246, 252, .34) 100%),
    linear-gradient(0deg, rgba(238, 233, 246, .3), transparent 38%);
}

.final-contact .contact-content {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, .94fr) minmax(360px, .86fr);
  align-items: end;
  gap: clamp(44px, 11vw, 190px) !important;
  width: 100%;
  max-width: 1780px;
  margin: 0 auto;
  padding: 0 !important;
  background: transparent !important;
  color: inherit;
}

.final-contact .eyebrow { color: #8262a5; }

.final-contact .contact-content > div:first-child {
  transform: translateY(clamp(-120px, -6vw, -56px));
}

.final-contact .contact-content h2 {
  margin: 18px 0 0;
  color: #21142f;
  font-size: clamp(58px, 6.15vw, 128px) !important;
  line-height: .79;
  letter-spacing: -.085em;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .36);
}

.final-contact .contact-content h2 em { color: #3a214f; }

.final-contact .contact-content dl { padding-top: 0 !important; }

.final-contact .contact-content dl div {
  min-height: 54px !important;
  border-color: rgba(61, 39, 83, .16);
}

.final-contact .contact-content dt { color: #8a719e; }

.final-contact .contact-content dd,
.final-contact .contact-content dd a { color: #2c1a42; }

.final-contact .closing {
  position: absolute;
  right: clamp(28px, 5.3vw, 108px);
  bottom: clamp(48px, 4.4vw, 76px);
  left: clamp(28px, 5.3vw, 108px);
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas: "message contact" "copyright top";
  align-items: end;
  gap: 7px 36px;
  min-height: 0 !important;
  margin: 0;
  padding: 0 !important;
  color: #27163a;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.final-contact .closing p {
  grid-area: message;
  margin: 0;
  padding-left: 0;
  color: #27163a;
  font-size: clamp(30px, 3.05vw, 64px) !important;
  line-height: 1;
  letter-spacing: -.02em;
  overflow: visible;
}

.final-contact .closing-lead {
  display: block;
  padding-left: 28px;
  font-family: 'DM Sans', Arial, sans-serif;
  font-weight: 400;
  line-height: 1.04;
  overflow: visible;
}

.final-contact .closing-initial {
  display: inline-block;
  padding-left: .1em;
  margin-left: -.1em;
  font-family: Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0;
  overflow: visible;
}

.final-contact .closing p em {
  display: block;
  margin-top: .28em;
  line-height: 1;
}

.final-contact .closing > a:not(.back-to-top) {
  grid-area: contact;
  align-self: center;
  color: #4b2a66;
  border-color: rgba(75, 42, 102, .46);
}

.final-contact .closing > span {
  grid-area: copyright;
  color: #5b426d;
}

.final-contact .closing .back-to-top {
  grid-area: top;
  color: #4b2a66;
  border-color: rgba(75, 42, 102, .5);
}

@media (max-width: 820px) {
  .final-contact {
    min-height: 910px;
    padding: 76px 24px 210px;
  }

  .final-contact::before { background: rgba(248, 246, 252, .7); }

  .final-contact .contact-content {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .final-contact .contact-content > div:first-child { transform: translateY(-28px); }

  .final-contact .contact-content h2 { font-size: clamp(54px, 15vw, 86px) !important; }

  .final-contact .closing {
    right: 24px;
    bottom: 42px;
    left: 24px;
    grid-template-columns: 1fr auto;
    gap: 16px;
  }

  .final-contact .closing p { font-size: clamp(28px, 9vw, 52px) !important; }
  .final-contact .closing > span { max-width: 210px; }
}
