:root {
  --rojo:      #C0202A;
  --rojo2:     #9C1920;
  --azul:      #1B2A5E;
  --azul2:     #0F1A3E;
  --azul3:     #253470;
  --blanco:    #FFFFFF;
  --gris:      #8A8E96;
  --grisclaro: #F0F2F5;
  --dark:      #111318;
  --dark2:     #181C24;
  --acero:     #D0D4DB;
}

/* ─── RESET ─── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  background:var(--dark);
  color:var(--blanco);
  font-family:'Source Sans 3', sans-serif;
  overflow-x:hidden;
}

/* ═══════════════════════════════
   NAV — mobile first
   ═══════════════════════════════ */
nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 1.2rem; height:60px;
  background:var(--blanco);
  border-bottom:3px solid var(--rojo2);
}
.nav-logo img { height:50px; display:block; }

.nav-links {
  display:flex !important;
  flex-direction:column;
  position:fixed; top:0; right:0;
  width:min(300px, 80vw); height:100vh;
  background:var(--blanco);
  padding:90px 2rem 2rem; gap:0;
  z-index:99;
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.4,0,.2,1);
  box-shadow:-4px 0 32px rgba(0,0,0,.25);
  overflow-y:auto;
  list-style:none;
}
.nav-links.open { transform:translateX(0); }
.nav-links li { border-bottom:1px solid rgba(0,0,0,.07); }
.nav-links li:last-child { border-bottom:none; }
.nav-links a {
  display:block; padding:1rem .5rem;
  font-size:.9rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--dark2); text-decoration:none;
  transition:color .2s;
}
.nav-links a:hover { color:var(--rojo); }

.nav-cta { display:none; }
.nav-cta-mobile { margin-top:1.5rem; }
.nav-cta-mobile .btn-rojo { display:block !important; text-align:center; padding:.9rem 1.5rem; }

.nav-hamburger {
  display:flex;
  flex-direction:column; justify-content:center; align-items:center; gap:5px;
  width:44px; height:44px;
  background:none; border:none; cursor:pointer; padding:6px; z-index:110; flex-shrink:0;
}
.nav-hamburger span {
  display:block; width:24px; height:2px; background:var(--dark2);
  transition:transform .3s ease, opacity .3s ease, width .3s ease;
  transform-origin:center;
}
.nav-hamburger.active span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-hamburger.active span:nth-child(2) { opacity:0; width:0; }
.nav-hamburger.active span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

.nav-overlay {
  display:none; position:fixed; inset:0;
  background:rgba(0,0,0,.55); z-index:98; opacity:0; transition:opacity .3s ease;
}
.nav-overlay.active { display:block; opacity:1; }

/* ═══════════════════════════════
   BUTTONS
   ═══════════════════════════════ */
.btn-rojo {
  background:var(--rojo); color:var(--blanco);
  padding:.85rem 1.8rem;
  font-family:'Oswald', sans-serif; font-size:.82rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; text-decoration:none;
  transition:background .2s, transform .15s; display:inline-block;
}
.btn-rojo:hover { background:var(--rojo2); transform:translateY(-2px); }
.btn-outline {
  border:2px solid rgba(255,255,255,.3); color:var(--blanco);
  padding:.85rem 1.8rem;
  font-family:'Oswald', sans-serif; font-size:.82rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; text-decoration:none;
  transition:border-color .2s, transform .15s; display:inline-block;
}
.btn-outline:hover { border-color:var(--blanco); transform:translateY(-2px); }

/* ═══════════════════════════════
   SECTIONS — mobile base
   ═══════════════════════════════ */
section { padding:4rem 1.2rem; }
.section-tag {
  font-family:'Oswald', sans-serif; font-size:.72rem;
  letter-spacing:.4em; text-transform:uppercase;
  color:var(--rojo); margin-bottom:.7rem;
}
h2 {
  font-family:'Oswald', sans-serif;
  font-size:clamp(2rem, 8vw, 4.5rem);
  font-weight:700; letter-spacing:.03em;
  color:var(--blanco); line-height:.95; margin-bottom:1.5rem;
}
.divider { width:50px; height:3px; background:var(--rojo); margin-bottom:2rem; }
.red { color:var(--rojo); }

