
.px-100{
  padding-top: 100px;
  padding-bottom: 100px;
}

.pt-100 {
  padding-top: 100px;
}

.pb-100 {
  padding-bottom: 100px;
}

.pt-120 {
  padding-top: 120px;
}

.pb-120 {
  padding-bottom: 120px;
}

.mb-50 {
  margin-bottom: 50px;
}

.mb-60 {
  margin-bottom: 60px;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.footer {
  background-color: #32599e;
  color: #fff;

}



.footer-main {
  padding: 60px 0 50px;
}

.footer-main-inner {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1.4fr;
  gap: 48px;
  align-items: start;
}

.footer-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

.footer-logo img {
  width: 180px;
  height: auto;
}



.footer-title {
  font-size: 25px;
  font-weight: 500;
  line-height: 1.3;
  color: #fff;
  margin: 0 0 20px;
}

.footer-links-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px 20px;
}

.footer-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-menu li + li {
  margin-top: 20px;
}

.footer-menu a {
  color: #fff;
  font-size: 17px;
  line-height: 28px;
  font-weight: 400;
  transition: opacity 0.2s ease;
}

.footer-menu a:hover {
  color: #65cef5;
}

.footer-address p{
  color: #fff;
}

.footer-address p:last-child {
  margin-bottom: 0;
}

.footer-address a {
  color: #fff;
  transition: opacity 0.3s ease;
}

.footer-address a:hover {
  color: #65cef5;
}

.footer-social {
  display: flex;
  align-items: center;
  gap: 14px;
  list-style: none;
  margin: 28px 0 0;
  padding: 0;
}

.footer-social a {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 18px;
  line-height: 1;
  transition: opacity 0.3s ease;
}

.footer-social a:hover {
  color: #65cef5;
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding: 20px 0;
}

.footer-bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.footer-copyright {

  font-size: 15px;
  font-weight: 400;
  line-height: 24px;
  color: rgba(255, 255, 255, 0.75);
  margin: 0;
}

.footer-legal {
  display: flex;
  align-items: center;
  gap: 24px;
}

.footer-legal a {
  color: rgba(255, 255, 255, 0.75);
  font-size: 15px;
  font-weight: 400;
  line-height: 24px;
  transition: opacity 0.2s ease;
}

.footer-legal a:hover {
  color: #65cef5;
}

