/* Color Palette */
:root {
    --color-dark-blue: #002B5C; /* Main Background */
    --color-orange: #FF9F43;    /* Accent 1 */
    --color-teal: #00B4D8;      /* Accent 2 */
    --color-pink: #FF69B4;      /* Accent 3 */
    --color-white: #FFFFFF;
    --color-light-bg: #1a4269; /* Slightly lighter dark-blue for contrast */
    --color-form-bg: #0d3a6d; /* Even lighter background for form fields */
}

/* Global Reset and Typography */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Arial, sans-serif;
    line-height: 1.6;
    background-color: var(--color-dark-blue);
    color: var(--color-white);
}

.container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

h1, h2, h3 {
    margin-bottom: 0.5em;
    font-weight: bold;
}

h1 { font-size: 2.5em; }
h2 { font-size: 2em; }
h3 { font-size: 1.5em; }

.section-padding {
    padding: 4em 0;
}

.section-description {
    font-size: 1.1em;
    color: #c9d8e5;
    margin-bottom: 2em;
}

/* --- Utility Classes --- */
.accent-orange { color: var(--color-orange); }
.accent-teal { color: var(--color-teal); }
.accent-pink { color: var(--color-pink); }
.accent-orange-bg { background-color: var(--color-orange); color: var(--color-dark-blue); }
.accent-teal-bg { background-color: var(--color-teal); color: var(--color-dark-blue); }
.light-bg { background-color: var(--color-light-bg); }
.text-center { text-align: center; }
.mt-4 { margin-top: 2rem; }

/* --- Buttons (CTAs) --- */
.btn {
    display: inline-block;
    padding: 0.75em 1.5em;
    margin-top: 1em;
    border-radius: 5px;
    text-decoration: none;
    font-weight: bold;
    transition: background-color 0.3s, color 0.3s;
    border: 2px solid transparent;
}

.primary-cta {
    background-color: var(--color-orange);
    color: var(--color-dark-blue);
}

.primary-cta:hover {
    background-color: #ffb56d;
}

.secondary-cta {
    background-color: transparent;
    border-color: var(--color-teal);
    color: var(--color-teal);
}

.secondary-cta:hover {
    background-color: var(--color-teal);
    color: var(--color-white);
}

.light-cta {
    background-color: var(--color-white);
    color: var(--color-dark-blue);
}

.light-cta:hover {
    background-color: #f0f0f0;
}

/* --- Header & Navigation --- */
header {
    background-color: rgba(0, 43, 92, 0.95); /* Semi-transparent dark blue */
    padding: 1em 0;
    position: sticky;
    top: 0;
    z-index: 1000;
}

nav.container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    font-size: 1.5em;
    font-weight: bold;
    color: var(--color-teal);
    text-decoration: none;
}

.nav-links {
    list-style: none;
    display: flex;
}

.nav-links li a {
    color: var(--color-white);
    text-decoration: none;
    padding: 0.5em 1em;
    transition: color 0.3s;
}

.nav-links li a:hover {
    color: var(--color-orange);
}

.nav-links .cta-link {
    background-color: var(--color-pink);
    border-radius: 5px;
    padding: 0.5em 1em;
    margin-left: 1em;
    color: var(--color-dark-blue);
    font-weight: bold;
}

.nav-links .cta-link:hover {
    background-color: #ff8ab6;
    color: var(--color-dark-blue);
}

.menu-toggle {
    display: none; /* Hidden on desktop */
    background: none;
    border: none;
    color: var(--color-white);
    font-size: 1.5em;
    cursor: pointer;
}

/* --- Hero Section (General) --- */
.hero-section {
    background: url('images/hero-bg-placeholder.jpg') no-repeat center center/cover;
    min-height: 80vh;
    display: flex;
    align-items: center;
    text-align: left;
    position: relative;
    z-index: 1;
}

.hero-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 43, 92, 0.7); /* Dark overlay */
    z-index: -1;
}

.hero-section.small-hero {
    min-height: 40vh; /* Shorter hero for contact page */
    text-align: center;
}

