.promo-block {
  padding:60px 0;
  position: relative;
  overflow: hidden;
}

.promo-body-text ul { margin-bottom:0; }

.promo-section { 
margin: 0 auto;
  box-shadow: 2px 4px rgba(0,0,0,0.05); 
  border-radius:500px 1.5rem 1.5rem 500px; 
  display:flex; 
  width: fit-content; 
  align-items:center; 
  min-width:900px;
  max-width:1280px; 
  position: relative;
  z-index: 2;
}

.promo-section .image {
padding:1rem;
border-radius:50%;
}

.promo-section .image img {
  border-radius:50%;
  max-width:400px;
  height:auto;
  object-fit: cover;
  aspect-ratio: 1/1;
}

.promo-section .ad-text {
  padding:1rem 1.5rem 1rem 1rem;
  display:flex;
  flex-direction:column;
  justify-items: space-between;
}

.promo-section .company-logos {
  display:flex;
  justify-content:flex-start;
  align-items:center;
  padding:0.5rem 0 1rem 0;
}

.promo-section .heading {
 font-size:2.25rem;
}
.promo-section .subheading {
font-weight:700;
font-size:1.125rem;
}

.promo-button {
padding:1.5rem 0 1rem 0;
}
  
@media all and (max-width: 767px) {
  
  .promo-block { padding: 32px 16px; }
  
  .promo-section { 
  flex-direction:column;
  width:100%;
  max-width:100%;
  min-width:100%;
    border-radius:400px 400px 0 0;
  }
  
  
  .promo-section .image {
    width:100%;
  }
  
  .promo-section .image img {
  border-radius:50%;
  width:100%;
  height:auto;
  max-width:initial;
  object-fit: cover;
  aspect-ratio: 1/1;
}
}

/*

*, html, body {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.promo-bg{
  background:#cd158d;
  padding:40px 0;
  display:grid;

  /* Anchor at old centered 1280px right edge */
  --anchor: clamp(0px, calc(50% + 640px), 100%);
  grid-template-columns: var(--anchor) 1fr;

  overflow-x: clip;
  position: relative;
}

/* This block defines width + right alignment for BOTH rows 
.promo-block{
  grid-column: 1;
  justify-self: end;

  width: fit-content;
  max-width: 1080px;

  padding-left: 40px;
  position: relative;
  z-index: 1;
}

/* WHITE BACKGROUND — ONLY BEHIND PROMO-INNER */
.promo-inner{
  position: relative;
  z-index: 1;
}

.promo-inner::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:0;

  /* Bleed right, clipped by promo-bg */
  width: 100vw;

  background:#fff;
  border-radius:600px 0 0 600px;
  z-index: -1;
}

.promo-content{
  padding:1.5rem 1.5rem 1.5rem 4.5rem;
  text-align:right;
}

.promo-content h3 {
font-size:2.25rem;
  color:#cd158d;
}

.promo-content .promo-subh {
 font-size:1.125rem;
 font-weight:700;
}

.promo-btn { padding:1rem 0 .75rem 0; }

.tertiary_btn { text-decoration:none !important; }

/* TERMS — BELOW WHITE, SAME LEFT EDGE */
.promo-terms{
  margin-top:1.5rem;
  color:#fff;
  font-size:.825rem;
}