/* ═══════════════════════════════
   HERO — mobile base
   ═══════════════════════════════ */
#hero {
  min-height:100vh;
  display:flex; align-items:flex-end;
  padding:80px 1.2rem 4rem;
  position:relative; overflow:hidden;
  background:var(--azul2);
}
.hero-img {
  position:absolute; inset:0; z-index:0;
  background:url('../img/hero_image.webp') center 60% / cover no-repeat;
}
.hero-bg {
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(to right, rgba(8,13,28,.93) 0%, rgba(8,13,28,.78) 55%, rgba(8,13,28,.40) 100%),
    linear-gradient(to top,   rgba(0,0,0,.80)   0%, transparent 55%);
}
.hero-stripe2 {
  position:absolute; bottom:0; left:0; right:0; height:6px;
  background:linear-gradient(90deg,var(--rojo) 0%,var(--rojo) 33.3%,var(--blanco) 33.3%,var(--blanco) 66.6%,var(--azul) 66.6%,var(--azul) 100%);
  z-index:3;
}
.hero-grid {
  position:absolute; inset:0; z-index:1;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:60px 60px;
}
.hero-deco {
  position:absolute; right:4%; top:50%; transform:translateY(-50%);
  font-family:'Oswald', sans-serif;
  font-size:clamp(5rem, 20vw, 16rem);
  color:rgba(255,255,255,.035); letter-spacing:.05em;
  white-space:nowrap; z-index:1; user-select:none; line-height:1;
}
.hero-content { position:relative; z-index:2; max-width:780px; }
.hero-eyebrow {
  font-family:'Oswald', sans-serif; font-size:.72rem;
  letter-spacing:.35em; text-transform:uppercase;
  color:var(--acero); margin-bottom:1.2rem;
  display:flex; align-items:center; gap:.8rem;
}
.hero-eyebrow::before { content:''; width:36px; height:2px; background:var(--rojo); }
h1 {
  font-family:'Oswald', sans-serif;
  font-size:clamp(3rem, 12vw, 8.5rem);
  font-weight:700; line-height:.9; letter-spacing:.02em;
  color:var(--blanco); margin-bottom:1.4rem;
}
h1 span.red { color:var(--rojo); }
.hero-sub {
  font-size:.95rem; font-weight:300; line-height:1.75;
  color:rgba(255,255,255,.6); max-width:500px; margin-bottom:2.4rem;
}
.hero-ctas { display:flex; gap:1rem; flex-wrap:wrap; }
.hero-stats { display:none; }

/* ═══════════════════════════════
   NOSOTROS — mobile base
   ═══════════════════════════════ */
#nosotros { background:var(--dark2); display:grid; grid-template-columns:1fr; gap:3rem; }
.about-text p { font-size:.95rem; line-height:1.85; color:rgba(255,255,255,.65); margin-bottom:1.2rem; }
.about-quote {
  padding:1.5rem 1.8rem; border-left:4px solid var(--rojo);
  background:rgba(192,32,42,.07);
  font-size:1rem; font-weight:600; font-style:italic;
  color:var(--blanco); line-height:1.55; margin-top:2rem;
}
.kpi-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(255,255,255,.08); margin-top:2rem; }
.kpi-box { background:var(--dark); padding:1.5rem; }
.kpi-num { font-family:'Oswald', sans-serif; font-size:2.6rem; font-weight:700; color:var(--rojo); line-height:1; }
.kpi-label { font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.4); margin-top:.3rem; }
.bandera { display:flex; height:6px; margin-top:2rem; }
.bandera div { flex:1; }

/* ═══════════════════════════════
   SERVICIOS — mobile base
   ═══════════════════════════════ */
