/* Restrict carousel images to fit within the carousel container */
.carousel-inner img {
    max-height: 400px; /* Adjust the height as desired */
    object-fit: cover; /* Crop the image if necessary to fit */
    width: 100%; /* Ensure the image scales horizontally */
}

.stats-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 45px;
    margin-top: 40px;
}

/* Card Design */
.stats-card {
    width: 180px;
    padding: 20px 10px;
    background: #ffffff;
    border-radius: 15px;
    box-shadow: 0 3px 12px rgba(0, 23, 168, 0.15);
    transition: 0.3s ease-in-out;
    text-align: center;
    position: relative;
}
.stats-card:hover {
    box-shadow: 0 5px 20px rgba(0, 23, 168, 0.30);
    transform: translateY(-6px);
}

/* Elevated card style for marketing cards */
.card-elevated {
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.08);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
    border-radius: 0.5rem;
}
.card-elevated:hover {
    transform: translateY(-6px);
    box-shadow: 0 1rem 2rem rgba(0,0,0,0.15);
}

/* Footer styles */
.site-footer {
    background: #4a4a4a;
    color: #e6eef8;
}
.site-footer a {
    color: #e6eef8;
}
.site-footer .text-secondary {
    color: rgba(255,255,255,0.65) !important;
}
.site-footer img {
    max-width: 160px;
}

.site-footer > .container > .row > .col-md-4 img {
    background-color: #FFF8DC;
    padding: 8px;
    border-radius: 8px;
}
.site-footer .fs-5 i {
    vertical-align: middle;
}

.services-list {
    list-style-type: disc;
    padding-left: 1rem;
}

@media (max-width: 767px) {
    .site-footer .row > div { text-align: center; }
}

/* Plain numeric counters */
.stats-wrapper .counter-number {
    color: #0017a8;
    font-size: 2.5rem;
    line-height: 1;
}
.stats-wrapper .counter-label {
    font-size: 0.95rem;
    margin-top: 0.35rem;
}

@media (min-width: 992px) {
    .stats-wrapper .counter-number { font-size: 3rem; }
}

/* Team page styles */
.team-hero {
    background-size: cover;
    background-position: center;
    min-height: 220px;
}
.team-hero .py-6 { padding-top: 4rem; padding-bottom: 4rem; }

.team-photo {
    width: 125px;
    height: 125px;
    object-fit: cover;
    border: 6px solid #fff;
    box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}
.team-member-name { margin-bottom: 0.2rem; }
.team-member-role { font-size: 0.9rem; }

@media (max-width: 576px) {
    .team-photo { width: 110px; height: 110px; }
}

/* New team card styles */
.team-container { max-width: 1100px; }
.team-card {
    border-radius: 16px;
    border-color: #3a3939;
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.06);
    box-shadow: 0 6px 20px rgba(2,6,23,0.06);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
    display: flex;
    flex-direction: column;
}
.team-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 14px 32px rgba(2,6,23,0.12);
}

.member-photo-wrapper {
    position: relative;
    height: 260px; /* desktop default */
    background: #f6f7fb;
}
.member-photo {
    height: 100%;
    width: 100%;
    object-fit: cover;
    display: block;
}

