:root{--black:#0a0a0a;--white:#fafafa;--gray-100:#f5f5f5;--gray-200:#e5e5e5;--gray-300:#d4d4d4;--gray-500:#737373;--gray-700:#404040;--gray-900:#171717;--green:#2d5a27;--green-light:#e8f0e6;--font-sans:'DM Sans',system-ui,sans-serif;--font-serif:'Playfair Display',Georgia,serif;--radius:8px;--shadow:0 1px 3px rgba(0,0,0,.1);--shadow-lg:0 10px 30px rgba(0,0,0,.12);--container:1200px;--header-h:72px}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font-sans);color:var(--gray-900);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--font-serif);font-weight:600;line-height:1.2}
h1{font-size:clamp(2rem,5vw,3.5rem)}
h2{font-size:clamp(1.5rem,3vw,2.5rem)}
h3{font-size:clamp(1.1rem,2vw,1.5rem)}
.container{max-width:var(--container);margin:0 auto;padding:0 24px}
.content-narrow{max-width:800px;margin:0 auto}

/* Buttons */
.btn{display:inline-block;padding:12px 28px;border-radius:var(--radius);font-weight:600;font-size:14px;letter-spacing:.3px;transition:all .2s;border:2px solid transparent;cursor:pointer}
.btn-primary{background:var(--green);color:var(--white);border-color:var(--green)}
.btn-primary:hover{background:#1e4019}
.btn-outline{border-color:var(--gray-900);color:var(--gray-900)}
.btn-outline:hover{background:var(--gray-900);color:var(--white)}
.btn-outline-light{border-color:var(--white);color:var(--white)}
.btn-outline-light:hover{background:var(--white);color:var(--gray-900)}
.btn-sm{padding:8px 18px;font-size:13px}

/* Header */
.site-header{position:fixed;top:0;left:0;right:0;height:var(--header-h);background:var(--white);z-index:100;box-shadow:var(--shadow);display:flex;align-items:center}
.header-inner{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}
.site-logo img{height:44px;width:auto}
.logo-text{font-family:var(--font-serif);font-size:1.25rem;font-weight:700;color:var(--green)}
.nav-list{display:flex;list-style:none;gap:32px}
.nav-list a{font-size:14px;font-weight:500;color:var(--gray-700);transition:color .2s}
.nav-list a:hover,.nav-list .current-menu-item a{color:var(--green)}
.header-actions{display:flex;align-items:center;gap:16px}
.header-phone{font-size:13px;font-weight:600;color:var(--gray-700)}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;width:28px;height:20px;position:relative}
.nav-toggle span{display:block;width:100%;height:2px;background:var(--gray-900);position:absolute;left:0;transition:.3s}
.nav-toggle span:nth-child(1){top:0}.nav-toggle span:nth-child(2){top:9px}.nav-toggle span:nth-child(3){top:18px}

/* Hero */
.hero{position:relative;min-height:90vh;display:flex;align-items:center;justify-content:center;text-align:center;margin-top:var(--header-h);overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.hero-overlay{position:absolute;inset:0;background:rgba(10,10,10,.55)}
.hero-content{position:relative;z-index:2;color:var(--white);max-width:700px}
.hero-content h1{margin-bottom:16px}
.hero-content p{font-size:1.15rem;margin-bottom:32px;opacity:.9}
.hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* Sections */
.section{padding:80px 0}
.section-header{text-align:center;max-width:600px;margin:0 auto 48px}
.section-header p{color:var(--gray-500);margin-top:12px;font-size:1.05rem}
.section-cta{text-align:center;margin-top:40px}
.page-hero{padding:120px 0 48px;background:var(--gray-100);margin-top:var(--header-h)}
.page-hero h1{margin-top:8px}
.page-hero p{color:var(--gray-500);margin-top:12px;font-size:1.05rem}
.content-section{padding:60px 0}

/* Breadcrumbs */
.breadcrumbs{font-size:13px;color:var(--gray-500)}
.breadcrumbs a{color:var(--green)}
.breadcrumbs a:hover{text-decoration:underline}

/* Services Grid */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.service-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);padding:32px 24px;text-align:center;transition:all .2s}
.service-card:hover{box-shadow:var(--shadow-lg);border-color:var(--green);transform:translateY(-2px)}
.service-card h3{margin:12px 0 8px}
.service-card p{font-size:14px;color:var(--gray-500);line-height:1.5}

