/* Base typography and general body styles */
body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: #333;
    overflow-x: hidden;
    /* Prevent horizontal scroll due to AOS animations */
}

.text-info {
    color: #FFF !important;; 

}

/* Header & Navigation Styles (using white header with dark text) */
.navbar-brand img {
    height: 60px;
    width: auto;
}

/* --- Navigation Bar Active Item Styling --- */

/* --- Navigation Bar Active/Inactive Item Styling --- */

/* Base styling for ALL nav links (default, inactive state) */
.navbar-nav .nav-link {
    color: #2c3e50; /* Changed from white to your deep blue for readability on white background */
    padding: 0.5rem 1rem;
    transition: color 0.3s ease, background-color 0.3s ease;
    margin-left: 1.0em;
}

/* Hover state for nav links (inactive links when hovered) */
.navbar-nav .nav-link:hover {
    color: #007bff; /* Your accent blue for hover */
    background-color: rgba(0, 0, 0, 0.05); /* Subtle light background on hover */
    border-radius: 4px;
}

/* Styling for the ACTIVE navigation item */
.navbar-nav .nav-item.active .nav-link {
    color: #FFFFFF; 
    font-weight: bold;
    background-color: #0066CC; 
    border-radius: 4px;
}

/* Optional: Ensure active link maintains style on hover */
.navbar-nav .nav-item.active .nav-link:hover {
    color: #FFFFFF; 
    background-color: #0050A0; 
}


.navbar {
    background-color: #ffffff; 
}

/* Fix for Bootstrap navbar collapse being hidden by custom CSS */
.navbar-collapse.collapse {
  display: none;
}
.navbar-collapse.collapse.show {
  display: block;
}
@media (min-width: 992px) {
  .navbar-collapse.collapse {
    display: flex !important;
  }
}

/* Hero Section Styles */
.hero {
    background-color: #2c3e50;
    color: #fff; 
    padding: 80px 20px; 
    position: relative;
    overflow: hidden;
    min-height: 600px;
    display: flex; 
    align-items: center; 
    justify-content: center; 
    z-index: 1;
}

/* New wrapper for text content and image container */
.hero-content-wrapper {
    display: flex; 
    align-items: center; 
    justify-content: center; 
    width: 100%; 
    max-width: 1200px; 
    position: relative;
    z-index: 2; 
    padding: 0 20px; 
}

/* Styles for the text content on the left */
.hero-text-content {
    flex: 1; 
    max-width: 60%; 
    text-align: left; /* Keep text left-aligned */
    padding-right: 30px; /* Adds space between text and the image */
}

/* Styles for the image container on the right */
.hero-image-container {
    flex: 1; /* Allows this item to grow and shrink */
    max-width: 40%; /* Adjust this to control how much space the image takes (e.g., 30%, 50%) */
    min-height: 400px; /* Give the container a height so the background image has space to display */
    background-image: url('/images/banner-bg-transparent.png'); /* Your illustration */
    background-size: contain; /* Ensures the whole image fits */
    background-position: center; /* Centers the image within its container */
    background-repeat: no-repeat;
    min-width: 300px;
}

.hero-image-container.contact {  
    background-image: url('/images/send-message.png'); 
    min-width: 300px;
}

.hero-image-container.about {   
    background-image: url('/images/years.png');  
    min-width: 300px;
}

.about-card p { font-size: 1.1em;}


/* Ensure specific text elements also align left and remove default margins */
.hero-text-content h2,
.hero-text-content p,
.hero-text-content .btn {
    text-align: left;
    margin-left: 0; /* Overrides any potential default centering from Bootstrap */
    margin-right: 0;
}

/* Responsive adjustments for smaller screens */
@media (max-width: 768px) {
    .hero-content-wrapper {
        flex-direction: column; /* Stack text and image vertically on small screens */
        padding: 0;
    }
    .hero-text-content {
        max-width: 100%; /* Text takes full width on small screens */
        padding-right: 0;
        text-align: center; /* Center text on small screens */
    }
    .hero-image-container {
        max-width: 100%;
        min-height: 200px;
        height: 200px;
        margin-top: 30px;
        display: block;
        background-size: contain;
        background-position: center;
        background-repeat: no-repeat;     
        position: relative;
    }
    .hero-image-container::after {
        content: '';
        display: block;
        width: 100%;
        height: 100%;
    }
    .hero-text-content h2,
    .hero-text-content p,
    .hero-text-content .btn {
        text-align: center; /* Ensure text centers on small screens */
    }
}