.member-label {
    position: absolute;
    left: 50%;
    bottom: -28px; /* overlaps lower part of photo */
    transform: translateX(-50%);
    background: #fff;
    padding: 10px 16px;
    border-radius: 14px;
    box-shadow: 0 10px 20px rgba(2,6,23,0.08);
    min-width: 90%;
    max-width: 88%;
    text-align: center;
}
.member-label-name { font-weight: 600; font-size: 1.05rem; color: #0b1220; }
.member-label-role { font-size: 0.88rem; color: rgba(11,18,32,0.6); }

.team-card .card-body { padding-top: 44px; }

@media (max-width: 991px) {
    .member-photo-wrapper { height: 220px; }
    .member-label { bottom: -26px; }
}

@media (max-width: 575px) {
    .member-photo-wrapper { height: 180px; }
    .member-label { bottom: -22px; padding: 8px 12px; min-width: 70%; }
    .member-label-name { font-size: 1rem; }
}

/* Service detail styles */
.service-detail-icon { font-size: 172px; color: #0017a8; }
.service-title { color: #0017a8; }
.service-sidebar {background-color: #0017a8; border-radius: 20px; overflow: hidden; }
    .service-detail-icon {color: #0017a8; }
    .service-title { color: #0017a8; }
    .service-sidebar { background: #0017a8; border-radius: 12px; }
.member-label-name { font-weight: 600; font-size: 1.05rem; color: #0017a8; }
.service-sidebar .sidebar-service { border-radius: 8px; }
.service-sidebar .sidebar-service:hover { background: rgba(255,255,255,0.06); text-decoration: none; }
.service-sidebar .active-service { background: rgba(255,255,255,0.12); }

@media (max-width: 767px) {
    .service-detail-icon { font-size: 56px; margin-bottom: 8px; }
}

.bg-darkblue {
    /* Slightly darker matte blue */
    background-color: #0017a8; /* matte darkened blue */
}

/* Navbar with cream-to-blue gradient fade */
.navbar.bg-darkblue,
.bg-darkblue.navbar {
    background:  #FFF8DC !important;
    background-image: #FFF8DC !important;
}

.navbar-dark .nav-link {
    color: rgba(255,255,255,0.9);
}

.navbar-dark .nav-link:hover,
.navbar-dark .nav-link.active {
    color: #0017a8;
}

.navbar-brand img {
    /* Logo visible on both cream and blue backgrounds */
    filter: drop-shadow(0 1px 2px rgba(0,0,0,0.1));
}

/* Improved navbar toggler for visibility on gradient background */
.navbar-toggler {
    border: none;
    box-shadow: none;
    padding: 0.25rem 0.5rem;
}

.navbar-toggler:focus {
    outline: none;
    box-shadow: none;
}

/* --- Similar look & feel (mint background + rounded white card) --- */
.dv-hero{
  position: relative;
  padding: 68px 0 40px;
  background: #eaf2ef;
  overflow: hidden;
}

.dv-hero-bg{
  position:absolute; inset:-20% -10% auto -10%;
  height: 520px;
  background:
    radial-gradient(900px 420px at 18% 30%, rgba(22,92,74,0.16), transparent 60%),
    radial-gradient(700px 360px at 80% 45%, rgba(239,215,116,0.26), transparent 55%);
  pointer-events:none;
}

.dv-hero-inner{ position: relative; z-index: 1; }

.dv-hero-card{
  background: rgba(255,255,255,0.55);
  border: 1px solid rgba(22,92,74,0.12);
  border-radius: 28px;
  padding: 34px 28px;
  backdrop-filter: blur(10px);
}

.dv-kicker{
  font-size: 12px;
  letter-spacing: 0.16em;
  font-weight: 800;
  color: rgba(0,0,0,0.55);
  margin-bottom: 10px;
}

.dv-title{
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1.05;
  font-weight: 800;
  color: rgba(0,0,0,0.88);
  margin: 0 0 14px;
}

.dv-subtitle{
  font-size: 18px;
  color: rgba(0,0,0,0.62);
  max-width: 56ch;
  margin-bottom: 22px;
}

.dv-cta{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom: 18px; }

.dv-metrics{
  display:flex;
  gap: 14px;
  flex-wrap:wrap;
  margin-top: 10px;
}

.dv-metric{
  background: rgba(255,255,255,0.60);
  border: 1px solid rgba(22,92,74,0.12);
  border-radius: 16px;
  padding: 10px 14px;
  min-width: 150px;
}

.dv-metric-num{
  font-weight: 900;
  color: rgba(22,92,74,0.92);
  font-size: 18px;
  line-height: 1.1;
}

.dv-metric-label{
  color: rgba(0,0,0,0.55);
  font-size: 13px;
  font-weight: 700;
}

.dv-illustration{
  border-radius: 22px;
  overflow: hidden;
}

#dvViz{ width: 100%; height: auto; display:block; }

/* --- SVG animation styling --- */
.dv-flow{
  fill:none;
  stroke: url(#dvGrad);
  stroke-width: 6;
  stroke-linecap: round;
  stroke-dasharray: 12 14;
  animation: dvDash 4.2s linear infinite;
  opacity: 0.9;
}

@keyframes dvDash{ to { stroke-dashoffset: -260; } }

.dv-bar{
  fill: rgba(22,92,74,0.84);
  transform-origin: center bottom;
  animation: dvBar 2.4s ease-in-out infinite;
}

.dv-bar:nth-child(2){ animation-delay: .10s; }
.dv-bar:nth-child(3){ animation-delay: .20s; }
.dv-bar:nth-child(4){ animation-delay: .30s; }
.dv-bar:nth-child(5){ animation-delay: .40s; }

@keyframes dvBar{
  0%,100%{ transform: scaleY(0.92); opacity: 0.9; }
  50%    { transform: scaleY(1.10); opacity: 1; }
}

.dv-line{
  fill:none;
  stroke: rgba(239,215,116,0.95);
  stroke-width: 5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 520;
  stroke-dashoffset: 520;
  animation: dvDraw 3.4s ease-in-out infinite;
}

@keyframes dvDraw{
  0%{ stroke-dashoffset: 520; opacity: 0.8; }
  45%{ stroke-dashoffset: 0; opacity: 1; }
  100%{ stroke-dashoffset: 0; opacity: 0.75; }
}

.dv-points circle{
  fill: rgba(22,92,74,0.92);
  stroke: rgba(255,255,255,0.9);
  stroke-width: 2;
  animation: dvPulse 2.6s ease-in-out infinite;
}

@keyframes dvPulse{
  0%,100%{ transform: scale(1); opacity: 0.9; }
  50%{ transform: scale(1.25); opacity: 1; }
}

.dv-net{
  fill:none;
  stroke: rgba(22,92,74,0.35);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 8 10;
  animation: dvDash2 6s linear infinite;
}

@keyframes dvDash2{ to { stroke-dashoffset: -240; } }

.dv-nodes circle{
  fill: rgba(239,215,116,0.98);
  stroke: rgba(22,92,74,0.75);
  stroke-width: 2;
  animation: dvNode 2.8s ease-in-out infinite;
}

.dv-nodes circle:nth-child(2){ animation-delay: .2s; }
.dv-nodes circle:nth-child(3){ animation-delay: .4s; }
.dv-nodes circle:nth-child(4){ animation-delay: .6s; }
.dv-nodes circle:nth-child(5){ animation-delay: .8s; }
.dv-nodes circle:nth-child(6){ animation-delay: 1.0s; }

@keyframes dvNode{
  0%,100%{ transform: scale(1); }
  50%{ transform: scale(1.25); }
}

/* Tooltip */
#dvTipBox{ fill: rgba(22,92,74,0.93); }
#dvTipText{ fill: #fff; font-size: 14px; font-weight: 800; }

/* Mobile tweaks */
@media (max-width: 991px){
  .dv-hero{ padding-top: 46px; }
  .dv-hero-card{ padding: 22px 16px; }
}

.wf-node-ring{
  fill: rgba(0, 90, 255, 0.06);
  stroke: rgba(0, 90, 255, 0.35);
  stroke-width: 2;
}
.wf-node-core{
  fill: rgba(235, 55, 70, 0.92);           /* red core */
  stroke: rgba(0, 90, 255, 0.70);          /* blue stroke */
  stroke-width: 2;
}

.wf-path{
  fill:none;
  stroke: url(#flow);
  stroke-width: 7;
  stroke-linecap: round;
  stroke-dasharray: 9 14;
  animation: dash 2.8s linear infinite;
  opacity: 0.95;
}
.wf-path-2{
  stroke-width: 4;
  opacity: 0.55;
  animation-duration: 4.2s;
}
@keyframes dash{
  to { stroke-dashoffset: -320; }
}

.wf-packet{
  filter: drop-shadow(0 6px 10px rgba(0,0,0,0.16));
  opacity: 0.95;
}
.wf-packet-blue{ fill: rgba(0, 90, 255, 0.95); }
.wf-packet-red{  fill: rgba(235, 55, 70, 0.95); }