/* --------------------
   1. Design Tokens
-------------------- */
:root {
    --bg-primary: #e9e0d2;
    --bg-secondary: #efe7dc;
    --text-main: #3a2f25;
    --accent: #6b4f3f;
    --accent-hover: #5a4234;
    --border-light: #ddd2c4;
    --white: #ffffff;

    --space-xs: 0.5rem;
    --space-sm: 1rem;
    --space-md: 2rem;
    --space-lg: 4rem;
}

/* --------------------
   2. Base & Reset
-------------------- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    /* Cleaned up font stack */
    font-family: "Times New Roman", Times, serif; 
    line-height: 1.6;
    color: var(--text-main);
    background-color: var(--bg-primary);
}

img {
    max-width: 100%;
    display: block; /* Removes weird gaps under images */
}

/* --------------------
   3. Typography
-------------------- */
h1, h2, h3 {
    font-family: "Times New Roman", serif;
    color: var(--text-main);
    line-height: 1.2;
}

h1 {
    font-size: 2.75rem;
    margin-bottom: var(--space-sm);
}

h2 {
    font-size: 2rem;
    margin-bottom: var(--space-sm);
}

p {
    max-width: 65ch; /* Optimal reading length */
    margin-bottom: 1rem;
}

a {
    text-decoration: none;
    color: inherit;
}

/* --------------------
   4. Navigation
-------------------- */
nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2rem 3rem;
    background-color: var(--bg-primary);
}

nav .logo {
    font-size: 1.25rem;
    font-weight: bold;
}

nav ul {
    list-style: none;
    display: flex;
    gap: 1.5rem;
}

nav a {
    font-size: 1.1rem;
}

nav a:hover {
    text-decoration: underline;
    color: var(--accent);
}

/* --------------------
   5. Hero Section
-------------------- */
.hero {
    background-color: var(--bg-primary);
    width: 100%;
    /* Use min-height so content isn't cut off on short screens */
    min-height: 95vh; 
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.hero-container {
    display: flex; /* Changed from inline-flex/flexbox */
    align-items: center; /* Vertically center items */
    justify-content: space-between;
    max-width: 1200px;
    width: 100%;
    gap: 4rem;
}

.hero-text {
    flex: 1; /* Takes up available space */
}

.hero-text h1 {
    font-size: 3rem;
    margin-bottom: 1.5rem;
}

.hero-text p {
    font-size: 1.25rem;
    margin-bottom: 2rem;
}

.hero-image {
    flex: 1; /* Takes up equal space to text */
    display: flex;
    justify-content: center;
}

.hero-image .hero-cat {
    max-width: 100%;
    height: auto;
    object-fit: contain;
    border-radius: 12px; /* Soften the edges */
}

/* --------------------
   6. Buttons
-------------------- */
.btn {
    display: inline-block;
    background-color: var(--accent);
    color: var(--white);
    padding: 0.75rem 1.5rem;
    border-radius: 4px;
    font-size: 1rem;
    transition: background 0.3s ease;
}

.btn:hover {
    background-color: var(--accent-hover);
}

/* --------------------
   7. About Section (Refactored)
-------------------- */
.about-section {
    background-color: var(--white);
    padding: 5rem 2rem;
}

.about-container {
    max-width: 1100px;
    margin: 0 auto;
    /* Using Grid for layout */
    display: grid;
    grid-template-columns: 1fr 1fr; /* Two equal columns */
    gap: 5rem;
    align-items: center;
}

.about-image {
    display: flex;
    justify-content: center;
    
}

.about-image img {
    width: 100%;
    max-width: 450px; /* Prevent it from getting too huge */
    border-radius: 20px;
    box-shadow: 0 12px 24px rgba(0,0,0,0.1); /* Adds subtle depth */
}

.about-text {
    /* No need for flex here, standard block flow is fine for text */
    text-align: left; 
}

.about-text p {
    font-size: 1.125rem; /* Equals 18px */
    line-height: 1.8;    /* A little extra breathing room between lines */
    margin-bottom: 1.5rem; /* More space between paragraphs for easier scanning */
}

/* --------------------
   8. Shop Links (Grid)
-------------------- */

.cat-section {
  background-color: var(--bg-primary);
  padding: 5rem 2rem;
}

.cat-container{
    max-width: 1100px;
    margin: 0rem auto;
    display: grid;
    grid-template-columns: 1fr 1fr;;
    gap: 5rem;  
    align-items: center;
   
   
}

.resident-img{
     display: flex;
    justify-content: center;

}
.cat-section img{
    width: 100%;
    max-width: 450px; /* Prevent it from getting too huge */
    border-radius: 20px;
    box-shadow: 0 12px 24px rgba(0,0,0,0.1); /* Adds subtle depth */
}

.resident-text{
   text-align: left;
   
}

.resident-text p{
    
    font-size: 1.125rem; /* Equals 18px */
    line-height: 1.8;    /* A little extra breathing room between lines */
    margin-bottom: 1.5rem; /* More space between paragraphs for easier scanning */
}


/* --------------------
   9. Footer
-------------------- */
footer {
    height: 20vh;
    background-color: var(--text-main);
    color: var(--bg-primary);
    text-align: center;
    padding: 2rem 1.5rem;
    width: 100%;
}

/* --------------------
   10. Responsive (Mobile)
-------------------- */
@media (max-width: 768px) {
    /* Stack the Hero */
    .hero-container {
        flex-direction: column-reverse; /* Text on top of image usually, or reverse if you want image first */
        text-align: center;
        gap: 2rem;
    }

    /* Stack the About Section */
    .about-container {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .cat-container {
        grid-template-columns: 1fr;
        text-align: center;
    }

    footer{
        grid-template-columns: 1fr;
        text-align: center;

    }

    

    /* Adjust Navigation */
    nav {
        flex-direction: column;
        gap: 1rem;
    }
    
    h1 {
        font-size: 2.25rem;
    }
}