html, body {
  overflow-x: hidden;
  width: 100%;
}

[data-aos] {
  overflow: hidden;
}

img, iframe {
  max-width: 100%;
  height: auto;
}

:root {
  --body-dark: #1F2937;   /* Enterprise dark text / neutral */
  --first:     #56b62b;   /* Safety Green (accent only) */
  --second:    #4AA63C;   /* Safety Green – darker variant */
  --third:     #3A86C8;   /* Enterprise Blue – light */
  --forth:    #1e63ac;   /* Enterprise Blue – primary */
  --fifth: #e6edf5;
  --sixth: #DEE7F1;
  --seventh: #EEF3F8;
  --eigth: #f3f3f3;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

/* @font-face {
  font-family: 'Roboto';
  src: url('../fonts/Roboto-VariableFont_wdth,wght.ttf') format('truetype');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
} */

@import url('https://fonts.googleapis.com/css2?family=Faster+One&family=Figtree:ital,wght@0,300..900;1,300..900');

body {
  font-family: 'Figtree', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  margin: 0;
  background-color: var(--bg-body);
}

.bg-body {
  background: var(--bg-body) !important;
}

.bg-first   { background-color: var(--first) !important; }
.bg-second  { background-color: var(--second) !important; }
.bg-third   { background-color: var(--third) !important; }
.bg-forth  { background-color: var(--forth) !important; }
.bg-fifth  { background-color: var(--fifth) !important; }
.bg-sixth  { background-color: var(--sixth) !important; }
.bg-seventh  { background-color: var(--seventh) !important; }
.bg-eigth  { background-color: var(--eigth) !important; }
.body-dark  { background-color: var(--body-dark) !important; }

.bg-gradient-first {
  background: linear-gradient(135deg, var(--first), var(--second)) !important;
}
.bg-gradient-second {
  background: linear-gradient(135deg, #F6F9FC 0%,
  #EEF3F8 35%,
  #E6EDF5 65%,
  #DEE7F1 100%) !important;
}

.bg-gradient-blue {
  background: linear-gradient(
    160deg,
    var(--third) 0%,
    var(--forth) 45%,
    #165A91 100%
  );
  position: relative;
}

.bg-gradient-light {
  background: linear-gradient(
    160deg,
    var(--fifth) 0%,
    var(--sixth) 45%,
    var(--seventh) 100%
  );
  position: relative;
}

.bg-gradient-blue::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at 30% 20%,
    rgba(255,255,255,0.08),
    transparent 40%
  );
  pointer-events: none;
}

.bg-gradient-blue h2 {
  font-weight: 600;
  letter-spacing: -0.02em;
  margin-bottom: 1rem;
}

.bg-gradient-blue > .container p {
  color: rgba(255,255,255,0.85);
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.bg-gradient-first1 {
  background: linear-gradient(135deg, rgba(86, 182, 43, .25), rgba(86, 182, 43, .1));
}

.bg-transparent-1 {
  background: rgba(31, 111, 178, 0.65); /* semi-transparent */
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px); /* Safari support */
  border: 1px solid rgba(31, 111, 178, 0.3);
  color: #ffffff;
}

.text-first   { color: var(--first) !important; }
.text-second  { color: var(--second) !important; }
.text-third   { color: var(--third) !important; }
.text-forth  { color: var(--forth) !important; }

.border-first   { border-color: var(--first) !important; }
.border-second  { border-color: var(--second) !important; }
.border-third   { border-color: var(--third) !important; }
.border-forth  { border-color: var(--forth) !important; }

.border-top-1 { border-top-width: 1px !important; }
.border-top-2 { border-top-width: 2px !important; }
.border-top-3 { border-top-width: 3px !important; }
.border-top-4 { border-top-width: 4px !important; }
.border-top-5 { border-top-width: 5px !important; }

.border-bottom-1 { border-bottom-width: 1px !important; }
.border-bottom-2 { border-bottom-width: 2px !important; }
.border-bottom-3 { border-bottom-width: 3px !important; }
.border-bottom-4 { border-bottom-width: 4px !important; }
.border-bottom-5 { border-bottom-width: 5px !important; }

