/* ==================================== */
/* 1. CSS Reset & Base         */
/* ==================================== */

/* A simple reset to remove default browser styling */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box; /* Ensures padding and borders don't affect element's total width/height */
}

/* Define global variables for colors, fonts, etc. */
/* This makes it easy to change your site's theme later */
:root {
    --primary-color: #2c2c2c; /* A dark gray for text */
    --secondary-color: #f8f8f8; /* A light gray for backgrounds */
    --accent-color: #a00; /* A red accent for highlights (can be your brand color) */
    --font-family-body: 'Arial', sans-serif;
    --font-family-heading: 'Helvetica Neue', sans-serif;
    --max-width: 1100px; /* Max width for your main content */
}

html {
    scroll-behavior: smooth; /* Smooth scrolling for anchor links */
}

body {
    font-family: var(--font-family-body);
    color: var(--primary-color);
    background-color: #fff;
    line-height: 1.6;
}

/* ==================================== */
/* 2. General Styles           */
/* ==================================== */

/* ==================================== */
/* 2. General Styles (continued) / Buttons */
/* ==================================== */

.btn {
    display: inline-block; /* Allows padding and margin, but keeps it inline with text flow */
    background-color: var(--accent-color); /* Uses your defined accent color */
    color: #fff; /* White text for contrast */
    padding: 0.8rem 2rem; /* Vertical and horizontal padding */
    border-radius: 5px; /* Slightly rounded corners */
    text-transform: uppercase; /* All caps, like on the reference site */
    font-weight: bold;
    font-size: 1rem;
    letter-spacing: 1px;
    transition: background-color 0.3s ease, transform 0.2s ease; /* Smooth transition for hover effects */
    border: none; /* Remove default button border */
    cursor: pointer; /* Indicate it's clickable */
}

.btn:hover {
    background-color: #8a0000; /* A slightly darker shade of your accent color on hover */
    transform: translateY(-2px); /* Subtle lift effect on hover */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Subtle shadow on hover */
}

/* If you have a primary button variant (like for the contact form submit) */
.primary-btn {
    background-color: var(--primary-color); /* Or a different color if desired */
}

.primary-btn:hover {
    background-color: #000; /* Darker on hover */
}

/* Styles for a container to center content on the page */
.container {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 2rem;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-family-heading);
    font-weight: bold;
    text-transform: uppercase;
    line-height: 1.2;
    margin-bottom: 1rem;
}

h2 {
    font-size: 2.5rem;
    text-align: center;
    margin-top: 2rem;
    margin-bottom: 2rem;
}

p {
    margin-bottom: 1rem;
}

a {
    text-decoration: none;
    color: var(--primary-color);
}

img {
    max-width: 100%;
    height: auto;
    display: block; /* Removes any default spacing below the image */
}

/* ==================================== */
/* 3. Header & Nav            */
/* ==================================== */

header {
    background-color: #fff;
    padding: 1.5rem 0;
    position: sticky; /* Makes the header stick to the top */
    top: 0;
    z-index: 1000;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

header .container {
    display: flex;
    justify-content: space-between; /* Pushes logo to one side, nav to the other */
    align-items: center;
}

.logo a {
    font-size: 1.5rem;
    font-weight: bold;
    text-transform: uppercase;
}

nav ul {
    list-style: none;
    display: flex; /* Use flexbox for horizontal navigation links */
    gap: 2rem; /* Adds space between nav items */
}

nav a {
    font-size: 1rem;
    font-weight: bold;
    letter-spacing: 1px;
    padding-bottom: 0.25rem;
    position: relative;
    transition: color 0.3s ease;
}

.header-logo {
    max-height: 50px; /* This is what we'll change */
    width: auto;     /* This is what we'll change */
    display: block;
}

nav a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--accent-color);
    transition: width 0.3s ease;
}

nav a:hover {
    color: var(--accent-color);
}

nav a:hover::after {
    width: 100%;
}

/* ==================================== */
/* 4. Hero Section & Intro      */
/* ==================================== */

.hero {
    height: 80vh; /* Set a height to ensure it's a prominent block */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background-image: url('1.jpg'); /* Replace with your image */
    background-size: cover;
    background-position: center;
    color: #fff;
    position: relative;
    padding: 2rem;
}

.hero::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4); /* Dark overlay for better text readability */
}

.hero-content {
    z-index: 1; /* Puts the text on top of the overlay */
}

.hero h1 {
    font-size: 4rem;
    margin-bottom: 1rem;
}

.hero p {
    font-size: 1.25rem;
}

/* ==================================== */
/* 5. Main Content Sections    */
/* ==================================== */

.section {
    padding: 4rem 0;
}

#about, #services {
    text-align: center;
}

.cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); /* Responsive grid */
    gap: 2rem;
    margin-top: 2rem;
}

.card {
    text-align: center;
    padding: 2rem;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    background-color: var(--secondary-color);
    transition: transform 0.3s ease;
}

.card:hover {
    transform: translateY(-5px);
}

/* ==================================== */
/* 6. Portfolio Section        */
/* ==================================== */

#portfolio {
    background-color: var(--secondary-color);
}

.portfolio-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 1rem;
}

.portfolio-item {
    position: relative;
    overflow: hidden;
}

.portfolio-item img {
    width: 100%;
    height: 350px;
    object-fit: cover; /* Ensures images fill their container without stretching */
    transition: transform 0.3s ease;
}

.portfolio-item:hover img {
    transform: scale(1.05);
}

/* ==================================== */
/* 7. Footer               */
/* ==================================== */

footer {
    background-color: var(--primary-color);
    color: #fff;
    text-align: center;
    padding: 2rem 0;
}

footer .container {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.social-links a {
    color: #fff;
    margin: 0 1rem;
    font-size: 1.5rem;
}

.social-links a:hover {
    color: var(--accent-color);
}

/* ==================================== */
/* 8. Media Queries (Responsive Design) */
/* ==================================== */

/* Styles for smaller screens (e.g., mobile phones) */
@media (max-width: 768px) {
    h1 {
        font-size: 2.5rem;
    }

    h2 {
        font-size: 2rem;
    }

    .hero {
        height: 50vh;
    }

    header .container {
        flex-direction: column;
        text-align: center;
    }

    nav ul {
        margin-top: 1rem;
        flex-direction: column; /* Stacks nav links vertically */
        gap: 0.5rem;
    }
}
/* ==================================== */
/* 8. Contact Section                   */
/* ==================================== */

.contact-form {
    width: 100%;
    max-width: 500px;
    margin: 0 auto; /* Center the form */
    padding: 2rem;
    background-color: var(--secondary-color);
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.contact-form .form-group { /* Added a class for form groups */
    margin-bottom: 1rem;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
    width: 100%;
    padding: 0.8rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-family: var(--font-family-body); /* Ensure font consistency */
    font-size: 1rem;
}

.contact-form textarea {
    resize: vertical; /* Allow vertical resizing of textarea */
}