/* 1. CSS VARIABLES & ROOT */
:root {
  /* Primary Brand — Blue (Global Trust) */
  --primary: #5e9ec1;
  --primary-dark: #4a86a5;
  --primary-light: #7fb3cf;

  /* Secondary Brand — Green (Trade / Growth) */
  --secondary: #79a975;
  --secondary-dark: #5f8c5c;
  --secondary-light: #9bc497;

  /* Dark Brand — Navy (Premium / Headings) */
  --dark: #292f5e;
  --dark-light: #3b4275;

  /* Text */
  --text-dark: #1f1f1f;
  --text-light: #6c757d;

  /* Gradients */
  --gradient-brand: linear-gradient(
    135deg,
    #5e9ec1 0%,
    #6aa8b5 25%,
    #70a89c 50%,
    #75a884 75%,
    #79a975 100%
  );
  --gradient-reverse: linear-gradient(
    135deg,
    #79a975 0%,
    #6fa7ad 50%,
    #5e9ec1 100%
  );

  /* UI */
  --border-radius: 10px;
  --transition: all 0.3s ease-in-out;
}

/*  2. KEYFRAME ANIMATIONS */

/* Globe tilt — What We Do section */
@keyframes tiltContinuous {
  0%,
  100% {
    transform: rotate(-5deg);
  }

  50% {
    transform: rotate(5deg);
  }
}

/* Sticky header slide-in */
@keyframes slideDown {
  from {
    transform: translateY(-100%);
  }

  to {
    transform: translateY(0);
  }
}

/* Hero slide text — fade from top */
@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Hero slide text — fade from bottom */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* What We Do — floating service cards */
@keyframes slide-one {
  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-12px);
  }
}

@keyframes slide-one1 {
  0%,
  100% {
    transform: translateY(-8px);
  }

  50% {
    transform: translateY(4px);
  }
}

@keyframes slide-two {
  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(12px);
  }
}

@keyframes slide-two1 {
  0%,
  100% {
    transform: translateY(8px);
  }

  50% {
    transform: translateY(-4px);
  }
}

/*  3. GLOBAL HELPERS */
.text-justify {
  text-align: justify !important;
}

.section-padding {
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}

.section-padding-top {
  padding-top: 80px !important;
}

.section-padding-bottom {
  padding-bottom: 80px !important;
}

/* Utility — animated globe image */
.rotate-img {
  animation: tiltContinuous 4s ease-in-out infinite;
  transform-origin: center;
}

html {
  scroll-behavior: smooth;
}

/* form bot field */
.field-bot {
  position: absolute;
  left: -9999px;
  height: 1px !important;
  width: 1px !important;
  opacity: 0 !important;
}

/* Background helpers */
.bg-custom-primary {
  background-color: var(--primary) !important;
}

.bg-custom-primary-dark {
  background-color: var(--primary-dark) !important;
}

.bg-custom-primary-light {
  background-color: var(--primary-light) !important;
}

.bg-custom-secondary {
  background-color: var(--secondary) !important;
}

.bg-custom-secondary-dark {
  background-color: var(--secondary-dark) !important;
}

.bg-custom-secondary-light {
  background-color: var(--secondary-light) !important;
}

.bg-custom-dark {
  background-color: var(--dark) !important;
}

.bg-custom-dark-light {
  background-color: var(--dark-light) !important;
}

.bg-custom-gradient {
  background: var(--gradient-brand) !important;
}

/* Text color helpers */
.text-custom-primary {
  color: var(--primary) !important;
}

.text-custom-primary-dark {
  color: var(--primary-dark) !important;
}

.text-custom-primary-light {
  color: var(--primary-light) !important;
}

.text-custom-secondary {
  color: var(--secondary) !important;
}

.text-custom-secondary-dark {
  color: var(--secondary-dark) !important;
}

.text-custom-secondary-light {
  color: var(--secondary-light) !important;
}

.text-custom-dark {
  color: var(--dark) !important;
}

.text-custom-dark-light {
  color: var(--dark-light) !important;
}

