
        /* Core Theme Styles (Aligned with main page's :root) */
        :root {
            --brand-green-dark: #1e4620;
            --brand-green-accent: #2a9d8f;
            --brand-green-mid: #81c784;
            --brand-green-light: #e8f5e9;
            --glow-color: rgba(129, 199, 132, 0.5);
            --text-primary: #1a3b1a;
            --text-secondary: #36533c;
            --bg-light: #fbfdfb;
            --animation-duration: 0.3s; /* Added for consistency */
        }
        body {
            font-family: 'Manrope', sans-serif;
            background-color: var(--bg-light);
            color: var(--text-primary);
            margin: 0;
            overflow-x: hidden;
        }
        .font-playfair {
            font-family: 'Playfair Display', serif;
            letter-spacing: -0.02em;
        }

        /* --- Global Button Styles (Replicated from main theme for consistency) --- */
        .btn-primary {
            display: inline-block;
            padding: 1rem 2.25rem;
            border-radius: 0; /* Consistent with main theme */
            font-family: 'Manrope', sans-serif;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 1.3px;
            font-size: 1rem;
            color: #fff;
            background-image: linear-gradient(110deg, var(--brand-green-accent) 0%, var(--brand-green-mid) 100%);
            box-shadow: 0 10px 30px -5px rgba(42, 157, 143, 0.4), 0 0 15px var(--glow-color) inset;
            border: none;
            text-decoration: none;
            cursor: pointer;
            transition: all var(--animation-duration) cubic-bezier(0.2, 0.8, 0.2, 1);
            background-size: 250% auto;
            outline: none;
            position: relative; /* For shimmer effect */
            overflow: hidden; /* For shimmer effect */
        }

        .btn-primary::before { /* Shimmer effect */
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(110deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            transition: left 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
        }

        .btn-primary:hover::before,
        .btn-primary:focus::before {
            left: 100%;
        }

        .btn-primary:hover,
        .btn-primary:focus {
            background-position: right center;
            transform: translateY(-4px) scale(1.05);
            box-shadow: 0 18px 45px -8px rgba(42, 157, 143, 0.5), 0 0 20px var(--glow-color) inset;
            outline: none;
        }

        /* --- 1. Hero Section --- */
        #contact-hero-section {
            padding: 6rem 2rem;
            background-color: var(--brand-green-light);
            background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%2381c784' fill-opacity='0.2'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
            border-top: 80px solid var(--brand-green-dark); /* Consistent dark green top border */
        }
        .contact-hero-container {
            max-width: 1200px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: 1fr;
            align-items: center;
            gap: 4rem;
            text-align: center;
        }
        @media (min-width: 992px) {
            .contact-hero-container {
                grid-template-columns: 1fr 1fr;
                text-align: left;
            }
        }
        .contact-hero-heading {
            font-family: 'Playfair Display', serif;
            font-size: 3.5rem;
            font-weight: 700;
            color: var(--text-primary);
            line-height: 1.1;
            letter-spacing: -0.02em;
        }
        .contact-hero-subheading {
            font-size: 1.25rem;
            color: var(--text-secondary);
            line-height: 1.7;
            max-width: 500px;
            margin: 1.5rem 0 0 0;
        }
        @media (max-width: 991px) {
            .contact-hero-subheading { margin-left: auto; margin-right: auto; }
        }
        .contact-hero-image-wrapper {
            position: relative;
        }
        .contact-hero-image {
            width: 100%;
            height: auto;
            border-radius: 0; /* Consistent with main theme */
            object-fit: cover;
            aspect-ratio: 1/1;
            box-shadow: 0 25px 50px -12px rgba(30, 70, 32, 0.2);
            position: relative;
            z-index: 1;
            transition: transform var(--animation-duration) ease; /* Consistent transition duration */
        }
        .contact-hero-image-wrapper:hover .contact-hero-image {
            transform: scale(1.03);
        }

        /* --- 2. Form & Details Section --- */
        #form-section {
            padding: 6rem 2rem;
            background-color: var(--bg-light); /* Consistent with main page's light background */
        }
        .form-container {
            max-width: 1200px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: 1fr;
            gap: 5rem;
        }
        @media (min-width: 992px) {
            .form-container {
                grid-template-columns: 1fr 1fr;
            }
        }
        
        /* Form Styles */
        .form-group {
            position: relative;
            margin-bottom: 2rem;
        }
        .form-group label {
            position: absolute;
            top: 1rem;
            left: 1rem;
            color: var(--text-secondary);
            pointer-events: none;
            transition: all var(--animation-duration) ease; /* Consistent transition duration */
            background-color: var(--bg-light); /* Consistent with body background */
            padding: 0 0.25rem;
        }
        .form-group input, .form-group textarea {
            width: 100%;
            padding: 1rem;
            border: 1px solid var(--brand-green-mid); /* Consistent border color */
            border-radius: 0; /* Consistent with main theme */
            background-color: var(--bg-light); /* Consistent with body background */
            font-family: 'Manrope', sans-serif;
            font-size: 1rem;
            transition: border-color var(--animation-duration) ease, box-shadow var(--animation-duration) ease; /* Consistent transition duration */
            box-sizing: border-box; 
        }
        .form-group input:focus, .form-group textarea:focus {
            outline: none;
            border-color: var(--brand-green-accent);
            box-shadow: 0 0 0 3px rgba(42, 157, 143, 0.2);
        }
        .form-group input:focus + label,
        .form-group input:not(:placeholder-shown) + label,
        .form-group textarea:focus + label,
        .form-group textarea:not(:placeholder-shown) + label {
            top: -0.75rem;
            left: 0.75rem;
            font-size: 0.8rem;
            color: var(--brand-green-accent);
        }
        .form-group textarea {
            min-height: 150px;
            resize: vertical;
        }
        .form-submit-btn {
            /* Aligned with .btn-primary from main page */
            display: inline-flex;
            align-items: center;
            gap: 0.75rem;
            padding: 1rem 2.25rem;
            border-radius: 0; /* Consistent with main theme */
            font-family: 'Manrope', sans-serif;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 1.3px;
            font-size: 1rem;
            color: #fff;
            background-image: linear-gradient(110deg, var(--brand-green-accent) 0%, var(--brand-green-mid) 100%);
            box-shadow: 0 10px 30px -5px rgba(42, 157, 143, 0.4), 0 0 15px var(--glow-color) inset;
            border: none;
            transition: all var(--animation-duration) cubic-bezier(0.2, 0.8, 0.2, 1);
            background-size: 250% auto;
            text-decoration: none;
            cursor: pointer;
            position: relative; /* For shimmer effect */
            overflow: hidden; /* For shimmer effect */
            outline: none; /* Added for consistency */
        }
        .form-submit-btn::before { /* Shimmer effect */
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(110deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            transition: left 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
        }
        .form-submit-btn:hover::before,
        .form-submit-btn:focus::before {
            left: 100%;
        }
        .form-submit-btn:hover,
        .form-submit-btn:focus {
            background-position: right center;
            transform: translateY(-4px) scale(1.05);
            box-shadow: 0 18px 45px -8px rgba(42, 157, 143, 0.5), 0 0 20px var(--glow-color) inset;
            outline: none;
        }

        /* Contact Details Styles */
        .contact-details-card {
            background: rgba(251, 253, 251, 0.6); /* Semi-transparent light background */
            padding: 3.5rem;
            border-radius: 0; /* Consistent with main theme */
            border: 1.5px solid var(--brand-green-light); /* Light green border */
            box-shadow: 0 10px 40px -10px rgba(42, 157, 143, 0.125); /* Adjusted shadow opacity */
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            transition: all var(--animation-duration) cubic-bezier(0.2, 0.8, 0.2, 1); /* Consistent transition duration */
            position: relative;
            overflow: hidden;
        }
        .contact-details-card:hover {
            transform: translateY(-16px) scale(1.05);
            box-shadow: 0 25px 50px -12px rgba(42, 157, 143, 0.25); /* Adjusted shadow opacity */
            border-color: var(--brand-green-mid);
        }
        .contact-details-card::before {
            content: ''; position: absolute; top: var(--y, 50%); left: var(--x, 50%); transform: translate(-50%, -50%) scale(0); width: 300px; height: 300px; background-image: radial-gradient(circle, var(--glow-color) 0%, transparent 70%); border-radius: 50%; opacity: 0; transition: transform 0.8s ease, opacity 0.8s ease; z-index: 0;
        }
        .contact-details-card:hover::before {
            transform: translate(-50%, -50%) scale(1); opacity: 1;
        }
        .contact-details-card h3 {
            font-family: 'Playfair Display', serif; font-size: 2rem; color: var(--text-primary); margin-top: 0; margin-bottom: 2rem; position: relative; z-index: 1; text-align: left;
        }
        .contact-detail-item {
            display: flex; align-items: flex-start; gap: 1.5rem; margin-bottom: 2rem; position: relative; z-index: 1; text-align: left;
        }
        .contact-detail-item:last-child {
            margin-bottom: 0;
        }
        .contact-detail-icon {
            flex-shrink: 0; width: 24px; height: 24px; color: var(--brand-green-accent); margin-top: 4px;
        }
        .contact-detail-content strong {
            display: block; font-weight: 700; margin-bottom: 0.25rem;
        }
        .contact-detail-content a, .contact-detail-content span {
            color: var(--text-secondary); text-decoration: none; transition: color var(--animation-duration) ease; /* Consistent transition duration */
        }
        .contact-detail-content a:hover {
            color: var(--brand-green-accent);
        }

        /* --- 3. Final CTA Section (Reused from theme) --- */
        #cta-section {
            padding: 5rem 2rem;
            background:
                linear-gradient(135deg, var(--brand-green-accent) 0%, var(--brand-green-mid) 100%),
                url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 800'%3E%3Cg fill='none' stroke='%23FFFFFF' stroke-width='1' stroke-opacity='0.1'%3E%3Cpath d='M-500 750c0 0 125-30 250-30S0 780 125 780s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 700c0 0 125-30 250-30S0 730 125 730s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 650c0 0 125-30 250-30S0 680 125 680s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 600c0 0 125-30 250-30S0 630 125 630s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 550c0 0 125-30 250-30S0 580 125 580s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 500c0 0 125-30 250-30S0 530 125 530s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 450c0 0 125-30 250-30S0 480 125 480s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 400c0 0 125-30 250-30S0 430 125 430s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 350c0 0 125-30 250-30S0 380 125 380s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 300c0 0 125-30 250-30S0 330 125 330s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 250c0 0 125-30 250-30S0 280 125 280s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 200c0 0 125-30 250-30S0 230 125 230s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 150c0 0 125-30 250-30S0 180 125 180s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 100c0 0 125-30 250-30S0 130 125 130s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 50c0 0 125-30 250-30S0 80 125 80s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3Cpath d='M-500 0c0 0 125-30 250-30S0 30 125 30s250-30 250-30 125-30 250-30 250 30 250 30 125 30 250 30 250-30 250-30 125-30 250-30 250 30 250 30'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
            background-blend-mode: overlay;
            position: relative;
            overflow: hidden;
        }
        #cta-section::before, #cta-section::after {
            content: ''; position: absolute; border-radius: 50%; filter: blur(60px); opacity: 0.25; z-index: 0;
        }
        #cta-section::before {
            background: radial-gradient(circle, var(--brand-green-mid) 0%, transparent 70%); width: 450px; height: 450px; top: -120px; left: -180px;
        }
        #cta-section::after {
            background: radial-gradient(circle, #ffffff 0%, transparent 70%); width: 350px; height: 350px; bottom: -150px; right: -120px; opacity: 0.15;
        }
        .cta-container {
            max-width: 800px; margin: 0 auto; text-align: center; position: relative; z-index: 1;
        }
        .cta-heading {
            font-family: 'Playfair Display', serif; font-size: 2.75rem; font-weight: 700; color: #fff; margin-bottom: 1.5rem; line-height: 1.2; letter-spacing: -0.02em; text-shadow: 0 2px 15px rgba(0,0,0,0.2);
        }
        .cta-hook {
            font-size: 1.15rem; line-height: 1.7; color: var(--brand-green-light); margin-bottom: 0; max-width: 600px; margin-left: auto; margin-right: auto;
        }
        .cta-btn {
            /* Aligned with .btn-primary from main page */
            display: inline-flex;
            align-items: center;
            gap: 0.75rem;
            padding: 1rem 2.25rem;
            border-radius: 0; /* Consistent with main theme */
            font-family: 'Manrope', sans-serif;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 1.3px;
            font-size: 1rem;
            color: #fff; /* Changed to white for consistency with other CTA buttons */
            background-image: linear-gradient(110deg, var(--brand-green-accent) 0%, var(--brand-green-mid) 100%); /* Changed to gradient for consistency */
            box-shadow: 0 10px 30px -5px rgba(42, 157, 143, 0.4), 0 0 15px var(--glow-color) inset; /* Consistent shadow */
            border: none;
            transition: all var(--animation-duration) cubic-bezier(0.2, 0.8, 0.2, 1);
            background-size: 250% auto;
            text-decoration: none;
            cursor: pointer;
            position: relative; /* For shimmer effect */
            overflow: hidden; /* For shimmer effect */
            outline: none; /* Added for consistency */
            margin-top: 2.5rem; /* Added for consistent vertical padding */
        }
        .cta-btn::before { /* Shimmer effect */
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(110deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            transition: left 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
        }
        .cta-btn:hover::before,
        .cta-btn:focus::before {
            left: 100%;
        }
        .cta-btn:hover,
        .cta-btn:focus {
            background-position: right center;
            transform: translateY(-4px) scale(1.05); /* Consistent hover transform */
            box-shadow: 0 18px 45px -8px rgba(42, 157, 143, 0.5), 0 0 20px var(--glow-color) inset; /* Consistent hover shadow */
            outline: none;
        }
        
        .btn-arrow {
            width: 1.25rem;
            height: 1.25rem;
            transition: transform var(--animation-duration) cubic-bezier(0.2, 0.8, 0.2, 1); /* Consistent transition duration */
        }
        .form-submit-btn:hover .btn-arrow,
        .cta-btn:hover .btn-arrow {
            transform: translateX(5px);
        }

        /* Animation */
        .fade-in-up { opacity: 0; transform: translateY(40px); transition: opacity 1s cubic-bezier(.2, .8, .2, 1), transform 1s cubic-bezier(.2, .8, .2, 1); }
        .fade-in-up.visible { opacity: 1; transform: translateY(0); }

        @media (max-width: 991px) {
            #contact-hero-section, #form-section, #cta-section { padding: 4rem 1.5rem; }
            .cta-section { padding: 3rem 1.5rem; }
            .contact-hero-heading, .cta-heading { font-size: 2.5rem; }
        }

        /* Accessibility: Reduce motion for users who prefer it */
        @media (prefers-reduced-motion: reduce) {
            .btn-primary,
            .btn-primary::before,
            .contact-hero-image-wrapper .contact-hero-image,
            .form-group label,
            .form-group input,
            .form-group textarea,
            .form-submit-btn,
            .form-submit-btn::before,
            .contact-details-card,
            .contact-details-card::before,
            .contact-detail-content a,
            .cta-btn,
            .cta-btn::before,
            .btn-arrow,
            .fade-in-up {
                transition: none !important;
                animation: none !important;
            }
        }
    