#servicios { background:var(--dark); }
.services-header { display:flex; flex-direction:column; gap:1rem; align-items:flex-start; margin-bottom:2.5rem; }
.services-desc { font-size:.9rem; color:rgba(255,255,255,.5); line-height:1.7; }
.services-grid { display:grid; grid-template-columns:1fr; gap:1px; background:rgba(255,255,255,.07); }
.service-card {
  background:var(--dark2); padding:2rem 1.6rem; position:relative; overflow:hidden;
  transition:background .3s;
}
.service-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--azul); transition:background .3s;
}
.service-card:hover { background:rgba(27,42,94,.25); }
.service-card:hover::before { background:var(--rojo); }
.service-num { font-family:'Oswald', sans-serif; font-size:3rem; font-weight:700; color:rgba(255,255,255,.05); line-height:1; margin-bottom:.6rem; }
.service-card h3 { font-family:'Oswald', sans-serif; font-size:1.1rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--blanco); margin-bottom:.7rem; }
.service-card p { font-size:.88rem; color:rgba(255,255,255,.5); line-height:1.7; }
.service-icon { font-size:1.6rem; margin-bottom:.7rem; }

/* ═══════════════════════════════
   MAQUINARIAS — mobile base
   ═══════════════════════════════ */
#maquinarias { background:var(--azul2); position:relative; overflow:hidden; }
#maquinarias::after {
  content:''; position:absolute; top:0; right:0; width:35%; height:100%;
  background:rgba(255,255,255,.02);
  clip-path:polygon(15% 0,100% 0,100% 100%,0 100%);
  pointer-events:none;
}
.fleet-layout { display:grid; grid-template-columns:1fr; gap:2rem; align-items:start; }
.fleet-tabs { display:flex; flex-direction:column; border:1px solid rgba(255,255,255,.12); }
.fleet-tab {
  padding:1rem 1.4rem;
  font-family:'Oswald', sans-serif; font-size:.8rem; font-weight:500;
  letter-spacing:.15em; text-transform:uppercase;
  color:rgba(255,255,255,.5); cursor:pointer;
  border-bottom:1px solid rgba(255,255,255,.08); transition:all .2s; user-select:none;
}
.fleet-tab:last-child { border-bottom:none; }
.fleet-tab.active, .fleet-tab:hover { background:var(--rojo); color:var(--blanco); padding-left:2rem; }
.fleet-list { display:none; }
.fleet-list.active { display:block; }
.fleet-items { display:grid; grid-template-columns:1fr; gap:.6rem; }
.fleet-item {
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
  padding:.85rem 1rem; font-size:.85rem; color:rgba(255,255,255,.7);
  display:flex; align-items:center; gap:.7rem; transition:border-color .2s;
}
.fleet-item:hover { border-color:var(--rojo); }
.fleet-item::before { content:''; width:5px; height:5px; background:var(--rojo); flex-shrink:0; }

/* ═══════════════════════════════
   CLIENTES — mobile base
   ═══════════════════════════════ */
#clientes { background:var(--dark2); text-align:center; }
#clientes h2 { margin-bottom:0; }
#clientes .divider { margin:1.2rem auto 3rem; }
.logos-carousel-wrap {
  overflow:hidden; position:relative;
  mask-image:linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
  -webkit-mask-image:linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
}
.logos-track {
  display:flex; align-items:center;
  animation:logoScroll 25s linear infinite; width:max-content;
}
.logos-track:hover { animation-play-state:paused; }
@keyframes logoScroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.logo-slide {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:140px; height:95px; flex-shrink:0;
  padding:.8rem 1rem; border-right:1px solid rgba(255,255,255,.07);
  gap:.5rem; transition:background .2s;
}
.logo-slide:hover { background:rgba(255,255,255,.04); }
.logo-slide img {
  width:85px; height:38px; object-fit:contain; object-position:center;
  filter:grayscale(100%) brightness(0.6); transition:filter .3s; display:block; flex-shrink:0;
}
.logo-slide:hover img { filter:grayscale(0%) brightness(1); }
.logo-slide span {
  font-family:'Oswald', sans-serif; font-size:.58rem; font-weight:500;
  letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.35); white-space:nowrap; transition:color .3s;
}
.logo-slide:hover span { color:var(--rojo); }

/* ═══════════════════════════════
   OBRAS — mobile base
   ═══════════════════════════════ */
#galeria { background:var(--dark); }
#obras-en-ejecucion { background:var(--dark2); }

.obras-section-header { display:flex; flex-direction:column; gap:1rem; align-items:flex-start; margin-bottom:2.5rem; }
.obras-section-desc { font-size:.9rem; color:rgba(255,255,255,.55); line-height:1.8; }

