
:root{--ink:#242424;--muted:#66645f;--paper:#f4f2ed;--white:#fff;--accent:#f2aa18;--dark:#242321;--line:#ded9cf}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}img{display:block;width:100%;height:100%;object-fit:cover}.container{width:min(1200px,calc(100% - 48px));margin:auto}
.header{height:84px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);position:sticky;top:0;z-index:30;border-bottom:1px solid #eee}.nav{height:100%;display:flex;align-items:center;gap:28px}.brand img{width:205px;height:62px;object-fit:contain}.nav nav{margin-left:auto;display:flex;gap:25px}.nav nav a,.nav-cta{text-decoration:none;font-size:13px;font-weight:700;color:#343434}.nav-cta{background:var(--ink);color:#fff;padding:12px 17px;border-radius:999px}
.hero{height:720px;position:relative;background:url("assets/hero.jpg") center/cover;color:#fff}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,17,17,.91),rgba(17,17,17,.52) 58%,rgba(17,17,17,.08))}.hero-content{position:relative;padding-top:115px}.kicker{font-size:12px;font-weight:800;letter-spacing:.17em;color:#9a671e}.kicker.light{color:#ffbd38}.hero h1{font-size:clamp(54px,6.6vw,94px);line-height:.97;letter-spacing:-.058em;margin:18px 0 25px;max-width:1050px}.hero h1 strong{color:#ffb11d}.hero-services{font-size:23px;font-weight:700;margin:0 0 15px}.hero-desc{font-size:18px;line-height:1.65;color:#ddd;max-width:780px}.hero-actions{display:flex;gap:12px;margin-top:30px}.btn{padding:14px 20px;border-radius:999px;text-decoration:none;font-weight:800;font-size:14px}.primary{background:var(--accent);color:#222}.outline{border:1px solid rgba(255,255,255,.6);color:#fff}
.credibility{background:#fff;border-bottom:1px solid var(--line)}.credibility-grid{display:grid;grid-template-columns:repeat(4,1fr)}.credibility-grid div{padding:27px 28px;border-right:1px solid var(--line)}.credibility-grid div:last-child{border:0}.credibility span,.credibility b{display:block}.credibility span{font-size:10px;letter-spacing:.15em;color:#9b6a1e;font-weight:800;margin-bottom:7px}.credibility b{font-size:15px}
.section{padding:105px 0}.company{background:#fff}.company-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:95px}.company h2,.section-heading h2,.special-heading h2,.civil h2,.contact h2{font-size:clamp(40px,4.6vw,64px);line-height:1.03;letter-spacing:-.048em;margin:12px 0}.company-copy p{font-size:17px;line-height:1.8;color:var(--muted);margin:0 0 20px}
.metrics{background:var(--dark);color:#fff;padding:62px 0}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:35px;margin-top:25px}.metrics-grid strong,.metrics-grid span{display:block}.metrics-grid strong{font-size:36px}.metrics-grid span{color:#bdb8af;margin-top:7px}.metrics-note{font-size:11px;color:#77736d;margin-top:28px}
.section-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:70px;align-items:end;margin-bottom:55px}.section-heading>p{color:var(--muted);line-height:1.75;margin:0}
.services{background:var(--paper)}.service-block{display:grid;grid-template-columns:.75fr 1.25fr;gap:55px;align-items:center;padding:55px 0 95px;border-bottom:1px solid var(--line)}.service-block.reverse{grid-template-columns:.75fr 1.25fr}.service-copy .number{display:block;font-size:50px;font-weight:800;color:#d5cfc5;margin-bottom:18px}.service-copy h3{font-size:38px;line-height:1.08;letter-spacing:-.04em;margin:12px 0 17px}.service-copy p{color:var(--muted);line-height:1.7}.service-copy ul{padding-left:18px;color:#4f4e4a;line-height:1.9}
.terr-gallery,.pav-gallery{display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:260px 260px;gap:12px}.terr-gallery figure,.pav-gallery figure{margin:0;position:relative;overflow:hidden;border-radius:14px}.terr-gallery .main,.pav-gallery .main{grid-row:1/3}.pav-gallery{grid-template-columns:1.15fr .85fr .85fr}.pav-gallery .main{grid-row:1/3}.pav-gallery .finish{grid-column:2/4}.terr-gallery figcaption,.pav-gallery figcaption,.concrete-layout figcaption,.equipment-grid figcaption{position:absolute;left:13px;bottom:13px;background:rgba(20,20,20,.79);color:#fff;padding:8px 12px;border-radius:999px;font-size:11px;font-weight:700}
.specialized{background:#20201e;color:#fff;padding:105px 0}.special-heading{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:end;margin-bottom:52px}.special-heading p{color:#b8b5ae;line-height:1.7}.special-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.special-grid article{background:#2a2926;border:1px solid #3c3a36;border-radius:18px;overflow:hidden}.special-photo{height:390px}.special-copy{padding:27px}.special-copy span{color:#ffb01d;font-size:12px;font-weight:800}.special-copy h3{font-size:28px;margin:10px 0}.special-copy p{color:#bbb7af;line-height:1.65;margin:0}
.concrete{background:#fff}.concrete-layout{display:grid;grid-template-columns:1.2fr .55fr;grid-template-rows:260px 260px;gap:14px}.concrete-layout figure{margin:0;position:relative;overflow:hidden;border-radius:15px;background:#e8e4dc}.concrete-layout .landscape:first-child{grid-row:1/3}.concrete-layout .portrait{grid-row:1/3;grid-column:2/3}.concrete-layout .portrait img{object-fit:contain;background:#222}.concrete-layout .landscape:last-child{display:none}
.civil{padding:105px 0;background:var(--paper)}.civil-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:65px;align-items:center}.civil-image{height:520px;border-radius:16px;overflow:hidden}.civil-copy p{font-size:17px;line-height:1.75;color:var(--muted)}.civil-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.civil-tags span{border:1px solid #d6d0c5;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:700}
.equipment{background:#fff}.equipment-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.equipment-grid figure{height:260px;margin:0;position:relative;overflow:hidden;border-radius:14px}
.statement{background:var(--accent);padding:88px 0}.statement span{font-size:11px;font-weight:800;letter-spacing:.15em}.statement h2{font-size:clamp(42px,5vw,70px);max-width:1050px;line-height:1.03;letter-spacing:-.05em;margin:15px 0 0}
.contact{background:var(--paper)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px}.contact-grid>div:first-child p{font-size:17px;line-height:1.7;color:var(--muted)}.contact-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px}.contact-card span,.contact-card a,.contact-card strong{display:block}.contact-card span{font-size:10px;letter-spacing:.15em;color:#9b671d;font-weight:800;margin-top:21px}.contact-card span:first-child{margin-top:0}.contact-card a,.contact-card strong{font-size:20px;color:#282828;text-decoration:none;margin-top:7px}
footer{background:#171715;color:#aaa;padding:28px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between}.footer-inner img{width:180px;height:55px;object-fit:contain;filter:grayscale(1) brightness(3)}.footer-inner p{font-size:12px}
@media(max-width:900px){.nav nav{display:none}.company-grid,.section-heading,.special-heading,.civil-grid,.contact-grid,.service-block,.service-block.reverse{grid-template-columns:1fr;gap:35px}.credibility-grid,.metrics-grid{grid-template-columns:1fr 1fr}.special-grid{grid-template-columns:1fr}.terr-gallery,.pav-gallery{grid-template-columns:1fr 1fr}.pav-gallery .finish{grid-column:auto}.equipment-grid{grid-template-columns:1fr 1fr}.concrete-layout{grid-template-columns:1fr 1fr}.hero{height:690px}}
@media(max-width:560px){.container{width:calc(100% - 28px)}.nav-cta{display:none}.hero{height:650px}.hero-content{padding-top:85px}.hero h1{font-size:47px}.hero-actions{flex-direction:column;align-items:flex-start}.credibility-grid,.metrics-grid,.terr-gallery,.pav-gallery,.equipment-grid,.concrete-layout{grid-template-columns:1fr}.terr-gallery .main,.pav-gallery .main,.concrete-layout .portrait{grid-row:auto;grid-column:auto}.terr-gallery figure,.pav-gallery figure,.concrete-layout figure{height:280px}.special-photo{height:280px}.civil-image{height:340px}.footer-inner{display:block}.footer-inner p{margin-top:15px}}

/* Corrección: pies de recuperadora / perfiladora centrados */
.special-copy { text-align:center; }

/* v3: logo principal ligeramente más grande */
.brand img { width:245px; height:70px; }

/* v5: encuadre del vibrocompactador para darle mayor presencia */
.equipment-grid figure:last-child img {
  object-position: 34% 58%;
  transform: scale(1.18);
}

/* v6: clientes + logo superior con mayor presencia */
.brand img{width:275px;height:76px}
.clients{background:var(--paper);border-top:1px solid var(--line)}
.clients-heading{text-align:center;max-width:760px;margin:0 auto 48px}
.clients-heading h2{font-size:clamp(40px,4.6vw,62px);line-height:1.03;letter-spacing:-.048em;margin:12px 0 14px}
.clients-heading p{color:var(--muted);line-height:1.7;margin:0}
.clients-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:stretch}
.client-logo{height:150px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.client-logo img{width:100%;height:100%;object-fit:contain}
@media(max-width:900px){.clients-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.brand img{width:235px;height:68px}.clients-grid{grid-template-columns:repeat(2,1fr)}.client-logo{height:120px;padding:16px}}

/* v7: logo Construobras protagonista sobre el encabezado principal */
.hero-brand-logo{display:block;width:min(430px,52vw);height:auto;max-height:150px;object-fit:contain;object-position:left center;margin:0 0 24px 0;filter:drop-shadow(0 2px 10px rgba(0,0,0,.18))}
@media(max-width:560px){.hero-brand-logo{width:min(330px,82vw);max-height:120px;margin-bottom:20px}}


/* v8: navegación integrada dentro de la fotografía principal */
.header{
  position:absolute;
  top:0; left:0; right:0;
  width:100%;
  height:104px;
  background:linear-gradient(180deg,rgba(12,12,12,.74),rgba(12,12,12,.28),transparent);
  backdrop-filter:none;
  border-bottom:1px solid rgba(255,255,255,.15);
  z-index:30;
}
.nav{height:100%;}
.brand img{width:300px;height:82px;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(0,0,0,.35))}
.nav nav a{color:#fff;text-shadow:0 1px 5px rgba(0,0,0,.55)}
.nav-cta{background:var(--accent);color:#222;box-shadow:0 4px 16px rgba(0,0,0,.18)}
.hero{height:720px;}
.hero-content{padding-top:170px;}
.hero-brand-logo{display:none!important;}
@media(max-width:900px){.header{height:92px}.hero-content{padding-top:145px}}
@media(max-width:560px){.header{height:82px}.brand img{width:250px;height:70px}.hero-content{padding-top:125px}}

/* v9: más maquinaria visible en hero + logo superior con mayor presencia */
.brand img{width:330px;height:90px}
.hero h1{font-size:clamp(44px,5.35vw,76px);max-width:900px;line-height:.98}
@media(max-width:900px){.brand img{width:285px;height:78px}.hero h1{font-size:clamp(44px,7vw,66px)}}
@media(max-width:560px){.brand img{width:270px;height:74px}.hero h1{font-size:42px}}


/* v10: regreso a barra blanca + mayor visibilidad de maquinaria */
.header{
  height:92px;
  background:rgba(255,255,255,.98);
  position:sticky;
  top:0;
  left:auto;
  right:auto;
  width:auto;
  backdrop-filter:blur(12px);
  border-bottom:1px solid #e9e9e9;
  box-shadow:0 2px 12px rgba(0,0,0,.05);
}
.nav{height:100%}
.brand img{
  width:315px;
  height:82px;
  object-fit:contain;
  filter:none;
}
.nav nav a{
  color:#343434;
  text-shadow:none;
}
.nav-cta{
  background:var(--ink);
  color:#fff;
  box-shadow:none;
}
.hero{height:700px}
.hero-content{padding-top:92px}
.hero h1{
  font-size:clamp(38px,4.55vw,66px);
  max-width:820px;
  line-height:1;
  margin-top:14px;
  margin-bottom:20px;
}
@media(max-width:900px){
  .header{height:86px}
  .brand img{width:275px;height:74px}
  .hero-content{padding-top:82px}
  .hero h1{font-size:clamp(40px,6.2vw,58px)}
}
@media(max-width:560px){
  .header{height:78px}
  .brand img{width:245px;height:68px}
  .hero-content{padding-top:72px}
  .hero h1{font-size:36px}
}

/* v11 — datos de contacto */
.contact-card strong + strong{margin-top:4px}
.contact-card .whatsapp-link{font-weight:800}

/* v12: ajustes de pavimentación y ampliación de maquinaria */
.pav-gallery{grid-template-columns:1.35fr .825fr .825fr}
.pav-gallery .main img{object-position:center center}
.equipment-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.equipment-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.equipment-grid{grid-template-columns:1fr}}

/* v13: concreto con crucero + vialidad larga; clientes en movimiento continuo */
.concrete-v13 .portrait img{object-position:center center}
.clients-marquee{width:100%;overflow:hidden;position:relative;padding:8px 0}
.clients-track{display:flex;width:max-content;gap:42px;align-items:center;animation:clientesFlotando 42s linear infinite;will-change:transform}
.clients-marquee:hover .clients-track{animation-play-state:paused}
.clients-track .client-logo{flex:0 0 190px;height:105px;background:transparent;border:0;border-radius:0;padding:8px;overflow:visible}
.clients-track .client-logo img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
@keyframes clientesFlotando{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 21px))}}
@media(max-width:560px){.clients-track{gap:28px;animation-duration:34s}.clients-track .client-logo{flex-basis:150px;height:90px}}
@media(prefers-reduced-motion:reduce){.clients-track{animation:none}}


/* v14 — menú desplegable + clientes flotantes visibles */
.main-nav{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:24px;
}
.main-nav > a,
.main-nav .nav-item > a{
  text-decoration:none;
  font-size:13px;
  font-weight:700;
  color:#343434;
  white-space:nowrap;
}
.nav-item{position:relative}
.nav-item .chev{font-size:10px;margin-left:4px}
.dropdown-menu{
  position:absolute;
  top:calc(100% + 15px);
  left:50%;
  transform:translate(-50%,8px);
  min-width:245px;
  background:#fff;
  border:1px solid #e7e3da;
  border-radius:12px;
  box-shadow:0 14px 35px rgba(0,0,0,.14);
  padding:9px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:.18s ease;
  z-index:80;
}
.dropdown-menu:before{
  content:"";
  position:absolute;
  left:0;right:0;top:-18px;height:18px;
}
.dropdown-menu a{
  display:block;
  text-decoration:none;
  color:#30302e;
  font-size:13px;
  font-weight:650;
  line-height:1.25;
  padding:11px 12px;
  border-radius:8px;
}
.dropdown-menu a:hover{
  background:#f4f2ed;
  color:#9a671e;
}
.has-dropdown:hover .dropdown-menu,
.has-dropdown:focus-within .dropdown-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,0);
}

/* Carrusel real de clientes: sin recuadros, visible, lento y continuo */
.clients{
  overflow:hidden;
}
.clients .container{
  position:relative;
  z-index:2;
}
.clients-marquee{
  width:100%;
  overflow:hidden;
  position:relative;
  padding:6px 0 24px;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%);
}
.clients-track{
  display:flex;
  width:max-content;
  align-items:center;
  gap:58px;
  animation:clientesFlotandoV14 48s linear infinite;
  will-change:transform;
}
.clients-track:hover{animation-play-state:paused}
.clients-track .client-logo{
  flex:0 0 190px;
  width:190px;
  height:100px;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  padding:0!important;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.clients-track .client-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:none!important;
  mix-blend-mode:normal!important;
  background:transparent;
}
@keyframes clientesFlotandoV14{
  from{transform:translateX(0)}
  to{transform:translateX(calc(-50% - 29px))}
}

@media(max-width:900px){
  .main-nav{display:none}
}
@media(max-width:560px){
  .clients-track{gap:34px;animation-duration:42s}
  .clients-track .client-logo{flex-basis:145px;width:145px;height:82px}
  @keyframes clientesFlotandoV14{
    from{transform:translateX(0)}
    to{transform:translateX(calc(-50% - 17px))}
  }
}
@media(prefers-reduced-motion:reduce){
  .clients-track{animation:none}
}


/* v15 — concreto: vialidad principal grande + crucero visible */
.concrete-v15{
  display:grid;
  grid-template-columns:1.35fr .65fr;
  grid-template-rows:250px 250px;
  gap:14px;
}
.concrete-v15 figure{
  margin:0;
  position:relative;
  overflow:hidden;
  border-radius:15px;
  background:#e8e4dc;
}
.concrete-v15 .concrete-main{
  grid-row:1 / 3;
  grid-column:1;
}
.concrete-v15 .concrete-crossing{
  grid-row:1;
  grid-column:2;
}
.concrete-v15 .concrete-process{
  grid-row:2;
  grid-column:2;
}
.concrete-v15 img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.concrete-v15 .concrete-main img{
  object-fit:cover;
  object-position:center 56%;
}
.concrete-v15 .concrete-crossing img{
  object-fit:cover;
  object-position:center;
}
.concrete-v15 .concrete-process img{
  object-fit:cover;
  object-position:center 35%;
}
@media(max-width:900px){
  .concrete-v15{
    grid-template-columns:1fr 1fr;
    grid-template-rows:420px 280px;
  }
  .concrete-v15 .concrete-main{
    grid-row:1;
    grid-column:1 / 3;
  }
  .concrete-v15 .concrete-crossing{
    grid-row:2;
    grid-column:1;
  }
  .concrete-v15 .concrete-process{
    grid-row:2;
    grid-column:2;
  }
}
@media(max-width:560px){
  .concrete-v15{
    grid-template-columns:1fr;
    grid-template-rows:auto;
  }
  .concrete-v15 .concrete-main,
  .concrete-v15 .concrete-crossing,
  .concrete-v15 .concrete-process{
    grid-row:auto;
    grid-column:auto;
    height:280px;
  }
}


/* v17 — finisher protagonista; carpeta completa sin recorte */
.pav-gallery-v17{grid-template-columns:1.35fr .825fr;grid-template-rows:260px 260px}
.pav-gallery-v17 .main{grid-row:1 / 3;grid-column:1}
.pav-gallery-v17 .process{grid-row:1;grid-column:2;background:#e8e4dc}
.pav-gallery-v17 .riego{grid-row:2;grid-column:2}
.pav-gallery-v17 .main img{object-fit:cover;object-position:center center}
.pav-gallery-v17 .process img{object-fit:contain;object-position:center center;background:#e8e4dc}
.pav-gallery-v17 .riego img{object-fit:cover;object-position:center center}
@media(max-width:900px){.pav-gallery-v17{grid-template-columns:1fr 1fr;grid-template-rows:360px 280px}.pav-gallery-v17 .main{grid-column:1 / 3;grid-row:1}.pav-gallery-v17 .process{grid-column:1;grid-row:2}.pav-gallery-v17 .riego{grid-column:2;grid-row:2}}
@media(max-width:560px){.pav-gallery-v17{grid-template-columns:1fr;grid-template-rows:auto}.pav-gallery-v17 .main,.pav-gallery-v17 .process,.pav-gallery-v17 .riego{grid-column:auto;grid-row:auto;height:280px}}
