@charset "utf-8";
        :root {
            --bg-primary: #ffffff;
            --bg-secondary: #f4f7f9; /* Light Ice Blue */
            --accent-blue: #1e3a8a; /* Navy Blue */
            --mid-blue: #3b82f6; /* Azure Blue */
            --text-main: #0f172a; /* Slate Black */
            --text-muted: #64748b;
            --border-light: #e2e8f0;
        }
        body {
            font-family: 'Plus Jakarta Sans', sans-serif;
            scroll-behavior: smooth;
            background-color: var(--bg-primary);
            color: var(--text-main);
            overflow-x: hidden;
        }
        h1, h2, h3, .serif {
            font-family: 'Playfair Display', serif;
            letter-spacing: -0.01em;
        }
        .glass-nav {
            background: rgba(255, 255, 255, 0.9);
            backdrop-filter: blur(12px);
            border-bottom: 1px solid rgba(30, 58, 138, 0.1);
        }
        .bw-image {
            filter: grayscale(100%) contrast(1.1);
            transition: all 0.7s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .bw-image:hover, .group:hover .bw-image {
            filter: grayscale(0%) contrast(1);
            transform: scale(1.05);
        }
        .btn-navy {
            background-color: var(--accent-blue);
            color: #ffffff;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .btn-navy:hover {
            background-color: #172554;
            letter-spacing: 0.15em;
            box-shadow: 0 10px 20px rgba(30, 58, 138, 0.2);
        }
        .btn-outline-blue {
            border: 1px solid var(--accent-blue);
            color: var(--accent-blue);
            transition: all 0.3s ease;
        }
        .btn-outline-blue:hover {
            background-color: var(--accent-blue);
            color: #ffffff;
        }
        
        .service-card {
            transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
            border: 1px solid var(--border-light);
            background: #fff;
            position: relative;
            overflow: hidden;
        }
        .service-card:hover {
            border-color: var(--mid-blue);
            transform: translateY(-8px);
            box-shadow: 0 20px 40px rgba(30, 58, 138, 0.08);
        }
        .service-card::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 3px;
            background: var(--mid-blue);
            transform: scaleX(0);
            transform-origin: right;
            transition: transform 0.5s ease;
        }
        .service-card:hover::after {
            transform: scaleX(1);
            transform-origin: left;
        }

        .blue-gradient-bg {
            background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 100%);
        }

        .testimonial-container {
            display: flex;
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            scrollbar-width: none;
            -ms-overflow-style: none;
            scroll-behavior: smooth;
        }
        .testimonial-container::-webkit-scrollbar { display: none; }
        .testimonial-item { min-width: 100%; scroll-snap-align: center; }
        @media (min-width: 768px) { .testimonial-item { min-width: 50%; } }
        @media (min-width: 1024px) { .testimonial-item { min-width: 33.333%; } }

        /* Modified Gallery Grid for Fixed Sizes */
        .gallery-container {
            display: grid;
            grid-template-columns: repeat(1, 1fr);
            gap: 1.5rem;
        }
        @media (min-width: 640px) {
            .gallery-container {
                grid-template-columns: repeat(2, 1fr);
            }
        }
        @media (min-width: 1024px) {
            .gallery-container {
                grid-template-columns: repeat(3, 1fr);
            }
        }
        .gallery-item-wrap {
            position: relative;
            overflow: hidden;
            background: #000;
            aspect-ratio: 1 / 1; /* Force square ratio */
            border-radius: 2px;
        }
        .gallery-item-wrap img {
            width: 100%;
            height: 100%;
            object-fit: cover; /* Ensures images fill the square without stretching */
        }
        .gallery-overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(to top, rgba(15, 23, 42, 0.8), transparent);
            opacity: 0;
            transition: opacity 0.4s ease;
            display: flex;
            align-items: flex-end;
            padding: 1.5rem;
        }
        .gallery-item-wrap:hover .gallery-overlay {
            opacity: 1;
        }/* CSS Document */