.border-start-1 { border-left-width: 1px !important; }
.border-start-2 { border-left-width: 2px !important; }
.border-start-3 { border-left-width: 3px !important; }
.border-start-4 { border-left-width: 4px !important; }
.border-start-5 { border-left-width: 5px !important; }

.border-end-1 { border-right-width: 1px !important; }
.border-end-2 { border-right-width: 2px !important; }
.border-end-3 { border-right-width: 3px !important; }
.border-end-4 { border-right-width: 4px !important; }
.border-end-5 { border-right-width: 5px !important; }

.btn-first {
  background-color: var(--first);
  color: var(--bs-light);
  border: 2px solid var(--first);
}
.btn-first:hover {
  background-color: transparent;
  color: var(--first);
  border: 2px solid var(--first);
}

.btn-second {
  background-color: var(--second);
  color: var(--bg-dark);
  border: 2px solid var(--second);
}
.btn-second:hover {
  background-color: transparent;
  color: var(--second);
  border: 2px solid var(--second);
}

.btn-third {
  background-color: var(--third);
  color: var(--forth);
  border: 2px solid var(--third);
}
.btn-third:hover {
  background-color: transparent;
  color: var(--third);
  border: 2px solid var(--third);
}

.btn-forth {
  background-color: var(--forth);
  color: var(--bs-light);
  border: 2px solid var(--forth);
}
.btn-forth:hover {
  background-color: transparent;
  color: var(--forth);
  border: 2px solid var(--forth);
}

.btn-outline-first {
  background-color: transparent;
  color: var(--first);
  border: 2px solid var(--first);
  transition: all 0.3s ease;
}
.btn-outline-first:hover {
  background-color: var(--first);
  color: var(--bs-dark);
}

.btn-outline-second {
  background-color: transparent;
  color: var(--second);
  border: 2px solid var(--second);
  transition: all 0.3s ease;
}
.btn-outline-second:hover {
  background-color: var(--second);
  color: var(--forth);
}

.btn-outline-third {
  background-color: transparent;
  color: var(--third);
  border: 2px solid var(--third);
  transition: all 0.3s ease;
}
.btn-outline-third:hover {
  background-color: var(--third);
  color: var(--forth);
}

.btn-outline-forth {
  background-color: transparent;
  color: var(--forth);
  border: 2px solid var(--forth);
  transition: all 0.3s ease;
}
.btn-outline-forth:hover {
  background-color: var(--forth);
  color: var(--third);
}

.p-50 { padding: 50px; }
.p-100 { padding: 100px; }
.p-150 { padding: 150px; }
.p-200 { padding: 200px; }

.pt-50   { padding-top: 50px; }
.pt-100  { padding-top: 100px; }
.pt-150  { padding-top: 150px; }

.pb-50   { padding-bottom: 50px; }
.pb-100  { padding-bottom: 100px; }
.pb-150  { padding-bottom: 150px; }

.pl-50   { padding-left: 50px; }
.pl-100  { padding-left: 100px; }

.pr-50   { padding-right: 50px; }
.pr-100  { padding-right: 100px; }

.mt-50   { margin-top: 50px; }
.mt-100  { margin-top: 100px; }
.mt-150  { margin-top: 150px; }

.mb-50   { margin-bottom: 50px; }
.mb-100  { margin-bottom: 100px; }
.mb-150  { margin-bottom: 150px; }

.ml-50   { margin-left: 50px; }
.ml-100  { margin-left: 100px; }

.mr-50   { margin-right: 50px; }
.mr-100  { margin-right: 100px; }

.py-50   { padding-top: 50px; padding-bottom: 50px; }
.py-100  { padding-top: 100px; padding-bottom: 100px; }

.px-50   { padding-left: 50px; padding-right: 50px; }
.px-100  { padding-left: 100px; padding-right: 100px; }


.my-50   { margin-top: 50px; margin-bottom: 50px; }
.my-100  { margin-top: 100px; margin-bottom: 100px; }

