/* =========================================
   Naomi the Handywoman
   Part 1 – Foundation & Hero
========================================= */

:root{
    --background:#f7f7f5;
    --surface:#ffffff;
    --text:#222222;
    --muted:#666666;
    --border:#e6e6e6;
    --accent:#2d6a4f;
    --accent-dark:#1f4c38;
    --radius:18px;
    --shadow:0 12px 35px rgba(0,0,0,.08);
    --transition:.3s ease;
    --max-width:1200px;
}

/* RESET */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    background:var(--background);
    color:var(--text);
    line-height:1.7;
    overflow-x:hidden;
}

/* TYPOGRAPHY */

h1,h2,h3{
    font-weight:700;
    letter-spacing:-0.03em;
    line-height:1.1;
}

h1{
    font-size:clamp(3rem,6vw,5.5rem);
}

h2{
    font-size:clamp(2rem,4vw,3rem);
    margin-bottom:30px;
}

h3{
    font-size:1.35rem;
    margin-bottom:12px;
}

p{
    color:var(--muted);
    font-size:1.1rem;
}

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

img{
    display:block;
    width:100%;
}

section{
    padding:110px 8%;
}

.container{
    max-width:var(--max-width);
    margin:auto;
}

/* NAVIGATION */

header{
    position:fixed;
    width:100%;
    top:0;
    left:0;
    z-index:1000;
    backdrop-filter:blur(18px);
    background:rgba(247,247,245,.82);
    border-bottom:1px solid rgba(0,0,0,.05);
}

.navbar{
    max-width:var(--max-width);
    margin:auto;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:18px 30px;
}

.logo{
    font-size:1.25rem;
    font-weight:700;
    letter-spacing:-0.02em;
}

.nav-links{
    display:flex;
    gap:36px;
    list-style:none;
}

.nav-links a{
    position:relative;
    transition:var(--transition);
}

.nav-links a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-6px;
    width:0;
    height:2px;
    background:var(--accent);
    transition:var(--transition);
}

.nav-links a:hover{
    color:var(--accent);
}

.nav-links a:hover::after{
    width:100%;
}

.hamburger{
    display:none;
    border:none;
    background:none;
    font-size:2rem;
    cursor:pointer;
}

/* HERO */

.hero{
    min-height:100vh;
    display:grid;
    grid-template-columns:1.1fr 1fr;
    align-items:center;
    gap:70px;
    padding-top:130px;
}

.hero p{
    max-width:580px;
    margin:30px 0 45px;
    font-size:1.25rem;
}

.hero-buttons{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
}

.button{
    display:inline-block;
    padding:16px 34px;
    border-radius:999px;
    transition:var(--transition);
    font-weight:600;
}

.primary{
    background:var(--accent);
    color:white;
}

.primary:hover{
    background:var(--accent-dark);
    transform:translateY(-3px);
}

.secondary{
    border:1px solid var(--border);
    background:white;
}

.secondary:hover{
    transform:translateY(-3px);
    box-shadow:var(--shadow);
}

.hero-image{
    min-height:650px;
    border-radius:32px;
    background:
        linear-gradient(145deg,#ececec,#d8d8d8);
    box-shadow:var(--shadow);
    position:relative;
    overflow:hidden;
}

.hero-image::before{
    content:"YOUR PHOTO HERE";
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#888;
    letter-spacing:.2em;
    font-size:.9rem;
}

/* SECTION HEADINGS */

section h2{
    margin-bottom:20px;
}

.intro{
    max-width:700px;
    margin-bottom:60px;
}
/* =========================================
   Part 2 – Content Sections
========================================= */


/* ---------- ABOUT ---------- */

#about p{
    max-width:800px;
    font-size:1.15rem;
}


/* ---------- SERVICES ---------- */

.service-grid{

    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:30px;
    margin-top:50px;

}

.card{

    background:var(--surface);
    padding:36px;
    border-radius:var(--radius);
    border:1px solid var(--border);

    transition:var(--transition);

    box-shadow:0 8px 25px rgba(0,0,0,.04);

}

.card:hover{

    transform:translateY(-10px);

    box-shadow:var(--shadow);

}

.card h3{

    margin-bottom:15px;

}

.card p{

    font-size:1rem;

}


/* ---------- MY WORK ---------- */

.gallery{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));

    gap:32px;

    margin-top:55px;

}

.gallery-item{

    background:white;

    border-radius:24px;

    overflow:hidden;

    border:1px solid var(--border);

    transition:var(--transition);

}

.gallery-item:hover{

    transform:translateY(-8px);

    box-shadow:var(--shadow);

}

.placeholder{

    aspect-ratio:4/3;

    background:linear-gradient(
        135deg,
        #efefef,
        #d8d8d8
    );

    display:flex;

    align-items:center;

    justify-content:center;

    color:#888;

    letter-spacing:.15em;

    font-size:.8rem;

}

