/* section.hero */
.hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
}

.hero .container {
  align-items: center;
  gap: 30px;
}

.hero .container,
.hero .btn-scroll-down,
.hero .btn-ask-ai {
  opacity: 0;
}

.hero h1,
.hero p {
  width: 690px;
  max-width: 100%;
  text-align: center;
  margin: 0;
}

.hero h1 {
  font-size: 45px;
  line-height: 1.1111;
  width: 630px;
}

.hero h1 > div:last-child:not(:first-child) {
  font-size: 28px;
  line-height: 1.2143;
  color: var(--qvac-white);
}

.hero p {
  font-size: 20px;
  line-height: 1.3;
}

.hero video {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: -1;
  object-fit: cover;
  opacity: 0.45;
}

@media (max-width: 991.98px) {
  .hero {
    height: 100svh;
  }
  
  .hero .container {
    gap: 20px;
  }

  .hero h1,
  .hero p {
    width: 330px;
  }

  .hero h1 {
    font-size: 23px;
    line-height: 1.2727;
  }

  .hero h1 > div:last-child:not(:first-child) {
    font-size: 18px;
    line-height: 1.3;
  }

  .hero p {
    font-size: 13px;
    line-height: 1.3846;
  }

  .hero .btn-group {
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }

  .hero .btn-group .btn {
    width: fit-content;
  }
}

/* section.intro */
.intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: var(--qvac-black);
}

.intro .container {
  width: 100%;
  max-height: 100%;
  max-width: 100%;
  padding: 0;
}

.intro video {
  width: 100%;
  height: 100%;
}

.intro .btn-video-play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: fit-content;
  background: transparent;
  border: 0;
  z-index: 1;
  cursor: pointer;
}

.intro .btn-video-play svg {
  width: min(263px, 18vw);
  min-width: 90px;
  height: auto;
  opacity: 0.66;
}

.intro .btn-video-play svg path {
  transition: all .3s cubic-bezier(0.250, 0.460, 0.450, 0.940);
}

.intro .btn-video-play:hover svg path {
  fill: #A0B2AC;
}

.intro .btn-scroll-down-container,
.intro .btn-ask-ai-container {
  display: none;
}

@media (max-width: 991.98px) {
  .intro {
    height: auto;
  }
}

/* section.features */
.features {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 100px;
  box-sizing: border-box;
  padding: 190px 0;
}

.features .container {
  align-items: center;
  gap: 30px;
}

.features h2 {
  font-size: 45px;
  line-height: 1.1111;
  width: 580px;
  max-width: 100%;
  text-align: center;
  margin: 0;
}

.features .features-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
}

.features .features-item {
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-sizing: border-box;
  border: 1px solid transparent;
  border-radius: 8px;
  width: 308px;
  text-align: center;
  padding: 25px 41px;
  transition: all .3s cubic-bezier(0.250, 0.460, 0.450, 0.940);
}

.features .features-item:hover {
  border: 1px solid var(--qvac-green);
}

.features .features-item:nth-child(3),
.features .features-item:nth-child(4) {
  padding-left: 43px;
  padding-right: 43px;
}

.features .features-item img {
  height: 48px;
  width: auto;
}

.features .features-item h3 {
  margin: 0;
}

.features .features-item p {
  font-size: 16px;
  line-height: 1.25;
  margin: 0;
}

@media (max-width: 991.98px) {
  .features {
    padding: 100px 0;
    gap: 50px;
  }

  .features h2  {
    font-size: 22px;
    line-height: 1.2727;
    width: 310px;
  }

  .features .btn-group {
    align-items: center;
    gap: 10px;
  }

  .features .btn-group .btn {
    width: fit-content;
  }

  .features .features-list {
    gap: 15px;
  }

  .features .features-item {
    padding: 20px 32px;
    width: 361px;
    max-width: calc(100% - 16px);
    border-color: #30504B;
  }

  .features .features-item:nth-child(3),
  .features .features-item:nth-child(4) {
    padding-left: 32px;
    padding-right: 32px;
  }

  .features .features-item p {
    font-size: 13px;
    line-height: 1.3846;
  }
}

/* section.api */
.api {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 170px 0 190px;
  gap: 100px;
  overflow: hidden;
}

.api .container {
  position: relative;
  flex-direction: row;
  align-items: center;
  gap: 30px;
}

.api .container .inner-container:first-child {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  max-width: 45%;
}

