.page-title-pingpong {
  --square-size: 20px;
  --gap-size: 20px;
  --cell-size: calc(var(--square-size) + var(--gap-size));
  --duration: 30s;
  position: relative;
  background-color: var(--primary-color);
  background-image: repeating-linear-gradient(to right, var(--light-color) 0 var(--square-size), transparent var(--square-size) var(--cell-size));
  background-repeat: repeat-x;
  background-size: auto 20px;
  background-position: bottom;
  color: var(--light-color);
  overflow: hidden
}

.page-title-pingpong::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: var(--square-size);
  height: var(--square-size);
  background: var(--light-color);
  box-shadow: 0 0 10px var(--light-blue-color), 0 0 20px var(--light-blue-color), 0 0 40px var(--light-blue-color);
  animation: pingpong var(--duration) linear infinite alternate
}

.page-title-pingpong-s2 {
  --square-size: 20px;
  --gap-size: 20px;
  --cell-size: calc(var(--square-size) + var(--gap-size));
  --duration: 30s;
  position: relative;
  background-color: var(--steel-gray-color);
  background-image: repeating-linear-gradient(to right, var(--light-color) 0 var(--square-size), transparent var(--square-size) var(--cell-size));
  background-repeat: repeat-x;
  background-size: auto 20px;
  background-position: bottom;
  color: var(--light-color);
  overflow: hidden
}

.page-title-pingpong-s2::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: var(--square-size);
  height: var(--square-size);
  background: var(--light-color);
  box-shadow: 0 0 10px var(--light-blue-color), 0 0 20px var(--light-blue-color), 0 0 40px var(--light-blue-color);
  animation: pingpong var(--duration) linear infinite alternate
}

@keyframes pingpong {
  from {
    transform: translateX(0)
  }

  to {
    transform: translateX(calc(100vw - var(--cell-size)))
  }
}

.page-title-image {
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  min-height: clamp(40vh, 30vw, 44vh);
  color: #fff;
  background-image: url(../images/product_ban.jpg);
  background-position-y: 15.2683%;
}

.page-title-image::before {
  content: "";
  position: absolute;
  background-color: rgba(var(--steel-gray-color-rgb), 0.55);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 0
}

.page-title-image .title-content {
  position: relative;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 1
}

.page-title-image .title-content div:first-child div:first-child {
  max-width: 800px
}

.section-title-s1 {
  color: var(--steel-gray-color);
  position: relative;
  padding-top: 1rem;
  margin-bottom: 1.3rem
}

.section-title-s1::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -2px;
  transform: translateX(-50%);
  width: 80px;
  height: 4px;
  background: var(--orange-color);
  border-radius: 4px
}

.section-title-s2 {
  position: relative;
  padding-left: 50px
}

.section-title-s2:before {
  content: "";
  width: 35px;
  height: 4px;
  background: var(--primary-color);
  position: absolute;
  left: 0;
  top: 14px;
  border-radius: 4px
}

.section-title-s3 {
  position: relative;
  padding-top: 1rem
}

.section-title-s3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 3px;
  width: 64px;
  border-radius: 8px;
  background: linear-gradient(90deg, var(--primary-color), var(--orange-color));
  display: inline-block
}

.base-pagination {
  list-style: none;
  padding: 0;
  margin: 0
}

.base-pagination li {
  display: inline-block;
  margin-bottom: .5rem
}

.base-pagination li:not(:last-child) {
  margin-right: .5rem
}

.base-pagination li a {
  display: inline-block;
  min-width: 2.5rem;
  height: 2.5rem;
  text-align: center;
  line-height: 2.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  background-color: var(--primary-color);
  color: var(--light-color);
  transition: background-color .3s
}

.base-pagination li a:hover {
  background-color: var(--orange-color)
}

.base-pagination li a.active {
  background-color: var(--orange-color)
}

.base-pagination-s2 {
  list-style: none;
  padding: 0;
  margin: 0
}

.base-pagination-s2 li {
  display: inline-block;
  margin-bottom: .5rem
}

.base-pagination-s2 li:not(:last-child) {
  margin-right: .5rem
}

