:root {
    --primary: #1a2a6c;
    --accent: #b8860b;
    --white: #ffffff;
    --light-grey: #f4f7f6;
    --dark: #121212;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Montserrat', sans-serif; color: var(--dark); line-height: 1.6; background-color: var(--white); }

.container { width: 90%; max-width: 1200px; margin: 0 auto; }
.section-padding { padding: 80px 0; }

/* Header */
.main-header { background: var(--primary); padding: 20px 0; color: white; position: sticky; top: 0; z-index: 1000; }
.flex-nav { display: flex; justify-content: space-between; align-items: center; }
.logo { font-family: 'Playfair Display', serif; font-size: 1.8rem; color: white; text-decoration: none; letter-spacing: 2px; }
.logo span { color: var(--accent); }
.nav-links { list-style: none; display: flex; align-items: center; }
.nav-links li { margin-left: 25px; }
.nav-links a { color: #ccc; text-decoration: none; font-size: 0.9rem; text-transform: uppercase; transition: 0.3s; }
.nav-links a:hover, .nav-links a.active { color: var(--accent); }
.btn-cta { background: var(--accent); color: white !important; padding: 10px 20px; border-radius: 4px; font-weight: 600; }

/* Hero */
.hero { height: 80vh; display: flex; align-items: center; color: white; background-size: cover; background-position: center; }
.hero-content { max-width: 700px; }
.hero h1 { font-family: 'Playfair Display', serif; font-size: 3.5rem; margin-bottom: 20px; line-height: 1.1; }
.hero p { font-size: 1.2rem; margin-bottom: 30px; opacity: 0.9; }
.btn-primary { background: var(--accent); color: white; padding: 15px 35px; text-decoration: none; border-radius: 4px; font-weight: bold; display: inline-block; margin-right: 15px; }
.btn-secondary { background: transparent; border: 2px solid white; color: white; padding: 13px 35px; text-decoration: none; border-radius: 4px; display: inline-block; }

/* Features */
.features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: -60px; z-index: 10; position: relative; }
.feature-card { background: white; padding: 40px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); border-bottom: 5px solid var(--accent); text-align: center; }
.feature-card .icon { font-size: 3rem; margin-bottom: 20px; color: var(--primary); }

/* About & Contact Grid */
.about-flex, .contact-grid { display: flex; gap: 50px; align-items: center; }
.about-text, .contact-info, .contact-form { flex: 1; }
.about-img img { width: 100%; border-radius: 8px; box-shadow: 20px 20px 0 var(--primary); }
.page-title { background: var(--light-grey); padding: 60px 0; text-align: center; border-bottom: 1px solid #ddd; }

/* Form */
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; padding: 15px; margin-bottom: 15px; border: 1px solid #ddd; border-radius: 4px; font-family: inherit; }

/* Testimonials */
.testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.testi-card { background: var(--light-grey); padding: 30px; border-radius: 8px; font-style: italic; }

/* Footer */
.main-footer { background: var(--primary); color: white; padding-top: 60px; }
.footer-grid { display: flex; justify-content: space-between; padding-bottom: 40px; }
.footer-links a { color: white; margin-left: 20px; text-decoration: none; }
.footer-bottom { background: #111; padding: 20px 0; text-align: center; font-size: 0.8rem; color: #777; }

.menu-toggle { display: none; font-size: 2rem; background: none; border: none; color: white; cursor: pointer; }

@media (max-width: 900px) {
    .features, .about-flex, .contact-grid, .testimonial-grid { flex-direction: column; grid-template-columns: 1fr; }
    .nav-links { display: none; }
    .menu-toggle { display: block; }
    .hero h1 { font-size: 2.5rem; }
}