.text-custom-gradient {
  background: var(--gradient-brand);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/*  4. HEADER */
.logo-img {
  width: 10rem;
}

.header-three {
  width: 100%;
  transition: var(--transition);
}

.header-three.is-sticky {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  transform: translateY(-100%);
  animation: slideDown 0.4s ease forwards;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

header.header-three ul li:hover a::before {
  content: unset !important;
  display: none !important;
}

header.header-three .nav-main ul li:hover a.nav-link {
  color: var(--primary-dark) !important;
}

header .nav-main ul li a::after {
  background: var(--primary-dark) !important;
}

header .header-top-right :is(.email, .call) a {
  transition: var(--transition);
}

header .header-top-right :is(.email, .call):hover a {
  color: var(--primary-dark) !important;
}

header .header-top-right :is(.email, .call) svg path {
  fill: var(--primary) !important;
}

header.header-three .rts-btn.btn-primary-3 {
  background-color: var(--primary-dark) !important;
  border-color: var(--primary-dark) !important;
  color: #fff !important;
}

header.header-three .rts-btn.btn-primary-3:hover {
  background-color: var(--primary-light) !important;
}

header.header-three .menu-btn {
  background-color: var(--primary-light) !important;
  border-color: var(--primary-light) !important;
  color: #fff !important;
  border-radius: var(--border-radius) !important;
}

header.header-three .menu-btn:hover {
  background-color: var(--primary-dark) !important;
}

header.header-three .main-header-three.main-header::before,
header.header-three .main-header-three.main-header::after {
  background: var(--gradient-brand) !important;
}

.header-three .header-top-right .call i {
  transform: rotate(-10deg) !important;
}

#anywhere-home {
  cursor: url("../images/icons/close.png"), auto !important;
}

header .mainmenu li.has-droupdown > a::before {
  content: unset !important;
  display: none;
}

header.header-three
  .main-header-three.main-header
  .mainmenu
  li.has-droupdown
  .submenu {
  border-top-color: var(--primary-dark) !important;
}

header .mainmenu li.has-droupdown .submenu::after {
  border-bottom-color: var(--primary-dark) !important;
}

header.header-three .main-header-three.main-header .nav-main ul li a:hover {
  color: var(--primary-dark) !important;
}

/*  5. FOOTER */
footer .social-three-wrapper li a {
  transition: var(--transition) !important;
}

footer .social-three-wrapper li a:hover::after {
  background: var(--gradient-brand) !important;
}

footer .social-three-wrapper li a:hover i {
  color: #fff !important;
}

footer .footer-three-single-wized .body .single a {
  transition: var(--transition);
}

footer .footer-three-single-wized .body .single a:hover {
  color: var(--primary-dark) !important;
}

/*  6. CTA SECTION */
.bg-call-to-action-two {
  background-image: url("../images/index/cta-img-ysj-global.png");
  background-color: unset !important;
}

.rts-callto-acation-area .rts-btn.btn-primary-2 {
  background: var(--primary-dark) !important;
  color: #fff;
}

.rts-callto-acation-area .rts-btn.btn-primary-2:hover {
  background: #fff !important;
  color: var(--primary) !important;
}

/*  7. LOADER */
.loader-wrapper {
  --line-width: 5px;
  --outer-line-color: var(--primary) !important;
  --middle-line-color: var(--primary-dark) !important;
  --inner-line-color: var(--secondary) !important;
}

/* 8. BACK TO TOP */
.progress-wrap::before {
  background: var(--primary) !important;
}

.progress-wrap::after {
  border: 2px solid var(--primary) !important;
  color: var(--primary) !important;
}

.progress-wrap svg {
  color: var(--primary) !important;
}

.progress-wrap svg.progress-circle path {
  stroke: var(--primary) !important;
}

/* breadcrumb styles */
.rts-breadcrumb-area .bread-tag a {
  transition: var(--transition) !important;
}

.rts-breadcrumb-area .bread-tag a:hover {
  color: var(--primary) !important;
}

.rts-breadcrumb-area {
  padding-top: 100px !important;
  padding-bottom: 90px !important;
  position: relative;
  z-index: 1;
}

.rts-breadcrumb-area .container {
  margin-top: 140px !important;
  position: relative;
  z-index: 2;
}

.rts-breadcrumb-area::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
  z-index: -1;
}

.terms-and-policies .breadcrumb-bg {
  background-image: url("../images/breadcrumbs/terms-and-policies-bread-bg-ysj-global.jpg") !important;
}

.contact-us .breadcrumb-bg {
  background-image: url("../images/breadcrumbs/contact-us-bread-bg-ysj-global.png") !important;
}

.about-us .breadcrumb-bg {
  background-image: url("../images/breadcrumbs/about-us-bread-bg-ysj-global.png") !important;
}

.products .breadcrumb-bg,
.product-detail .breadcrumb-bg {
  background-image: url("../images/breadcrumbs/product-bread-bg-ysj-global.png") !important;
}

/* =======================
   9. INDEX PAGE STYLES
========================== */

/* 1. HERO / BANNER */
.index .bg_image#slide1 {
  background-image: url("../images/index/slide1-ysg-global.png") !important;
  height: 600px !important;
}

