.widget-builder-hero {
  position: relative;
  aspect-ratio: 1440 / 620;
  min-height: 0;
  overflow: hidden;
  background: var(--airnav-color-canvas);
}

.widget-builder-hero__media,
.widget-builder-hero__media::after {
  position: absolute;
  inset: 0;
}

.widget-builder-hero__media {
  z-index: 0;
}

.widget-builder-hero__media::after {
  content: "";
  pointer-events: none;
  background: linear-gradient(to left, rgb(255 255 255 / 0%) 51.262%, var(--airnav-color-canvas));
}

.widget-builder-hero__media img {
  position: absolute;
  top: calc(-150 / 1440 * 100vw);
  left: 0;
  width: 100%;
  height: auto;
  max-width: none;
}

.widget-builder-hero__glow {
  position: absolute;
  top: calc(11.875vw - 187px);
  left: calc(max((100vw - 1280px) / 2, 5.5556vw) - 156px);
  z-index: 1;
  width: 856px;
  height: 593px;
  overflow: visible;
  pointer-events: none;
}

.widget-builder-hero__glow img {
  position: absolute;
  top: -25.3%;
  right: -17.52%;
  bottom: -25.3%;
  left: -17.52%;
  display: block;
  width: auto;
  height: auto;
  max-width: none;
}

.widget-builder-hero__layout {
  position: relative;
  z-index: 2;
  min-height: 100%;
  padding-top: 11.875vw;
}

.widget-builder-hero__content {
  width: min(526px, 100%);
}

.widget-builder-hero__eyebrow,
.widget-builder-hero__title,
.widget-builder-hero__subtitle {
  margin: 0;
}

.widget-builder-hero__eyebrow {
  color: var(--airnav-color-green);
  font: 700 20px/normal var(--airnav-font-body);
  text-transform: uppercase;
}

.widget-builder-hero__title {
  margin-top: 20px;
  color: var(--airnav-color-forest);
  font: 400 80px/1.1 var(--airnav-font-display);
  letter-spacing: -1.6px;
}

.widget-builder-hero__subtitle {
  margin-top: 12px;
  color: rgb(17 32 27 / 70%);
  font: 400 20px/normal var(--airnav-font-body);
}

.widget-builder-hero__cta {
  min-width: 167px;
  margin-top: 44px;
}

@media (min-width: 1441px) {
  .widget-builder-hero {
    height: 620px;
    min-height: 620px;
    aspect-ratio: auto;
  }

  /* Keep the photo centred on the content (as on Custom Solutions); its left edge is faded in the artwork, fade the right,
     thinly: the tablet is 145px from the photo's edge. */
  .widget-builder-hero__media img {
    top: -150px;
    right: auto;
    left: calc(50% - 720px);
    width: 1440px;
    -webkit-mask-image: linear-gradient(to left, transparent 0, #000 min(120px, calc((100vw - 1440px) * 0.4)));
    mask-image: linear-gradient(to left, transparent 0, #000 min(120px, calc((100vw - 1440px) * 0.4)));
  }

  .widget-builder-hero__media::after {
    right: auto;
    left: calc(50% - 720px);
    width: 1440px;
  }

  .widget-builder-hero__glow {
    top: -16px;
  }

  .widget-builder-hero__layout {
    padding-top: 171px;
  }
}

@media (max-width: 900px) {
  .widget-builder-hero {
    aspect-ratio: auto;
  }

  .widget-builder-hero__glow {
    top: 0;
    left: -15vw;
    width: 115vw;
    height: 100%;
  }

  .widget-builder-hero__layout {
    height: auto;
    padding-top: clamp(48px, 11.875vw, 107px);
    padding-bottom: clamp(48px, 11.875vw, 107px);
  }
}

/* Phone hero as in the design: the text, then the whole photo, then a full-width button. */
@media (max-width: 700px) {
  .widget-builder-hero {
    display: flex;
    flex-direction: column;
    padding: 40px 0;
  }

  .widget-builder-hero__layout,
  .widget-builder-hero__content {
    display: contents;
  }

  .widget-builder-hero__eyebrow,
  .widget-builder-hero__title,
  .widget-builder-hero__subtitle,
  .widget-builder-hero__cta {
    margin-inline: var(--airnav-gutter);
  }

  .widget-builder-hero__title {
    margin-top: 12px;
    font-size: 40px;
    letter-spacing: -0.8px;
  }

  .widget-builder-hero__subtitle {
    margin-top: 8px;
  }

  .widget-builder-hero__media {
    position: relative;
    order: 1;
    aspect-ratio: 390 / 303;
    margin: 13px 0 43px;
    overflow: hidden;
  }

  /* The design's crop of the photo: the tablet on the desk. */
  .widget-builder-hero__media img {
    top: -28.68%;
    left: -77.56%;
    width: 189.87%;
  }

  .widget-builder-hero__media::after {
    background: linear-gradient(var(--airnav-color-canvas), rgb(255 255 255 / 0%) 17.16%, rgb(255 255 255 / 0%) 89.44%, var(--airnav-color-canvas));
  }

  .widget-builder-hero__glow {
    display: none;
  }

  .widget-builder-hero__cta {
    order: 2;
    min-width: 0;
    margin-top: 0;
  }
}

.widget-builder-intro {
  position: relative;
  min-height: 736px;
  background: var(--airnav-color-canvas);
}

.widget-builder-intro__layout {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 658.022px) minmax(0, 1fr);
  min-height: 736px;
}

.widget-builder-intro__visual {
  position: absolute;
  top: 139.348px;
  left: 0;
  width: 658.022px;
  height: 530.039px;
}

.widget-builder-intro__shadow {
  position: absolute;
  top: -24.348px;
  left: 113.001px;
  z-index: 0;
  width: 565px;
  height: 478.845px;
  border: 1px solid var(--airnav-color-border);
  border-radius: var(--airnav-radius-control);
  background: var(--airnav-color-canvas);
  box-shadow: 0 12px 50px #c9d1ce;
}

.widget-builder-intro__image-frame {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--airnav-color-border);
  border-radius: var(--airnav-radius-control);
  box-shadow: 0 12px 50px #c9d1ce;
}