.placeholder::before{

    content:"PHOTO";

}

.gallery-item h3{

    padding:24px;

}


/* ---------- AREAS ---------- */

.areas-list{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));

    gap:18px;

    margin-top:45px;

    list-style:none;

}

.areas-list li{

    background:white;

    border:1px solid var(--border);

    border-radius:999px;

    padding:15px 24px;

    text-align:center;

    transition:var(--transition);

}

.areas-list li:hover{

    background:var(--accent);

    color:white;

    transform:translateY(-3px);

}


/* ---------- CONTACT ---------- */

#contact{

    text-align:center;

}

#contact h2{

    margin-bottom:20px;

}

#contact p{

    margin-bottom:45px;

}

.contact-link{

    display:block;

    font-size:1.3rem;

    font-weight:600;

    margin:16px auto;

    color:var(--accent);

    transition:var(--transition);

}

.contact-link:hover{

    color:var(--accent-dark);

    transform:scale(1.03);

}

#contact .container{

    background:white;

    padding:80px;

    border-radius:32px;

    box-shadow:var(--shadow);

}


/* ---------- FOOTER ---------- */

footer{

    padding:45px 20px;

    text-align:center;

    color:#888;

    border-top:1px solid var(--border);

    background:white;

}
/* =========================================
   Part 3 – Mobile, Animations & Polish
========================================= */

/* ---------- ANIMATIONS ---------- */

@keyframes fadeUp {

    from{
        opacity:0;
        transform:translateY(40px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }

}

.hero-content{

    animation:fadeUp .8s ease forwards;

}

.hero-image{

    animation:fadeUp 1s ease .2s forwards;

}

.card,
.gallery-item,
#about,
#areas,
#contact{

    animation:fadeUp .8s ease;

}


/* Floating hero image */

@keyframes float{

    0%{
        transform:translateY(0px);
    }

    50%{
        transform:translateY(-10px);
    }

    100%{
        transform:translateY(0px);
    }

}

.hero-image{

    animation:
        fadeUp 1s ease,
        float 8s ease-in-out infinite;

}


/* ---------- BUTTONS ---------- */

.button:active{

    transform:scale(.97);

}


/* ---------- GALLERY ---------- */

.gallery-item{

    cursor:pointer;

}

.gallery-item:hover .placeholder{

    transform:scale(1.05);

}

.placeholder{

    transition:.6s ease;

}


/* ---------- SCROLL OFFSET ---------- */

section{

    scroll-margin-top:100px;

}


/* ---------- MOBILE ---------- */

@media (max-width:900px){

.hero{

    grid-template-columns:1fr;
    text-align:center;
    gap:50px;

}

.hero p{

    margin-left:auto;
    margin-right:auto;

}

.hero-buttons{

    justify-content:center;

}

.hero-image{

    min-height:420px;

}

}


/* ---------- HAMBURGER ---------- */

@media (max-width:820px){

.hamburger{

    display:block;
    z-index:1001;

}

.nav-links{

    position:fixed;

    top:74px;

    right:-100%;

    width:280px;

    height:calc(100vh - 74px);

    background:white;

    flex-direction:column;

    align-items:flex-start;

    padding:40px;

    gap:28px;

    transition:.35s ease;

    box-shadow:-10px 0 40px rgba(0,0,0,.08);

}

.nav-links.active{

    right:0;

}

}


/* ---------- SMALL PHONES ---------- */

@media (max-width:600px){

section{

    padding:80px 7%;

}

.navbar{

    padding:18px;

}

.logo{

    font-size:1rem;

}

h1{

    font-size:2.8rem;

}

h2{

    font-size:2rem;

}

.hero p{

    font-size:1.05rem;

}

.button{

    width:100%;
    text-align:center;

}

#contact .container{

    padding:50px 30px;

}

.gallery{

    grid-template-columns:1fr;

}

.service-grid{

    grid-template-columns:1fr;

}

.areas-list{

    grid-template-columns:1fr 1fr;

}

}


/* ---------- DESKTOP POLISH ---------- */

@media (min-width:901px){

.card:hover{

    rotate:-1deg;

}

.gallery-item:nth-child(even):hover{

    transform:translateY(-10px) rotate(.6deg);

}

.gallery-item:nth-child(odd):hover{

    transform:translateY(-10px) rotate(-.6deg);

}

}


/* ---------- SELECTION ---------- */

::selection{

    background:var(--accent);
    color:white;

}


/* ---------- SCROLLBAR ---------- */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#efefef;

}

::-webkit-scrollbar-thumb{

    background:#bdbdbd;
    border-radius:999px;

}

::-webkit-scrollbar-thumb:hover{

    background:#999;

}