.base-pagination-s2 li a {
  display: inline-block;
  min-width: 2.5rem;
  height: 2.5rem;
  border-radius: 2.5rem;
  text-align: center;
  line-height: 2.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  background-color: var(--primary-color);
  color: var(--light-color);
  transition: background-color .3s
}

.base-pagination-s2 li a:hover {
  background-color: var(--orange-color)
}

.base-pagination-s2 li a.active {
  background-color: var(--orange-color)
}

.base-pagination-s3 {
  list-style: none;
  padding: 0;
  margin: 0
}

.base-pagination-s3 li {
  display: inline-block;
  margin-bottom: .5rem
}

.base-pagination-s3 li:not(:last-child) {
  margin-right: .5rem
}

.base-pagination-s3 li a {
  display: inline-block;
  min-width: 2.5rem;
  height: 2.5rem;
  border-radius: 2.5rem;
  text-align: center;
  line-height: 2.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  background-color: rgba(var(--iron-gray-color-rgb), 0.55);
  color: var(--light-color);
  transition: background-color .3s
}

.base-pagination-s3 li a:hover {
  background-color: rgba(var(--iron-gray-color-rgb), 0.75)
}

.base-pagination-s3 li a.active {
  background-color: rgba(var(--iron-gray-color-rgb), 0.75)
}

.base-pagination-sm li:not(:last-child) {
  margin-right: .3rem
}

.base-pagination-sm li a {
  display: inline-block;
  min-width: 2rem;
  height: 2rem;
  line-height: 2rem;
  padding-left: .8rem;
  padding-right: .8rem;
  font-size: .85rem
}

.base-pagination-lg li:not(:last-child) {
  margin-right: .6rem
}

.base-pagination-lg li a {
  display: inline-block;
  min-width: 3.5rem;
  height: 3.5rem;
  line-height: 3.5rem;
  padding-left: 1.2rem;
  padding-right: 1.2rem;
  font-size: 1.1rem
}

.hero-content .cta {
  background: linear-gradient(90deg, var(--primary-color), var(--light-blue-color));
  color: #fff;
  border-radius: var(--border-radius);
  padding: 1.25rem;
  box-shadow: 0 12px 40px rgba(var(--primary-color), 0.12)
}

.portfolio-content {
  position: relative
}

.portfolio-content .item {
  position: relative
}

.portfolio-content .item.hidden {
  display: none
}

.portfolio-content .featured .portfolio-card {
  min-height: 380px
}

.portfolio-content .btn-outline-light:hover {
  background-color: rgba(0, 0, 0, 0);
  border: 1px solid var(--orange-color)
}

.portfolio-content-s2 {
  background-color: var(--steel-gray-color);
  color: var(--light-color)
}

.portfolio-content-s2 .portfolio-wrap {
  font-size: 0;
  margin-left: -2%;
}

.hero-wrapper {
  position: relative;
  overflow: hidden;
  height: 87vh
}

.hero-wrapper .hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.65);
  border-radius: 0 0 var(--border-radius-lg) var(--border-radius-lg)
}

.hero-wrapper .hero-content {
  position: absolute;
  bottom: 10%;
  left: 5%;
  color: #fff;
  width: 90%
}

.hero-wrapper .hero-content .glass-meta {
  backdrop-filter: blur(16px);
  background: hsla(0, 0%, 100%, .12);
  padding: 20px;
  border-radius: var(--border-radius);
  border: 1px solid hsla(0, 0%, 100%, .18)
}

.hero-wrapper .hero-content .glass-meta strong {
  font-size: .9rem;
  opacity: .8
}

.hero-wrapper .hero-content .glass-meta p {
  margin: 0;
  font-weight: bold
}

@media(min-width: 992px) {
  .hero-wrapper .hero-content {
    max-width: 600px
  }
}

.next-project {
  padding: var(--section-padding) 1rem;
  text-align: center;
  background: var(--steel-gray-color);
  color: #fff;
  border-radius: var(--border-radius)
}

.next-project a {
  color: var(--orange-color);
  font-weight: 700;
  font-size: 1.1rem
}