@media (max-width: 991px) {
  .footer-main-inner {
    grid-template-columns: 1fr 1fr;
    gap: 40px 32px;
  }

  .footer-brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 767px) {
  .footer-main {
    padding: 48px 0 40px;
  }

  .footer-main-inner {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .footer-bottom-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .footer-legal {
    gap: 16px;
  }
}

/* -------------------------------------------------------------- */


.banner{
     width: 100%;
     height: calc(100vh - 130px);
     position: relative;
}

.banner-swiper{
     width: 100%;
     height: 100%;
}

.banner-swiper .swiper-wrapper,
.banner-swiper .swiper-slide{
     height: 100%;
}

.banner-swiper .swiper-slide{
     position: relative;
     display: flex;
     align-items: center;
}

.banner-img{
     width: 100%;
     height: 100%;
     position: absolute;
     overflow: hidden;
}
.banner-img::after{
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  background-color: rgba(0, 0, 0, 0.4);
}

.banner-img img{
  width: 140%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: -20%;
  z-index: 1;
}

.banner-container{
  position: relative;
  z-index: 9;
  width: 100%;

}

.banner-container h1{
  color: #fff;
  font-size: 72px;
  line-height: 90px;
  font-weight: 700;
}

.banner-swiper .swiper-pagination{
  position: absolute;
  left: 0;
  bottom: 30px;
  width: 100%;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.banner-swiper .swiper-pagination-bullet{
  width: 10px;
  height: 10px;
  margin: 0;
  background: transparent;
  border: 1px solid #fff;
  border-radius: 50%;
  opacity: 1;
  transition: background 0.3s ease;
}

.banner-swiper .swiper-pagination-bullet-active{
  background: #fff;
  border-color: #fff;
}


.home-about-wrap{
     width: 100%;
     max-width: 1000px;
     margin: 0 auto;
     text-align: center;
}

.main-title{
  font-size: 45px;
  line-height: 55px;
  margin: 0 auto;
  margin-bottom: 50px;
  color: #000000;
  max-width: fit-content;
  position: relative;
  display: block;
}

.main-title.white{
  color: #fff;
}

.main-title::after{
  content: "";
  width: 60px;
  height: 10px;
  background-position: center;
  background-repeat: no-repeat;
  background-image: url(../images/title-bg.png);
  position: absolute;
  bottom: -15px;
  margin: 0 auto;
  left: 0;
  right: 0;
}

.main-btn{
  display: inline-block;
  width: auto;
  min-width: 200px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  font-size: 18px;
  font-weight: 500;
  color: #fff;
  background-color: #004da1;
  border-radius: 25px;
  transition: all 0.3s ease;
  border: none;
  cursor: pointer;
  margin-top: 20px;
  overflow: hidden;
  position: relative;
}

.main-btn::after{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  background-color: #002e61;
  transition: all 0.3s ease;
  z-index: 1;
  border-radius: 25px;
}

.main-btn:hover::after{
  width: 100%;
}

.main-btn span{
  position: relative;
  z-index: 2;
}

.product-section{
     width: 100%;
     height: auto;
     background-color: #ffff;
     position: relative;
}

.product-section::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 50%;
  background-image: url(../images/product-bg.png);
  background-position: center;
  background-repeat: repeat;
  z-index: 1;
  background-size: contain;
}

.product-wrap{
  width: 100%;
  position: relative;
  z-index: 2;
}

/* Product slider */
.product-slider{
  width: 100%;
  margin-top: 70px;
  padding-bottom: 10px;
}

.product-slider .swiper-wrapper{
  align-items: stretch;
}

.product-slider .swiper-slide{
  height: auto;
}

.product-card{
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 2px 9px rgba(0, 0, 0, 0.08);
}

.product-card-head{
  background: #004da1;
  border-radius: 0 0 60% 60%;
  padding: 30px 30px 0;
}

.product-media{
  width: 260px;
  max-width: 100%;
  aspect-ratio: 1 / 1;
  margin: 0 auto -60px;
  border-radius: 50%;
  overflow: hidden;
  border: 6px solid #fff;
  background: #fff;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.15);
  position: relative;
  z-index: 2;
}

.product-card:hover .product-media img{
  transform: scale(1.1, 1.1)
}

.product-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  transition: all 0.3s ease-in-out;
}

.product-card-body{
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 78px 24px 34px;
}

.product-title{
  font-size: 25px;
  line-height: 1.25;
  font-weight: 600;
  color: #000;
  margin: 0 0 22px;
}

.product-more{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  color: #004da1;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: uppercase;
  transition: color 0.3s ease;
}

.product-more i{
  font-size: 12px;
  line-height: 1;
  transition: transform 0.3s ease;
}

.product-more:hover{
  color: #002e61;
}

.product-more:hover i{
  transform: translateX(4px);
}

.product-slider-action{
  text-align: center;
  margin-top: 40px;
}


.product-slider .swiper-slide{
  padding: 4px;
}


.values-section{
  width: 100%;
  background-image: url(../images/globe.jpg);
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
}

.values-section::after{
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  background: rgba(50, 89, 158, 0.7);
  bottom: 0;
  left: 0;
  z-index: 1;
}

.values-section .container{
  position: relative;
  z-index: 2;
}

.values-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 70px;
}

.value-card{
  background: rgba(255, 255, 255, 0.3);
  padding: 30px;
  min-height: 220px;
  text-align: center;
  color: #fff;
}

.values-grid .value-card:last-child{
  grid-column: 2;
}

.value-title{
  font-size: 28px;
  line-height: 1.3;
  font-weight: 500;
  color: #fff;
  margin: 0 0 15px;
}

.value-card p{
  color: #fff;
  margin: 0;
}