.mx-50   { margin-left: 50px; margin-right: 50px; }
.mx-100  { margin-left: 100px; margin-right: 100px; }

.mt-n1 { margin-top: -0.25rem !important; }
.mt-n2 { margin-top: -0.5rem !important; }
.mt-n3 { margin-top: -1rem !important; }
.mt-n4 { margin-top: -1.5rem !important; }
.mt-n5 { margin-top: -3rem !important; }

@media (max-width: 768px) {
  .mt-sm-10 {
    margin-top: 10px;
  }
  .mt-sm-20 {
    margin-top: 20px;
  }
  .mt-sm-30 {
    margin-top: 30px;
  }
  .mt-sm-40 {
    margin-top: 40px;
  }
  .mt-sm-50 {
    margin-top: 50px;
  }
}

.cus-mt-n50 {
  margin-top: -50px;
}

.cus-mt-n100 {
  margin-top: -100px;
}

.cus-mt-n150 {
  margin-top: -150px;
}

.cus-mt-n200 {
  margin-top: -200px;
}

.cus-mt-n250 {
  margin-top: -250px;
}

.cus-mb-n50 {
  margin-bottom: -50px;
}

.cus-mb-n100 {
  margin-bottom: -100px;
}

.cus-mb-n150 {
  margin-bottom: -150px;
}

.cus-mb-n200 {
  margin-bottom: -200px;
}

.cus-mb-n250 {
  margin-bottom: -250px;
}

.max-w-100  { max-width: 100px; }
.max-w-150  { max-width: 150px; }
.max-w-200  { max-width: 200px; }
.max-w-250  { max-width: 250px; }
.max-w-300  { max-width: 300px; }
.max-w-400  { max-width: 400px; }
.max-w-500  { max-width: 500px; }
.max-w-600  { max-width: 600px; }
.max-w-700  { max-width: 700px; }
.max-w-800  { max-width: 800px; }
.max-w-900  { max-width: 900px; }
.max-w-1000 { max-width: 1000px; }

.max-h-100  { max-height: 100px; }
.max-h-150  { max-height: 150px; }
.max-h-200  { max-height: 200px; }
.max-h-250  { max-height: 250px; }
.max-h-300  { max-height: 300px; }
.max-h-400  { max-height: 400px; }
.max-h-500  { max-height: 500px; }
.max-h-600  { max-height: 600px; }
.max-h-700  { max-height: 700px; }
.max-h-800  { max-height: 800px; }
.max-h-900  { max-height: 900px; }
.max-h-1000 { max-height: 1000px; }

.min-h-100  { min-height: 100px; }
.min-h-150  { min-height: 150px; }
.min-h-200  { min-height: 200px; }
.min-h-250  { min-height: 250px; }
.min-h-300  { min-height: 300px; }
.min-h-400  { min-height: 400px; }
.min-h-500  { min-height: 500px; }
.min-h-600  { min-height: 600px; }
.min-h-700  { min-height: 700px; }
.min-h-800  { min-height: 800px; }
.min-h-900  { min-height: 900px; }
.min-h-1000 { min-height: 1000px; }

.min-vh-100 { min-height: 100vh; }

.w-150 {
  width: 150px !important;
}

.w-200 {
  width: 200px !important;
}

.w-250 {
  width: 250px !important;
}

.w-300 {
  width: 300px !important;
}

.w-350 {
  width: 350px !important;
}

.h-150 {
  height: 150px !important;
}

.h-200 {
  height: 200px !important;
}

.h-250 {
  height: 250px !important;
}

.h-300 {
  height: 300px !important;
}

.h-350 {
  height: 350px !important;
}

.fs-70 { font-size: 70px; }
.fs-60 { font-size: 60px; }
.fs-54 { font-size: 54px; }
.fs-50 { font-size: 50px; }
.fs-42 { font-size: 42px; }
.fs-40 { font-size: 40px; }
.fs-36 { font-size: 36px; }
.fs-32 { font-size: 32px; }
.fs-26 { font-size: 26px; }
.fs-24 { font-size: 24px; }
.fs-20 { font-size: 20px; }
.fs-16 { font-size: 16px; }