.api .container .inner-container:last-child {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-start;
  width: 100%;
  height: 610px;
}

.api .container .laptop-container {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: -40px;
  -webkit-mask-image: linear-gradient(
    to right,
    rgba(23,24,23,0) 0%,
    rgba(23,24,23,0) 20%,
    rgba(23,24,23,1) 50%,
    rgba(23,24,23,1) 100%
  );
  mask-image: linear-gradient(
    to right,
    rgba(23,24,23,0) 0%,
    rgba(23,24,23,0) 20%,
    rgba(23,24,23,1) 50%,
    rgba(23,24,23,1) 100%
  );
}

.api .container .laptop-container img {
  width: 773.88px;
  pointer-events: none;
}

.api .container .laptop-container .code-block {
  position: absolute;
  top: 50px;
  right: 80px;
  z-index: 1;
}

.api .container .laptop-container .code-block .code {
  font-family: 'Inconsolata', sans-serif;
  font-weight: bold;
  font-size: 11px;
  line-height: 1.1246;
  color: #ABABAB;
}

.api h2,
.api p {
  width: 540px;
  max-width: 100%;
  text-align: left;
  margin: 0;
}

.api h2 {
  font-size: 45px;
  line-height: 1.1111;
  width: 340px;
}

.api p {
  font-size: 20px;
  line-height: 1.3;
}

.api .btn-group {
  flex-direction: column;
}

.api .btn-group .btn {
  width: fit-content;
}

@media (max-width: 991.98px) {
  .api {
    padding: 100px 0 214px;
    gap: 50px;
  }

  .api .container {
    flex-direction: column;
  }

  .api .container .inner-container:first-child {
    max-width: 100%;
    align-items: center;
  }

  .api h2,
  .api p {
    text-align: center;
    width: 361px;
    max-width: 100%;
  }

  .api h2 {
    font-size: 22px;
    line-height: 1.2727;
  }

  .api p {
    font-size: 13px;
    line-height: 1.3846;
  }

  .api .btn-group {
    position: absolute;
    bottom: -114px;
    align-items: center;
    gap: 10px;
  }

  .api .container .inner-container:last-child {
    height: auto;
    align-items: center;
    gap: 30px;
  }

  .api .container .laptop-container {
    position: relative;
    top: unset;
    right: unset;
    transform: none;
    -webkit-mask-image: linear-gradient(
      to right,
      rgba(23,24,23,0) 0%,
      rgba(23,24,23,0) 15%,
      rgba(23,24,23,1) 40%,
      rgba(23,24,23,1) 100%
    );
    mask-image: linear-gradient(
      to right,
      rgba(23,24,23,0) 0%,
      rgba(23,24,23,0) 15%,
      rgba(23,24,23,1) 40%,
      rgba(23,24,23,1) 100%
    );
  }

  .api .container .laptop-container img {
    width: 100%;
  }

  .api .container .laptop-container .code-block {
    top: 8%;
    right: 10%;
  }

  .api .container .laptop-container .code-block .code {
    font-size: 1.4vw;
  }
}

/* section.local-ai */
.local-ai {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 170px 0 190px;
  gap: 100px;
}

.local-ai .container {
  align-items: center;
  gap: 30px;
}

.local-ai h2 {
  font-size: 45px;
  line-height: 1.1111;
  width: 690px;
  max-width: 100%;
  text-align: center;
  margin: 0;
}

.local-ai .local-ai-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
}

.local-ai .local-ai-item a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 15px;
  box-sizing: border-box;
  width: 410px;
  padding: 44.5px 53px;
  border: 1px solid transparent;
  border-radius: 8px;
  transition: all .3s cubic-bezier(0.250, 0.460, 0.450, 0.940);
  cursor: pointer;
}

.local-ai .local-ai-item a:hover {
  border: 1px solid var(--qvac-green);
}

.local-ai .local-ai-item a:hover .btn.btn-outline-green {
  background-color: var(--qvac-green);
  border-color: var(--qvac-green);
  color: var(--qvac-black);
}

.local-ai .local-ai-item img {
  height: 250px;
  width: auto;
}

.local-ai .local-ai-item h3 {
  font-size: 40px;
  text-align: center;
  margin: 0;
}

.local-ai .local-ai-item p {
  font-size: 16px;
  text-align: center;
  width: 258px;
  max-width: 100%;
  margin: 0;
  color: var(--qvac-white);
}