/* Portfolio Grid */
.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.portfolio-item{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:3/2}
.portfolio-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.portfolio-item:hover img{transform:scale(1.05)}
.portfolio-item-overlay{position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(0,0,0,.7));display:flex;flex-direction:column;justify-content:flex-end;padding:20px;color:var(--white);opacity:0;transition:opacity .3s}
.portfolio-item:hover .portfolio-item-overlay{opacity:1}
.portfolio-item-overlay h3{font-size:1.1rem;margin-bottom:4px}
.portfolio-item-overlay span{font-size:12px;opacity:.8}
.portfolio-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;justify-content:center}
.filter-btn{background:var(--gray-100);border:1px solid var(--gray-200);padding:8px 20px;border-radius:20px;font-size:13px;cursor:pointer;transition:all .2s}
.filter-btn.active,.filter-btn:hover{background:var(--green);color:var(--white);border-color:var(--green)}
.portfolio-cat{font-size:13px;color:var(--green);font-weight:500}
.placeholder-text{text-align:center;color:var(--gray-500);grid-column:1/-1;padding:60px 0}

/* About Teaser */
.about-teaser{background:var(--gray-100)}
.about-teaser-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.about-teaser-image img{border-radius:var(--radius)}
.about-teaser-content h2{margin-bottom:16px}
.about-teaser-content p{color:var(--gray-500);margin-bottom:16px}

/* Testimonials */
.testimonials{background:var(--green);color:var(--white)}
.testimonials .section-header h2{color:var(--white)}
.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.testimonial-card{background:rgba(255,255,255,.1);border-radius:var(--radius);padding:28px;border:1px solid rgba(255,255,255,.15)}
.testimonial-card p{font-style:italic;margin-bottom:12px;line-height:1.7}
.testimonial-card cite{font-size:13px;opacity:.8;font-style:normal}

/* CTA Section */
.cta-section{background:var(--gray-900);color:var(--white);text-align:center}
.cta-inner{max-width:600px;margin:0 auto}
.cta-inner h2{margin-bottom:12px}
.cta-inner p{opacity:.8;margin-bottom:28px}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:48px}
.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-group{margin-bottom:16px}
.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:4px;color:var(--gray-700)}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:1px solid var(--gray-300);border-radius:var(--radius);font-family:var(--font-sans);font-size:14px;transition:border .2s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--green)}
.contact-info{padding-top:20px}
.contact-detail{margin-bottom:20px}
.contact-detail strong{display:block;margin-bottom:4px}
.contact-detail a{color:var(--green)}
.alert{padding:14px 18px;border-radius:var(--radius);margin-bottom:20px;font-weight:500}
.alert-success{background:#d4edda;color:#155724}
.alert-error{background:#f8d7da;color:#721c24}

/* Blog */
.post-card{display:grid;grid-template-columns:300px 1fr;gap:24px;margin-bottom:32px;padding-bottom:32px;border-bottom:1px solid var(--gray-200)}
.post-card-image img{border-radius:var(--radius);width:100%;height:200px;object-fit:cover}
.post-card-content time{font-size:12px;color:var(--gray-500)}
.post-card-content h2{margin:8px 0 12px}
.post-card-content h2 a:hover{color:var(--green)}
.post-meta{font-size:13px;color:var(--gray-500);margin-top:8px}
.featured-image{margin-bottom:32px}
.featured-image img{border-radius:var(--radius);width:100%}
.single-post .content-narrow{font-size:1.05rem;line-height:1.8}
.single-post .content-narrow p{margin-bottom:1.5em}

/* Footer */
.site-footer{background:var(--gray-900);color:var(--gray-300);padding:60px 0 24px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px;margin-bottom:40px}
.footer-brand p{margin-top:12px;font-size:14px;line-height:1.6}
.footer-logo{font-family:var(--font-serif);font-size:1.2rem;font-weight:700;color:var(--white)}
.footer-col h4{color:var(--white);font-family:var(--font-sans);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px}
.footer-col a{display:block;font-size:14px;color:var(--gray-300);margin-bottom:8px;transition:color .2s}
.footer-col a:hover{color:var(--white)}
.footer-col p{font-size:14px}
.footer-social{display:flex;gap:12px;margin-top:16px}
.footer-social a{color:var(--gray-300);transition:color .2s}
.footer-social a:hover{color:var(--white)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:20px;font-size:13px;color:var(--gray-500);text-align:center}

/* Mobile */
@media(max-width:768px){
    .nav-list,.header-actions .header-phone{display:none}
    .nav-toggle{display:block}
    .main-nav.open{display:block;position:absolute;top:var(--header-h);left:0;right:0;background:var(--white);box-shadow:var(--shadow-lg);padding:16px 24px}
    .main-nav.open .nav-list{display:flex;flex-direction:column;gap:16px}
    .services-grid,.testimonial-grid{grid-template-columns:1fr}
    .portfolio-grid{grid-template-columns:1fr 1fr}
    .about-teaser-grid,.contact-grid{grid-template-columns:1fr}
    .post-card{grid-template-columns:1fr}
    .footer-grid{grid-template-columns:1fr 1fr;gap:24px}
    .hero{min-height:70vh}
    .contact-form .form-row{grid-template-columns:1fr}
}