.index .bg_image#slide2 {
  background-image: url("../images/index/slide2-ysg-global.png") !important;
  height: 600px !important;
}

.index .bg_image#slide3 {
  background-image: url("../images/index/slide3-ysg-global.png") !important;
  height: 600px !important;
}

.index .banner-three::before {
  background-image: url("../images/icons/index-banner-shape.png") !important;
}

.index .banner-three-inner {
  padding-top: 21rem !important;
}

.index .banner-three-inner::after {
  content: unset !important;
}

.index .banner-three-inner .disc {
  width: 90% !important;
  margin-bottom: 35px !important;
}

.index .rts-banner-area .title {
  font-size: 4rem;
}

.index .rts-section-gap {
  padding-top: 40px !important;
}

.index .pre-title img {
  width: 2.85rem;
}

/* 2. ABOUT */
.index .rts-about-area-start .title {
  font-size: 4.5rem;
}

.index .rts-about-area-start .thumbnail-about-six img {
  min-width: 120% !important;
}

.index .about-content-inner-style-six .item-check-inner,
.about-us .item-check-inner {
  position: relative;
  z-index: 1;
  border-left: 1px solid transparent;
}

.index .about-content-inner-style-six .item-check-inner::before,
.about-us .item-check-inner::before {
  content: "";
  position: absolute;
  inset: 0;
  padding: 5px;
  border-radius: var(--border-radius);
  background: var(--gradient-brand);
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  z-index: -1;
}

/* 3. WHAT WE DO */
.index .rts-business-goal5 .container .title-area {
  margin-bottom: unset !important;
}

.index .rts-business-goal5 .container .content-box .content.left {
  animation: slide-one 10s linear infinite !important;
}

.index .rts-business-goal5 .container .content-box .content.one {
  animation: slide-one1 10s linear infinite !important;
}

.index .rts-business-goal5 .container .content-box .content.right {
  animation: slide-two 10s linear infinite !important;
}

.index .rts-business-goal5 .container .content-box .content.two {
  animation: slide-two1 10s linear infinite !important;
}

.index .rts-business-goal ul li:hover h5,
.index .rts-business-goal ul li:hover p {
  color: #fff !important;
}

/* 4. WHY CHOOSE / WORK PROCESS */
.index .rts-working-process .rts-single-service-style-process .icon img {
  max-width: 70% !important;
}

/* 5. CATEGORIES (BUSINESS CASES) */
.index
  .rts-business-case
  .container-cusiness-case-h2
  .swiper
  .inner
  a:hover
  h5 {
  color: var(--primary-dark) !important;
}

/* 6. COUNTER*/
.index .single-counter .counter-details .title span::after {
  content: unset !important;
}

.index .rts-counter-up-area .single-counter img {
  max-width: 30% !important;
  border-radius: var(--border-radius);
}

/* 7. HERO SLIDE TEXT ANIMATIONS */
.index .swiper-slide-active .banner-three-inner .subtitle-banner {
  animation: fadeInDown 0.6s ease both;
  animation-delay: 0.1s;
}

.index .swiper-slide-active .banner-three-inner .title {
  animation: fadeInUp 0.7s ease both;
  animation-delay: 0.3s;
}

.index .swiper-slide-active .banner-three-inner .disc {
  animation: fadeInUp 0.7s ease both;
  animation-delay: 0.5s;
}

.index .swiper-slide-active .banner-three-inner .small-text {
  animation: fadeInUp 0.7s ease both;
  animation-delay: 0.7s;
}

.index .rts-title-area.service::after {
  content: unset !important;
  display: unset !important;
}

.index .rts-service-area .background-service {
  padding-top: unset !important;
  padding-bottom: unset !important;
}

.index .bg-team {
  margin: 80px 0 80px 0;
  background-image: url("../images/icons/index-product-slider-bg-ysj-global.jpg") !important;
  height: auto;
}

.index .rts-team-area .mySwiperh1_team .swiper-slide {
  height: auto;
  display: flex;
}

.index .rts-team-area .team-single-one-start {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.index .rts-team-area .team-image-area img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
}

.index .rts-team-area .single-details {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.index .rts-team-area .single-details .title {
  min-height: 48px;
}

/* ==================================
   10. Terms and privacy page styles
   ================================== */
.terms-content .badge {
  letter-spacing: 0.5px;
}

.terms-content .terms-section {
  border-left: 3px solid var(--primary);
  border-radius: 0 8px 8px 0;
  background: rgba(94, 158, 193, 0.04);
  transition: box-shadow 0.2s;
}

.terms-content .terms-and-policies .terms-contact-box {
  border-radius: 14px;
  border: 1px solid #dde6ed;
}

.terms-content .terms-and-policies .terms-contact-icon-wrap {
  width: 48px;
  height: 48px;
  background: rgba(255, 255, 255, 0.2);
}

.terms-content .terms-and-policies .terms-contact-sub {
  font-size: 13px;
}

.terms-content .terms-and-policies .terms-contact-row--bordered {
  border-bottom: 1px solid #dde6ed;
}

.terms-content .terms-and-policies .terms-contact-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: rgba(94, 158, 193, 0.1);
}

