@charset "UTF-8";
#loading {
  position: fixed;
  top: 0;
  left: 0;
  height: 100dvh;
  width: 100dvw;
  background-color: #fff;
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  transition: all 0.5s ease;
}
#loading .loading-content .logo {
  font-size: 3rem;
  font-weight: bold;
  color: #092135;
  animation: pulse 1s ease-in-out forwards;
}

/* Nhịp nhịp */
@keyframes pulse {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.2);
  }
}
body.loading {
  overflow: hidden;
}
body.loading #loading {
  transition: all 0.5s ease;
}

body:not(.loading) #loading {
  height: 0;
}

@media screen and (min-width: 768px) {
  #hero {
    height: 100dvh;
    min-height: 90rem;
  }
}
@media screen and (max-width: 767px) {
  #hero {
    height: 70dvh;
    min-height: 70rem;
    aspect-ratio: inherit;
  }
}

#hero-bg {
  background: url(../images/top/hero.png) top center/cover no-repeat;
}
@media screen and (min-width: 768px) {
  #hero-bg {
    background-image: url(../images/top/hero_pc.png);
  }
}

.hero-top {
  padding-bottom: 0;
}

.hero-txt {
  background: url(../images/top/hero-txt.png) center/contain no-repeat;
}

#movie {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
}

#about {
  background-image: linear-gradient(to bottom, #fff, #c8e2f0);
  position: relative;
  padding-top: 15rem;
  padding-bottom: 10rem;
}
@media screen and (min-width: 768px) {
  #about {
    padding-top: 35rem;
    padding-bottom: 35rem;
  }
}
#about .about-content {
  position: relative;
  z-index: 5;
  max-width: 100rem;
  margin: 0 auto;
}
#about .about-content .about-detail {
  margin-top: 5rem;
  text-align: center;
  font-weight: 500;
  font-size: 1.4rem;
}
@media screen and (min-width: 768px) {
  #about .about-content .about-detail {
    font-size: 2rem;
  }
}
#about .image .img {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  opacity: 0;
  transform: translateX(-50%) translateY(-50%);
  transition: 1s ease-in-out;
  background: var(--about-layer) center/contain no-repeat;
  text-indent: -1000vw;
  overflow: hidden;
  display: block;
}
#about .image .img-1 {
  --about-layer: url(../images/top/about1.png);
  aspect-ratio: 246/188;
  width: 24.6rem;
}
#about .image .img-2 {
  --about-layer: url(../images/top/about2.png);
  aspect-ratio: 209/246;
  width: 20.9rem;
}
#about .image .img-3 {
  --about-layer: url(../images/top/about3.png);
  aspect-ratio: 210/275;
  width: 21rem;
}
#about .image .img-4 {
  --about-layer: url(../images/top/about4.png);
  aspect-ratio: 160/207;
  width: 16rem;
}
#about .image .img-5 {
  --about-layer: url(../images/top/about5.png);
  aspect-ratio: 305/402;
  width: 30.5rem;
}
#about .image.aos-animate .img {
  opacity: 1;
}
#about .image .img-1 {
  width: 24.6rem;
}
@media screen and (max-width: 767px) {
  #about .image .img-1 {
    width: 7rem;
  }
}
#about .image.aos-animate .img-1 {
  transform: translateX(-310%) translateY(-280%);
}
@media screen and (max-width: 767px) {
  #about .image.aos-animate .img-1 {
    transform: translateX(-22rem) translateY(-18rem);
  }
}
#about .image .img-2 {
  width: 20.9rem;
}
@media screen and (max-width: 767px) {
  #about .image .img-2 {
    width: 6rem;
  }
}
#about .image.aos-animate .img-2 {
  transform: translateX(-310%) translateY(100%);
}
@media screen and (max-width: 767px) {
  #about .image.aos-animate .img-2 {
    transform: translateX(-18rem) translateY(30rem);
  }
}
#about .image .img-3 {
  width: 21rem;
}
@media screen and (max-width: 767px) {
  #about .image .img-3 {
    width: 7rem;
  }
}
#about .image.aos-animate .img-3 {
  transform: translateX(180%) translateY(-200%);
}
@media screen and (max-width: 767px) {
  #about .image.aos-animate .img-3 {
    transform: translateX(10rem) translateY(-35rem);
  }
}
#about .image .img-4 {
  width: 16rem;
}
@media screen and (max-width: 767px) {
  #about .image .img-4 {
    width: 5rem;
  }
}
#about .image.aos-animate .img-4 {
  transform: translateX(300%) translateY(-145%);
}
@media screen and (max-width: 767px) {
  #about .image.aos-animate .img-4 {
    transform: translateX(15rem) translateY(-28rem);
  }
}
#about .image .img-5 {
  width: 30.5rem;
}
@media screen and (max-width: 767px) {
  #about .image .img-5 {
    width: 8rem;
  }
}
#about .image.aos-animate .img-5 {
  transform: translateX(10rem) translateY(30rem);
}
@media screen and (min-width: 768px) {
  #about .image.aos-animate .img-5 {
    transform: translateX(30rem) translateY(34rem);
  }
}
@media screen and (min-width: 1300px) {
  #about .image.aos-animate .img-5 {
    transform: translateX(40rem) translateY(30rem);
  }
}