.widget-builder-intro__image {
  position: absolute;
  top: -14.37%;
  left: -13.85%;
  width: 126.66%;
  height: 117.79%;
  max-width: none;
}

.widget-builder-intro__content {
  grid-column: 2;
  justify-self: end;
  width: min(522px, 100%);
  padding-top: 211px;
  padding-bottom: 147px;
}

.widget-builder-intro__content h2,
.widget-builder-intro__content p {
  margin: 0;
}

.widget-builder-intro__content h2 {
  color: var(--airnav-color-forest);
  font: 400 64px/1.1 var(--airnav-font-display);
  letter-spacing: -1.28px;
}

.widget-builder-intro__highlight {
  color: var(--airnav-color-green);
}

.widget-builder-intro__divider {
  display: block;
  width: 80px;
  height: 1px;
  margin-top: 31px;
}

.widget-builder-intro__content p {
  margin-top: 31px;
  color: rgb(17 32 27 / 70%);
  font: 400 16px/normal var(--airnav-font-body);
}

.widget-builder-build {
  min-height: 1195px;
  padding-top: 80px;
  padding-bottom: 120px;
  background: var(--airnav-color-canvas);
}

.widget-builder-build__header {
  text-align: center;
}

.widget-builder-build__header h2 {
  width: min(522px, 100%);
  margin: 0 auto;
  color: var(--airnav-color-forest);
  font: 400 64px/1.1 var(--airnav-font-display);
  letter-spacing: -1.28px;
}

.widget-builder-build__highlight {
  color: var(--airnav-color-green);
}

.widget-builder-build__divider {
  display: block;
  width: 80px;
  height: 1px;
  margin: 31px auto 0;
}

.widget-builder-build__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 31px;
}

.widget-builder-build__card {
  position: relative;
  min-height: 861px;
  overflow: hidden;
  border: 1px solid var(--airnav-color-border);
  border-radius: var(--airnav-radius-card);
  background: var(--airnav-color-canvas);
}

.widget-builder-build__card--website {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 52px 32px;
}

.widget-builder-build__card-title {
  width: 100%;
  margin: 0;
  color: var(--airnav-color-forest);
  font: 400 32px/1.2 var(--airnav-font-display);
  letter-spacing: -0.64px;
  text-align: center;
}

.widget-builder-build__device {
  position: relative;
  width: 564px;
  height: auto;
  max-width: 100%;
  aspect-ratio: 564 / 251;
  flex: 0 0 auto;
}

.widget-builder-build__laptop {
  position: absolute;
  top: -16.01%;
  left: 0;
  width: 100%;
  height: 125.41%;
  max-width: none;
  mix-blend-mode: multiply;
}

.widget-builder-build__screen-frame {
  position: absolute;
  top: 5.36972%;
  left: 25.3734%;
  width: 49.25372%;
  height: 68.8502%;
  overflow: hidden;
  background: #000;
}

.widget-builder-build__screen {
  position: absolute;
  top: -0.03%;
  left: 0;
  width: 100%;
  height: 103.12%;
  max-width: none;
}