.z-0 {
  z-index: 0 !important;
}

.z-1 {
  z-index: 1 !important;
}

.z-10 {
  z-index: 10 !important;
}

.z-50 {
  z-index: 50 !important;
}

.z-100 {
  z-index: 100 !important;
}

.z-200 {
  z-index: 200 !important;
}

.z-300 {
  z-index: 300 !important;
}

.z-400 {
  z-index: 400 !important;
}

.z-500 {
  z-index: 500 !important;
}

.z-1000 {
  z-index: 1000 !important;
}

.shadow-first {
  box-shadow: 0 4px 6px rgba(0, 49, 135, 0.3),
              0 1px 3px rgba(0, 49, 135, 0.2);
}

.container-narrow { max-width: 720px; margin: 0 auto; }
.container-medium { max-width: 960px; margin: 0 auto; }
.container-wide   { max-width: 1200px; margin: 0 auto; }

.img-max-100 { max-width: 100%; height: auto; }
.img-max-75  { max-width: 75%; height: auto; }
.img-max-50  { max-width: 50%; height: auto; }
.img-max-25  { max-width: 25%; height: auto; }

/* PRELOADER */
#preloader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100svh; /* mobile-safe viewport */
  background: #ffffff;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.preloader-inner img {
  width: 240px;
  animation: pulse 1.2s infinite ease-in-out;
}

@keyframes pulse {
  0% {
    transform: scale(1);
    opacity: 0.6;
  }
  50% {
    transform: scale(1.08);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 0.6;
  }
}

/* =====================================================
   NAVBAR
===================================================== */

#mainNavbar {
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

#mainNavbar .nav-link {
  color: var(--bs-dark) !important;
  font-weight: 500;
  padding: 8px 1.5rem;
  border-radius: 50rem;
  background-color: transparent;
  transition: color 0.3s ease, background-color 0.3s ease;
}

#mainNavbar .nav-link:hover {
  background-color: var(--forth);
  color: var(--bs-light) !important;
}

@media (max-width: 992px) {
  #mainNavbar {
    padding-top: 0;
  }
}


/* =====================================================
   BACK TO TOP
===================================================== */

#backToTop {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 45px;
  height: 45px;
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 0;
}


/* =====================================================
   CENTER Fullscreen
===================================================== */

.center-fullscreen {
  position: relative;
  min-height: 100vh;
  padding: 60px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(
    135deg,
    #F6F9FC 0%,
    #EEF3F8 35%,
    #E6EDF5 65%,
    #DEE7F1 100%
  );
}

.center-fullscreen::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 480px;
  height: 480px;
  background: url("../images/network.png") no-repeat;
  background-size: contain;
  opacity: 0.25;
  pointer-events: none;
}

/* =====================================================
   HERO BANNER
===================================================== */

.hero-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  background: url(../images/bg-1.webp);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding-top: 200px;
  text-align: center;
}

/* =====================================================
   HERO / SLIDER
===================================================== */

.hero-slide {
  position: relative;
  padding-top: 100px;
  overflow: hidden;
  background: linear-gradient(
    135deg,
    #F6F9FC 0%,
    #EEF3F8 35%,
    #E6EDF5 65%,
    #DEE7F1 100%
  );
}

.hero-slide::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 480px;
  height: 480px;
  background: url("../images/network.png") no-repeat;
  background-size: contain;
  opacity: 0.25;
  pointer-events: none;
}
/* 

.hero-slide::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 360px;
  height: 360px;
  background: url("../images/outline.png") no-repeat;
  background-size: contain;
  opacity: 0.18;
  transform: rotate(180deg);
  pointer-events: none;
} */

.hero-slide .hero-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at 30% 20%,
    rgba(255,255,255,0.6),
    transparent 45%
  );
  pointer-events: none;
}

.hero-slide .container {
  position: relative;
  z-index: 2;
}

@media (max-width: 768px) {
  .hero-slide::before,
  .hero-slide::after {
    width: 220px;
    height: 220px;
    opacity: 0.15;
  }

  .hero-slide {
    min-height: 100vh;
  }
}