.hero-section.small-hero h1 {
    font-size: 3em;
}


.hero-content {
    max-width: 600px;
}

.hero-content h1 {
    font-size: 3.5em;
    margin-bottom: 0.25em;
}

.hero-content p {
    font-size: 1.25em;
    margin-bottom: 1.5em;
}

/* --- Value Proposition Section --- */
.value-cards {
    display: flex;
    gap: 2em;
    justify-content: space-between;
    text-align: center;
    margin-top: 2em;
}

.value-card {
    flex: 1;
    padding: 2em;
    background-color: var(--color-light-bg);
    border-radius: 8px;
}

.value-card i {
    font-size: 3em;
    margin-bottom: 0.5em;
}

/* --- CTA Banner (General) --- */
.cta-banner {
    padding: 2em 0;
    text-align: center;
}

.cta-banner h2 {
    color: inherit;
    margin-bottom: 0.5em;
}

/* --- Services Preview Section (Home Page) --- */
.service-previews {
    display: flex;
    gap: 2em;
    margin-top: 2em;
}

.preview-card {
    flex: 1;
    padding: 2em;
    background-color: var(--color-light-bg);
    border-radius: 8px;
    text-align: center;
    transition: transform 0.3s;
}

.preview-card:hover {
    transform: translateY(-10px);
}

.preview-card i {
    font-size: 2.5em;
    color: var(--color-teal);
    margin-bottom: 0.5em;
}

.preview-card h3 {
    color: var(--color-orange);
}

.preview-card a {
    color: var(--color-pink);
    text-decoration: none;
    font-weight: bold;
    display: block;
    margin-top: 1em;
}

/* --- Services Page Layout (Services.html) --- */
.service-pillar {
    border-bottom: 1px solid var(--color-light-bg);
}

.service-pillar h2 {
    text-align: center;
    margin-bottom: 1em;
    padding-bottom: 0.5em;
    border-bottom: 2px solid var(--color-pink);
    display: inline-block;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2em;
}

.service-item {
    background-color: var(--color-light-bg);
    padding: 1.5em;
    border-radius: 8px;
}

.service-image-placeholder {
    height: 150px;
    background-color: var(--color-dark-blue);
    border: 2px dashed var(--color-teal);
    margin-bottom: 1em;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--color-teal);
    font-style: italic;
    font-size: 0.9em;
}

.service-item h3 {
    color: var(--color-orange);
}

/* --- Growth Packages Layout (Packages.html) --- */
.packages-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2em;
    align-items: stretch;
}