/* Custom Button Styles (using logo's blue as primary) */
.btn-primary-custom, .hsfc-Button {
    background-color: #0066CC;
    border-color: #0066CC;
    color: #fff;
    padding: 12px 25px;
    font-size: 1.1em;
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

.btn-primary-custom:hover, .hsfc-Button:hover {
    background-color: #0050A0;
    /* Slightly darker blue for hover */
    border-color: #0050A0;
    color: #FFFFFF;
}

/* Section Titles */
.section-title {
    text-align: center;
    font-size: 2.5em;
    margin-top: 60px;
    margin-bottom: 40px;
    color: #2c3e50;
    /* Logo's dark gray */
}

/* Audience Card Styles - with icon integration */
.audience-card {
    background: #f9f9f9;
    border-radius: 8px;
    padding: 30px;
    text-align: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    /* Added margin-bottom to separate cards on smaller screens when they stack */
    margin-bottom: 20px;
}

.audience-card:hover {
    transform: translateY(-8px);
}

.audience-card i {
    /* Icon styling */
    font-size: 3em;
    color: #0066CC;
    /* Logo's blue for icons */
    margin-bottom: 15px;
}

.audience-card h3 {
    color: #2c3e50;
    margin-top: 0;
    font-size: 1.5em;
}

.audience-card p {
    font-size: 1em;
    color: #666;
    flex-grow: 1;
}

.audience-card .btn-secondary-custom {
    background-color: #0066CC;
    border-color: #0066CC;
    color: #fff;
    padding: 10px 20px;
    font-size: 0.95em;
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

.audience-card .btn-secondary-custom:hover {
    background-color: #0050A0;
    border-color: #0050A0;
}

/* Logo Section */
.logo-section {
    padding: 60px 20px;
    text-align: center;
    background: #ecf0f1;
}

/* UPDATED: Increased max-width for logos */
.logo-grid img {
    max-width: 180px;
    height: auto;
    opacity: 0.6;
    transition: opacity 0.3s ease;
    filter: grayscale(100%);
    margin: 15px;
}

.logo-grid img:hover {
    opacity: 1;
    filter: grayscale(0%);
}

/* Override Bootstrap's blue for the contact link here to match logo blue */
.logo-section p a {
    color: #0066CC !important;
    text-decoration: none;
}

.logo-section p a:hover {
    text-decoration: underline;
}

/* Approach Section - with icon integration */
.approach-section {
    padding: 60px 20px;
    text-align: center;
    background: #fff;
}

.approach-card {
    background: #f9f9f9;
    border-radius: 8px;
    padding: 30px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    margin-bottom: 20px;
    /* Added for spacing on smaller screens */
}

.approach-card i {
    /* Icon styling */
    font-size: 3em;
    color: #0066CC;
    /* Logo's blue for icons */
    margin-bottom: 15px;
}

.approach-card h3 {
    color: #2c3e50;
    font-size: 1.4em;
}

/* Footer Styles */
footer {
    background: #2c3e50;
    color: #fff;
    text-align: center;
    padding: 30px 0;
    font-size: 0.9em;
    margin-top: 60px;
}

footer a {
    color: #0066CC;
    text-decoration: none;
}

footer a:hover {
    text-decoration: underline;
}

/* Responsive adjustments for header */
@media (max-width: 768px) {
    .navbar-brand img {
        height: 50px;
    }

    .hero h2 {
        font-size: 2.5em;
    }

    .hero p {
        font-size: 1.1em;
    }

    .section-title {
        font-size: 2em;
    }

    /* Further increase logo size for smaller screens if needed, or adjust general max-width */
    .logo-grid img {
        max-width: 150px;
    }

    
}

.head-shot {
    border-radius: 50%;
}

.what-we-do {
  max-width: 1100px;
  margin: auto;
  padding: 60px 20px;
  font-family: 'Segoe UI', sans-serif;
}

.what-we-do h2 {
  text-align: center;
  font-size: 2.5rem;
  margin-bottom: 40px;
  color: #222;
}

.card-grid{
  display:grid;
  gap:2rem;
  grid-template-columns: repeat(auto-fit,minmax(270px,1fr));
}

/* kill fixed width so cards flex */
.card{
  width:auto;
  background:var(--clr-light-bg);
  border:none;
  box-shadow:var(--shadow-md);
  transition:.3s transform, .3s box-shadow;
}

.card:hover{
  transform:translateY(-6px);
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}

.card svg{
  width:48px;
  height:48px;
  fill:var(--clr-primary);
  margin-bottom:1rem;
}



.card:hover {
  transform: translateY(-5px);
}

.card .icon {
  width: 40px;
  height: 40px;
  margin-bottom: 16px;
}

.card .icon svg {
  width: 100%;
  height: 100%;
  fill: #007acc;
}

.card h3 {
  margin-top: 0;
  font-size: 1.25rem;
  color: #111;
}

.card p {
  font-size: 0.95rem;
  color: #444;
  line-height: 1.6;
}

/* --- ABOUT PAGE CLASSES --- */
.about-section {
  padding: 50px 20px;
  background-color: #f8f9fa;
  color: #333;
}

.about-container {
  max-width: 900px;
  margin: 0 auto;
}

.about-card {
  margin-bottom: 50px;
  padding: 30px;
  background-color: #ffffff;
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.05);
}

.about-headshot {
  display: block;
  margin-right: auto;
  margin-left: auto;
  max-width: 200px;
}

.about-name {
  font-size: 1.6em;
  margin-top: 1.0em;
  margin-bottom: 15px;
  color: #2c3e50;
  display: block;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

.what-we-do-title {
  text-align: center;
  font-size: 2em;
  margin-bottom: 30px;
}

.what-we-do-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 
  gap: 20px;
}

.what-we-do-item {
  background: #f9f9f9;
  padding: 20px;
  border-radius: 10px;
}

.toolbox {
  margin-bottom: 0;
  padding: 40px;
  background-color: #ffffff;
  border-radius: 12px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.06);
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
}

.toolbox-title {
  text-align: center;
  font-size: 28px;
  margin-bottom: 20px;
  color: #222;
}

.toolbox-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.toolbox-list-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px;
  background: #f9f9f9;
  border-radius: 6px;
}

.what-we-dont-do {
  margin-top: 50px;
  margin-bottom: 0;
  padding: 40px;
  background-color: #ffffff;
  border-radius: 12px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.06);
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
}

.what-we-dont-do-title {
  text-align: center;
}

.what-we-dont-do-list {
  list-style-type: disc;
  padding-left: 25px;
  line-height: 1.8;
}

@media (max-width: 480px) {
  .what-we-do-grid {
    grid-template-columns: 1fr; /* Force single column on very small screens */
    gap: 12px;
  }
  .what-we-do-item {
    padding: 14px;
    font-size: 1em;
  }
  .about-card,
  .toolbox,
  .what-we-dont-do {
    padding: 18px;
  }
}







