*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --primary:#0f2d3f;
  --secondary:#c9a24b;
  --light:#f7f5f0;
  --text:#2c2c2c;
  --muted:#6b6b6b;
  --white:#ffffff;
  --radius:8px;
}
body{
  font-family:'Lato',sans-serif;
  color:var(--text);
  line-height:1.6;
  background:var(--white);
}
h1,h2,h3{font-family:'Playfair Display',serif;color:var(--primary);}
.container{max-width:1180px;margin:0 auto;padding:0 24px;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;border-radius:var(--radius);}
.btn{
  display:inline-block;
  padding:14px 30px;
  border-radius:var(--radius);
  font-weight:700;
  cursor:pointer;
  transition:all .3s ease;
  border:2px solid transparent;
}
.btn--primary{background:var(--secondary);color:var(--primary);}
.btn--primary:hover{background:#b3903f;}
.btn--outline{border-color:var(--primary);color:var(--primary);}
.btn--outline:hover{background:var(--primary);color:var(--white);}
.btn--full{width:100%;text-align:center;border:none;}

/* Header */
.header{position:sticky;top:0;background:var(--white);box-shadow:0 2px 10px rgba(0,0,0,.06);z-index:100;}
.header__inner{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;}
.logo{font-family:'Playfair Display',serif;font-size:1.4rem;font-weight:700;color:var(--primary);}
.logo span{color:var(--secondary);}
.logo--footer{color:var(--white);}
.logo--footer span{color:var(--secondary);}
.nav{display:flex;gap:28px;}
.nav a{font-weight:700;color:var(--primary);transition:color .3s;}
.nav a:hover{color:var(--secondary);}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;}
.nav-toggle span{width:26px;height:3px;background:var(--primary);border-radius:2px;}

/* Hero */
.hero{background:linear-gradient(135deg,#0f2d3f,#183c52);padding:80px 0;}
.hero__inner{display:flex;align-items:center;gap:50px;}
.hero__text{flex:1;}
.hero__text h1{color:var(--white);font-size:2.6rem;margin-bottom:20px;}
.hero__text p{color:#dde5ea;margin-bottom:30px;font-size:1.1rem;}
.hero__image{flex:1;}

/* Stats */
.stats{background:var(--light);padding:40px 0;}
.stats__inner{display:flex;flex-wrap:wrap;justify-content:space-around;text-align:center;gap:20px;}
.stat strong{display:block;font-size:2rem;color:var(--secondary);font-family:'Playfair Display',serif;}
.stat span{color:var(--muted);font-size:.95rem;}

/* Section titles */
.section-title{text-align:center;font-size:2.2rem;margin-bottom:10px;}
.section-title--left{text-align:left;}
.section-subtitle{text-align:center;color:var(--muted);margin-bottom:50px;}

/* Services */
.services{padding:90px 0;}
.services__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:30px;}
.service-card{background:var(--light);padding:35px 28px;border-radius:var(--radius);transition:transform .3s;}
.service-card:hover{transform:translateY(-6px);box-shadow:0 10px 25px rgba(0,0,0,.08);}
.service-card__icon{font-size:2.2rem;margin-bottom:15px;}
.service-card h3{margin-bottom:12px;font-size:1.3rem;}
.service-card p{color:var(--muted);}

/* About */
.about{background:var(--light);padding:90px 0;}
.about__inner{display:flex;gap:60px;align-items:center;}
.about__image, .about__text{flex:1;}
.about__text p{color:var(--muted);margin-bottom:20px;}
.about__list{list-style:none;margin-bottom:28px;}
.about__list li{margin-bottom:10px;color:var(--text);}

/* Testimonials */
.testimonials{padding:90px 0;}
.testimonials__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:30px;}
.testimonial-card{background:var(--white);border:1px solid #e6e6e6;padding:30px;border-radius:var(--radius);}
.testimonial-card p{font-style:italic;color:var(--text);margin-bottom:18px;}
.testimonial-card strong{color:var(--secondary);}

/* CTA */
.cta{background:var(--primary);padding:70px 0;text-align:center;}
.cta h2{color:var(--white);margin-bottom:15px;}
.cta p{color:#dde5ea;margin-bottom:25px;}

/* Contact */
.contact{padding:90px 0;}
.contact__inner{display:flex;gap:60px;flex-wrap:wrap;}
.contact__info, .contact__form{flex:1;min-width:300px;}
.contact__details{list-style:none;margin:20px 0;}
.contact__details li{margin-bottom:12px;color:var(--text);}
.social-links{display:flex;gap:15px;flex-wrap:wrap;}
.social-links a{background:var(--light);padding:8px 16px;border-radius:20px;font-weight:700;font-size:.9rem;color:var(--primary);transition:background .3s;}
.social-links a:hover{background:var(--secondary);color:var(--white);}
.social-links--footer a{background:rgba(255,255,255,.08);color:var(--white);}
.social-links--footer a:hover{background:var(--secondary);}

.contact__form{background:var(--light);padding:35px;border-radius:var(--radius);}
.contact__form h3{margin-bottom:20px;}
.form-group{margin-bottom:18px;}
.form-group label{display:block;margin-bottom:6px;font-weight:700;font-size:.9rem;}
.form-group input, .form-group textarea{
  width:100%;padding:12px;border:1px solid #d3d3d3;border-radius:var(--radius);font-family:'Lato',sans-serif;font-size:1rem;
}
.form-group input:focus, .form-group textarea:focus{outline:2px solid var(--secondary);}
.form-success{margin-top:15px;color:#2e7d32;font-weight:700;}

.map iframe{width:100%;display:block;}

/* Footer */
.footer{background:var(--primary);color:#c6d2da;padding:60px 0 0;}
.footer__inner{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;}
.footer__col{flex:1;min-width:200px;}
.footer__col h4{color:var(--white);margin-bottom:15px;font-family:'Playfair Display',serif;}
.footer__col a{display:block;margin-bottom:8px;color:#c6d2da;}
.footer__col a:hover{color:var(--secondary);}
.footer__bottom{text-align:center;padding:25px 0;margin-top:30px;border-top:1px solid rgba(255,255,255,.1);font-size:.85rem;}

/* Legal page */
.legal-page{padding:80px 0;max-width:900px;margin:0 auto;}
.legal-page h1{margin-bottom:20px;}
.legal-page h2{margin:30px 0 12px;font-size:1.4rem;}
.legal-page p{color:var(--text);margin-bottom:10px;}
.legal-page .btn{margin-top:30px;}

/* Responsive */
@media (max-width:900px){
  .hero__inner, .about__inner{flex-direction:column;}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--white);flex-direction:column;padding:20px 24px;box-shadow:0 5px 10px rgba(0,0,0,.06);}
  .nav.open{display:flex;}
  .nav-toggle{display:flex;}
}
@media (max-width:600px){
  .hero__text h1{font-size:2rem;}
  .section-title{font-size:1.8rem;}
}