#businesses {
  position: relative;
  color: #fff;
}
@media screen and (min-width: 768px) {
  #businesses {
    background: url(../images/top/businesses-bg.png) center bottom/auto 100% no-repeat;
  }
}
#businesses::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 31, 66, 0.9098039216);
  z-index: 1;
}
#businesses .container {
  position: relative;
  z-index: 10;
}
#businesses .businesses-wrap {
  width: 100%;
  max-width: 150rem;
  margin: 0 auto;
  padding: 10rem 0;
}
@media screen and (min-width: 768px) {
  #businesses .businesses-wrap {
    padding: 20rem 0;
  }
}
#businesses .businesses-heading {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6rem;
}
@media screen and (max-width: 767px) {
  #businesses .businesses-heading {
    flex-direction: column;
  }
}
#businesses .businesses-heading .section-desc {
  margin-top: 5rem;
}
#businesses .businesses-heading .section-desc .txt-lg {
  margin-bottom: 1.2rem;
}
#businesses .our-businesses-list .businesses1 {
  --businesses-item-img: url(../images/top/businesses1.png);
}
#businesses .our-businesses-list .businesses2 {
  --businesses-item-img: url(../images/top/businesses2.png);
}
#businesses .our-businesses-list .businesses3 {
  --businesses-item-img: url(../images/top/businesses3.png);
}
#businesses .our-businesses-list .businesses-item {
  border-top: 1px solid rgba(255, 255, 255, 0.6431372549);
  padding: 4rem 3rem;
}
@media screen and (max-width: 767px) {
  #businesses .our-businesses-list .businesses-item {
    margin-left: -2rem;
    margin-right: -2rem;
  }
}
@media screen and (min-width: 768px) {
  #businesses .our-businesses-list .businesses-item {
    border-top: 1px solid #fff;
    padding: 6rem;
    padding-right: 0;
  }
}
#businesses .our-businesses-list .businesses-item .item-detail {
  display: flex;
  gap: 4.8rem;
}
@media screen and (max-width: 767px) {
  #businesses .our-businesses-list .businesses-item .item-detail {
    flex-direction: column;
    gap: 2.4rem;
  }
}
#businesses .our-businesses-list .businesses-item .item-detail::before {
  content: "";
  aspect-ratio: 60/35;
  width: 60rem;
  max-width: 100%;
  background: var(--businesses-item-img) center/contain no-repeat;
}
@media screen and (min-width: 768px) {
  #businesses .our-businesses-list .businesses-item .item-detail::before {
    max-width: 42%;
  }
}
#businesses .our-businesses-list .businesses-item .detail {
  flex: 1;
}
#businesses .our-businesses-list .businesses-item .detail .stt {
  margin-bottom: 1.2rem;
}
@media screen and (min-width: 768px) {
  #businesses .our-businesses-list .businesses-item .detail .stt {
    margin-bottom: 2.4rem;
  }
}
#businesses .our-businesses-list .businesses-item .detail .stt .label {
  padding: 0.8rem 1.6rem;
  border-radius: 0.8rem;
  display: block;
  width: 100%;
  text-align: center;
  font-weight: bold;
  max-width: 40rem;
  font-size: 2rem;
}
#businesses .our-businesses-list .businesses-item .detail .action {
  margin-top: 2.4rem;
}
@media screen and (min-width: 768px) {
  #businesses .our-businesses-list .businesses-item .detail .action {
    margin-top: 7.2rem;
  }
}

