:root {
  /* Soft corporate palette */
  --nc-primary: #9e1d1d; /* soft blue */
  --nc-primary-opaque: #9c8c8d;
  --nc-secondary: #7a8896; /* softened gray-blue */
  --nc-dark-gray: #343a40;
  --nc-soft-gray: rgba(122, 136, 150, 0.08);
  --nc-white: #ffffff;
}

html, body {
  font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  background-color: var(--nc-white);
  color: #111827;
}
body { position: relative; }

/* Smooth scroll behavior */
html {
  scroll-behavior: smooth;
}

/* Provide offset for fixed navbar when using scrollIntoView */
section, header, footer, #why-us, #services, #about, #contact, #home {
  scroll-margin-top: 88px;
}

/* Utility backgrounds */
.bg-soft-gray { background-color: var(--nc-soft-gray); }
.bg-dark-gray { background-color: var(--nc-dark-gray); }
.text-primary { color: var(--nc-primary) !important; }
.text-secondary { color: var(--nc-secondary) !important; }

/* Navbar */
.transition-base { transition: all .3s ease; }
#mainNav {
  background-color: rgba(255, 255, 255, 0.9);
  backdrop-filter: saturate(180%) blur(10px);
  border-bottom: 1px solid rgba(0,0,0,0.05);
  z-index: 1030;
}
#mainNav .nav-link {
  color: #212529;
  transition: color .2s ease;
}
#mainNav .nav-link:hover, #mainNav .nav-link:focus {
  color: var(--nc-primary);
}
#mainNav.navbar-scrolled {
  background-color: rgba(255, 255, 255, 0.98);
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  border-bottom: 2px solid #9c8c8d;
}
#mainNav.navbar-scrolled .nav-link,
#mainNav.navbar-scrolled .navbar-brand {
  color: #212529 !important;
}
#mainNav .navbar-toggler { border-color: rgba(0,0,0,.15); }
#mainNav.navbar-scrolled .navbar-toggler { border-color: rgba(0,0,0,.35); }
/* Force dark toggler icon when scrolled */
#mainNav.navbar-scrolled .navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(33, 37, 41, 0.9)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}
#mainNav.navbar-scrolled .navbar-brand {
  filter: drop-shadow(0 1px 0 rgba(0,0,0,.2));
}
#mainNav.navbar-scrolled { padding-top: .35rem !important; padding-bottom: .35rem !important; }

/* Mobile navbar collapse styling */
@media (max-width: 991.98px) {
  #mainNav .navbar-collapse {
    background-color: rgba(255,255,255,0.98);
    border-radius: .75rem;
    padding: .75rem 1rem;
    margin-top: .5rem;
    box-shadow: 0 10px 24px rgba(0,0,0,.08);
  }
  #mainNav.navbar-scrolled .navbar-collapse {
    background-color: rgba(255,255,255,0.98);
  }
  #mainNav.navbar-scrolled .navbar-collapse .nav-link { color: #212529; }
}

/* Active link state */
#mainNav .nav-link.active { color: var(--nc-primary); font-weight: 600; }
#mainNav.navbar-scrolled .nav-link.active { color: #212529; text-decoration: underline; text-underline-offset: 4px; }

/* Space for fixed navbar on standalone pages */
main { margin-top: 5rem; }

/* Hero */
.hero-section {
  padding-top: 7rem;
  padding-bottom: 3rem;
}
@media (min-width: 992px) {
  .hero-section { padding-top: 8rem; padding-bottom: 5rem; }
}
@media (max-width: 991.98px) {
  .hero-section .row > [class^="col-"],
  .hero-section .row > [class*=" col-"] {
    text-align: center;
  }
  .hero-section { padding-top: 7.5rem; padding-bottom: 3.5rem; }
}

/* Hero decorative background */
.hero-bg {
  background: radial-gradient(1200px 400px at 10% -10%, rgba(79,140,203,.07), rgba(0,0,0,0) 60%),
              radial-gradient(900px 380px at 90% 0%, rgba(122,136,150,.08), rgba(0,0,0,0) 55%);
}
.hero-wave svg { display: block; }

/* Stats strip */
.stat-item { padding: .5rem 0; }

.btn-primary {
  background-color: var(--nc-primary);
  border-color: var(--nc-primary);
}
.btn-primary:hover, .btn-primary:focus { background-color: #3d73aa; border-color: #3d73aa; }
.btn-outline-primary { color: var(--nc-primary); border-color: var(--nc-primary); }
.btn-outline-primary:hover { background-color: var(--nc-primary); border-color: var(--nc-primary); color: #fff; }
.shadow-hover { transition: transform .2s ease, box-shadow .2s ease; }
.shadow-hover:hover { transform: translateY(-2px) scale(1.02); box-shadow: 0 12px 28px rgba(0,0,0,.12) !important; }

.hover-zoom { transition: transform .35s ease; }
.hover-zoom:hover { transform: scale(1.03); }

/* Subtle zoom for all card images */
.card .card-img-top { transition: transform .35s ease; }
.card:hover .card-img-top { transform: scale(1.03); }

/* Hero carousel sizing */
.hero-carousel .carousel-item img { height: 360px; object-fit: cover; }
@media (min-width: 992px) {
  .hero-carousel .carousel-item img { height: 440px; }
}

.feature-card, .service-card { border: none; border-radius: 1rem; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.feature-card:hover, .service-card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(0,0,0,.12); }

.rounded-top-4 { border-top-left-radius: 1rem !important; border-top-right-radius: 1rem !important; }

/* Cards content */
.card-title { color: #212529; }

/* Ensure uniform service card image height */
.service-card .card-img-top { height: 220px; object-fit: cover; }

/* Section headings center on mobile */
@media (max-width: 767.98px) {
  #services .text-center, #contact .text-center, #about .text-center { text-align: center !important; }
}

/* Social links */
.social-link { transition: color .2s ease, transform .2s ease; }
.social-link:hover { color: var(--nc-primary) !important; transform: translateY(-2px); }

/* Footer */
.footer-link { color: #ffffffb3; text-decoration: none; transition: color .2s ease; }
.footer-link:hover { color: var(--nc-primary); }
/* Footer contact icons white */
footer .list-unstyled i { color: #fff !important; }
/* Footer logo styling */
footer h5 img { background-color: #ffffff; border-radius: 4px; }

/* Images */
.object-fit-cover { object-fit: cover; }

/* Minor utilities */
.bg-light-subtle { background: #f8f9fb; }

/* Accessibility: focus states */
a:focus, button:focus, .form-control:focus { outline: none; box-shadow: 0 0 0 .2rem rgba(79,140,203,.25); }

/* Prefer-reduced-motion adjustments */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}