.package-card {
    background-color: var(--color-light-bg);
    padding: 2em;
    border-radius: 8px;
    border: 3px solid transparent;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.package-card h3 {
    color: var(--color-teal);
    font-size: 1.8em;
    margin-bottom: 0.25em;
}

.package-card .audience {
    font-weight: bold;
    color: var(--color-pink);
    margin-bottom: 1em;
    font-size: 0.9em;
}

.package-card .tagline {
    font-style: italic;
    color: #c9d8e5;
    margin-bottom: 1.5em;
}

.package-card.featured {
    border-color: var(--color-orange);
    box-shadow: 0 0 20px rgba(255, 159, 67, 0.5);
}

.features-list {
    list-style: none;
    padding-left: 0;
    margin-bottom: 2em;
}

.features-list li {
    padding: 0.5em 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.features-list li::before {
    content: '\f058'; /* Checkmark icon */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: var(--color-orange);
    margin-right: 0.5em;
}

.features-list li .excluded {
    color: #a0a0a0;
    text-decoration: line-through;
}

.features-list li .excluded::before {
    content: '\f057'; /* Times circle icon */
    color: #a0a0a0;
    text-decoration: none;
}

/* --- Contact Page Specific Styles (Contact.html) --- */
.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr; /* Info on left, Form on right */
    gap: 4em;
    align-items: start; /* Align content to the top */
}

.contact-info-block {
    padding-right: 2em; /* Spacing between info and form */
}

.contact-info-block h2 {
    color: var(--color-teal);
    text-align: left;
    margin-bottom: 1em;
}

.contact-info-block p {
    margin-bottom: 2em;
    font-size: 1.1em;
}

.info-item {
    display: flex;
    align-items: center;
    margin-bottom: 1.5em;
    font-size: 1.1em;
}

.info-item i {
    font-size: 1.5em;
    margin-right: 1em;
}

.info-item a {
    color: var(--color-white); /* Keep links white */
    text-decoration: none;
    transition: color 0.3s;
}

.info-item a:hover {
    color: var(--color-orange);
}

.contact-form-block {
    background-color: var(--color-light-bg); /* Lighter background for the form itself */
    padding: 2.5em;
    border-radius: 10px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
}

.contact-form-block h2 {
    color: var(--color-orange);
    text-align: center;
    margin-bottom: 1.5em;
}

.form-group {
    margin-bottom: 1.5em;
}

.form-group label {
    display: block;
    margin-bottom: 0.5em;
    font-weight: bold;
}

.form-group input,
.form-group textarea {
    width: 100%;
    padding: 12px;
    border-radius: 5px;
    border: 1px solid var(--color-dark-blue); /* Darker border for contrast */
    background-color: var(--color-form-bg); /* Even lighter background for input fields */
    color: var(--color-white);
    font-size: 1em;
}

.form-group input::placeholder,
.form-group textarea::placeholder {
    color: #a0a0a0; /* Placeholder text color */
}

.form-group input:focus,
.form-group textarea:focus {
    outline: 2px solid var(--color-pink);
    border-color: var(--color-pink);
}

.form-group textarea {
    resize: vertical;
    min-height: 120px;
}

.recaptcha-group {
    margin-bottom: 2em;
    text-align: center; /* Center the reCAPTCHA widget */
}


/* --- Footer --- */
footer {
    background-color: #001a38;
    padding: 1.5em 0;
    text-align: center;
    font-size: 0.9em;
}

footer .container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
}

.footer-links a {
    color: var(--color-teal);
    text-decoration: none;
    margin-left: 1.5em;
    transition: color 0.3s;
}

.footer-links a:hover {
    color: var(--color-orange);
}

/* --- Media Queries (Responsiveness) --- */
@media (max-width: 768px) {
    
    /* Header/Nav Mobile */
    .menu-toggle {
        display: block;
    }
    
    .nav-links {
        display: none;
        flex-direction: column;
        width: 100%;
        position: absolute;
        top: 60px; /* Adjust based on header height */
        left: 0;
        background-color: var(--color-dark-blue);
        padding: 1em 0;
        text-align: center;
    }
    
    .nav-links.active {
        display: flex;
    }

    .nav-links li {
        margin: 0.5em 0;
    }

    .nav-links .cta-link {
        margin: 0.5em auto;
    }

    /* Hero Mobile */
    .hero-section h1 {
        font-size: 2.5em;
    }

    /* Contact Page Mobile */
    .contact-grid {
        grid-template-columns: 1fr; /* Stack columns on mobile */
        gap: 2em;
    }
    
    /* FIX: Force the form block to appear first on mobile */
    .contact-form-block {
        order: -1; 
    }

    .contact-info-block {
        padding-right: 0;
        text-align: center; /* Center text on mobile */
    }

    .contact-info-block h2, .contact-form-block h2 {
        text-align: center;
    }

    .info-item {
        justify-content: center; /* Center icons and text */
    }

    /* Cards/Grids Mobile */
    .value-cards, .service-previews, .services-grid, .packages-grid {
        flex-direction: column;
        gap: 1.5em;
    }
    
    .value-card, .preview-card, .service-item, .package-card {
        width: 100%;
    }
    
    .package-card.featured {
        order: -1; /* Move featured package to the top on mobile */
    }

    /* Footer Mobile */
    footer .container {
        flex-direction: column;
        text-align: center;
    }

    .footer-links {
        margin-top: 1em;
    }

    .footer-links a {
        display: block;
        margin: 0.5em 0;
    }
}

@media (min-width: 769px) {
    .nav-links {
        display: flex !important; /* Ensure menu is visible on desktop */
    }
}