.slider-canvas {
  padding-top: 4rem;
  display: flex;
  flex-direction: column;
  width: 100dvw;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .slider-canvas {
    padding-top: 8rem;
    gap: 5rem;
  }
}
.slider-canvas canvas {
  width: 200% !important;
  height: 10rem;
  display: block;
  background: transparent;
}
@media screen and (max-width: 767px) {
  .slider-canvas canvas {
    transform: scale(0.5);
    transform-origin: left;
  }
}

#reason {
  padding: 10rem 0;
  position: relative;
}
@media screen and (max-width: 767px) {
  #reason {
    padding-top: 4rem;
  }
}
#reason::before {
  content: "";
  position: absolute;
  right: 0;
  aspect-ratio: 397/491;
  display: block;
  background: url(../images/top/reason-layer.png) center/contain no-repeat;
  width: 16dvw;
  top: 20rem;
}
@media screen and (max-width: 767px) {
  #reason::before {
    display: none;
    width: 28dvw;
    top: 25rem;
    right: 1rem;
  }
}
@media screen and (min-width: 1720px) {
  #reason::before {
    width: 39.7rem;
    top: 20rem;
  }
}
#reason .inner {
  padding: 8rem 1.5rem 4rem;
}
@media screen and (min-width: 768px) {
  #reason .inner {
    padding: 10rem 3rem;
  }
}
@media screen and (min-width: 1720px) {
  #reason .inner {
    padding: 20rem 23rem 11.5rem;
  }
}
#reason .reason-wrap {
  display: flex;
  justify-content: space-between;
  align-items: end;
  margin-top: 5rem;
}
@media screen and (max-width: 767px) {
  #reason .reason-wrap {
    flex-direction: column;
    gap: 4rem;
  }
}
@media screen and (min-width: 768px) {
  #reason .reason-wrap {
    margin-top: 10rem;
  }
}
#reason .reason-wrap::after {
  content: "";
  aspect-ratio: 462/502;
  display: block;
  width: 46.2rem;
  max-width: 70%;
  background: url(../images/top/reason-illust.png) center/contain no-repeat;
}
@media screen and (min-width: 1300px) {
  #reason .reason-wrap::after {
    transform: translateX(10rem);
  }
}
#reason .reason-wrap .reason-content {
  display: flex;
  flex-direction: column;
}
#reason .reason-wrap .reason-content .reason {
  padding-top: 3.6rem;
}
#reason .reason-wrap .reason-content .reason:not(:last-child) {
  padding-bottom: 3.6rem;
  border-bottom: 1px dotted #c2cfdf;
}
#reason .reason-wrap .reason-content .reason .stt {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  font-size: 2rem;
  margin-bottom: 1.6rem;
}
@media screen and (min-width: 768px) {
  #reason .reason-wrap .reason-content .reason .stt {
    margin-bottom: 2.4rem;
    font-size: 2.4rem;
  }
}
#reason .reason-wrap .reason-content .reason .stt .num {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  aspect-ratio: 1;
  border-radius: 0.4rem;
  font-weight: bold;
  width: 3rem;
}
@media screen and (min-width: 768px) {
  #reason .reason-wrap .reason-content .reason .stt .num {
    width: 3.6rem;
  }
}

