:root{
  --primary:#5F5E65; --primary-700:#4b4a50; --bg:#ffffff; --text:#1d1d1f; --muted:#6b6b70; --card:#f6f6f7;
  --radius:16px; --shadow:0 10px 30px rgba(0,0,0,.08);
}
*{box-sizing:border-box} html,body{margin:0;padding:0}
body{font-family:'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; color:var(--text); background:var(--bg); line-height:1.6}
.container{width:min(1120px, 92%); margin:0 auto}

.site-header{position:sticky; top:0; z-index:50; background:#fff; box-shadow:0 1px 0 rgba(0,0,0,.06)}
.nav{display:flex; align-items:center; justify-content:space-between; padding:.8rem 0}
.brand{display:flex; align-items:center; gap:.6rem; font-weight:700; color:var(--text); text-decoration:none}
.brand-logo{height:38px; width:auto; display:block}
.links a{color:var(--text); text-decoration:none; margin-left:1rem; font-weight:600}
.links .btn-primary{margin-left:1.25rem}

.btn-primary, .btn-secondary, .btn-ghost{display:inline-block; padding:.9rem 1.2rem; border-radius:999px; text-decoration:none; font-weight:700; transition:.25s ease}
.btn-primary{background:var(--primary); color:#fff} .btn-primary:hover{background:var(--primary-700); transform:translateY(-1px)}
.btn-secondary{background:#fff; color:var(--primary); border:2px solid var(--primary)} .btn-secondary:hover{background:var(--card); transform:translateY(-1px)}
.btn-ghost{background:transparent; color:var(--primary); border:1px solid var(--primary)} .btn-ghost:hover{transform:translateY(-1px)}

.hero{position:relative; min-height:85vh; display:flex; align-items:center; color:#fff; overflow:hidden; background:#5F5E65}
.hero-bg{position:absolute; inset:0; background-size:cover; background-position:center; filter:brightness(.35)}
.hero-overlay{position:absolute; inset:0; background:radial-gradient(transparent, rgba(0,0,0,.35) 60%)}
.hero-content{position:relative; z-index:2; padding:6rem 0 4rem; text-align:center}
.hero-logo{width:min(260px, 50vw); height:auto; filter:drop-shadow(0 10px 24px rgba(0,0,0,.25))}
.hero h1{font-family:'Playfair Display', serif; font-size: clamp(36px, 5.5vw, 64px); margin:.8rem 0 0}
.lead{opacity:.95; font-size:clamp(16px, 2.2vw, 20px); margin:.5rem 0 1.2rem}

.section{padding:4rem 0} .section.light{background:var(--card)}
.grid-2{display:grid; grid-template-columns:1.2fr .8fr; gap:2rem} @media (max-width: 900px){ .grid-2{grid-template-columns:1fr} }

.card{background:#fff; border-radius:var(--radius); padding:2rem; box-shadow:var(--shadow)} .card.highlight{border:2px solid var(--primary)}
.bullets{margin:1rem 0 0; padding:0 0 0 1.2rem; color:var(--muted)}

.services{display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; margin-top:1.6rem}
@media (max-width: 1000px){ .services{grid-template-columns:repeat(2,1fr)} } @media (max-width: 640px){ .services{grid-template-columns:1fr} }
.service{background:#fff; border-radius:var(--radius); padding:1.6rem; box-shadow:var(--shadow); transition:.3s ease; border:1px solid #ececf0}
.service:hover{transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,.10); border-color:#e2e2e8}
.service .icon{font-size:1.8rem; color:var(--primary); margin-bottom:.4rem}

.contact-list{display:grid; gap:.6rem; margin-top:.6rem}
.contact-item{display:inline-block; padding:.85rem 1rem; background:#fff; border-radius:12px; text-decoration:none; color:var(--text); border:1px solid #e7e7ea; transition:.25s ease}
.contact-item i{margin-right:.5rem; color:var(--primary)}
.contact-item:hover{border-color:var(--primary); color:var(--primary); transform:translateY(-1px)}

.map-card{background:#fff; border-radius:var(--radius); padding:0; box-shadow:var(--shadow); overflow:hidden}
.map-card iframe{width:100%; height:320px; border:0; display:block}

.site-footer{background:#0f0f11; color:#d6d6db; padding:1.2rem 0; margin-top:2rem}
.footer-inner{display:flex; align-items:center; justify-content:space-between}
.footer-links a{color:#d6d6db; text-decoration:none; margin-left:1rem} .footer-links a:hover{color:#fff}

@keyframes fadeInUp{ from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none} }
.appear{opacity:0; animation:fadeInUp .7s ease .1s forwards}
.ready .appear{opacity:1}