@media (max-width: 991.98px) {
  .local-ai {
    padding: 100px 0;
    gap: 50px;
  }

  .local-ai h2 {
    font-size: 22px;
    line-height: 1.2727;
    width: 361px;
  }

  .local-ai .local-ai-list {
    width: 100%;
  }

  .local-ai .local-ai-item {
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
  }

  .local-ai .local-ai-item a {
    border-color: #30504B;
    padding: 20px 53px;
    width: 361px;
    max-width: 100%;
    gap: 10px;
  }

  .local-ai .local-ai-item img {
    height: 180px;
  }

  .local-ai .local-ai-item h3 {
    font-size: 24px;
  }

  .local-ai .local-ai-item p {
    font-size: 13px;
  }
}

/* section.products */
.products {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 170px 0 190px;
  gap: 100px;
}

.products .container {
  align-items: center;
  gap: 30px;
}

.products .container:nth-child(2) {
  align-items: flex-start;
  width: 1440px;
}

.products h2,
.products p {
  width: 925px;
  max-width: 90%;
  text-align: center;
  margin: 0;
}

.products h2 {
  font-size: 45px;
  line-height: 1.1111;
}

.products p {
  font-size: 20px;
  line-height: 1.3;
}

.products .products-list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
  max-width: 100%;
  width: 100%;
  padding-left: 70px;
  padding-right: 70px;
  box-sizing: border-box;
}

.products .products-item a {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  box-sizing: border-box;
  width: 420px;
  padding: 32px 28px 46px;
  border: 1px solid #30504B;
  border-radius: 8px;
  transition: all .3s cubic-bezier(0.250, 0.460, 0.450, 0.940);
  cursor: pointer;
  background:
    radial-gradient(
      circle at 85% 85%,
      rgba(0, 255, 220, 0.0375) 0%,
      rgba(0, 255, 220, 0.015) 25%,
      rgba(0, 255, 220, 0.005625) 45%,
      transparent 65%
    );
  overflow: hidden;
}

.products .products-item.coming-soon a,
.products .products-item.coming-soon .btn {
  cursor: default;
}

.products .products-item.coming-soon .coming-soon__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  background-color: rgba(23, 24, 23, 0.7);
  backdrop-filter: blur(4px);
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 45px;
  line-height: 1.1111;
  color: #A0B2AC;
  transition: all .3s cubic-bezier(0.250, 0.460, 0.450, 0.940);
}

.products .products-item.coming-soon .coming-soon__overlay:hover {
  color: var(--qvac-white);
}

.products .products-item a:hover {
  border: 1px solid var(--qvac-green);
}

.products .products-item a:hover .btn {
  background-color: white;
  border-color: white;
}

.products .products-item img {
  height: 320px;
  width: auto;
}

.products .products-item h3 {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.64px;
  color: var(--qvac-white);
  margin-top: -15px;
}

.products .products-item h3 img {
  width: 206px;
  height: auto;
}

.products .products-item p {
  font-family: 'Inconsolata', sans-serif;
  font-size: 24px;
  line-height: 1.083;
  letter-spacing: 0;
  text-align: center;
  width: 361px;
  max-width: 100%;
  margin: 0;
  color: var(--qvac-white);
}

@media (max-width: 1199.98px) {
  .products .products-item a {
    width: 400px;
  }

  .products .products-item img {
    height: 250px;
    width: auto;
  }

  .products .products-item p {
    font-size: 23px;
  }
}

@media (max-width: 991.98px) {
  .products {
    padding: 100px 0;
    gap: 50px;
  }

  .products h2,
  .products p {
    width: 361px;
  }

  .products h2 {
    font-size: 22px;
    line-height: 1.2727;
  }

  .products p {
    font-size: 16px;
    line-height: 1.25;
  }

  .products .products-list {
    flex-wrap: wrap;
    justify-content: center;
    padding-left: 0;
    padding-right: 0;
    scroll-snap-type: none;
    scroll-padding-left: 0;
    overflow: hidden;
    -webkit-mask-image: none;
    mask-image: none;
    gap: 20px;
  }

  .products .container:nth-child(2) {
    align-items: center;
  }

  .products .products-item {
    display: flex;
    justify-content: center;
    width: 361px;
    max-width: 100%;
  }

  .products .products-item a {
    width: 361px;
    max-width: 100%;
    padding: 30px 28px;
  }

  .products .products-item p {
    font-size: 16px;
    line-height: 1.25;
    width: 268px;
  }
}
