/* Hero con imagen de construcciones */
.hero{
  position:relative; min-height:68vh; display:grid; align-items:center;
  background:#0f1115; isolation:isolate;
}
.hero::before{
  content:""; position:absolute; inset:0;
  background: url("../img/construcciones/construcciones1.jpg") center/cover no-repeat;
  opacity:.28; filter:grayscale(.15) contrast(1.05); z-index:-2;
}
.hero::after{
  content:""; position:absolute; inset:0;
  background: radial-gradient(1200px 600px at 70% 20%, rgba(255,204,0,.18), transparent 60%),
              linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.65));
  z-index:-1;
}
.hero .grid{
  display:grid; gap:var(--s-5); grid-template-columns:1.1fr .9fr; padding: var(--s-6) 0;
}
.hero h1{margin:0 0 .5rem; font-size:clamp(2rem,4vw,3rem)}
.hero p{margin:0 0 var(--s-4); color:var(--muted)}
.hero .media{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--divider); }
.hero .media img{width:100%; display:block}

/* Secciones compartidas (igual que excavaciones) */
.stats{padding:var(--s-5) 0; background:var(--surface)}
.stats .row{display:grid; gap:1rem; grid-template-columns:repeat(4,1fr)}
.stat{background:var(--surface-2); border:1px solid var(--divider); border-radius:16px; padding:1.1rem 1rem; text-align:center}
.stat .n{font-size:clamp(1.6rem,3vw,2rem); font-weight:800}
.stat .l{color:var(--muted); font-size:.95rem}

.servicios{padding:var(--s-6) 0; background:var(--bg-2)}
.servicios .grid{display:grid; gap:var(--s-3); grid-template-columns:repeat(auto-fit, minmax(240px,1fr))}
.card{background:var(--surface); border:1px solid var(--divider); border-radius:16px; padding:var(--s-4); box-shadow:var(--shadow); transition:transform .2s ease, box-shadow .2s ease;}
.card:hover{transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,.35)}
.card h3{margin:.2rem 0 .4rem}
.card p{margin:0; color:var(--muted)}
.card i{font-size:1.8rem; color:var(--brand)}

.proceso{padding:var(--s-6) 0; counter-reset:s}
.steps{display:grid; gap:var(--s-3); grid-template-columns:repeat(auto-fit, minmax(240px,1fr))}
.step{background:var(--surface); border:1px solid var(--divider); border-radius:16px; padding:var(--s-4); position:relative}
.step::before{
  counter-increment:s; content: counter(s, decimal-leading-zero);
  position:absolute; top:-14px; left:-14px; background:var(--brand); color:var(--brand-contrast);
  border-radius:10px; font-weight:800; padding:.35rem .55rem; font-size:.9rem;
}
.proceso .note{text-align:center; color:var(--muted); margin-top:var(--s-3)}

.galeria{padding:var(--s-6) 0; background:var(--bg-2)}
.galeria .grid{display:grid; gap:var(--s-3); grid-template-columns:repeat(auto-fit, minmax(220px,1fr))}
.thumb{position:relative; overflow:hidden; border-radius:16px; border:1px solid var(--divider); background:var(--surface)}
.thumb img{width:100%; height:200px; object-fit:cover; display:block; transition:transform .25s ease, opacity .25s ease}
.thumb:hover img{transform:scale(1.04); opacity:.95}
.thumb .cap{position:absolute; inset:auto 0 0 0; padding:.55rem .7rem; color:#fff; background:linear-gradient(180deg, transparent, rgba(0,0,0,.7))}

.lb-backdrop{position:fixed; inset:0; background:rgba(0,0,0,.85); display:none; align-items:center; justify-content:center; z-index:1000; padding:1rem}
.lb-backdrop.open{display:flex}
.lb-img{max-width:min(92vw, 1280px); max-height:86vh; border-radius:16px; box-shadow:var(--shadow)}
.lb-close{position:absolute; top:1rem; right:1rem; background:var(--brand); color:var(--brand-contrast); border:0; border-radius:12px; font-weight:800; padding:.5rem .8rem; cursor:pointer}

.cta{padding:var(--s-6) 0; background:linear-gradient(90deg, rgba(255,204,0,.12), transparent)}
.cta .box{background:var(--surface); border:1px solid var(--divider); border-radius:16px; padding:var(--s-5); display:grid; gap:var(--s-3); grid-template-columns: 1fr auto}
.cta .actions{display:flex; gap:.7rem; flex-wrap:wrap}
@media (max-width: 820px){ .cta .box{grid-template-columns:1fr} }

/* Responsive */
@media (max-width: 960px){
  .hero { min-height: 56vh; }
  .hero .grid { padding: var(--s-5) 0; grid-template-columns:1fr; text-align:center; }
  .hero .media{ order:-1; }
}
@media (max-width: 900px){ .stats .row { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px){ .stats .row { grid-template-columns: 1fr; } }
@media (max-width: 600px){ .card, .step { padding: var(--s-3); border-radius: 14px; } }
.galeria .grid{ grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.thumb img{ height: clamp(160px, 32vw, 220px); }

/* ===== Hero animations igual que en Excavaciones ===== */
.reveal-word{display:inline-block; opacity:0; transform: translateY(14px) rotate(.2deg); filter: blur(2px);
  transition: transform .6s cubic-bezier(.2,.8,.2,1), opacity .6s ease, filter .6s ease; will-change: transform, opacity, filter;}
.is-revealed .reveal-word{opacity:1; transform:none; filter:blur(0);}
.hero h1.headline-underline{position:relative; display:inline-block;}
.hero h1.headline-underline::after{content:""; position:absolute; left:0; bottom:-6px; height:6px; width:0%; background: linear-gradient(90deg, rgba(255,204,0,.9), rgba(255,204,0,.3)); border-radius:999px; transition: width .7s cubic-bezier(.2,.8,.2,1) .2s;}
.is-revealed h1.headline-underline::after{ width:100%; }
.hero .media{ will-change: transform; transform: translateY(var(--hero-parallax, 0px)); }
@media (prefers-reduced-motion: reduce){
  .reveal-word{ transition:none !important; transform:none !important; filter:none !important; opacity:1 !important; }
  .hero .media{ transform:none !important; }
  .hero h1.headline-underline::after{ width:100% !important; transition:none !important; }
}