.obras-collage { display:grid; grid-template-columns:1fr; gap:.8rem; }

.obra-card {
  background:var(--dark2);
  overflow:hidden; position:relative;
  display:flex; flex-direction:column;
  border:1px solid rgba(255,255,255,.06);
  transition:border-color .3s, transform .3s;
  cursor:pointer;
}
#obras-en-ejecucion .obra-card { background:var(--dark); }
.obra-card:hover { border-color:var(--rojo); transform:translateY(-3px); }
.obra-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--azul); transition:background .3s; z-index:1;
}
.obra-card:hover::before { background:var(--rojo); }

.obra-card__img {
  width:100%; overflow:hidden; aspect-ratio:16/9; flex-shrink:0;
  position:relative;
}
.obra-card__img img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .5s ease;
}
.obra-card:hover .obra-card__img img { transform:scale(1.05); }

/* Badge contador de fotos */
.obra-card__foto-count {
  position:absolute; bottom:.6rem; right:.6rem; z-index:2;
  background:rgba(0,0,0,.65); color:var(--blanco);
  font-family:'Oswald', sans-serif; font-size:.68rem; letter-spacing:.08em;
  padding:.3rem .7rem; backdrop-filter:blur(4px);
  pointer-events:none;
}

.obra-card__body { padding:1rem 1.2rem 1.3rem; display:flex; flex-direction:column; gap:.4rem; flex:1; }
.obra-card__tag { font-family:'Oswald', sans-serif; font-size:.62rem; font-weight:500; letter-spacing:.25em; text-transform:uppercase; color:var(--rojo); }
.obra-card__tag--activo { color:#4caf7d; }
.obra-card__title { font-family:'Oswald', sans-serif; font-size:1rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--blanco); line-height:1.2; }
.obra-card__desc { font-size:.84rem; color:rgba(255,255,255,.52); line-height:1.7; }

/* ═══════════════════════════════
   CONTACTO — mobile base
   ═══════════════════════════════ */
#contacto { background:var(--azul2); display:grid; grid-template-columns:1fr; gap:3rem; align-items:start; }
.contact-info p { color:rgba(255,255,255,.6); font-size:.95rem; line-height:1.8; margin-bottom:2rem; }
.contact-details { display:flex; flex-direction:column; gap:1rem; }
.contact-row { display:flex; align-items:flex-start; gap:1rem; }
.contact-icon { width:38px; height:38px; flex-shrink:0; background:var(--rojo); display:flex; align-items:center; justify-content:center; font-size:1rem; }
.contact-val { font-size:.9rem; color:rgba(255,255,255,.85); line-height:1.5; }
.contact-val span { display:block; font-size:.65rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.38); margin-bottom:.15rem; }
.contact-link { color:inherit; text-decoration:none; transition:color .2s ease; }
.contact-link:hover { color:#25D366; text-decoration:underline; }

/* ─── FORMULARIO ─── */
.contact-form { display:flex; flex-direction:column; gap:.9rem; }
.field-wrap { display:flex; flex-direction:column; gap:.3rem; width:100%; }
.contact-form input, .contact-form textarea {
  width:100%; background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.15);
  border-bottom:2px solid rgba(255,255,255,.2);
  color:var(--blanco); padding:.9rem 1rem;
  font-family:'Source Sans 3', sans-serif; font-size:.9rem;
  outline:none; resize:none; transition:border-color .2s;
}
.contact-form input:focus, .contact-form textarea:focus { border-color:var(--rojo); }
.contact-form input::placeholder, .contact-form textarea::placeholder { color:rgba(255,255,255,.3); }
.contact-form input.input-error, .contact-form textarea.input-error { border-color:var(--rojo) !important; background:rgba(192,32,42,.08); }
.field-error { font-size:.75rem; color:#ff6b6b; letter-spacing:.03em; min-height:1rem; }
.form-row { display:grid; grid-template-columns:1fr; gap:.9rem; }
.btn-submit {
  width:100%; text-align:center; cursor:pointer; border:none;
  font-family:'Oswald', sans-serif; font-size:.85rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase;
  padding:.9rem 2rem; margin-top:.4rem;
}
.btn-submit:disabled { opacity:.6; cursor:not-allowed; transform:none !important; }

/* ─── FORM SUCCESS ─── */
.form-success {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:3rem 1.5rem;
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.1); min-height:280px;
}
.form-success-icon { width:60px; height:60px; border-radius:50%; background:var(--rojo); display:flex; align-items:center; justify-content:center; font-size:1.6rem; color:var(--blanco); margin-bottom:1.2rem; }
.form-success h3 { font-family:'Oswald', sans-serif; font-size:1.6rem; font-weight:700; color:var(--blanco); margin-bottom:.6rem; }
.form-success p { color:rgba(255,255,255,.6); font-size:.9rem; }

