    
        /* --- Global Styles & Design System --- */
        :root {
            --font-primary: 'Poppins', sans-serif;
            --color-background: #F8F9FA; /* Light grey background */
            --color-surface: #FFFFFF;     /* White for cards/surfaces */
            --color-text-primary: #212529; /* Dark grey for text */
            --color-text-secondary: #6C757D;/* Medium grey for placeholders/secondary text */
            --color-accent: #007BFF;      /* Vibrant blue for primary actions */
            --color-accent-hover: #0056b3; /* Darker blue for hover */
            --color-success: #28a745;
            --color-error: #dc3545;
            --color-info: #17a2b8;
            --border-radius-standard: 20px;
            --shadow-soft: 0 4px 15px rgba(0, 0, 0, 0.08);
            --input-height: 48px; /* Consistent input height */
        }

        html {
            font-size: 62.5%; /* Base 10px for scalable typography (1rem = 10px) */
            scroll-behavior: smooth;
        }

  
        /* --- Typography Hierarchy --- */
        h1, h2, h3 {
            font-weight: 700; /* Bold */
            margin-bottom: 1.5rem;
            line-height: 1.3;
        }

        h1 { font-size: 3.2rem; } /* Example: Page Title */
        h2 { font-size: 2.8rem; } /* Example: Section Title */
        h3 { font-size: 2.2rem; } /* Form Title */

        /* --- Utility Classes --- */
        .button {
            display: inline-block;
            font-family: var(--font-primary);
            font-size: 1.6rem;
            font-weight: 600;
            text-align: center;
            text-decoration: none;
            cursor: pointer;
            border: none;
            transition: background-color 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
            height: var(--input-height);
            padding: 0 3rem;
            line-height: var(--input-height); /* Vertically center text */
        }

        .button--pill {
            border-radius: calc(var(--input-height) / 2); /* Pill shape */
        }

        .button--primary {
            background-color: var(--color-accent);
            color: var(--color-surface);
        }

        .button--primary:hover,
        .button--primary:focus {
            background-color: var(--color-accent-hover);
            box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);
            transform: translateY(-2px);
        }

        /* --- Contact Section Styles --- */
        .contact-section {
            width: 100%;
            max-width: 700px; /* Max width for the form container */
            margin: 2rem auto; /* Centering the section */
            padding: 2rem;    /* Padding around the section */
        }

        .contact-form-container {
            background-color: var(--color-surface);
            padding: 3rem;
            border-radius: var(--border-radius-standard);
            box-shadow: var(--shadow-soft);
        }

        /* Add subtle scroll animation for elements appearing - requires JS or CSS @keyframes */
        /* For simplicity, this example does not include complex scroll animations */
        /* but you could add a class on scroll reveal: */
        .fade-in-up {
            opacity: 0;
            transform: translateY(20px);
            animation: fadeInUp 0.6s ease-out forwards;
        }

        @keyframes fadeInUp {
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .contact-form__title {
            text-align: center;
            color: var(--color-text-primary);
            margin-bottom: 2.5rem;
        }

        .form-group {
            margin-bottom: 2rem;
        }

        .form-group__label {
            display: block;
            font-size: 1.4rem;
            font-weight: 600;
            margin-bottom: 0.8rem;
            color: var(--color-text-secondary);
        }

        .form-group__input,
        .form-group__textarea {
            width: 100%;
            padding: 0 1.5rem; /* Horizontal padding */
            font-size: 1.6rem;
            font-family: var(--font-primary);
            color: var(--color-text-primary);
            border: 1px solid #ced4da; /* Light border */
            border-radius: 10px; /* Slightly less rounded than buttons for inputs */
            box-sizing: border-box; /* Important for width 100% */
            transition: border-color 0.3s ease, box-shadow 0.3s ease;
        }
        .form-group__input {
             height: var(--input-height);
        }

        .form-group__textarea {
            padding-top: 1rem; /* Padding for textarea */
            padding-bottom: 1rem;
            min-height: 120px; /* Initial height for textarea */
            resize: vertical; /* Allow vertical resize */
            line-height: 1.5;
        }

        .form-group__input:focus,
        .form-group__textarea:focus {
            outline: none;
            border-color: var(--color-accent);
            box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); /* Focus ring */
        }

        .form-group__input::placeholder,
        .form-group__textarea::placeholder {
            color: var(--color-text-secondary);
            opacity: 0.8;
        }

        .form-submit-group {
            text-align: center; /* Center the button */
            margin-top: 3rem;
        }

        /* --- Form Messages Styling --- */
        .form-messages-container {
            margin-bottom: 2rem; /* Space between messages and form */
            padding: 0;
            list-style-type: none;
        }

        .form-message {
            padding: 1.5rem;
            margin-bottom: 1rem;
            border-radius: 10px; /* Consistent with input fields */
            font-size: 1.5rem;
            border: 1px solid transparent;
            text-align: center;
        }

        .form-message--success {
            color: #155724; /* Darker text for success */
            background-color: #d4edda; /* Light green background */
            border-color: #c3e6cb;
        }

        .form-message--error {
            color: #721c24; /* Darker text for error */
            background-color: #f8d7da; /* Light red background */
            border-color: #f5c6cb;
        }

        .form-message--info {
            color: #0c5460; /* Darker text for info */
            background-color: #d1ecf1; /* Light blue background */
            border-color: #bee5eb;
        }


        /* --- Responsiveness --- */
        @media (max-width: 768px) {
            body {
                padding: 1rem 0;
            }
            .contact-section {
                padding: 1rem;
            }
            .contact-form-container {
                padding: 2rem;
            }
            h3, .contact-form__title { /* h3 used as form title */
                font-size: 2rem;
            }
            .form-group__input,
            .form-group__textarea,
            .button {
                font-size: 1.5rem; /* Slightly smaller on mobile for better fit */
            }
             .button {
                padding: 0 2rem;
            }
        }

        @media (max-width: 480px) {
             html {
                font-size: 58%; /* Slightly adjust base for very small screens if needed */
            }
            h3, .contact-form__title {
                font-size: 1.8rem;
            }
            .contact-form-container {
                padding: 1.5rem;
            }
        }

    