@media (max-width: 991px){
  .values-grid{
    grid-template-columns: repeat(2, 1fr);
  }

  .values-grid .value-card:last-child{
    grid-column: auto;
  }
}

@media (max-width: 575px){
  .values-grid{
    grid-template-columns: 1fr;
  }
}

/* Industries */
.industries_grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.industry-card{
  position: relative;
  overflow: hidden;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.industry-media{
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
}

.industry-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.industry-card::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: 2;
}

.industry-card:hover .industry-media img{
  transform: scale(1.1);
}

.industry-title{
  position: relative;
  z-index: 3;
  font-size: 28px;
  line-height: 1.3;
  font-weight: 500;
  color: #fff;
  margin: 0;
  padding: 20px;
}

@media (max-width: 991px){
  .industries_grid{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 575px){
  .industries_grid{
    grid-template-columns: 1fr;
  }
}

/* Testimonials */
.testimonials-slider{
  width: 100%;
  margin-top: 70px;
}

.testimonials-slider .swiper-wrapper{
  align-items: stretch;
}

.testimonials-slider .swiper-slide{
  height: auto;
}

.testimonial-card{
  height: 100%;
  background: #fff;
  border: 2px solid transparent;
  border-radius: 16px;
  padding: 34px 32px 36px;
  box-shadow: 0 10px 30px rgba(50, 89, 158, 0.08);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}


.testimonial-card:hover{
  border-color: #65cef5;
}

.testimonial-stars{
  display: flex;
  align-items: center;
  gap: 4px;
  color: #65cef5;
  font-size: 16px;
  margin-bottom: 22px;
}

.testimonial-title{
  font-size: 24px;
  line-height: 1.3;
  font-weight: 500;
  color: #0b1b33;
  margin: 0 0 16px;
}

.testimonial-text{
  margin: 0 0 26px;
}

.testimonial-author{
  font-size: 15px;
  letter-spacing: 0.4px;
  margin: 0;
}

.testimonial-name{
  font-weight: 600;
  text-transform: uppercase;
  color: #0b1b33;
}

.testimonial-location{
  color: #65cef5;
}

.testimonials-slider .swiper-pagination{
  position: static;
  margin-top: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.testimonials-slider .swiper-pagination-bullet{
  width: 10px;
  height: 10px;
  margin: 0 !important;
  background: #fff;
  opacity: 1;
  border-radius: 50%;
  transition: all 0.3s ease;
}

.testimonials-slider .swiper-pagination-bullet-active{
  background: #65cef5;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
}

.sub-banner{
     width: 100%;
     height: 500px;
     display: flex;
     align-items: center;
     background-size: cover;
     background-repeat: no-repeat;
     position: relative;
}

.sub-banner::after{
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1;
  top: 0;
  left: 0;
}

.sub-banner h1{
      color: #fff;
      font-size: 55px;
      line-height: 1.2;
      font-weight: 500;
      text-align: center;
      position: relative;
      z-index: 2;
}

.careers-grid{
     width: 100%;
     margin-top: 70px;
}

.careers-grid ul{
     display: grid;
     grid-template-columns: repeat(2, 1fr);
     gap: 20px;
}

.careers-grid ul li{
  width: 100%;
}

.career-card{
     width: 100%;
     padding: 25px;
     border: 1px solid #e0e0e0;
     border-radius: 10px;
     background: #fff;
     box-shadow: 0 2px 9px rgba(0, 0, 0, 0.08);
     transition: all 0.3s ease;
     display: flex;
     flex-wrap: wrap;
}

.career-content h3{
     font-size: 28px;
     margin-bottom: 10px;
}

.career-media{
     width: 100px;
}

.career-content{
  width: calc(100% - 100px);
}

.career-content .main-btn{
  margin-top: 0;
}

/* Apply Now popup */
.apply-fancybox .fancybox-content{
  padding: 0;
  width: 700px;
  max-width: 100%;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

.fancybox-slide--html .fancybox-close-small{
  padding: 5px;
  top: 6px;
  right: 6px;
}

.apply-fancybox .fancybox-close-small{
  color: #fff;
}

.apply-fancybox .fancybox-close-small:hover{
  color: #65cef5;
}

.apply-popup{
  display: none;
}

.apply-popup-inner{
  padding-bottom: 40px;
}

.apply-popup-head{
  background: #004da1;
  padding: 26px 40px;
  text-align: center;
}

.apply-popup-title{
  font-size: 28px;
  color: #fff;
  margin: 0;
}

.apply-popup-sub{
  font-size: 16px;
  color: rgba(255, 255, 255, 0.85);
  margin: 6px 0 0;
}

.apply-form{
  padding: 34px 40px 0;
}

.apply-form-row{
  display: flex;
  gap: 20px;
}

.apply-form-group{
  flex: 1;
  margin-bottom: 22px;
}

.apply-form-group > label{
  display: block;
  font-size: 17px;
  color: #0b1b33;
  margin-bottom: 5px;
}

.apply-form-group > label span{
  color: #fff;
}

input[type="text"],
input[type="tel"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="url"],
input[type="password"],
textarea,
.select,
select,
.form-field,
.apply-form-group input[type=text],
.apply-form-group input[type=tel],
.apply-form-group input[type=email]{
  font-size: 16px;
}

.apply-form-group input[type=text],
.apply-form-group input[type=tel],
.apply-form-group input[type=email]{
  width: 100%;
  height: 50px;
  padding: 0 16px;
  border: 1px solid #cfdcec;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 400;
  color: #0b1b33;
  background: #f7fafd;
  transition: border-color 0.3s ease;
}

.apply-form-group input::placeholder{
  color: #9aa7b8;
}

.apply-form-group input:focus{
  outline: none;
  border-color: #004da1;
}

.apply-file{
  display: flex;
  align-items: center;
  gap: 14px;
  border: 1px dashed #9db8d6;
  border-radius: 8px;
  padding: 10px 14px;
  background: #f7fafd;
  cursor: pointer;
  margin-bottom: 0;
}

.apply-file input[type=file]{
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  overflow: hidden;
  z-index: -1;
}

.apply-file-btn{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #004da1;
  color: #fff;
  padding: 10px 18px;
  border-radius: 6px;
  font-size: 15px;
  white-space: nowrap;
}

.apply-file-name{
  font-size: 15px;
  color: #7a8699;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.apply-file-hint{
  display: block;
  font-size: 13px;
  color: #9aa7b8;
  margin-top: 8px;
}

.apply-form .main-btn{
  width: 100%;
  margin-top: 10px;
}

@media (max-width: 575px){
  .apply-form-row{
    flex-direction: column;
    gap: 0;
  }

  .apply-popup-head{
    padding: 22px 24px;
  }

  .apply-form{
    padding: 26px 24px 0;
  }

  .apply-popup-inner{
    padding-bottom: 30px;
  }
}

/* ==========================================================================
   About page (Vision / Mission / Why Hydrosphere)
   ========================================================================== */

.section-tag{
  display: inline-block;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #004da1;
  margin-bottom: 14px;
}

.section-tag.light{
  color: #65cef5;
}

/* Vision */
.vision-inner{
  max-width: 940px;
  margin: 0 auto;
}

.vision-icon{
  width: 84px;
  height: 84px;
  margin: 0 auto 26px;
  border-radius: 50%;
  background: rgba(0, 77, 161, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
}

.vision-icon .drop{
  width: 30px;
  height: 30px;
  background: #004da1;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
}

.vision-text{
  font-size: 20px;
  line-height: 1.8;
  color: #4a5567;
  margin: 0;
}

/* Mission */
.mission-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.mission-card{
  position: relative;
  background: #fff;
  border-radius: 16px;
  padding: 40px 30px 32px;
  box-shadow: 0 10px 30px rgba(50, 89, 158, 0.08);
  border: 1px solid #e2ecf7;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.mission-card::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 6px;
  height: 100%;
  background: linear-gradient(180deg, #004da1, #65cef5);
}

.mission-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(50, 89, 158, 0.16);
}

.mission-num{
  display: block;
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
  color: #43a3d9;
  margin-bottom: 16px;
}

.mission-card p{
  margin: 0;
}

/* Why Hydrosphere */
.why-section{
  position: relative;
  background-image: url(../images/globe.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.why-section::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0, 46, 97, 0.94), rgba(50, 89, 158, 0.9));
  z-index: 1;
}

.why-section .container{
  position: relative;
  z-index: 2;
}

.why-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.why-card{
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 14px;
  padding: 26px 24px;
  transition: background 0.3s ease, border-color 0.3s ease;
}

.why-card:hover{
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(101, 206, 245, 0.6);
}

.why-check{
  position: relative;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #65cef5;
  margin-top: 2px;
}

.why-check::after{
  content: "";
  position: absolute;
  left: 11px;
  top: 7px;
  width: 7px;
  height: 12px;
  border: solid #002e61;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.why-card p{
  color: #fff;
}

@media (max-width: 991px){
  .mission-grid,
  .why-grid{
    grid-template-columns: repeat(2, 1fr);
  }

  .vision-text{
    font-size: 18px;
  }
}

@media (max-width: 575px){
  .mission-grid,
  .why-grid{
    grid-template-columns: 1fr;
  }
}


.certifications-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.certification-card{
  width: 100%;
  height: auto;
  border: 3px solid #43a3d9;
  overflow: hidden;
  background: #fff;
}

.certification-card a{
  display: block;
}

.certification-card img{
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

@media (max-width: 991px){
  .certifications-grid{
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

@media (max-width: 575px){
  .certifications-grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .certification-card{
    border-width: 2px;
  }
}

/* ==========================================================================
   Services page (Services / Technologies)
   ========================================================================== */

/* Services cards */
.services-cards{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.service-item{
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(50, 89, 158, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.service-item:hover{
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(50, 89, 158, 0.16);
}

.service-media{
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.service-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}

.service-item:hover .service-media img{
  transform: scale(1.08);
}

.service-media::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 46, 97, 0) 45%, rgba(0, 46, 97, 0.55));
}

.service-body{
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 22px 24px;
  flex: 1;
}

.service-index{
  flex-shrink: 0;
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #e1eefb;
  color: #004da1;
  font-size: 18px;
  font-weight: 700;
  display: none;
}

.service-name{
  font-size: 20px;
  line-height: 1.35;
  font-weight: 600;
  color: #0b1b33;
  margin: 0;
}

/* Technologies cards */
.tech-grid{
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 20px;
  align-items: start;
}

.tech-card{
  background: #fff;
  border: 1px solid #e2ecf7;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(50, 89, 158, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.tech-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(50, 89, 158, 0.16);
}

.tech-card-wide{
  grid-column: 1 / -1;
}

.tech-head{
  position: relative;
  height: 200px;
  overflow: hidden;
}

.tech-head img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tech-head::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(0, 46, 97, 0.9), rgba(50, 89, 158, 0.6));
}

.tech-head-inner{
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 0 30px;
}

.tech-title{
  font-size: 28px;
  line-height: 1.3;
  color: #fff;
  margin: 0;
}

.tech-body{
  padding: 28px 30px 32px;
}

.tech-list{
  list-style: none;
  margin: 0;
  padding: 0;
}

.tech-list li{
  position: relative;
  padding-left: 26px;
  margin-bottom: 12px;
  font-size: 17px;
  line-height: 1.5;
  color: #4a5567;
}

.tech-list li:last-child{
  margin-bottom: 0;
}

.tech-list li::before{
  content: "";
  position: absolute;
  left: 2px;
  top: 7px;
  width: 9px;
  height: 9px;
  background: #004da1;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
}

/* Nested STP groups */
.tech-groups{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 26px;
}

.tech-group-title{
  font-size: 20px;
  font-weight: 600;
  color: #004da1;
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e2ecf7;
}

@media (max-width: 991px){
  .services-cards{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px){
  .tech-grid{
    grid-template-columns: 1fr;
  }

  .tech-groups{
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .tech-title{
    font-size: 20px;
  }
}

@media (max-width: 575px){
  .services-cards{
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Products page (category-based portfolio)
   ========================================================================== */

.products-cats{
  display: flex;
  flex-direction: column;
  gap: 25px;
  margin-top: 70px;
}

.product-cat{
  display: flex;
  background: #fff;
  border: 1px solid #e2ecf7;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(50, 89, 158, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.product-cat:hover{
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(50, 89, 158, 0.16);
}

.product-cat-media{
  position: relative;
  width: 280px;
  flex-shrink: 0;
  overflow: hidden;
}

.product-cat-slider{
  width: 100%;
  height: 100%;
  min-height: 220px;
}

.product-cat-slider .swiper-wrapper,
.product-cat-slider .swiper-slide{
  height: 100%;
}

.product-cat-slider .swiper-slide img{
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
}

.product-cat-slider .swiper-pagination{
  position: absolute;
  left: 0;
  bottom: 14px;
  width: 100%;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.product-cat-slider .swiper-pagination-bullet{
  width: 8px;
  height: 8px;
  margin: 0 !important;
  background: #c3d3e8;
  opacity: 1;
  transition: all 0.3s ease;
}

.product-cat-slider .swiper-pagination-bullet-active{
  background: #004da1;
  width: 10px;
  height: 10px;
}

.product-cat-content{
  flex: 1;
  padding: 32px 40px;
  min-width: 0;
}

.product-cat-title{
  font-size: 25px;
  line-height: 1.3;
  color: #0b1b33;
  margin: 0 0 22px;
  padding-bottom: 16px;
  border-bottom: 1px solid #e2ecf7;
}

.product-cat-list{
  list-style: none;
  margin: 0;
  padding: 0;
  column-count: 3;
  column-gap: 34px;
}

.product-cat-list li{
  break-inside: avoid;
  position: relative;
  padding-left: 24px;
  margin-bottom: 15px;
  font-size: 17px;
  line-height: 1.5;
  color: #4a5567;
}

.product-cat-list li::before{
  content: "";
  position: absolute;
  left: 2px;
  top: 7px;
  width: 9px;
  height: 9px;
  background: #004da1;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
}

@media (max-width: 1199px){
  .product-cat-list{
    column-count: 2;
  }
}

@media (max-width: 767px){
  .product-cat{
    flex-direction: column;
  }

  .product-cat-media{
    width: 100%;
    height: 220px;
  }

  .product-cat-slider{
    min-height: 220px;
  }

  .product-cat-slider .swiper-slide img{
    min-height: 220px;
  }

  .product-cat-content{
    padding: 26px 24px;
  }

  .product-cat-title{
    font-size: 22px;
  }
}

@media (max-width: 479px){
  .product-cat-list{
    column-count: 1;
  }
}

/* ==========================================================================
   Contact page
   ========================================================================== */

.contact-wrap{
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 50px;
  align-items: start;
}

.contact-info .main-title{
  margin-bottom: 40px;
}

.contact-info-card{
  background: #fff;
  border: 1px solid #e2ecf7;
  border-radius: 18px;
  padding: 30px 30px;
  box-shadow: 0 10px 30px rgba(50, 89, 158, 0.08);
}

.contact-info-item{
  display: flex;
  align-items: flex-start;
  gap: 18px;
}

.contact-info-item + .contact-info-item{
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #e2ecf7;
}

.contact-info-icon{
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #e1eefb;
  color: #004da1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}

.contact-info-item h3{
  font-size: 20px;
  line-height: 1.3;
  color: #0b1b33;
  margin: 0 0 8px;
}

.contact-info-item p{
  font-size: 17px;
  line-height: 1.65;
  color: #494949;
  margin: 0;
}

.contact-info-item a{
  color: #494949;
  transition: color 0.3s ease;
}

.contact-info-item a:hover{
  color: #65cef5;
}

.contact-form-wrap{
  background: #fff;
  border: 1px solid #e2ecf7;
  border-radius: 18px;
  padding: 30px 40px 30px;
  box-shadow: 0 10px 30px rgba(50, 89, 158, 0.08);
}

.contact-form-title{
  font-size: 28px;
  line-height: 1.3;
  color: #0b1b33;
  margin: 0 0 28px;
}

.contact-form.apply-form{
  padding: 0;
}

.contact-form .apply-form-group textarea{
  width: 100%;
  height: 150px;
  padding: 14px 16px;
  border: 1px solid #cfdcec;
  border-radius: 8px;
  font-size: 16px;
  font-family: 'bahnschriftregular';
  color: #0b1b33;
  background: #f7fafd;
  resize: vertical;
  transition: border-color 0.3s ease;
  resize: none;
}

.contact-form .apply-form-group textarea::placeholder{
  color: #9aa7b8;
}

.contact-form .apply-form-group textarea:focus{
  outline: none;
  border-color: #004da1;
}

@media (max-width: 991px){
  .contact-wrap{
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

@media (max-width: 575px){
  .contact-form-wrap{
    padding: 28px 24px 32px;
  }

  .contact-info-card{
    padding: 28px 24px;
  }
}


/* ==========================================================================
   Default page (Terms, Privacy, etc.)
   ========================================================================== */

.default-page{
  color: #494949;
}

.default-page h1{
  font-size: 40px;
  line-height: 42px;
  margin-bottom: 30px;
  color: #000;
  font-weight: 500;
}

.default-page h2{
  font-size: 32px;
  line-height: 34px;
  margin-bottom: 25px;
  color: #000;
  font-weight: 500;
}

.default-page h3{
  font-size: 26px;
  line-height: 28px;
  margin-bottom: 20px;
  color: #000;
  font-weight: 500;
}

.default-page h4{
  font-size: 24px;
  line-height: 26px;
  margin-bottom: 15px;
  color: #000;
  font-weight: 500;
}

.default-page h5{
  font-size: 20px;
  line-height: 22px;
  margin-bottom: 15px;
  color: #000;
  font-weight: 500;
}

.default-page h6{
  font-size: 16px;
  line-height: 18px;
  margin-bottom: 15px;
  color: #000;
  font-weight: 500;
}

.default-page p{
  font-family: 'bahnschriftregular';
  font-weight: 400;
  font-size: 17px;
  line-height: 28px;
  margin-bottom: 15px;
  color: #494949;
}

.default-page p:last-child{
  margin-bottom: 0;
}

.default-page ul,
.default-page ol{
  margin: 0 0 20px;
  padding-left: 24px;
  list-style-position: outside;
}

.default-page ul{
  list-style-type: disc;
}

.default-page ol{
  list-style-type: decimal;
}

.default-page ul li,
.default-page ol li{
  display: list-item;
  font-family: 'bahnschriftregular';
  font-size: 17px;
  line-height: 28px;
  color: #494949;
  margin-bottom: 8px;
}

.default-page ul li:last-child,
.default-page ol li:last-child{
  margin-bottom: 0;
}

.default-page ul ul,
.default-page ol ol,
.default-page ul ol,
.default-page ol ul{
  margin-top: 8px;
  margin-bottom: 0;
}

.default-page ul ul{
  list-style-type: circle;
}

.default-page ul ul ul{
  list-style-type: square;
}

.default-page a{
  color: #004da1;
  text-decoration: underline;
}

.default-page a:hover{
  color: #65cef5;
}

.default-page strong,
.default-page b{
  font-weight: 600;
  color: #000;
}


/* ==========================================================================
   404 page
   ========================================================================== */

.error-404-section .error-404{
  max-width: 720px;
  margin: 0 auto;
}

.error-404-section .main-btn{
  margin-top: 40px;
}


.whatsapp-icon{
     width: 58px;
     height: 58px;
     position: fixed;
     bottom: 50px;
     right: 50px;
     z-index: 999;
     filter: drop-shadow(0 6px 18px rgba(0, 0, 0, 0.28));
}

.whatsapp-icon a{
     display: block;
}


.whatsapp-icon img{
     width: 100%;
     height: auto;
}