:root{
  --bg:#171817;
  --panel:#202220;
  --panel2:#262826;
  --text:#f3f3ef;
  --muted:#b5b8b2;
  --line:#363936;
  --navy:#314673;
  --blue:#8fc9e8;
  --sage:#91a784;
  --cream:#f5f3ed;
  --max:1180px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;line-height:1.6}
img{max-width:100%;display:block}
a{color:inherit}
.site-header{
  position:sticky;top:0;z-index:30;height:78px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 max(22px,calc((100vw - var(--max))/2));
  background:rgba(23,24,23,.94);backdrop-filter:blur(14px);border-bottom:1px solid #272827
}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.brand div{display:flex;flex-direction:column;line-height:1.1}
.brand strong{font-size:16px}
.brand span{margin-top:4px;font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:#aaa}
nav{display:flex;align-items:center;gap:25px}
nav a{text-decoration:none;font-size:13px;font-weight:700;color:#d6d7d3}
.contact-pill{border:1px solid #666;border-radius:999px;padding:9px 15px}
.menu-toggle{display:none;background:none;border:0;color:white;font-size:26px}
.hero{
  width:min(var(--max),calc(100% - 44px));margin:auto;min-height:82vh;
  display:grid;grid-template-columns:1fr .9fr;gap:68px;align-items:center;padding:70px 0
}
.eyebrow{margin:0 0 14px;color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.17em}
.hero h1,.section-head h2,.municipal h2,.contact-section h2{
  font-family:Manrope,Inter,sans-serif;letter-spacing:-.04em;line-height:1.02
}
.hero h1{font-size:clamp(48px,6.6vw,88px);margin:0 0 24px}
.hero-text{font-size:19px;color:var(--muted);max-width:700px}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:999px;text-decoration:none;font-weight:800;font-size:13px;border:1px solid transparent}
.primary{background:var(--cream);color:#181818}
.outline{border-color:#686b68}
.hero-map{border-radius:28px;overflow:hidden;border:1px solid #343634;box-shadow:0 28px 70px rgba(0,0,0,.3)}
.hero-map img{width:100%;height:640px;object-fit:cover}
.intro-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 22px;display:flex;flex-wrap:wrap;gap:35px;justify-content:center;color:#8e938d;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.section{width:min(var(--max),calc(100% - 44px));margin:auto;padding:110px 0}
.section-head{max-width:780px;margin-bottom:50px}
.section-head h2,.municipal h2,.contact-section h2{font-size:clamp(40px,5vw,66px);margin:0 0 14px}
.section-head>p:last-child{color:var(--muted)}
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:22px}
.gallery figure{grid-column:span 5;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.gallery figure.feature{grid-column:span 7}
.gallery img{width:100%;height:390px;object-fit:contain;background:#111;padding:12px}
.gallery figcaption{padding:16px 18px 19px}
.gallery figcaption strong{display:block;font-size:16px}
.gallery figcaption span{font-size:12px;color:#949994}
.services-section{border-top:1px solid var(--line)}
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.service-grid article{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:26px;min-height:240px}
.service-grid article>span{font-size:11px;color:var(--blue);font-weight:800}
.service-grid h3{font-size:24px;margin:42px 0 10px}
.service-grid p{color:var(--muted);margin:0}
.municipal{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:start;border-top:1px solid var(--line)}
.municipal>div>p:not(.eyebrow){color:var(--muted);font-size:18px}
.municipal ul{padding-left:20px}
.municipal li{margin:12px 0;color:#d8d9d5}
.price-card{position:sticky;top:110px;background:var(--navy);border-radius:26px;padding:34px;box-shadow:0 25px 60px rgba(0,0,0,.22)}
.tiny{font-size:10px;font-weight:800;letter-spacing:.16em;color:#cbd6ef}
.price{font:800 clamp(58px,7vw,92px) Manrope;line-height:1}
.price span{font:600 15px Inter;color:#ced4df}
.price-card hr{border:0;border-top:1px solid rgba(255,255,255,.2);margin:22px 0}
.full{width:100%}
.contact-section{
  width:min(var(--max),calc(100% - 44px));margin:0 auto 28px;
  display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:end;
  background:#202220;border:1px solid var(--line);border-radius:28px;padding:55px
}
.contact-section p{color:var(--muted)}
.contact-box{background:#171817;border:1px solid var(--line);border-radius:20px;padding:24px}
.email{display:block;color:#a8d8f1;font-size:18px;font-weight:700;margin-bottom:18px;word-break:break-word}
footer{width:min(var(--max),calc(100% - 44px));margin:auto;padding:30px 0 45px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;color:#888d88;font-size:11px}
.footer-brand{display:flex;align-items:center;gap:10px}
.footer-brand img{width:40px;height:40px;border-radius:50%;object-fit:cover}
@media(max-width:860px){
  .menu-toggle{display:block}
  nav{display:none;position:absolute;top:78px;left:14px;right:14px;flex-direction:column;align-items:stretch;background:#222;border:1px solid #3a3a3a;border-radius:16px;padding:15px}
  nav.open{display:flex}
  nav a{padding:8px}
  .hero{grid-template-columns:1fr;text-align:center}
  .hero-map{max-width:680px;margin:auto}
  .hero-text{margin:auto}
  .actions{justify-content:center}
  .gallery figure,.gallery figure.feature{grid-column:span 6}
  .municipal,.contact-section{grid-template-columns:1fr}
  .price-card{position:static}
}
@media(max-width:620px){
  .brand div{display:none}
  .hero{padding:50px 0}
  .hero-map img{height:auto;max-height:560px}
  .section{padding:80px 0}
  .gallery{gap:14px}
  .gallery figure,.gallery figure.feature{grid-column:1/-1}
  .gallery img{height:auto;max-height:520px}
  .service-grid{grid-template-columns:1fr}
  .contact-section{padding:34px 24px}
  footer{flex-direction:column;align-items:flex-start}
}