.banner {
  padding: 5rem 0;
}
.banner .banner-inner {
  width: 100%;
  max-width: 150rem;
  margin: 0 auto;
  background-color: #d9d9d9;
  position: relative;
  border-radius: 1.2rem;
}
@media screen and (min-width: 768px) {
  .banner .banner-inner {
    border-radius: 2.4rem;
  }
}
.banner .banner-inner::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../images/top/banner-bg.png) bottom center/cover no-repeat;
  z-index: 1;
  border-radius: 1.2rem;
}
@media screen and (min-width: 768px) {
  .banner .banner-inner::before {
    border-radius: 2.4rem;
  }
}
.banner .banner-inner .banner-wrap {
  position: relative;
  z-index: 5;
  display: flex;
  gap: 3.8rem;
  padding: 3rem 1.5rem;
}
@media screen and (max-width: 767px) {
  .banner .banner-inner .banner-wrap {
    flex-direction: column;
    align-items: center;
    gap: 2rem;
  }
}
@media screen and (min-width: 768px) {
  .banner .banner-inner .banner-wrap {
    padding: 3rem;
  }
}
.banner .banner-inner .banner-wrap::before {
  content: "";
  width: 28rem;
  aspect-ratio: 28/30;
  background: url(../images/top/banner.png) center/contain no-repeat;
}
@media screen and (max-width: 767px) {
  .banner .banner-inner .banner-wrap::before {
    width: 14rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 1550px) {
  .banner .banner-inner .banner-wrap::before {
    width: 23rem;
  }
}
.banner .banner-inner .banner-wrap::after {
  aspect-ratio: 378/246;
  background: url(../images/top/banner2.png) center/contain no-repeat;
  width: 20rem;
}
@media screen and (max-width: 767px) {
  .banner .banner-inner .banner-wrap::after {
    align-self: end;
    transform: translateY(3rem);
  }
}
@media screen and (min-width: 768px) {
  .banner .banner-inner .banner-wrap::after {
    content: "";
    position: absolute;
    bottom: -0.8rem;
    right: 4rem;
    width: 37.8rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 1550px) {
  .banner .banner-inner .banner-wrap::after {
    width: 30rem;
  }
}
.banner .banner-inner .banner-wrap .banner-content {
  padding-top: 1rem;
}
@media screen and (max-width: 767px) {
  .banner .banner-inner .banner-wrap .banner-content {
    text-align: center;
  }
}
.banner .banner-inner .banner-wrap .banner-content .htt {
  font-weight: 900;
  color: #092135;
  margin-bottom: 1.2rem;
  letter-spacing: 0.08em;
  font-size: 1.8rem;
}
@media screen and (min-width: 768px) {
  .banner .banner-inner .banner-wrap .banner-content .htt {
    font-size: 4rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 1550px) {
  .banner .banner-inner .banner-wrap .banner-content .htt {
    font-size: 3rem;
  }
}
.banner .banner-inner .banner-wrap .banner-content .txt {
  font-weight: 500;
  font-size: 2rem;
}
@media screen and (min-width: 768px) {
  .banner .banner-inner .banner-wrap .banner-content .txt {
    font-size: 2.8rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 1550px) {
  .banner .banner-inner .banner-wrap .banner-content .txt {
    font-size: 2rem;
  }
}
.banner .banner-inner .banner-wrap .banner-content .action {
  margin-top: 3.6rem;
}

#news {
  padding: 5rem 0;
}
@media screen and (min-width: 768px) {
  #news {
    padding: 10rem 0;
  }
}
#news .news-inner {
  width: 100%;
  max-width: 127rem;
  margin: 0 auto;
}
#news .news-list {
  margin-top: 5rem;
}
@media screen and (max-width: 767px) {
  #news .news-list {
    margin-left: -2rem;
    margin-right: -2rem;
  }
}
#news .news-list li .meta {
  margin-bottom: 1.4rem;
  display: flex;
  align-items: center;
  gap: 2.4rem;
}
#news .news-list li .meta .label {
  border-radius: 0.8rem;
  padding: 0.2rem 1.6rem 0.4rem;
}
#news .news-list li .ntt {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 400;
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* &::after {
    content: "";
    width: 2.2rem;
    height: 1.6rem;
    background: url(../images/common/icon-arrow-right-black.svg) center/contain no-repeat;
    transition: 0.3s all;
  } */
}
#news .news-list li .news-item {
  display: block;
  text-decoration: none;
  color: inherit;
  border-top: 1px solid #dddddd;
  transition: 0.3s all;
  padding: 2.5rem 2.4rem;
  /* &:hover {
    background-color: #fff;
    .ntt {
      &::after {
        transform: translateX(50%);
      }
    }
  } */
}
@media screen and (min-width: 768px) {
  #news .news-list li .news-item {
    padding: 2.5rem 4.8rem;
  }
}
#news .news-list li:last-child a {
  border-bottom: 1px solid #dddddd;
}