:root {
            /* A fresh, warm, and professional color palette */
            --bg-color: #FDFCFB; /* A very light, warm off-white */
            --text-color: #2c3e50; /* A softer, sophisticated dark blue-gray */
            --primary-color: #6D9886; /* A calming, muted green */
            --secondary-color: #F2E7D5; /* A warm beige for accents */
            --gradient-start: #86B1A0;
            --gradient-end: #6D9886;
        }

        body {
            font-family: 'Poppins', sans-serif; /* Modern, clean, and readable */
            background-color: var(--bg-color);
            color: var(--text-color);
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

        /* Using Lora for elegant, classic headings */
        h1, h2, h3, h4, h5, h6 {
            font-family: 'Lora', serif;
        }
        
        /* New gradient button style */
        .btn-gradient {
            background-image: linear-gradient(to right, var(--gradient-start) 0%, var(--gradient-end) 51%, var(--gradient-start) 100%);
            background-size: 200% auto;
            transition: background-position 0.5s cubic-bezier(.25,.8,.25,1);
            box-shadow: 0 4px 15px 0 rgba(109, 152, 134, 0.35);
        }
        .btn-gradient:hover {
            background-position: right center;
        }

        /* Animations for revealing elements on scroll */
        .reveal {
            opacity: 0;
            transform: translateY(50px);
            transition: opacity 0.8s cubic-bezier(0.5, 0, 0, 1), transform 0.8s cubic-bezier(0.5, 0, 0, 1);
        }
        .reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* Enhanced image zoom effect */
        .img-zoom-wrapper { 
            overflow: hidden; 
            border-radius: 0.75rem; /* Rounded corners */
        }
        .img-zoom-wrapper img { 
            transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94); 
        }
        .img-zoom-wrapper:hover img { 
            transform: scale(1.08); /* A more noticeable zoom */
        }

        /* Smoother testimonial slider transitions */
        .testimonial-slide {
            position: absolute;
            width: 100%;
            opacity: 0;
            transform: translateY(20px);
            transition: opacity 0.7s ease-in-out, transform 0.7s ease-in-out;
            z-index: 1;
        }
        .testimonial-slide.active { 
            opacity: 1; 
            transform: translateY(0);
            z-index: 2; 
        }

        /* Refined FAQ Accordion styles */
        .accordion-content { 
            max-height: 0; 
            overflow: hidden; 
            transition: max-height 0.7s cubic-bezier(0.4, 0, 0.2, 1); 
        }
        .accordion-button.open .accordion-arrow { 
            transform: rotate(180deg); 
        }
        .accordion-button .accordion-arrow {
            transition: transform 0.4s ease;
        }
        
        /* Adding a subtle text shadow for hero text readability */
        .text-shadow-custom {
            text-shadow: 0px 2px 15px rgba(0,0,0,0.4);
        }

        /* --- PHILOSOPHY/ABOUT THEME --- */
        /* A calming, natural green and cream theme */
        .theme-philosophy {
            --primary-color: #5A7D7C; /* Muted, calming teal/green */
            --secondary-color: #F4F1E9; /* Warm, earthy cream */
            --accent-color: #A3B8B7; /* Lighter, soft green */
            --gradient-start: #7C9C9B;
            --gradient-end: #5A7D7C;
        }
        .section-divider {
            border-bottom: 1px solid var(--accent-color);
            width: 100px;
            margin: 1.5rem auto;
        }
        .gallery-item img {
            transition: transform 0.4s ease-in-out;
        }
        .gallery-item:hover img {
            transform: scale(1.05);
        }

        /* --- NEW CONTACT THEME --- */
        /* A professional, clean, and trustworthy theme */
        .theme-contact {
            --primary-color: #475569; /* Muted Slate Blue */
            --secondary-color: #F8FAFC; /* Very light, cool grey */
            --accent-color: #64748B; /* Slightly lighter slate */
            --gradient-start: #818cf8;
            --gradient-end: #6366f1;
        }
        .form-input {
            transition: border-color 0.3s, box-shadow 0.3s;
        }
        .form-input:focus {
            border-color: var(--primary-color);
            box-shadow: 0 0 0 2px var(--accent-color);
        }

        /* --- NEW HENLEY THEME --- */
        /* A sophisticated navy, gold, and light grey theme */
        .theme-henley {
            --primary-color: #1E3A8A; /* Deep Navy Blue */
            --secondary-color: #F1F5F9; /* Cool, light grey */
            --accent-color: #D97706; /* Rich, warm gold/amber */
            --gradient-start: #F59E0B;
            --gradient-end: #D97706;
        }

        /* --- WELLFIELD THEME --- */
        /* A rich burgundy and soft rose theme */
        .theme-wellfield {
            --primary-color: #8C3B3B; /* Rich, warm burgundy */
            --secondary-color: #F5EBEB; /* Soft, elegant rose */
            --accent-color: #D9BFBF; /* Muted rose for accents */
            --gradient-start: #A65D5D;
            --gradient-end: #8C3B3B;
        }
        .section-divider-left {
            border-bottom: 2px solid var(--accent-color);
            width: 80px;
            margin: 1.5rem 0;
        }
        /* Rotating Text Animation */
        .rotating-text-container {
            height: 50px;
            position: relative;
            display: inline-block;
            text-align: center;
            width: 100%;
        }
        .rotating-text-item {
            opacity: 0;
            position: absolute;
            top: 0;
            left: 50%;
            transform: translate(-50%, 20px);
            transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
            width: 100%;
        }
        .rotating-text-item.active {
            opacity: 1;
            transform: translate(-50%, 0);
        }
        .rotating-text-item.leaving {
            opacity: 0;
            transform: translate(-50%, -20px);
        }


        