/* ─── LIGHTBOX ─── */
#lightbox {
  display:none; position:fixed; inset:0; z-index:999;
  background:rgba(0,0,0,.95);
  align-items:center; justify-content:center; flex-direction:column; gap:.8rem;
}
#lightbox.active { display:flex; }
#lightbox img { max-width:92vw; max-height:72vh; object-fit:contain; border:2px solid rgba(255,255,255,.08); }
.lb-close {
  position:absolute; top:1rem; right:1rem;
  background:var(--rojo); border:none; color:var(--blanco);
  font-size:1.2rem; width:40px; height:40px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  font-family:sans-serif; font-weight:700; z-index:1000;
}
.lb-prev, .lb-next {
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(192,32,42,.8); border:none; color:var(--blanco);
  font-size:2.5rem; width:48px; height:64px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s; line-height:1;
}
.lb-prev { left:.5rem; } .lb-next { right:.5rem; }
.lb-prev:hover, .lb-next:hover { background:var(--rojo); }
.lb-counter {
  font-family:'Oswald', sans-serif; font-size:.9rem; font-weight:600;
  color:rgba(255,255,255,.9); letter-spacing:.1em;
}
.lb-caption {
  font-family:'Oswald', sans-serif; font-size:.72rem; letter-spacing:.2em;
  text-transform:uppercase; color:rgba(255,255,255,.45);
  text-align:center; padding:0 3rem;
}
@keyframes fadeIn { from { opacity:0; transform:scale(.95); } to { opacity:1; transform:scale(1); } }

/* ─── FOOTER ─── */
/* ↓ Para cambiar el fondo del footer, modifica solo esta variable:      */
/* Opciones: var(--acero) | var(--dark) | var(--dark2) | var(--azul2) | var(--blanco) */
footer {
  --footer-bg: var(--blanco); /* ← mismo color que el nav/header */
  background: var(--blanco);
  border-top:3px solid var(--rojo2); /* ← igual que el borde del nav */
  padding:2rem 1.2rem;
  display:flex; flex-direction:column;
  gap:1rem; align-items:center; text-align:center;
}
.footer-logo img { height:70px; } /* ← logo más grande, ajusta a tu gusto */
.footer-info { font-size:.72rem; color:var(--dark); letter-spacing:.04em; line-height:1.9; text-align:center; }

/* ─── FADE IN ─── */
.fade-up { opacity:0; transform:translateY(30px); transition:opacity .65s ease, transform .65s ease; }
.fade-up.visible { opacity:1; transform:translateY(0); }

/* ═══════════════════════════════════════
   BREAKPOINT ≥ 600px
   ═══════════════════════════════════════ */
@media (min-width: 600px) {
  section { padding:5rem 2rem; }
  #hero { padding:80px 2rem 4.5rem; }
  .obras-collage { grid-template-columns:1fr 1fr; }
  .fleet-items { grid-template-columns:1fr 1fr; }
  .services-grid { grid-template-columns:1fr 1fr; }
  .form-row { grid-template-columns:1fr 1fr; }
  .logo-slide { width:160px; height:105px; }
  .logo-slide img { width:95px; height:42px; }
}

/* ═══════════════════════════════════════
   BREAKPOINT ≥ 900px (desktop)
   ═══════════════════════════════════════ */
