.sqpromo {
  box-sizing:border-box;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  margin:10px var(--edge) 0;
  padding:0;
  gap:0;
  align-items:stretch;
  border-radius:24px;
  overflow:hidden;
  background:#f0e9f7;
  color:#35127a;
  isolation:isolate
}

.sqpromo .sqpromo-copy {
  min-width:0;
  align-self:center;
  padding:32px 38px
}

.sqpromo .sqpromo-new {
  display:block;
  font-size:11px;
  font-weight:900;
  letter-spacing:.09em;
  line-height:1.6;
  margin-bottom:10px
}

.sqpromo h2 {
  font-size:clamp(28px,2.5vw,38px);
  line-height:1.15;
  margin:0
}

.sqpromo p {
  font-size:16px;
  line-height:1.7;
  margin:13px 0 0;
  max-width:660px;
  color:#70677e
}

.sqpromo .button {
  margin-top:21px;
  padding:13px 21px;
  font-size:14px;
  gap:18px;
  max-width:100%;
  white-space:normal
}

.sqpromo-walibi {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:minmax(290px,1fr);
  position:relative;
  min-width:0;
  margin:0;
  overflow:hidden
}

img.sqpromo-walibi-photo {
  grid-area:1/1;
  width:100%;
  height:100%;
  min-height:290px;
  max-height:380px;
  object-fit:cover;
  display:block;
  align-self:stretch
}

.sqpromo-walibi:after {
  content:'';
  grid-area:1/1;
  align-self:stretch;
  background:linear-gradient(transparent 40%,#12052cba);
  pointer-events:none;
  z-index:1
}

.sqpromo-walibi figcaption {
  grid-area:1/1;
  align-self:end;
  display:flex;
  align-items:center;
  gap:16px;
  padding:22px 24px;
  z-index:2;
  min-width:0
}

.sqpromo-walibi-logo {
  display:block;
  flex:0 0 auto;
  background:#fff;
  border-radius:12px;
  padding:12px 14px
}

.sqpromo-walibi-logo img {
  display:block;
  width:110px;
  height:auto;
  max-width:100%
}

.sqpromo-walibi-caption {
  color:white;
  font-size:15px;
  font-weight:800;
  line-height:1.4;
  min-width:0
}

.sqpromo-walibi-caption small {
  display:block;
  color:#eee7f8;
  font-size:10px;
  font-weight:500;
  margin-top:6px
}

@media(max-width:1000px) {
  .sqpromo {
    grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)
  }

  .sqpromo .sqpromo-copy {
    padding:28px
  }

  .sqpromo p {
    font-size:15px
  }

  .sqpromo-walibi figcaption {
    flex-wrap:wrap;
    gap:10px;
    padding:20px
  }

}

@media(max-width:700px) {
  .sqpromo {
    grid-template-columns:minmax(0,1fr)
  }

  .sqpromo .sqpromo-copy {
    padding:25px
  }

  .sqpromo h2 {
    font-size:28px
  }

  .sqpromo-walibi {
    grid-template-rows:230px
  }

  img.sqpromo-walibi-photo {
    height:230px;
    min-height:0;
    max-height:none
  }

  .sqpromo-walibi figcaption {
    flex-wrap:nowrap;
    padding:18px;
    gap:12px
  }

  .sqpromo-walibi-logo img {
    width:90px
  }

  .sqpromo-walibi-caption {
    font-size:13px
  }

}

/* Ticket-style tear line between the offer and the prize image. */
.sqpromo-walibi {
  overflow:visible
}

.sqpromo-perforation {
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:0;
  border-left:2px dashed #fff;
  z-index:4;
  pointer-events:none;
  filter:drop-shadow(1px 0 1px #35127a30)
}

.sqpromo-perforation:before,.sqpromo-perforation:after {
  content:'';
  position:absolute;
  width:26px;
  height:26px;
  background:#fff;
  border-radius:50%;
  left:-14px
}

.sqpromo-perforation:before {
  top:-13px
}

.sqpromo-perforation:after {
  bottom:-13px
}

@media(max-width:700px) {
  .sqpromo-perforation {
    top:0;
    bottom:auto;
    left:0;
    right:0;
    width:auto;
    height:0;
    border-left:0;
    border-top:2px dashed #fff;
    filter:drop-shadow(0 1px 1px #35127a30)
  }

  .sqpromo-perforation:before {
    top:-14px;
    left:-13px
  }

  .sqpromo-perforation:after {
    top:-14px;
    bottom:auto;
    left:auto;
    right:-13px
  }

}