.terms-content .terms-and-policies .terms-contact-label {
  font-size: 12px;
  letter-spacing: 0.6px;
}

.terms-content .terms-and-policies .terms-contact-link {
  font-size: 14px;
  word-break: break-word;
  transition: var(--transition);
}

.privacy-effective-badge {
  font-size: 13px;
  letter-spacing: 0.5px;
}

.privacy-icon-box {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: rgba(94, 158, 193, 0.12);
}

.privacy-icon-box i {
  font-size: 18px;
}

.privacy-section {
  transition: box-shadow 0.25s;
}

.privacy-section:hover {
  box-shadow: 0 6px 24px rgba(94, 158, 193, 0.12);
}

.privacy-icon-box-mobile {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: rgba(94, 158, 193, 0.12);
}

.privacy-icon-box-mobile i {
  font-size: 16px;
}

.privacy-section-number {
  font-size: 12px;
  letter-spacing: 0.4px;
}

.privacy-list-icon {
  font-size: 15px;
}

.privacy-list-text {
  font-size: 15px;
}

.privacy-contact-label span {
  font-size: 13px;
  letter-spacing: 0.6px;
}

.privacy-contact-link {
  transition: var(--transition);
}

.privacy-contact-link:hover .privacy-contact-value {
  color: var(--primary) !important;
}

.privacy-contact-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(94, 158, 193, 0.1);
}

.privacy-contact-icon i {
  font-size: 15px;
}

.privacy-contact-value {
  font-size: 14px;
  word-break: break-word;
  transition: var(--transition);
}

/* ===========================
   11. contact us page styles
   =========================== */
.contact-us .bg-project-three {
  background-image: url("../images/contact-us/contact-detail-shape3.jpg");
}

.contact-us .bg-input-project {
  background-image: url("../images/contact-us/contact-detail-shape2.jpg");
}

.contact-us .title-area-project-w-in .bg-email {
  background-image: url("../images/contact-us/contact-detail-shape1.jpg");
}

.contact-us .discription .title-sm a {
  transition: var(--transition) !important;
}

.contact-us
  .bg-email
  .content-wrapper
  .contact-info
  .discription
  .title-sm
  a:hover {
  color: var(--dark) !important;
}

.contact-us .title-area-project-w-in .title {
  font-size: 50px !important;
  line-height: 50px !important;
  margin-top: 5px !important;
}

.contact-us .bg-input-project .product-form {
  padding: 40px 40px !important;
}

.contact-us input::placeholder,
.contact-us textarea::placeholder {
  color: var(--text-light) !important;
}

.contact-us .bg-input-project .product-form input:focus {
  border: 1px solid var(--primary) !important;
}

.contact-us .bg-input-project .product-form textarea:focus {
  border: 1px solid var(--primary) !important;
}

/* =========================
   12. about us page styles
   ========================= */
.about-us .bg-about-sm-shape::after {
  background-image: url("../images/icons/about-us-after-ysj-global.png");
}

.about-us .bg-about-sm-shape::before {
  background-image: url("../images/icons/about-us-before-ysj-global.png");
}

.about-us .rts-title-area::after {
  content: unset !important;
  display: none !important;
}

.about-us .about-one-thumbnail .experience {
  background: var(--gradient-brand) !important;
}

.about-us .rts-title-area p.pre-title {
  color: var(--primary-dark) !important;
}

.about-us .about-one-thumbnail .experience {
  padding: 30px 20px !important;
  bottom: 8% !important;
  width: 360px !important;
}

.about-us .about-one-thumbnail .small-img,
.about-us .about-one-thumbnail .big-img {
  border-radius: var(--border-radius);
}

.about-us .rts-tab-style-one .button-area button.active {
  color: var(--primary-dark) !important;
}

.about-us .about-company-thumbnail::after {
  background-image: url("../images/icons/about-us-mission-vision-icons1-ysj-global.png");
}

.about-us .rts-about-our-company-h2::after {
  background-image: url("../images/icons/about-us-mission-vision-icons2-ysj-global.png");
}

.about-us #mv-tab-image {
  transition: opacity 0.4s ease;
}

