/* Global Reset and Basic Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* General Styles */
body {
    margin: 0;
    padding: 0;
    font-family: 'EB Garamond', serif;
    background-color: #f4f4f9;
    color: #333;
    line-height: 1.6;
}

/* Header Styles */
header {
    background-color: #001f3f;
    color: white;
    padding: 20px 0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    position: relative;
    z-index: 1000;
}

.header-content {
    display: flex;
    justify-content: space-between; /* Space between logo and title/nav */
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Logo Styles */
.logo-img {
    width: 140px; /* Adjust logo width */
    height: auto;
}

/* Center logo on mobile and make it 50% larger */
@media (max-width: 1200px) {
    .logo {
        display: flex;
        justify-content: center;
        width: 100%;
    }
    .logo-img {
        width: 210px; /* 50% larger than the original 140px */
    }
}

/* Title and Navigation Container */
.nav-title-container {
    display: flex;
    flex-direction: column;
    align-items: flex-end; /* Align title and navigation to the right */
    width: 100%; /* Ensure container takes up full width */
}

.header-title {
    text-align: right; /* Align title text to the right */
}

.header-title h1 {
    font-size: 42px; /* Font size for the title */
    font-weight: 700; /* Bold font weight */
    margin: 0; /* Remove default margin */
    text-transform: uppercase; /* Uppercase letters for a modern look */
    letter-spacing: 2px; /* Spacing between letters for readability */
}

/* Hide title on mobile */
@media (max-width: 1200px) {
    .header-title {
        display: none;
    }
}

/* Navigation Styles */
.nav {
    margin-top: 10px; /* Space between title and navigation */
    display: flex;
    justify-content: flex-end; /* Align the navigation items to the right */
}

nav ul {
    list-style: none; /* Remove bullet points */
    padding: 0;
    margin: 0;
    display: flex;
    gap: 20px; /* Space between navigation items */
}

nav ul li {
    margin: 0;
}

nav ul li a {
    color: white;
    text-decoration: none;
    font-weight: bold;
    font-size: 18px;
    -webkit-tap-highlight-color: transparent; /* Remove tap highlight on iOS */
    transition: color 0.3s ease; /* Smooth transition for color change */
}

@media (min-width: 1201px) {
    nav ul li a {
        font-size: 24px; /* 33% larger font size for desktop */
    }
    nav ul li a:hover {
        color: #ff7f50;
    }
}

/* Responsive Header - Show Navigation on Smaller Screens */
@media (max-width: 1200px) {
    .header-content {
        flex-direction: column;
        align-items: center;
    }

    .nav-title-container {
        align-items: center;
        margin-top: 20px;
    }

    .nav {
        justify-content: center;
        width: 100%;
    }

    nav {
        display: flex;
        justify-content: center;
        width: 100%;
    }

    nav ul {
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: 10px;
    }

    nav ul li {
        margin: 5px 0;
    }

    nav ul li a {
        color: #001f3f;
        background-color: white;
        font-size: 18px;
        padding: 8px 16px;
        border-radius: 20px; /* Pill shape */
        display: inline-block;
        transition: background-color 0.3s ease, color 0.3s ease;
    }

    nav ul li a:hover {
        background-color: #ff7f50;
        color: #001f3f;
    }
}

/* Ensure smooth rendering on iOS Safari */
@media screen and (max-width: 1201px) {
    .header-content {
        flex-direction: column;
        align-items: center; /* Center items for mobile view */
    }
}

/* Footer Styles */
footer {
    padding: 30px 20px; /* Increased padding for better spacing */
    background-color: #001f3f;
    color: white;
    text-align: center;
    margin-top: 40px; /* Added margin at the top for separation */
}

/* Improved touch handling for iOS */
nav ul li a {
    -webkit-touch-callout: none; /* Disable callouts on long tap */
    -webkit-user-select: none; /* Disable text selection */
    user-select: none;
    touch-action: manipulation; /* Better touch handling */
}

/* Fix for 100vw issues on iOS */
body {
    overflow-x: hidden;
    max-width: 100%;
}

/* Hero Section */
.hero {
    background-color: #ff7f50;
    color: #001f3f;
    padding: 20px 20px; /* Increased padding for better impact */
    text-align: center;
    margin-bottom: 20px; /* Added margin for separation from next section */
}

.hero h2 {
    font-size: 36px;
    text-decoration: underline;
    margin-bottom: 20px; /* Increased margin for spacing */
}

.hero p {
    font-size: 24px;
    margin-bottom: 5px; /* Increased margin for spacing */
}

/* About, Services, and Contact Sections */
.about, .services, .contact {
    font-size: 24px;
    padding: 40px 40px; /* Increased padding for better separation between sections */
    text-align: center;
    margin-bottom: 10px; /* Added margin for spacing between sections */
}

.about h2, .services h2, .contact h2 {
    font-size: 36px;
    text-decoration: underline;
    color: #001f3f;
    margin-bottom: 20px; /* Increased margin for better spacing */
}

/* Container for Service Boxes */
.services-container {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
    flex-wrap: nowrap; /* Prevent wrapping on wide screens */
}

/* Service Boxes */
.service-box {
    background-color: #ff7f50;
    padding: 20px;
    padding-bottom: 40px; /* Added padding at the bottom for better spacing */
    border-radius: 5px;
    box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
    flex: 0 1 30%; /* Ensure 3 columns with equal width on wide screens */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* Responsive Service Boxes */
@media (max-width: 768px) {
    .services-container {
        flex-direction: column; /* Stack boxes in one column on narrow screens */
    }

    .service-box {
        flex: 1 1 100%; /* Ensure full width on narrow screens */
        margin-bottom: 30px; /* Increased margin for better spacing */
    }
}

/* Contact Form */
.contact form {
    max-width: 600px;
    width: 100%; /* Ensure full width on narrow screens */
    margin: 0 auto;
}

@media (min-width: 1024px) {
    .contact form {
        max-width: 33.33%; /* Take up the middle third of the screen on wide screens */
        margin-left: auto;
        margin-right: auto;
    }
}

.contact form label {
    display: block;
    margin-bottom: 10px;
    font-weight: bold;
}

.contact form input,
.contact form textarea {
    width: 100%;
    padding: 10px;
    margin-bottom: 20px;
    border: 1px solid #ddd;
    border-radius: 5px;
    font-size: 1rem;
    box-sizing: border-box;
}

/* Buttons */
.btn {
    font-family: 'EB Garamond', serif;
    font-weight: bold;
    background-color: #001f3f; /* Navy blue background */
    color: #ff7f50; /* Orange font */
    padding: 12px 25px; /* Adjusted padding for consistency */
    text-decoration: none;
    border-radius: 5px;
    border: none; /* Remove default button border */
    font-size: 18px;
    cursor: pointer; /* Change cursor to pointer */
    transition: background-color 0.3s ease; /* Smooth transition for hover effect */
}

.btn:hover {
    background-color: #ff7f50; /* Slightly lighter navy on hover */
    color: #001f3f; /* Orange font */
}

/* Text Styles */
.italic {
    font-style: italic;
}

.bold {
    font-weight: bold;
}

.text-md {
    font-size: 1.2rem;
}

/* Recent Projects Section */
.recent-projects {
    padding: 60px 20px; /* Padding for spacing */
    text-align: center; /* Center-align text */
    background-color: #f4f4f9; /* Light background color */
    margin-bottom: 20px; /* Margin at the bottom for spacing */
}

.recent-projects h2 {
    font-size: 36px;
    text-decoration: underline;
    color: #001f3f;
    margin-bottom: 40px; /* Space below the section title */
}

.projects-container {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
}

.project-box {
    flex: 1; /* Ensure equal width columns */
    text-align: center; /* Center-align text and images */
    max-width: 100%; /* Ensure the project box doesn't exceed full width */
    margin-bottom: 20px; /* Space between rows on small screens */
}

.project-img {
    width: 100%; /* Full width for the image */
    height: auto; /* Maintain aspect ratio */
    border-radius: 5px;
    box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
    margin-bottom: 10px; /* Space between image and text */
}

.project-description {
    font-size: 18px;
    color: #333;
    margin-top: 10px;
}

/* Responsive Project Boxes */
@media (max-width: 768px) {
    .projects-container {
        flex-direction: column; /* Stack boxes in one column on narrow screens */
    }

    .project-box {
        margin-bottom: 30px; /* Increased margin for better spacing */
    }
}
/* Call to Action Section */
.call-to-action {
    background-color: #a6a6a9;
    border-radius: 5px;
    box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
    color: #fff;
    text-align: center;
    padding: 60px 40px; /* Keep as is or adjust to 40px 40px for consistency */
    margin: 60px auto;   /* Remove side margins and center the section */
    max-width: 1200px;   /* Optional: Set maximum width to match .services-container */
}


.call-to-action h2 {
    font-size: 32px;
    margin-bottom: 40px;
}

.call-to-action p {
    font-size: 24px;
    margin-bottom: 30px;
}

.call-to-action .cta-button {
    background-color: #ff7f50; /* Navy blue */
    color: #fff;
    padding: 20px 20px;
    text-decoration: none;
    font-size: 18px;
    border-radius: 10px;
    transition: background-color 0.3s ease;
}

.call-to-action .cta-button:hover {
    background-color: #000; /* Darker navy on hover */
}