/* --- Global Styles & Brand Variables --- */
:root {
    --primary-blue: #0d47a1; /* Deep Blue - from Logo (e.g., text, footer background) */
    --secondary-blue: #2196f3; /* Lighter Blue - from Logo (e.g., buttons, accents) */
    --accent-green: #8bc34a; /* Lime Green - from Logo (e.g., subtle highlights if used) */
    --light-blue-bg: #e3f2fd; /* Very Light Blue - for section backgrounds */
    --text-dark: #333333;
    --text-light: #555555;
    --white: #ffffff;
    --light-gray-bg: #f9f9f9;
    --border-light: #eeeeee;

    --font-heading: 'Montserrat', sans-serif;
    --font-body: 'Open Sans', sans-serif;
}

/* Basic Reset & Body Styling */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: var(--font-body); line-height: 1.6; color: var(--text-dark); background-color: var(--light-gray-bg); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); color: var(--primary-blue); margin-bottom: 0.5em; line-height: 1.2; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }

/* Buttons */
.btn { display: inline-block; padding: 12px 25px; border-radius: 5px; text-decoration: none; font-weight: 600; transition: all 0.3s ease; text-align: center; font-size: 1.05em; cursor: pointer; }
.btn-primary { background-color: var(--secondary-blue); color: var(--white); border: 2px solid var(--secondary-blue); }
.btn-primary:hover { background-color: var(--primary-blue); border-color: var(--primary-blue); }
.btn-secondary { background-color: transparent; color: var(--secondary-blue); border: 2px solid var(--secondary-blue); }
.btn-secondary:hover { background-color: var(--light-blue-bg); color: var(--primary-blue); border-color: var(--primary-blue); }

/* Header */
.main-header { background-color: var(--white); padding: 15px 0; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
.header-content { display: flex; justify-content: space-between; align-items: center; }
.logo img { max-height: 50px; width: auto; display: block; }
.main-nav ul { list-style: none; display: flex; }
.main-nav ul li { margin-left: 35px; }
.main-nav ul li a { text-decoration: none; color: var(--text-dark); font-weight: 600; transition: color 0.3s ease; padding: 5px 0; }
.main-nav ul li a:hover { color: var(--secondary-blue); }
.header-btn { padding: 10px 20px; font-size: 1em; }

/* Hero Section */
.hero-section { background: linear-gradient(rgba(13, 71, 161, 0.7), rgba(13, 71, 161, 0.7)), url('images/hero-background.png') no-repeat center center/cover; color: var(--white); text-align: center; padding: 100px 20px; display: flex; align-items: center; justify-content: center; min-height: 550px; }
.hero-content { max-width: 850px; padding: 20px; }
.hero-content h1 { color: var(--white); font-size: 3.8em; margin-bottom: 0.3em; font-weight: 700; text-shadow: 2px 2px 5px rgba(0,0,0,0.3); }
.hero-content p { font-size: 1.3em; margin-bottom: 2em; font-weight: 400; line-height: 1.5; }
.hero-buttons .btn { margin: 0 15px; min-width: 200px; }

/* Why Choose Us Section */
.why-choose-us-section { background-color: var(--white); padding: 80px 0; text-align: center; }
.why-choose-us-section h2 { margin-bottom: 2.5em; font-size: 2.8em; font-weight: 700; }
.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 30px; margin-top: 40px; }
.feature-item { padding: 30px; background-color: var(--light-gray-bg); border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.05); transition: transform 0.3s ease, box-shadow 0.3s ease; border-bottom: 4px solid var(--secondary-blue); }
.feature-item:hover { transform: translateY(-5px); box-shadow: 0 6px 15px rgba(0,0,0,0.1); }
.feature-item .feature-icon { width: 80px; height: 80px; margin-bottom: 20px; object-fit: contain; }
.feature-item h3 { color: var(--primary-blue); font-size: 1.5em; margin-bottom: 10px; font-weight: 600; }
.feature-item p { font-size: 1em; color: var(--text-light); }

