html,
body {
  margin: 0;
  padding: 0;
  background: #f4f5f7;
  height: 100%;
}

.desktop-ui {
  display: block;
}

.mobile-ui {
  display: none;
}

/* Mobile (max width 768px) */
@media (max-width: 768px) {
  .desktop-ui {
    display: none;
  }

  .mobile-ui {
    display: block;
  }
}

.container {
  display: flex;
  overflow: visible;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 0;
  margin-left: 10%;
  margin-right: 10%;
  background: white;
  min-height: 100vh;
  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
  box-sizing: border-box;
}

.container.mobile {
  margin-left: 0%;
  margin-right: 0%;
}

.content {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-top: clamp(10px, 2vw, 30px);
  padding-bottom: clamp(10px, 2vw, 30px);
  align-items: center;
  justify-content: center;
  max-height: 100%;
  /* don’t overflow parent */
  width: 100%;
  /* optional, keeps content centered */
}

.content.mobile {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-top: clamp(10px, 2vw, 30px);
  padding-bottom: 0;
  align-items: center;
  justify-content: center;
  max-height: 100%;
  /* don’t overflow parent */
  width: 100%;
  /* optional, keeps content centered */
}

.logo {
  width: clamp(100px, 15vw, 150px);
  height: auto;
}

.title {
  color: #1D1D1F;
  font-family: 'Red Hat Display', sans-serif;
  font-weight: 900;
  font-size: clamp(36px, 3vw, 120px);
  opacity: 0;
  transform: translateY(30px);
  animation: fadeUp 0.8s ease-out forwards;
  color: #272727;
}

.title.mobile {
  color: #1D1D1F;
  padding-top: 4%;
  font-family: 'Red Hat Display', sans-serif;
  font-weight: 900;
  text-align: center;
  font-size: clamp(35px, 2.5vw, 60px);
  opacity: 0;
  transform: translateY(30px);
  animation: fadeUp 0.8s ease-out forwards;
  color: #272727;
}

.description {
  font-family: 'Nunito', sans-serif;
  font-weight: 300;
  font-size: clamp(13px, 1vw, 40px);
  margin-top: clamp(0.4rem, 0.85vw, 1.5rem);
  text-align: center;
  color: #272727;
  max-width: 100%;
  opacity: 0;
  transform: translateY(30px);
  animation: fadeUp 0.8s ease-out forwards;
  display: inline-block;
}

.description.mobile {
  padding-top: 1%;
  padding-left: 12%;
  padding-right: 12%;
  font-size: clamp(16px, 1.5vw, 32px);
}

.open-button:focus {
  outline: none;
  box-shadow: none;
  box-shadow: 0 0 0 0px rgba(0, 123, 255, 0.5);
  /* custom focus ring */
}

/* Scale down on click */
.open-button:active {
  outline: none;
  box-shadow: none;
  transform: scale(0.94);
}

.badges-row.mobile {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  opacity: 0;
  transform: translateY(30px);
  animation: fadeUp 0.8s ease-out forwards;
}

.badges-row {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  margin-top: clamp(0.35rem, 0.75vw, 1.1rem);
  opacity: 0;
  transform: translateY(30px);
  animation: fadeUp 0.8s ease-out forwards;
}

.badge-wrapper {
  --badge-height: clamp(30px, 3vw, 90px);
  --clear-space: calc(var(--badge-height) / 4);
  display: inline-block;
  padding: var(--clear-space);
}

.badge-wrapper.mobile {
  --badge-height: clamp(50px, 5.5vw, 80px);
  --clear-space: calc(var(--badge-height) / 4);
  display: inline-block;
  padding: var(--clear-space);
}

.badge-wrapper img {
  height: var(--badge-height);
  width: auto;
  /* keeps aspect ratio */
  display: block;
}

.mockup-row {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 0;
  margin-top: clamp(2rem, 2.5vw, 6rem);
  opacity: 0;
  transform: translateY(30px);
  animation: fadeUp 0.8s ease-out forwards;
}

.mockup-row img {
  width: clamp(200px, 15.5vw, 650px);
  height: auto;
  display: block;
  position: relative;
}

.mockup-mobile {
  width: clamp(220px, 17vw, 700px);
  height: auto;
  display: block;
  position: relative;
  visibility: hidden;
}

