:root{
  --red:#d71920;
  --red-dark:#a70f14;
  --black:#111214;
  --gray:#666d75;
  --light:#f5f5f3;
  --white:#fff;
  --line:#e7e7e3;
  --max:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Manrope,Arial,sans-serif;color:var(--black);background:#fff;line-height:1.6}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.container{width:min(calc(100% - 40px),var(--max));margin:auto}

.topbar{position:relative;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,0,0,.06)}
.nav{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand img{width:250px;height:auto}
.menu{display:flex;gap:28px;font-size:.95rem;font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 26px;border-radius:8px;font-weight:800;transition:.25s;text-align:center}
.btn-header,.btn-primary{background:var(--red);color:#fff}
.btn-header:hover,.btn-primary:hover{background:var(--red-dark);transform:translateY(-2px)}
.btn-outline{border:1.5px solid rgba(255,255,255,.55);color:#fff;background:transparent}
.btn-outline:hover{background:rgba(255,255,255,.1)}
.full-btn{width:100%}

.hero{position:relative;min-height:760px;display:flex;align-items:center;background:url('assets/capa-site.png') center/cover no-repeat;color:#fff}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,7,7,.84) 0%,rgba(7,7,7,.56) 48%,rgba(7,7,7,.20) 100%)}
.hero-content{position:relative;z-index:2;padding:90px 0 100px;max-width:780px}
.eyebrow,.section-label{text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;font-weight:800;color:var(--red);margin-bottom:16px}
.eyebrow{color:#ff8185}
.hero h1,.section h2{font-family:Montserrat,Manrope,sans-serif;line-height:1.04;margin:0;letter-spacing:-.04em}
.hero h1{font-size:clamp(3rem,6vw,5.2rem)}
.hero p{font-size:1.12rem;max-width:640px;color:rgba(255,255,255,.88);margin:24px 0 30px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-points{display:flex;flex-wrap:wrap;gap:18px;margin-top:26px;font-size:.93rem;color:rgba(255,255,255,.86);font-weight:700}
.hero-points span{position:relative;padding-left:18px}
.hero-points span:before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;background:var(--red);transform:rotate(45deg)}

.section{padding:80px 0}
.section h2{font-size:clamp(2rem,4vw,3.4rem)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:34px}
.section-head.light p{color:#b7bbc1}
.section-head p{max-width:420px;color:var(--gray);margin:0}
.services{background:var(--light)}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.service-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;min-height:168px}
.service-card h3{margin:0 0 10px;font-size:1.18rem;line-height:1.25}
.service-card p{margin:0;color:var(--gray);font-size:.96rem}

.projects{background:#111214;color:#fff}
.compact-gallery{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:18px}
.project-card{position:relative;overflow:hidden;border-radius:14px;min-height:290px;margin:0;background:#222}
.project-card.large-card{grid-row:span 2;min-height:598px}
.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.project-card:hover img{transform:scale(1.04)}
.project-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.78),transparent 60%)}
.project-card figcaption{position:absolute;z-index:2;left:22px;right:22px;bottom:20px}
.project-card strong{display:block;font-size:1.16rem;line-height:1.2}
.project-card span{display:block;color:#d4d8dd;font-size:.88rem}

.contact-grid{display:grid;grid-template-columns:360px 1fr;gap:22px;align-items:stretch}
.contact-card{background:var(--light);border:1px solid var(--line);border-radius:14px;padding:28px}
.contact-card p{margin:0 0 16px;color:#4f555d}
.instagram-link{color:var(--red);font-weight:800}
.instagram-link:hover{text-decoration:underline}
.map-frame{overflow:hidden;border-radius:14px;min-height:400px;border:1px solid var(--line);box-shadow:0 14px 34px rgba(0,0,0,.08)}
.map-frame iframe{display:block;width:100%;height:100%;min-height:400px;border:0}

footer{padding:22px 0 34px;background:#fff;border-top:1px solid var(--line)}
.footer-content{text-align:center}
.footer-content p{margin:0;color:#666d75}
.whatsapp-float{position:fixed;right:18px;bottom:18px;z-index:60;background:#25d366;color:#fff;border-radius:999px;padding:14px 20px;font-weight:800;box-shadow:0 10px 28px rgba(0,0,0,.25)}

@media(max-width:1024px){
  .compact-gallery{grid-template-columns:1fr 1fr}
  .project-card.large-card{grid-row:span 1;grid-column:span 2;min-height:380px}
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .contact-grid{grid-template-columns:1fr}
}

@media(max-width:760px){
  .container{width:min(calc(100% - 28px),var(--max))}
  .nav{min-height:74px;flex-wrap:wrap;padding:10px 0}
  .brand img{width:200px}
  .menu{width:100%;order:3;justify-content:center;gap:18px;font-size:.9rem}
  .btn-header{width:100%}
  .hero{min-height:640px;background-position:center center}
  .hero h1{font-size:2.6rem}
  .hero p{font-size:1rem}
  .section{padding:62px 0}
  .service-grid,.compact-gallery{grid-template-columns:1fr}
  .project-card.large-card{grid-column:span 1;min-height:300px}
  .map-frame,.map-frame iframe{min-height:320px}
  .whatsapp-float{right:14px;bottom:14px}
}
