:root {
  --scale-w: calc(100vw / 1920px);
  --scale-h: calc(100vh / 1080px);
  --scale: min(var(--scale-w), var(--scale-h));
  font-family: "M PLUS 1p", "M PLUS Rounded 1c", sans-serif;
}

* {
  box-sizing: border-box;
}

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

.sustaina-wrap {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
}

.sustaina-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url(/images/products/sustaina/background.svg) center/cover no-repeat;
  z-index: 0;
}

.media-layer,
.color-overlay,
.content-layer {
  position: absolute;
  inset: 0;
}

.media-layer {
  z-index: 1;
}

.media-layer video,
.media-layer img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.image-mobile {
  display: none;
}

@media (max-width: 768px) {
  .media-layer video {
    display: none;
  }
  .image-mobile {
    display: block;
  }
}

.color-overlay {
  z-index: 2;
  background: rgba(0, 0, 0, 0.2);
}

.content-layer {
  z-index: 3;
}

.content-layer img {
  position: absolute;
  display: block;
}

.logo {
  display: block;
  width: 100%;
  height: 100%;
}

.logo-np {
  top: calc(32px * var(--scale-h));
  left: calc(41px * var(--scale-w));
  width: clamp(220px, calc(384px * var(--scale-w)), 384px);
  height: clamp(34px, calc(38px * var(--scale-h)), 38px);
  max-width: 384px;
  max-height: 38px;
}

.hero-block {
  position: absolute;
  top: calc(240px * var(--scale-h));
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 3;
}

.hero-logo-group {
  width: max-content;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(52px * var(--scale-h));
}

.sustaina-logo-stack .logo-sustaina {
  position: relative;
  width: 500px;
  max-width: 100%;
  height: auto;
  max-height: clamp(160px, calc(214px * var(--scale-h)), 214px);
}

.sustaina-logo-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.logo-sustaina-label {
  color: #ffffff;
  font-size: clamp(11px, calc(20px * var(--scale)), 20px);
  letter-spacing: 15px;
  text-indent: 15px;
  font-weight: 900;
  text-align: center;
  display: flex;
  justify-content: center;
  width: 100%;
  line-height: 1;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  margin-block: calc(20px * var(--scale-h));
  white-space: nowrap;
  max-width: min(90vw, 520px);
}

.logo-sustaina-label.is-visible {
  opacity: 1;
  visibility: visible;
}

.circle-btn {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: calc(260px * var(--scale-h));
  z-index: 3;
  width: 110px;
  height: 110px;
  min-width: 110px;
  min-height: 110px;
  max-width: 110px;
  max-height: 110px;
  border-radius: 50%;
  border: 1px solid #707070;
  background: #ffffff;
  text-align: center;
  line-height: 1;
  color: #3c7664;
  font-family: inherit;
  font-size: 24px;
  font-weight: 900;
  display: grid;
  place-items: center;
  padding: 0;
  cursor: pointer;
  flex-shrink: 0;
  transition: opacity 0.2s ease;
}

.circle-btn span {
  transform: translateY(1px);
}

.circle-btn.is-hidden {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  display: none;
}

.oval-buttons {
  display: flex;
  gap: calc(32px * var(--scale-w));
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.oval-buttons.is-visible {
  opacity: 1;
  visibility: visible;
}

.hero-tagline {
  position: relative;
  display: none;
  opacity: 0;
  visibility: hidden;
  width: 100%;
  color: #ffffff;
  font-size: clamp(32px, 3vw, 60px);
  font-weight: 500;
  letter-spacing: 26px;
  text-align: center;
  font-family: inherit;
  line-height: 1.1;
  margin: 0 auto;
  white-space: nowrap;
}

.hero-tagline.is-visible {
  display: flex;
  justify-content: center;
  opacity: 1;
  visibility: visible;
  margin-bottom: calc(50px * var(--scale-h));
}

.oval-btn {
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.2);
  color: #ffffff;
  font-size: clamp(18px, calc(22px * var(--scale)), 24px);
  font-weight: 900;
  letter-spacing: 0;
  padding: calc(18px * var(--scale-h)) calc(40px * var(--scale-w));
  min-width: 280px;
  text-align: center;
  cursor: pointer;
  white-space: nowrap;
  font-family: inherit;
  line-height: 1.3;
  text-decoration: none;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.oval-btn:hover,
.oval-btn:focus-visible {
  background: rgba(0, 0, 0, 0.4);
  border-color: #ffffff;
  text-decoration: none;
}

.oval-btn sub {
  font-size: 0.7em;
  vertical-align: sub;
}

@media (max-width: 768px) {
  .sustaina-logo-stack {
    width: min(320px, calc(90vw));
  }

  .circle-btn {
    width: calc(110px * 0.7);
    height: calc(110px * 0.7);
    min-width: calc(110px * 0.7);
    min-height: calc(110px * 0.7);
    max-width: calc(110px * 0.7);
    max-height: calc(110px * 0.7);
    font-size: calc(24px * 0.7);
  }

  .oval-buttons {
    flex-direction: column;
    gap: calc(20px * var(--scale-h));
  }

  .oval-btn {
    min-width: unset;
    width: 100%;
    padding-inline: clamp(32px, 10vw, 56px);
  }

  .hero-tagline {
    padding-inline: clamp(6px, 3vw, 18px);
    font-size: clamp(14px, calc((100vw - 32px) / 14), 36px);
    letter-spacing: 0px;
    text-align: center;
  }
}
