/* HOME */
.hero {
  position: relative;
  min-height: 78vh;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 7.8rem 1rem 3rem;
}
.hero-bg { position: absolute; inset: 0; z-index: 0; }
.hero-bg img { width: 100%; height: 100%; object-fit: cover; }
.hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(135deg, rgba(45,52,54,0.72), rgba(45,52,54,0.56), rgba(45,52,54,0.82));
}
.hero-content {
  position: relative;
  z-index: 2;
  max-width: 1100px;
  text-align: center;
  color: var(--blanco);
}
.hero-label {
  display: block;
  color: var(--verde);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.42em;
  margin-bottom: 1.35rem;
}
.hero-title {
  font-family: var(--font-heading);
  font-weight: 800;
  line-height: 1.08;
  margin-bottom: 1.65rem;
}
.hero-title span { display: block; font-size: 1.85rem; }
.hero-title .accent { color: var(--verde); }
@media (min-width: 640px) { .hero-title span { font-size: 2.45rem; } }
@media (min-width: 768px) { .hero-title span { font-size: 2.75rem; } }
@media (min-width: 1024px) { .hero-title span { font-size: 3.05rem; } }
.hero-subtitle {
  max-width: 740px;
  margin: 0 auto 2rem;
  font-size: 0.95rem;
  color: rgba(255,255,255,0.72);
  line-height: 1.8;
}
.hero-buttons {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  justify-content: center;
  margin-bottom: 2.4rem;
}
@media (min-width: 640px) { .hero-buttons { flex-direction: row; } }
.hero-pillars {
  display: grid;
  grid-template-columns: 1fr;
  max-width: 920px;
  margin: 0 auto;
  background: rgba(37,47,49,0.88);
  border: 1px solid rgba(255,255,255,0.08);
}
@media (min-width: 768px) { .hero-pillars { grid-template-columns: repeat(3,1fr); } }
.pillar-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 1.1rem;
  color: rgba(255,255,255,0.82);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
@media (min-width: 768px) {
  .pillar-item { border-bottom: 0; border-right: 1px solid rgba(255,255,255,0.08); }
  .pillar-item:last-child { border-right: 0; }
}
.pillar-item i { color: var(--verde); font-size: 1.1rem; }

.services-section,
.projects-section {
  padding: 5rem 0;
  background: var(--crema);
}
.services-header {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  justify-content: space-between;
  margin-bottom: 3rem;
}
@media (min-width: 768px) { .services-header { flex-direction: row; align-items: end; } }
.services-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.35rem;
}
@media (min-width: 768px) { .services-grid { grid-template-columns: repeat(3,1fr); } }
.service-card {
  display: block;
  background: var(--blanco);
  border: 1px solid var(--border);
  padding: 2rem;
  min-height: 250px;
  transition: transform .35s, box-shadow .35s;
}
.service-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.07); }
.service-icon, .value-icon, .bim-value-icon, .contact-info-icon {
  width: 2.75rem; height: 2.75rem;
  display: flex;
  align-items: center; justify-content: center;
  background: var(--verde-claro);
  color: var(--verde);
  border-radius: 4px;
  margin-bottom: 1.5rem;
}
.service-card h3 {
  font-family: var(--font-heading);
  font-size: 1rem;
  margin-bottom: 0.9rem;
}
.service-card p {
  font-size: .86rem;
  color: var(--gris);
  line-height: 1.8;
}
.service-link {
  margin-top: 1.3rem;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--verde);
  font-weight: 600;
}