/* =====================================================
   INNER BANNER
===================================================== */

.inner-banner {
  position: relative;
  padding-top: 120px;
  padding-bottom: 60px;
  background: linear-gradient(
    135deg,
    #F6F9FC 0%,
    #EEF3F8 35%,
    #E6EDF5 65%,
    #DEE7F1 100%
  );
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}

.inner-banner::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 480px;
  height: 480px;
  background: url("../images/network.png") no-repeat;
  background-size: contain;
  opacity: 0.25;
  pointer-events: none;
}

.inner-banner .hero-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at 30% 20%,
    rgba(255,255,255,0.6),
    transparent 45%
  );
  pointer-events: none;
}


/* =====================================================
   MAP BACKGROUND
===================================================== */

.bg-map {
  position: relative;
  background-color: #0f1f33;
}

.map-overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 31, 51, 0.85);
}


/* =====================================================
   UTILITIES
===================================================== */

.min-vh-85 {
  min-height: 85vh;
}

@media (max-width: 768px) {
  .min-md-h-auto {
    min-height: auto !important;
  }

  .my-md-100 {
    margin-top: 100px !important;
    margin-bottom: 100px !important;
  }
}


/* =====================================================
   CAROUSEL CONTROLS
===================================================== */

.carousel-control-prev,
.carousel-control-next {
  width: 48px;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  background-size: 100% 100%;
}


/* =====================================================
   CARDS (GENERAL)
===================================================== */

.cus-card {
  border-radius: 14px;
  border: none;
  background: #ffffff;
  text-align: left;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
}

.cus-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 45px rgba(0,0,0,0.18);
  background: var(--seventh);
}

.card-icon {
  background: var(--fifth);
  padding: 10px;
  border-radius: 10px;
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cus-card i {
  color: var(--first);
  font-size: 24px;
  transition: color 0.3s ease;
  margin-bottom: 0%;
}

.cus-card:hover i {
  color: var(--bs-dark);
}

.cus-card h3 {
  transition: color 0.3s ease;
}

.cus-card:hover h3 {
  color: var(--second);
}


/* =====================================================
   PROBLEM CARDS
===================================================== */

.problem-card {
  max-width: 230px;
  height: 100%;
  padding: 1.75rem 1.25rem;
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 18px;
  color: #ffffff;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.problem-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 45px rgba(0,0,0,0.18);
}

.problem-card i {
  color: rgba(255,255,255,0.75);
}


/* =====================================================
   ICON BOX (CAPABILITIES)
===================================================== */

.icon-box {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 1.5rem 0.75rem 0.75rem;
  max-width: 540px;
  border-radius: 999px;
  background: rgba(255,255,255,0.95);
  box-shadow: 0 12px 30px rgba(0,0,0,0.12);
  transition: transform 0.25s ease;
}

.icon-box:hover {
  transform: translateY(-3px);
}

.icon-box .icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--forth);
  display: flex;
  align-items: center;
  justify-content: center;
}

.icon-box .icon i {
  font-size: 1.1rem;
  color: #ffffff;
}

.icon-box h3 {
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0;
  color: #1F2937;
}


/* =====================================================
   CAREERS SECTION
===================================================== */

.career-card {
  background: rgba(255, 255, 255, 0.75);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 18px;
  padding: 2.5rem;
  box-shadow: 0 20px 50px rgba(0,0,0,0.08);
}

.career-subtitle {
  font-weight: 600;
  color: #1F2937;
  margin-bottom: 1.5rem;
}

.career-block-title {
  font-weight: 600;
  color: #1F6FB2;
  margin-bottom: 0.75rem;
}

.career-list {
  list-style: none;
  padding-left: 0;
}

.career-list li {
  position: relative;
  padding-left: 28px;
  margin-bottom: 0.75rem;
  color: #1F2937;
}

.career-list li::before {
  content: "✔";
  position: absolute;
  left: 0;
  top: 0;
  color: #5FBF4A;
  font-weight: 600;
}

