.deem-contact-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100vw;
  width: 100dvw;
  max-width: none;
  min-height: 320px;
  margin-inline: calc(50% - 50vw);
  margin-inline: calc(50% - 50dvw);
  background: #27121b;
  color: var(--deem-ivory);
}

.deem-contact-cta img.deem-contact-cta__image {
  position: absolute;
  z-index: 0;
  top: -20px;
  left: 0;
  display: block;
  width: 100% !important;
  height: calc(100% + 40px) !important;
  max-width: none !important;
  /* The reference is a wide composition. Preserve its full vertical frame on desktop. */
  object-fit: fill;
  object-position: left center;
  pointer-events: none;
}

.deem-contact-cta::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(39, 18, 27, .05) 33%, rgba(39, 18, 27, .86) 52%, #27121b 65%, #27121b 100%);
  content: '';
  pointer-events: none;
}

.deem-contact-cta__inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  min-height: 350px;
  padding-block: 44px 42px;
}

.deem-contact-cta__copy {
  width: min(100%, 400px);
  text-align: right;
}

.deem-contact-cta__title {
  margin: 0 0 10px;
  color: var(--deem-gold-light);
  font-family: var(--deem-font-display);
  font-size: clamp(33px, 3.25vw, 45px);
  font-weight: 400;
  line-height: 1.25;
  text-shadow: 0 2px 12px rgba(12, 4, 9, .45);
}

.deem-contact-cta__ornament {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 220px;
  height: 12px;
  margin: 0 auto 17px;
  color: var(--deem-gold);
}
.deem-contact-cta__ornament::before,
.deem-contact-cta__ornament::after {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, currentColor);
  content: '';
}
.deem-contact-cta__ornament::after { transform: rotate(180deg); }
.deem-contact-cta__ornament span {
  width: 7px;
  height: 7px;
  border: 1px solid currentColor;
  transform: rotate(45deg);
}

.deem-contact-cta__body {
  max-width: 380px;
  margin: 0 0 16px;
  color: #e9d9d8;
  font-family: var(--deem-font-body);
  font-size: clamp(15px, 1.3vw, 17px);
  font-weight: 500;
  line-height: 1.55;
  text-shadow: 0 2px 8px rgba(16, 3, 10, .5);
}

.deem-contact-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-width: 222px;
  min-height: 45px;
  padding: 9px 19px;
  border: 1px solid var(--deem-gold-light);
  border-radius: 4px;
  background: rgba(39, 18, 27, .34);
  box-shadow: 0 0 0 3px rgba(193, 148, 94, .10);
  color: var(--deem-gold-light);
  font-family: var(--deem-font-body);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease;
}
.deem-contact-cta__button svg { flex: 0 0 auto; }
.deem-contact-cta__button:hover,
.deem-contact-cta__button:focus-visible {
  background: var(--deem-gold-light);
  color: var(--deem-plum-deep);
}
.deem-contact-cta__button:focus-visible { outline: 2px solid var(--deem-gold-light); outline-offset: 4px; }

@media (max-width: 767px) {
  .deem-contact-cta { min-height: 520px; }
  .deem-contact-cta img.deem-contact-cta__image { object-fit: cover; object-position: left center; }
  .deem-contact-cta::before {
    background: linear-gradient(180deg, rgba(39, 18, 27, .13) 0%, rgba(39, 18, 27, .34) 24%, rgba(39, 18, 27, .88) 54%, #27121b 86%);
  }
  .deem-contact-cta__inner { align-items: flex-end; justify-content: center; min-height: 520px; padding-block: 190px 40px; }
  .deem-contact-cta__copy { max-width: 420px; text-align: center; }
  .deem-contact-cta__body { margin-inline: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .deem-contact-cta__button { transition: none; }
}