.bim-section {
  position: relative;
  padding: 5.5rem 0;
  background: var(--charcoal);
}
.bim-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
}
@media (min-width: 1024px) { .bim-grid { grid-template-columns: 1fr 1fr; } }
.bim-values {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 640px) { .bim-values { grid-template-columns: repeat(2,1fr); } }
.bim-value {
  display: flex;
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 4px;
}
.bim-value-icon { margin-bottom: 0; background: rgba(106,191,75,.15); }
.bim-value-text strong { display:block; color: var(--blanco); font-size:.9rem; }
.bim-value-text span { display:block; color: rgba(255,255,255,.46); font-size:.75rem; }
.bim-image-wrap { position: relative; }
.bim-image-wrap img { width: 100%; box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.bim-badge {
  position: absolute;
  right: -1rem;
  bottom: -1.5rem;
  background: var(--blanco);
  padding: 1.2rem 1.6rem;
  box-shadow: 0 10px 35px rgba(0,0,0,.15);
}
.bim-badge strong { display:block; color: var(--verde); font-size:1.4rem; font-family:var(--font-heading); }
.bim-badge span { display:block; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color: var(--gris); }

.about-section { padding: 5.5rem 0; background: var(--blanco); }
.about-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
}
@media (min-width: 1024px) { .about-grid { grid-template-columns: .9fr 1.1fr; } }
.about-image { position: relative; }
.about-image img { width:100%; aspect-ratio: 4/3; object-fit: cover; }
.about-badge {
  position:absolute;
  left:0; bottom:0;
  background: var(--verde);
  color: var(--blanco);
  padding: 1rem 1.5rem;
}
.about-badge strong { display:block; font-family:var(--font-heading); font-size:1.3rem; }
.about-badge span { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.values-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  margin-top:2rem;
}
@media (min-width: 768px) { .values-grid { grid-template-columns: repeat(2,1fr); } }
.value-card {
  display:flex;
  gap:1rem;
  background: var(--crema);
  border: 1px solid var(--border);
  padding: 1.1rem;
}
.value-icon { margin-bottom:0; flex-shrink:0; width:2.5rem; height:2.5rem; }
.value-card strong { display:block; font-family:var(--font-heading); margin-bottom:.35rem; }
.value-card span { display:block; font-size:.78rem; color:var(--gris); line-height:1.7; }

.projects-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:1.5rem;
}
@media (min-width:768px){ .projects-grid{ grid-template-columns: repeat(3,1fr); } }
.project-card {
  background: var(--blanco);
  border:1px solid var(--border);
  overflow:hidden;
}
.project-image {
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
}
.project-image img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.project-card:hover .project-image img { transform:scale(1.05); }
.project-category {
  position:absolute;
  top:1rem;
  left:1rem;
  background:rgba(255,255,255,.92);
  color:var(--verde);
  padding:.3rem .75rem;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:600;
}
.project-hover-btn {
  position:absolute;
  bottom:1rem;
  left:1rem;
  opacity:0;
  transform:translateY(8px);
  transition:.35s;
}
.project-card:hover .project-hover-btn { opacity:1; transform:translateY(0); }
.project-hover-btn a {
  display:inline-flex;
  background:var(--blanco);
  padding:.55rem .9rem;
  border-radius:3px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:600;
}
.project-body { padding:1.15rem; }
.project-body h3 { font-family:var(--font-heading); font-size:.92rem; }

.contact-split { display:grid; grid-template-columns:1fr; }
@media (min-width:1024px){ .contact-split{ grid-template-columns:1fr 1fr; } }
.contact-form-side { padding:5rem 1.5rem; background:var(--blanco); }
@media (min-width:768px){ .contact-form-side{ padding:6rem 4rem; } }
.contact-map-side { min-height:420px; position:relative; background:#eaeaea; }
.contact-map-side iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.contact-info-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  margin-top:2rem;
  padding-top:2rem;
  border-top:1px solid var(--border);
}
@media (min-width:640px){ .contact-info-grid{ grid-template-columns: repeat(2,1fr); } }
.contact-info-item { display:flex; align-items:center; gap:.75rem; color:var(--charcoal); }
.contact-info-icon { margin-bottom:0; flex-shrink:0; width:2.5rem; height:2.5rem; }
.contact-info-item .label { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--gris); }
.contact-info-item .value { display:block; font-size:.85rem; font-weight:600; }