.career-divider {
  height: 1px;
  border: none;
  background: var(--forth);
  margin: 2rem 0;
}

.career-footer {
  color: #374151;
}

.career-email {
  display: inline-block;
  color: #1F6FB2;
  font-weight: 500;
  text-decoration: none;
}

.career-email:hover {
  text-decoration: underline;
}


/* =====================================================
   SECTION HELPERS
===================================================== */

.bg-gradient-blue h2 {
  font-weight: 600;
  letter-spacing: -0.02em;
  margin-bottom: 1rem;
}

.section-divider {
  width: 80px;
  height: 2px;
  background: rgba(255,255,255,0.4);
  margin: 0 auto;
}

/* =========================
    SECTION
========================== */
.vision-section {
  padding: 50px 20px;
  text-align: center;
  background: linear-gradient(var(--bs-dark), var(--third));
  padding-bottom: 0%;
}

.vision-section h2 {
  font-size: 32px;
  font-weight: 600;
  margin-bottom: 20px;
}

/* =========================
    WRAPPER
========================== */
.vision-wrapper {
  position: relative;
  max-width: 1100px;
  height: 520px;
  margin: 0 auto;
}

/* =========================
    ARC
========================== */
.vision-arc {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.vision-arc path {
  fill: none;
  stroke: rgba(230, 237, 245, 0.3);
  stroke-width: 3;
}

/* =========================
    CENTER
========================== */
.vision-center {
  position: absolute;
  left: 50%;
  bottom: 100px;
  transform: translateX(-50%);
  font-weight: 700;
}

/* .vision-center h3 {
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0.04em;
} */

/* =========================
    ITEMS
========================== */
.vision-item {
  position: absolute;
  width: 230px;
  text-align: center;
  opacity: 0.85;
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.vision-item:hover {
  transform: scale(1.05);
  opacity: 1;
}

.vision-item h4 {
  font-size: 14px;
  font-weight: 600;
  margin: 8px 0 4px;
  color: var(--eigth);
}

/* DESCRIPTION */
.vision-desc {
  font-size: 13px;
  color: var(--fifth);
  line-height: 1.45;
  display: none;
}

.vision-item:hover .vision-desc {
  display: block;
}

/* =========================
    ICON
========================== */
.vision-icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: #ffffff;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 6px;
  font-size: 14px;
}

/* COLORS */
.bg-green { background:#5FBF4A; }
.bg-orange { background:#F59E0B; }
.bg-blue { background:#3A86C8; }
.bg-red { background:#DC2626; }
.bg-teal { background:#06B6D4; }
.bg-navy { background:#1F6FB2; }

/* =========================
    POSITIONS (ARC-ALIGNED)
========================== */
.item-1 { left: 0%;  bottom: 100px; }
.item-2 { left: 8%; top: 180px; }
.item-3 { left: 27%; top: 55px; }
.item-4 { right: 27%; top: 55px; }
.item-5 { right: 8%; top: 180px; }
.item-6 { right: 0%;  bottom: 100px; }

/* =========================
    MOBILE
========================== */
@media (max-width: 768px) {
  .vision-wrapper {
    height: auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .vision-arc {
    display: none;
  }

  .vision-center {
    position: static;
    transform: none;
    margin-bottom: 20px;
  }

  .vision-item {
    position: static;
    width: 100%;
    opacity: 1;
    transform: none !important;
  }

  .vision-desc {
    display: block;
  }
}

.culture-section {
    padding: 50px 20px;
    background: var(--sixth);
}

.section-title {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 40px;
}

.culture-wrapper {
    position: relative;
    max-width: 900px;
    margin: auto;
    height: 540px;
}

/* =========================
   CONNECTOR LINES
========================= */

.culture-connectors {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

.culture-connectors line {
    stroke: var(--body-dark);
    stroke-width: 2;
    stroke-dasharray: 6 6;
    opacity: 0.8;
}

/* Ensure items appear above lines */
.culture-center,
.culture-item {
    position: absolute;
    z-index: 2;
}

@media (max-width: 768px) {
    .culture-connectors {
        display: none;
    }
}

.culture-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 180px;
    height: 180px;
    background: #555;
    border-radius: 50%;
    color: #fff;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.culture-center span {
    font-size: 14px;
    opacity: 0.8;
}

.culture-center strong {
    font-size: 18px;
    transition: all ease 1s;
}

.culture-center:hover strong {
  font-size: 20px;
}

.culture-item {
    position: absolute;
    width: 260px;
    text-align: center;
}

.culture-item h4 {
    font-size: 14px;
    font-weight: 700;
    margin-top: 10px;
}

.culture-item p {
    font-size: 13px;
    color: #666;
}

.culture-item .icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 22px;
    margin: auto;
}

/* Colors */
.orange { background: #ff8c42; }
.yellow { background: #f4c430; }
.red { background: #e74c3c; }
.pink { background: #e84393; }
.purple { background: #8e44ad; }
.teal { background: #16a085; }
.green { background: #2ecc71; }
.light-green { background: #9acd32; }

/* =========================
   CULTURE POSITIONS
========================= */

/* =========================
   CULTURE POSITIONS (540px)
========================= */

.culture-item-1 {
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
}

.culture-item-2 {
  top: 90px;
  left: 160px;
}

.culture-item-3 {
  top: 50%;
  left: 80px;
  transform: translateY(-50%);
}

.culture-item-4 {
  bottom: 90px;
  left: 160px;
}

.culture-item-5 {
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
}

.culture-item-6 {
  bottom: 90px;
  right: 160px;
}

.culture-item-7 {
  top: 50%;
  right: 80px;
  transform: translateY(-50%);
}

.culture-item-8 {
  top: 90px;
  right: 160px;
}


/* 📱 Mobile Responsive */
@media (max-width: 768px) {
    .culture-wrapper {
        height: auto;
        display: grid;
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .culture-center {
        position: relative;
        transform: none;
        margin: auto;
        display: none;
    }

    .culture-item {
        position: static;
        width: 100%;
        text-align: center;
        transform: translate(0px);
    }

    .culture-item .icon {
        margin: auto;
    }
}

.logo {
  width: 180px;
}

@media (max-width: 768px) {
  .logo {
    width: 120px;
  }
}

/* Base Card */
.culture-card {
    background-color: var(--seventh);
    border: none;
    border-radius: 20px;
    padding: 10px;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.culture-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

/* Icon Header */
.card-header-icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}

/* Lists */
.styled-list {
    list-style: none;
    padding-left: 0;
    margin-top: 16px;
}

.styled-list li {
    position: relative;
    padding-left: 26px;
    margin-bottom: 12px;
    font-size: 15px;
    color: #374151;
    line-height: 1.6;
}

.styled-list li::before {
    content: "–";
    position: absolute;
    left: 0;
    color: #6b7280;
}

/* Color Subtleties */
.bg-success-subtle {
    background-color: rgba(34, 197, 94, 0.12);
}

.bg-danger-subtle {
    background-color: rgba(239, 68, 68, 0.12);
}

/* .typing-heading {
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.4;
} */

.typing-wrapper {
    color: var(--forth); /* brand highlight */
    font-weight: 700;
    white-space: nowrap;
}

.cursor {
    display: inline-block;
    margin-left: 2px;
    animation: blink 1s infinite;
}

@keyframes blink {
    0%, 50% { opacity: 1; }
    50.01%, 100% { opacity: 0; }
}

.banner-dashboard {
  padding: 20px 20px 0 20px;
  background: rgba(255, 255, 255, .35);
  border: 1px solid #fff;
  border-radius: 20px 20px 0 0;
}

.banner-dashboard img {
  width: 100%;
  border-radius: 10px 10px 0 0;
}

.custom-box {
  text-align: center;
  border-radius: 0;
  border-width: 2px;
  height: 100%;
  border-right: 0;
}

.custom-box:not(:last-child) {
  border-right: 2px;
}

@media (max-width: 768px) {
  .custom-box {
    border-right: 2px;
    border-bottom: 2px;
  }
  
  .custom-box:last-child {
    border-bottom: 2px;
  }
}