.mockup-row img:nth-child(1) {
  z-index: 1;
  align-self: center;
  transition: transform 0.45s ease, width 0.45s ease;
  /* smooth animation */
  transform: translateX(25%) scale(0.85);
  /* smaller than center */
}

.mockup-row img:nth-child(1):hover {
  z-index: 1;
  transform: translateX(5%) scale(1);
}

.mockup-row img:nth-child(2) {
  z-index: 2;
  align-self: center;
  transition: transform 0.45s ease, width 0.45s ease;
  /* smooth animation */
}

.mockup-row img:nth-child(2):hover {
  z-index: 2;
  transform: scale(1.1);
}

.mockup-row img:nth-child(3) {
  z-index: 1;
  align-self: center;
  transition: transform 0.45s ease, width 0.45s ease;
  /* smooth animation */
  transform: scale(0.85);
  /* smaller than center */
  transform: translateX(-25%) scale(0.85);
  /* smaller than center */
}

.mockup-row img:nth-child(3):hover {
  z-index: 1;
  transform: translateX(-5%) scale(1);
}

.extra-info {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 0.6rem;
  margin-left: 10%;
  margin-right: 10%;
}

.extra-info-mobile {
  margin-top: auto; /* pushes it to the bottom */
  margin-bottom: 12px; /* spacing from bottom */
  width: 100%;
  text-align: center; /* optional */
}

.extra-info-mobile-spacer {
  height: clamp(0.8rem, 1.8vw, 3rem);
}

.extra-info-unclickable {
  padding-bottom: clamp(1rem, 2vw, 3rem);
  pointer-events: none;
  /* disables clicks */
  color: inherit;
  /* optional: keeps normal text color */
  text-decoration: none;
  /* optional: remove underline */
  cursor: default;
  /* optional: default cursor instead of pointer */
}

.extra-info-unclickable-mobile {
  font-family: 'Nunito', sans-serif;
  font-weight: 300;
  font-size: clamp(12px, 0.85vw, 24px);
  padding-bottom: clamp(1rem, 2vw, 3rem);
  text-align: center;
  text-decoration: none;
  color: #595A5B;
  pointer-events: none;
  /* disables clicks */
  color: inherit;
  /* optional: keeps normal text color */
  text-decoration: none;
  /* optional: remove underline */
  cursor: default;
  /* optional: default cursor instead of pointer */
}

.extra-info a {
  font-family: 'Nunito', sans-serif;
  font-weight: 300;
  font-size: clamp(12px, 0.85vw, 24px);
  padding-top: clamp(0.8rem, 1.8vw, 3rem);
  text-align: center;
  text-decoration: none;
  color: #595A5B;
}

.extra-info a:hover {
  text-decoration: underline;
  /* underline on hover */
}

.delay-1 {
  animation-delay: 0.25s;
}

.delay-2 {
  animation-delay: 0.5s;
}

.delay-3 {
  animation-delay: 0.6s;
}

@keyframes fadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 375px) {
  .badge-wrapper.mobile {
    --badge-height: clamp(40px, 5vw, 100px);
    --clear-space: calc(var(--badge-height) / 4);
    display: inline-block;
    padding: var(--clear-space);
  }
  .mockup-mobile {
    width: clamp(175px, 15vw, 600px);
    height: auto;
    display: block;
    position: relative;
  }
  .badges-row.mobile {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    margin-top: 0px;
    opacity: 0;
    transform: translateY(30px);
    animation: fadeUp 0.8s ease-out forwards;
  }
  .title.mobile {
    color: #1D1D1F;
    padding-top: 4%;
    font-family: 'Red Hat Display', sans-serif;
    font-weight: 900;
    text-align: center;
    font-size: clamp(27px, 3vw, 110px);
    opacity: 0;
    padding-left: 12%;
    padding-right: 12%;
    transform: translateY(30px);
    animation: fadeUp 0.8s ease-out forwards;
    color: #272727;
  }
  .description.mobile {
    padding-top: 1%;
    padding-left: 12%;
    padding-right: 12%;
    font-size: clamp(12px, 2vw, 36px);
  }
  .extra-info {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 0.6rem;
    margin-left: 0;
    margin-right: 0;
  }
}