.about-us .about-left-style-nine .business-revinew {
  padding: 5px 35px !important;
  margin: -15px 60px !important;
}

.about-us .single-feature-area-nine #icon-area1 {
  background: rgba(74, 134, 165, 0.1) !important;
}

.about-us .single-feature-area-nine #icon-area2 {
  background: rgba(95, 140, 92, 0.1) !important;
}

.about-us .title-area-client::before {
  background: var(--gradient-reverse) !important;
  height: 3px !important;
  margin-top: 14px !important;
}

.about-us .title-area-client::after {
  background: var(--gradient-brand) !important;
  height: 3px !important;
  margin-top: -16px !important;
}

.about-us .countries-grid {
  gap: 24px;
}

.about-us .country-card {
  gap: 10px;
  cursor: default;
}

.about-us .country-flag-wrap {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  border: 3px solid transparent;
  background-origin: border-box;
  background-clip: padding-box, border-box;
  background-image: var(--flag-img), var(--gradient-brand);
  background-size: cover;
  background-position: center;
  box-shadow: 0 6px 20px rgba(94, 158, 193, 0.2);
  transition: var(--transition);
}

.about-us .country-flag-wrap img {
  display: none;
}

.about-us .country-card:hover .country-flag-wrap {
  box-shadow: 0 10px 30px rgba(94, 158, 193, 0.35);
  transform: translateY(-5px);
}

.about-us .country-name {
  letter-spacing: 0.4px;
}

/* =========================
   13. Product page STYLING
   ========================= */
.products .rts-portfolio-area .tab-content .tab-pane .inner a h5:hover {
  color: var(--primary-dark) !important;
}

/*  =========================
	enquiry modal STYLING
	========================= */
.enquiry-modal-dialog {
  max-width: 580px;
  width: 100%;
  margin: 1.5rem auto;
}

.enquiry-glass-modal {
  border: 0.5px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 20px !important;
}

.eq-header {
  padding: 24px 28px 0;
}

.eq-title {
  margin: 0 !important;
  line-height: 1.3;
}

.eq-close-btn {
  width: 32px;
  height: 32px;
  transition: all 0.2s ease;
}

.eq-close-btn:hover {
  opacity: 0.8;
  color: #fff;
}

.eq-divider {
  height: 0.5px;
  margin: 18px 28px 0;
}

.eq-body {
  padding: 20px 28px 28px;
}

.eq-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
}

.eq-input {
  border: 0.5px solid var(--dark) !important;
  border-radius: var(--border-radius) !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

.eq-btn-submit {
  border-radius: 12px !important;
}

.eq-btn-submit:hover {
  color: #fff !important;
}

.eq-group {
  min-height: 95px;
}

.eq-error {
  color: rgba(220, 80, 80, 0.9);
  height: 18px;
  line-height: 18px;
  font-size: 12px;
  display: block;
  overflow: hidden;
}

.eq-error:not(:empty) {
  opacity: 1;
}

/* ===================
   RESPONSIVE STYLING
   =================== */

/* tablet view styling */
@media only screen and (min-width: 768px) and (max-width: 991px) {
  .logo-img {
    width: 12rem !important;
    padding: 1rem !important;
  }

  .index .banner-three-inner {
    padding-top: 16rem !important;
  }

  .index .rts-about-area-start .title,
  .index .rts-banner-area .title {
    line-height: 0.9;
  }

  .index .about-content-inner-style-six .item-check-inner,
  .about-us .item-check-inner {
    justify-content: center !important;
  }

  footer .footer-three-single-wized img {
    width: 50% !important;
  }

  footer .info-wrapper {
    margin-bottom: 20px !important;
  }

  .about-us .about-left-style-nine .business-revinew {
    padding: 5px 35px !important;
    margin: -15px 200px !important;
  }
}

/* mobile view styling */
@media only screen and (max-width: 575px) {
  .index .rts-about-area-start .title,
  .index .rts-banner-area .title {
    line-height: 1;
  }

  .index .counter-wrapper-two .single-counter .counter-details {
    margin-left: 90px;
  }

  .logo-img {
    width: 12rem !important;
    padding: 1rem !important;
  }

  footer .info-wrapper {
    margin-bottom: 20px !important;
  }

  .about-us .country-flag-wrap {
    width: 70px;
    height: 70px;
  }

  .about-us .countries-grid {
    gap: 16px;
  }

  .about-us .about-left-style-nine .business-revinew {
    padding: 5px 15px !important;
    margin: -30px -30px !important;
    width: 200px;
  }
  .rts-breadcrumb-area {
    padding-top: 1px !important;
  }
}