@media (min-width: 900px) {

  /* NAV */
  nav { padding:0 4rem; height:72px; }
  .nav-logo img { height:56px; }
  .nav-hamburger { display:none; }
  .nav-cta {
    display:block;
    background:var(--rojo); color:var(--blanco);
    padding:.55rem 1.6rem;
    font-family:'Oswald', sans-serif; font-size:.82rem; font-weight:500;
    letter-spacing:.18em; text-transform:uppercase; text-decoration:none;
    transition:background .2s; white-space:nowrap;
  }
  .nav-cta:hover { background:var(--rojo2); }
  .nav-cta-mobile { display:none !important; }
  .nav-links {
    display:flex !important;
    flex-direction:row; gap:2.4rem;
    position:static; width:auto; height:auto;
    background:transparent; padding:0;
    transform:translateX(0);
    box-shadow:none; overflow:visible;
  }
  .nav-links li { border-bottom:none; }
  .nav-links a { display:inline; padding:0; font-size:.8rem; color:var(--dark2); position:relative; }
  .nav-links a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:2px; background:var(--rojo); transition:width .25s; display:block; }
  .nav-links a:hover { color:var(--azul); }
  .nav-links a:hover::after { width:100%; }

  /* SECTIONS */
  section { padding:7rem 4rem; }
  #hero { padding:0 4rem 5rem; }

  /* HERO stats */
  .hero-stats { display:flex; position:absolute; bottom:6px; right:0; z-index:3; }
  .stat-box { padding:1.8rem 2.5rem; border-left:1px solid rgba(255,255,255,.12); background:rgba(27,42,94,.75); backdrop-filter:blur(10px); text-align:center; }
  .stat-num { font-family:'Oswald', sans-serif; font-size:2.8rem; font-weight:700; color:var(--blanco); line-height:1; }
  .stat-num span { color:var(--rojo); }
  .stat-label { font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-top:.35rem; }

  /* NOSOTROS */
  #nosotros { grid-template-columns:1fr 1fr; gap:6rem; }
  .kpi-box { padding:2rem 2.2rem; }
  .kpi-num { font-size:3rem; }
  .about-quote { font-size:1.15rem; padding:2rem 2.5rem; }

  /* SERVICIOS */
  .services-header { flex-direction:row; justify-content:space-between; align-items:flex-end; margin-bottom:4rem; }
  .services-desc { max-width:300px; }
  .services-grid { grid-template-columns:repeat(3,1fr); }

  /* MAQUINARIAS */
  .fleet-layout { grid-template-columns:280px 1fr; gap:4rem; }
  .fleet-items { grid-template-columns:1fr 1fr; }

  /* CLIENTES */
  #clientes { padding:7rem 4rem 5rem; }
  #clientes .divider { margin:1.2rem auto 4rem; }
  .logo-slide { width:200px; height:120px; padding:1.2rem 1.5rem; }
  .logo-slide img { width:120px; height:50px; }
  .logo-slide span { font-size:.65rem; }


  /* OBRAS */
.obras-section-header { flex-direction:row; justify-content:space-between; align-items:flex-end; margin-bottom:3rem; }
.obras-section-desc { max-width:420px; }
.obras-collage {
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 480px; /* ← auméntalo o bájalo a tu gusto */
  gap: 8px;
}
.obra-card { height:100%; }
.obra-card__img { aspect-ratio:unset; flex:1; min-height:0; height:0; }
.obra-card__body { flex-shrink:0; padding:1rem 1.2rem 1.2rem; }

  /* CONTACTO */
  #contacto { grid-template-columns:1fr 1fr; gap:6rem; }

  /* FOOTER */
  footer {
    flex-direction:column;
    justify-content:center;
    align-items:center;
    padding:2rem 4rem;
    text-align:center;
  }
  .footer-logo img { height:56px; }
  .footer-info { text-align:center; }

  /* LIGHTBOX */
  .lb-prev { left:1.5rem; }
  .lb-next { right:1.5rem; }

} /* ← cierre @media 900px */

/* ═══════════════════════════════════════
   BREAKPOINT ≥ 1280px (wide)
   ═══════════════════════════════════════ */
@media (min-width: 1280px) {
  .obras-collage { grid-auto-rows:480px; gap:10px; }
}