.widget-builder-build__checklist {
  display: flex;
  flex-direction: column;
  align-self: center;
  gap: 20px;
  width: 353px;
  max-width: 100%;
  margin: 0;
  padding: 0 0 12px;
  list-style: none;
}

.widget-builder-build__checklist li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: rgb(17 32 27 / 70%);
  font: 400 16px/normal var(--airnav-font-body);
}

.widget-builder-build__checklist img {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  margin-top: 3px;
}

.widget-builder-build__cta {
  width: 356px;
  max-width: 100%;
  min-height: 60px;
  margin-top: auto;
}

.widget-builder-build__card--livestream {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 52px 32px;
}

.widget-builder-build__screen-frame--livestream .widget-builder-build__screen--livestream {
  top: -0.05%;
  left: -0.9%;
  width: 101.66%;
  height: 100.1%;
}

.widget-builder-build__checklist--livestream {
  width: 315px;
}

.widget-builder-build__glow {
  position: absolute;
  pointer-events: none;
}

.widget-builder-build__glow img {
  position: absolute;
  display: block;
  max-width: none;
}

.widget-builder-build__glow--bottom {
  bottom: -1px;
  left: -51px;
  width: 120px;
  height: 120px;
}

.widget-builder-build__glow--bottom img {
  inset: -250%;
  width: 720px;
  height: 720px;
}

.widget-builder-build__glow--side {
  top: calc(50% + 0.5px);
  right: -51px;
  width: 100px;
  height: 100px;
  transform: translateY(-50%);
}

.widget-builder-build__glow--side img {
  inset: -200%;
  width: 500px;
  height: 500px;
}

/* Narrower than 1440 the text keeps its column (which starts at least 658px in), so the screenshot shrinks to end 100px before it, as at 1440; the back card scales with it. */
@media (min-width: 1101px) and (max-width: 1439px) {
  .widget-builder-intro__visual {
    width: max(558.022px, calc(100% - 622px));
    height: auto;
    aspect-ratio: 658.022 / 530.039;
  }

  .widget-builder-intro__shadow {
    top: -4.594%;
    left: 17.173%;
    width: 85.864%;
    height: 90.341%;
  }
}

@media (max-width: 1100px) {
  .widget-builder-intro__layout {
    display: flex;
    flex-direction: column;
    min-height: 0;
    gap: 64px;
    padding-top: 96px;
    padding-bottom: 96px;
  }

  .widget-builder-intro__visual {
    position: relative;
    top: auto;
    left: auto;
    align-self: center;
    width: min(658.022px, 100%);
    height: auto;
    aspect-ratio: 658.022 / 530.039;
  }

  .widget-builder-intro__shadow {
    left: 17.173%;
    width: 85.864%;
    height: 90.341%;
    transform: translateY(-4.594%);
  }

  .widget-builder-intro__content {
    width: min(522px, 100%);
    padding: 0;
  }
}

@media (max-width: 900px) {
  .widget-builder-build {
    min-height: 0;
    padding-top: 96px;
    padding-bottom: 96px;
  }

  .widget-builder-build__cards {
    grid-template-columns: minmax(0, 1fr);
  }

  .widget-builder-build__card--website {
    min-height: 0;
  }

  .widget-builder-build__card--livestream {
    min-height: 0;
  }

  .widget-builder-build__device {
    width: 100%;
  }

  .widget-builder-build__laptop {
    max-width: none;
  }
}

@media (max-width: 700px) {
  .widget-builder-intro__content h2,
  .widget-builder-build__header h2 {
    font-size: 40px;
    letter-spacing: -0.8px;
  }

  /* Screenshot between the heading and the text, as in the phone design: the content's children join the column. */
  .widget-builder-intro__layout {
    gap: 0;
  }

  .widget-builder-intro__content {
    display: contents;
  }

  .widget-builder-intro__content h2 {
    order: 1;
  }

  .widget-builder-intro__divider {
    order: 2;
    margin-top: 24px;
  }

  /* 40px from the divider to the back card, which sits 24.348px + 4.594% of its height (3.3431% of the width) above the screenshot. */
  .widget-builder-intro__visual {
    order: 3;
    margin-top: calc(64.348px + 3.3431%);
  }

  .widget-builder-intro__content p {
    order: 4;
    margin-top: 36px;
  }

  /* Laptop at the design's width, its body as wide as the card: with the image's empty margins that is 1.338 x the card. */
  .widget-builder-build__device {
    width: calc((100% + 64px) * 1.338);
    max-width: none;
  }
}
