:root {
  --page-bg: #f3efe7;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--page-bg);
}

.page {
  width: 100%;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: flex-start;

  padding:
    max(18px, env(safe-area-inset-top))
    18px
    max(18px, env(safe-area-inset-bottom));
}

.digital-card {
  position: relative;
  width: min(100%, 760px);
  aspect-ratio: 1152 / 1280;
  flex: 0 0 auto;
}

.card-design {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
}

.hotspot {
  position: absolute;
  z-index: 5;
  display: block;
  border-radius: 16px;
  -webkit-tap-highlight-color: transparent;
}

/* Save Contact */
.save {
  left: 7.2%;
  top: 39.0%;
  width: 32.7%;
  height: 6.5%;
}

/* WhatsApp */
.whatsapp {
  left: 7.2%;
  top: 46.4%;
  width: 32.7%;
  height: 6.7%;
}

/* Phone */
.phone {
  left: 6.7%;
  top: 61.4%;
  width: 26%;
  height: 8%;
}

/* Email */
.email {
  left: 34.1%;
  top: 61.4%;
  width: 34%;
  height: 8%;
}

/* Website */
.website {
  left: 69%;
  top: 61.4%;
  width: 25.5%;
  height: 8%;
}

/* Cashback CTA */
.cashback {
  left: 8.5%;
  top: 82.5%;
  width: 43.5%;
  height: 7%;
}

@media (min-width: 900px) {
  .page {
    padding-top: 32px;
    padding-bottom: 32px;
  }

  .digital-card {
    width: min(78vh, 760px);
  }
}

@media (max-width: 640px) {
  body {
    background: #fbf8f2;
  }

  .page {
    min-height: auto;
    padding:
      max(8px, env(safe-area-inset-top))
      0
      max(12px, env(safe-area-inset-bottom));
  }

  .digital-card {
    width: 100%;
  }
}

@media (max-width: 360px) {
  .page {
    padding-top: 0;
  }
}