/* Our Services Section */
.our-services-section { padding: 80px 0; text-align: center; background-color: var(--light-blue-bg); }
.our-services-section h2 { margin-bottom: 1em; font-size: 2.8em; font-weight: 700; }
.section-intro { max-width: 700px; margin: 0 auto 50px auto; font-size: 1.2em; color: var(--text-light); }
.services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; }
.service-item { background-color: var(--white); padding: 40px; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.05); text-align: center; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.service-item:hover { transform: translateY(-5px); box-shadow: 0 6px 15px rgba(0,0,0,0.1); }
.service-item .service-icon { width: 90px; height: 90px; margin-bottom: 25px; object-fit: contain; }
.service-item h3 { color: var(--primary-blue); font-size: 1.6em; margin-bottom: 15px; font-weight: 600; }
.service-item p { color: var(--text-light); margin-bottom: 20px; }
.learn-more { color: var(--secondary-blue); text-decoration: none; font-weight: 600; transition: color 0.3s ease; }
.learn-more:hover { color: var(--primary-blue); }

/* Testimonials Section */
.testimonials-section { padding: 80px 0; text-align: center; background-color: var(--white); }
.testimonials-section h2 { margin-bottom: 2.5em; font-size: 2.8em; font-weight: 700; }
.testimonial-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; }
.testimonial-item { background-color: var(--light-gray-bg); padding: 30px; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.05); text-align: center; display: flex; flex-direction: column; justify-content: space-between; }
.testimonial-icon { width: 60px; height: 60px; margin: 0 auto 20px auto; }
.quote { font-style: italic; color: var(--text-dark); margin-bottom: 15px; font-size: 1.1em; flex-grow: 1; }
.client-name { font-weight: 600; color: var(--primary-blue); margin-top: 15px; }

