:root {
  --green-dark: #1F3D1F;
  --green-main: #3E7C3A;
  --green-light: #E7EFE7;
  --text-dark: #2B2B2B;
  --white: #FFFFFF;
}

* { margin:0; padding:0; box-sizing:border-box; }

body {
  font-family: 'Inter', sans-serif;
  color: var(--text-dark);
}

.container {
  max-width: 1100px;
  margin: auto;
  padding: 0 20px;
}

.header {
  background: white;
  border-bottom: 1px solid #ddd;
}

.header-content {
  display:flex;
  justify-content:space-between;
  align-items:center;
  height:90px;
}

.logo {
  height:60px;
}

nav a {
  margin-left:20px;
  text-decoration:none;
  color:var(--text-dark);
  font-weight:600;
}

.btn {
  padding:10px 18px;
}

.btn-primary {
  background:var(--green-main);
  color:white;
}

.hero {
  padding:140px 0;
  background:
    linear-gradient(rgba(31,61,31,.85), rgba(31,61,31,.85)),
    url("../img/hero.jpg") center/cover no-repeat;
  color:white;
}

.section { padding:90px 0; }
.section-light { background:var(--green-light); }
.section-dark { background:var(--green-dark); color:white; }

.grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:20px;
}

.card {
  background:white;
  padding:25px;
}

.footer {
  text-align:center;
  padding:20px;
  background:#f4f4f4;
}


/* === HOME refinements (no redesign) === */

/* Unified vertical spacing */
.section { padding: 90px 0; }
@media (max-width: 768px) {
  .section { padding: 60px 0; }
}

/* Hero readability (slightly stronger overlay already inline) */
.hero {
  padding: 140px 0;
}
@media (max-width: 768px) {
  .hero {
    padding: 110px 0;
    text-align: center;
  }
}

/* Button consistency */
.btn {
  border-radius: 4px;
  transition: all .25s ease;
}
.btn-primary:hover {
  background: #2f6a33;
}

/* Image unification */
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.05);
  pointer-events: none;
}
.hero { position: relative; }



/* Header nav vertical alignment fix */
nav a {
  line-height: 90px;
}

/* Contact section button spacing fix */
#contacto .btn {
  margin-top: 14px;
  display: inline-block;
}

/* Mobile spacing improvement for Services cards */
@media (max-width: 768px) {
  #servicios .card {
    margin-bottom: 14px;
  }
}

/* Nosotros: paragraph spacing and justified text */
#nosotros p {
  margin-bottom: 18px;
  text-align: justify;
}

/* Footer spacing */
.footer .grid {
  margin-bottom: 10px;
}

/* Footer smaller font size */
.footer {
  font-size: 0.9rem;
}

/* Obras images */
#obras img {
  width: 100%;
  border-radius: 4px;
}
