        /* 1. Paragraph Justification */
        .hero-description, 
        .section-description, 
        .implementation-description,
        .map-placeholder-desc,
        .timeline-description {
            text-align: justify;
            text-justify: inter-word; /* Ensures even spacing between words */
        }
        
        /* Hero Section */
        .hero {
            min-height: 60vh; /* Professional height for project pages */
            background: #0D1410; /* Fallback deep green */
            position: relative;
            overflow: hidden;
            display: flex;
            align-items: center;
            padding-top: 100px;
        }

        .hero-bg {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            opacity: 1; /* Reset to 1 since we are using a gradient overlay in PHP */
            background-size: cover;
            background-position: center;
            background-repeat: no-repeat;
            z-index: 0;
        }
        
        .hero-grid {
            position: absolute;
            inset: 0;
            opacity: 0.3;
            background-image: 
                linear-gradient(rgba(198, 168, 103, 0.03) 1px, transparent 1px),
                linear-gradient(90deg, rgba(198, 168, 103, 0.03) 1px, transparent 1px);
            background-size: 60px 60px;
            z-index: 1;
        }

        .hero-orb {
            position: absolute;
            width: 500px;
            height: 500px;
            background: radial-gradient(circle, rgba(45, 90, 61, 0.3) 0%, transparent 70%);
            border-radius: 50%;
            filter: blur(80px);
            top: 10%;
            right: 10%;
            z-index: 1;
            pointer-events: none;
        }

        .container {
            max-width: 1400px;
            margin: 0 auto;
            padding: 0 40px;
            position: relative;
            z-index: 2;
        }

        .hero-content {
            padding: 80px 0 100px;
        }

        .breadcrumb {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 32px;
            font-family: 'DM Sans', sans-serif;
            font-size: 13px;
        }

        .breadcrumb a {
            color: rgba(255, 255, 255, 0.7); /* Light white/grey */
            text-decoration: none;
            transition: color 0.3s ease;
        }

        .breadcrumb a:hover {
            color: #C6A867; /* Gold on hover */
        }

        .breadcrumb-separator {
            color: rgba(255, 255, 255, 0.4);
        }

        .breadcrumb-current {
    color: #C6A867; /* Change from Green to Gold for visibility */
    font-weight: 500;
}

        .hero-badge {
            display: inline-flex;
            align-items: center;
            gap: 12px;
            padding: 10px 24px;
            background: rgba(45, 90, 61, 0.2);
            border-radius: 100px;
            border: 1px solid rgba(45, 90, 61, 0.4);
            margin-bottom: 24px;
        }

        .hero-badge-text {
            font-family: 'DM Sans', sans-serif;
            font-size: 11px;
            font-weight: 600;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: #E8D5A3; /* A very light gold that shines on dark backgrounds */
        }

        .hero-title {
            font-family: 'Playfair Display', Georgia, serif;
            font-size: clamp(40px, 6vw, 68px);
            font-weight: 400;
            color: #FFFFFF;
            line-height: 1.1;
            max-width: 900px;
            margin-bottom: 24px;
        }

        .hero-title-highlight {
            font-style: italic;
            background: linear-gradient(135deg, #2D5A3D 0%, #4A8B5C 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }

        .hero-description {
            font-family: 'DM Sans', sans-serif;
            font-size: 18px;
            color: #A8A49C;
            line-height: 1.8;
            max-width: 800px;
        }

        /* Implementation Section */
        .implementation-section {
            background: #FAFAF8;
            padding: 120px 40px;
        }

        .section-header {
            text-align: center;
            margin-bottom: 80px;
        }

        .section-eyebrow {
            font-family: 'DM Sans', sans-serif;
            font-size: 12px;
            font-weight: 600;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: #2D5A3D;
            margin-bottom: 16px;
        }

        .section-title {
            font-family: 'Playfair Display', Georgia, serif;
            font-size: clamp(36px, 5vw, 52px);
            font-weight: 400;
            color: #1A241E;
            line-height: 1.15;
            margin-bottom: 20px;
        }

        .section-description {
            font-family: 'DM Sans', sans-serif;
            font-size: 17px;
            color: #666;
            line-height: 1.8;
            max-width: 700px;
            margin: 0 auto;
        }

        .implementation-grid {
            display: grid;
            /* Forces 4 equal columns on desktop */
            grid-template-columns: repeat(4, 1fr); 
            gap: 24px;
            max-width: 1400px; /* Slightly wider to fit 4 cards nicely */
            margin: 0 auto;
        }
        
        .implementation-card {
            background: #FFFFFF;
            border-radius: 20px;
            display: flex;
            flex-direction: column; /* Image on top, text below */
            border: 1px solid rgba(0,0,0,0.06);
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            overflow: hidden;
            position: relative; 
        }
        
        .implementation-card:hover {
            transform: translateY(-10px);
            box-shadow: 0 20px 40px rgba(0,0,0,0.08);
            border-color: #2D5A3D;
        }

        .implementation-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 4px;
            background: linear-gradient(90deg, #2D5A3D, #4A8B5C);
            transform: scaleX(0);
            transition: transform 0.4s ease;
        }

        .implementation-card:hover::before {
            transform: scaleX(1);
        }
        
        /* Image container at the top of the card */
        .implementation-image {
            width: 100%;
            aspect-ratio: 16 / 10; /* Maintains a consistent "photo" shape */
            background: #f0f0ee;
            overflow: hidden;
            position: relative;
        }
        
        .implementation-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        /* Content area below the image */
        .implementation-info {
            padding: 30px 24px 36px 24px;
            display: flex;
            flex-direction: column;
            flex-grow: 1; /* Ensures buttons align at the bottom if text lengths differ */
        }
        
        .implementation-number {
            font-family: 'Playfair Display', serif;
            font-size: 40px;
            color: rgba(45, 90, 61, 0.2);
            margin-bottom: 10px;
            line-height: 1;
            text-align: center;
        }
        
        .implementation-title {
            font-family: 'Playfair Display', serif;
            font-size: 22px;
            color: #2D5A3D;
            margin-bottom: 15px;
            min-height: 54px; /* Keeps titles aligned if one wraps to 2 lines */
            text-align: center;
        }
        
        .implementation-description {
            font-family: 'DM Sans', sans-serif;
            font-size: 14px;
            color: #666;
            line-height: 1.6;
            margin-bottom: 20px;
        }

        .implementation-link {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-family: 'DM Sans', sans-serif;
            font-size: 14px;
            font-weight: 500;
            color: #2D5A3D;
            text-decoration: none;
            margin-top: auto;
            opacity: 1;              /* CHANGED: always visible */
            transform: translateY(0); /* CHANGED: no hidden offset */
            transition: gap 0.3s ease;
        }

        .implementation-link:hover {
            gap: 10px;  /* arrow slides away on hover for a nice effect */
        }
        
        /* Map Section */
        .map-section {
            background: #1A241E;
            padding: 120px 40px;
        }

        .map-tabs {
            display: flex;
            justify-content: center;
            gap: 16px;
            margin-bottom: 60px;
            flex-wrap: wrap;
        }

        .map-tab {
            padding: 14px 32px;
            background: rgba(255, 255, 255, 0.05);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 100px;
            font-family: 'DM Sans', sans-serif;
            font-size: 15px;
            font-weight: 500;
            color: #E8E4DC;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .map-tab.active {
            background: #2D5A3D;
            border-color: #2D5A3D;
            color: #FFFFFF;
        }

        .map-tab:hover:not(.active) {
            background: rgba(255, 255, 255, 0.1);
        }

        .map-display {
            background: rgba(255, 255, 255, 0.03);
            border-radius: 24px;
            padding: 60px;
            border: 1px solid rgba(255, 255, 255, 0.08);
            min-height: 500px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .map-placeholder {
            text-align: center;
        }

        .map-placeholder-icon {
            font-size: 120px;
            margin-bottom: 24px;
        }

        .map-placeholder-text {
            font-family: 'Playfair Display', Georgia, serif;
            font-size: 32px;
            color: #FFFFFF;
            margin-bottom: 12px;
        }

        .map-placeholder-desc {
            font-family: 'DM Sans', sans-serif;
            font-size: 16px;
            color: #A8A49C;
        }

        /* Related Projects */
        .related-section {
            background: #1A241E;
            padding: 100px 40px;
        }

        .related-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
            gap: 28px;
        }

        .related-card {
            background: rgba(255,255,255,0.03);
            border: 1px solid rgba(255,255,255,0.08);
            border-radius: 20px;
            padding: 40px;
            transition: all 0.4s ease;
            cursor: pointer;
        }

        .related-card:hover {
            background: rgba(255,255,255,0.06);
            transform: translateY(-6px);
        }

        .related-number {
            font-family: 'Playfair Display', Georgia, serif;
            font-size: 48px;
            font-weight: 400;
            opacity: 0.5;
            margin-bottom: 16px;
        }

        .related-title {
            font-family: 'Playfair Display', Georgia, serif;
            font-size: 24px;
            font-weight: 500;
            color: #FFFFFF;
        }

        /* --- Responsive Breakpoints --- */

/* Tablet View: Switch from 4 columns to 2 columns */
@media (max-width: 1200px) {
    .implementation-grid { 
        grid-template-columns: repeat(2, 1fr); 
        gap: 20px; /* Slightly tighter gap for tablets */
    }
}

/* Mobile View: Switch to 1 column and adjust spacing/sizes */
@media (max-width: 768px) {
    .implementation-grid,
    .related-grid {
        grid-template-columns: 1fr; /* Stacks cards vertically */
    }

    /* Adjusting the card spacing for mobile */
    .implementation-card {
        margin-bottom: 10px; /* Adds space between stacked cards */
    }

    .implementation-image {
        height: 220px; /* Fixed height for mobile photos */
        aspect-ratio: 16 / 9; 
    }

    .implementation-info {
        padding: 32px 24px; /* Balanced padding for smaller screens */
    }

    .implementation-number {
        font-size: 48px; /* Slightly smaller than desktop */
    }
    
    .implementation-title {
        min-height: auto; /* Remove the alignment height on mobile */
    }

    /* Adjust the Hero title size for mobile */
    .hero-title {
        font-size: 38px;
        line-height: 1.2;
    }
}