/* Combined CTA / Blog Section */
.cta-blog-section { background-color: var(--primary-blue); padding: 80px 0; color: var(--white); }
.cta-blog-content { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.cta-box { flex: 1; min-width: 300px; padding-right: 40px; text-align: left; }
.cta-box h2 { color: var(--white); font-size: 3em; margin-bottom: 20px; font-weight: 700; }
.cta-box p { font-size: 1.15em; margin-bottom: 30px; line-height: 1.7; color: #e0f2f7; }
.cta-box .btn { margin-bottom: 15px; display: block; width: fit-content; }
.blog-preview { flex: 1; min-width: 300px; padding-left: 40px; }
.blog-preview h2 { color: var(--white); font-size: 2.2em; margin-bottom: 30px; text-align: left; font-weight: 700; }
.blog-posts-grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
.blog-post-card { background-color: var(--white); border-radius: 8px; overflow: hidden; box-shadow: 0 4px 10px rgba(0,0,0,0.05); text-align: left; color: var(--text-dark); display: flex; flex-direction: column; }
.blog-post-card .blog-thumbnail { width: 100%; height: 200px; object-fit: cover; display: block; }
.blog-post-card h3 { font-size: 1.4em; margin: 18px 18px 10px 18px; color: var(--primary-blue); font-weight: 600; }
.blog-post-card h3 a { text-decoration: none; color: var(--primary-blue); transition: color 0.3s ease; }
.blog-post-card h3 a:hover { color: var(--secondary-blue); }
.blog-post-card p { font-size: 0.95em; color: var(--text-light); margin: 0 18px 18px 18px; flex-grow: 1; }

/* Footer */
.main-footer { background-color: var(--primary-blue); color: var(--white); padding: 50px 0 20px; font-size: 0.95em; }
.footer-content { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; margin-bottom: 30px; }
.footer-logo { margin-right: 50px; }
.footer-logo img { max-height: 110px; margin-bottom: 15px; }
.footer-contact, .footer-nav, .social-media, .footer-cta { flex: 1; min-width: 180px; margin-bottom: 20px; }
.footer-contact p { margin-bottom: 5px; }
.footer-nav ul { list-style: none; }
.footer-nav ul li a { text-decoration: none; color: var(--white); padding: 5px 0; display: block; transition: color 0.3s ease; }
.footer-nav ul li a:hover { color: var(--secondary-blue); }
.social-media { display: flex; justify-content: flex-end; align-items: center; }
.social-media a { margin-left: 15px; margin-right: 0; }
.social-media img { max-width: 30px; height: auto; transition: transform 0.3s ease; }
.social-media img:hover { transform: translateY(-3px); }
.copyright { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 20px; text-align: center; }

/* --- MODIFIED: Footer CTA Button --- */
.footer-cta { display: flex; align-items: center; justify-content: center; }
.btn-footer-cta { 
    background-color: var(--secondary-blue); /* Solid background color */
    color: var(--white); 
    border: 2px solid var(--secondary-blue); /* Matching border */
    border-radius: 15px; /* More rounded corners */
    padding: 25px 35px; /* More vertical padding */
    font-size: 2em; /* Much larger font */
    font-weight: 700; /* Bolder text */
    line-height: 1.2; /* Tighter line height for stacked text */
    text-align: center;
    white-space: normal; /* Allow text to wrap */
}
.btn-footer-cta:hover { 
    background-color: var(--white); 
    border-color: var(--white); 
    color: var(--primary-blue); 
}

/* Internal Page Template Styling */
.page-header { background-color: var(--primary-blue); padding: 60px 0; text-align: center; color: var(--white); }
.page-header h1 { color: var(--white); font-size: 3em; margin-bottom: 0.2em; }
.page-header p { font-size: 1.2em; color: rgba(255, 255, 255, 0.8); max-width: 600px; margin: 0 auto; }
.main-content-section { padding: 80px 0; background-color: var(--white); }
.content-layout { display: flex; flex-wrap: wrap; gap: 50px; }
.primary-content { flex: 3; min-width: 300px; }
.primary-content h2 { font-size: 2.2em; margin-top: 1.5em; margin-bottom: 0.8em; padding-bottom: 10px; border-bottom: 2px solid var(--border-light); }
.primary-content h2:first-of-type { margin-top: 0; }
.primary-content p { font-size: 1.1em; color: var(--text-light); margin-bottom: 1.5em; line-height: 1.8; }
.content-image { width: 100%; height: auto; border-radius: 8px; margin: 20px 0; box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
.sidebar-content { flex: 1; min-width: 250px; }
.sidebar-widget { background-color: var(--light-gray-bg); padding: 30px; border-radius: 8px; margin-bottom: 30px; }
.sidebar-widget h3, .sidebar-widget h4 { color: var(--primary-blue); font-size: 1.6em; margin-bottom: 20px; padding-bottom: 10px; border-bottom: 1px solid #ddd; }
.sidebar-nav { list-style: none; }
.sidebar-nav li a { text-decoration: none; color: var(--text-dark); font-weight: 600; display: block; padding: 10px 0; border-bottom: 1px solid #eee; transition: color 0.3s ease; }
.sidebar-nav li:last-child a { border-bottom: none; }
.sidebar-nav li a:hover { color: var(--secondary-blue); }
.sidebar-cta { background-color: var(--light-blue-bg); text-align: center; border: 2px solid var(--secondary-blue); }
.sidebar-cta p { margin-bottom: 25px; color: var(--text-light); }
.btn-full-width { display: block; width: 100%; }

/* Blog & Single Post Styling */
.blog-archive-grid { display: grid; grid-template-columns: 1fr; gap: 40px; }
.blog-post-card-archive { background-color: var(--white); border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.08); overflow: hidden; display: flex; flex-direction: column; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.blog-post-card-archive:hover { transform: translateY(-5px); box-shadow: 0 6px 20px rgba(0,0,0,0.12); }
.blog-post-card-archive .blog-thumbnail { width: 100%; height: 250px; object-fit: cover; display: block; }
.blog-post-card-archive .card-content { padding: 30px; display: flex; flex-direction: column; flex-grow: 1; }
.blog-post-card-archive h3 { font-size: 1.8em; margin-bottom: 10px; }
.blog-post-card-archive h3 a { text-decoration: none; color: var(--primary-blue); transition: color 0.3s ease; }
.blog-post-card-archive h3 a:hover { color: var(--secondary-blue); }
.post-meta { font-size: 0.9em; color: var(--text-light); margin-bottom: 15px; }
.post-meta a { color: var(--secondary-blue); text-decoration: none; }
.post-meta a:hover { text-decoration: underline; }
.blog-post-card-archive p { color: var(--text-light); margin-bottom: 25px; flex-grow: 1; }
.blog-post-card-archive .btn-secondary { align-self: flex-start; }
.post-content h1 { font-size: 3em; margin-bottom: 0.3em; line-height: 1.2; }
.post-featured-image { width: 100%; height: auto; border-radius: 8px; margin: 25px 0 35px 0; box-shadow: 0 4px 15px rgba(0,0,0,0.1); }
.post-content h2 { font-size: 2em; margin-top: 1.8em; margin-bottom: 0.8em; }
.post-content h3 { font-size: 1.5em; margin-top: 1.5em; margin-bottom: 0.5em; }
.post-content p { font-size: 1.1em; line-height: 1.8; margin-bottom: 1.5em; color: var(--text-light); }

/* Contact Page & Booking Placeholder Styling */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.booking-wrapper h2, .contact-details-wrapper h2 { font-size: 2.2em; margin-bottom: 0.8em; }
.booking-wrapper p, .contact-details-wrapper p { font-size: 1.1em; color: var(--text-light); margin-bottom: 1.5em; line-height: 1.8; }
.booking-placeholder { background-color: var(--light-gray-bg); border: 2px dashed var(--secondary-blue); border-radius: 8px; padding: 50px 30px; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; margin-top: 20px; }
.booking-placeholder .placeholder-icon svg { stroke: var(--secondary-blue); margin-bottom: 20px; }
.booking-placeholder h3 { color: var(--primary-blue); font-size: 1.8em; margin-bottom: 10px; }
.booking-placeholder p { color: var(--text-light); font-size: 1.1em; margin-bottom: 0; }
.contact-info-block { margin-bottom: 30px; background-color: var(--light-blue-bg); padding: 20px; border-radius: 8px; }
.contact-info-block p { font-size: 1.1em; margin-bottom: 10px; color: var(--text-dark); }
.contact-form { display: flex; flex-direction: column; }
.form-group { margin-bottom: 20px; }
.form-group label { display: block; margin-bottom: 8px; font-weight: 600; color: var(--primary-blue); }
.form-group input, .form-group textarea { width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 5px; font-family: var(--font-body); font-size: 1em; transition: border-color 0.3s ease; }
.form-group input:focus, .form-group textarea:focus { outline: none; border-color: var(--secondary-blue); box-shadow: 0 0 5px rgba(33, 150, 243, 0.5); }

/* Resources Page Styling */
.resource-section { margin-bottom: 80px; }
.resource-section:last-child { margin-bottom: 0; }
.resource-section h2 { font-size: 2.5em; text-align: center; margin-bottom: 1em; }
.resource-grid { display: grid; grid-template-columns: 1fr; gap: 30px; }
.resource-item { background-color: var(--white); border: 1px solid var(--border-light); border-radius: 8px; padding: 30px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; box-shadow: 0 4px 10px rgba(0,0,0,0.05); transition: all 0.3s ease; }
.resource-item:hover { transform: translateY(-5px); box-shadow: 0 6px 15px rgba(0,0,0,0.1); border-color: var(--secondary-blue); }
.resource-icon { margin-right: 25px; }
.resource-icon svg { stroke: var(--secondary-blue); }
.resource-details { flex-grow: 1; }
.resource-details h3 { color: var(--primary-blue); font-size: 1.5em; margin-bottom: 5px; }
.resource-details p { color: var(--text-light); margin: 0; }
.resource-item .btn { margin-left: 20px; white-space: nowrap; }

/* --- Utility classes --- */
.text-center { text-align: center; }
.mt-3 { margin-top: 15px; }
.mt-4 { margin-top: 25px; }

/* --- Responsive Adjustments --- */
@media (max-width: 992px) {
    .main-nav ul li { margin-left: 20px; }
    .hero-content h1 { font-size: 3em; }
    .cta-box h2 { font-size: 2.5em; }
    .cta-blog-content, .content-layout { flex-direction: column; text-align: center; }
    .cta-box, .blog-preview { padding: 0; width: 100%; margin-bottom: 40px; }
    .cta-box h2, .blog-preview h2, .cta-box p { text-align: center; }
    .blog-posts-grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
    .cta-box .btn { margin: 15px auto; }
    .page-header h1 { font-size: 2.5em; }
    .contact-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    .header-content { flex-direction: column; text-align: center; }
    .main-nav ul { flex-direction: column; margin-top: 20px; }
    .main-nav ul li { margin: 10px 0; }
    .header-btn { margin-top: 20px; }
    .hero-content h1 { font-size: 2.2em; }
    .hero-content p { font-size: 1em; }
    .hero-buttons { flex-direction: column; }
    .hero-buttons .btn { margin: 10px 0; }
    .why-choose-us-section h2, .our-services-section h2, .testimonials-section h2 { font-size: 2em; }
    .features-grid, .services-grid, .testimonial-grid { grid-template-columns: 1fr; }
    .footer-content { flex-direction: column; text-align: center; }
    .footer-contact, .footer-nav, .social-media, .footer-cta { min-width: unset; width: 100%; text-align: center; }
    .footer-cta { margin-top: 20px; /* Space when stacked on mobile */ }
    .social-media { margin-top: 20px; }
    .social-media a { margin: 0 10px; }
    .resource-item { flex-direction: column; text-align: center; }
    .resource-icon { margin: 0 0 20px 0; }
    .resource-details { margin-bottom: 25px; }
    .resource-item .btn { margin-left: 0; width: 100%; }
}