/* Site público da X Máquinas (1.16.0). Independente do app.css do sistema.
   Marca: preto e ouro da logo; terra vermelha (laterita) das curvas de nível da terraplenagem. */
:root{
  --preto:#000000;
  --ouro:#D4A017;
  --ouro-esc:#A87C0C;
  --laterita:#A3471F;
  --concreto:#E3E4E1;
  --branco:#FFFFFF;
  --grafite:#262624;
  --cinza:#5E5E5A;
  --verde:#2E7D4F;
  --linha:#C9CAC6;
  --fonte-titulo:'Archivo',system-ui,sans-serif;
  --fonte-texto:'IBM Plex Sans',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{margin:0;background:var(--branco);color:var(--grafite);font:400 1.0625rem/1.6 var(--fonte-texto);-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--ouro);outline-offset:3px}
[hidden]{display:none!important}
.pular{position:absolute;left:-9999px;top:8px;background:var(--ouro);color:var(--preto);padding:8px 14px;z-index:20;font-weight:600}
.pular:focus{left:8px}

h1,h2,h3{font-family:var(--fonte-titulo);color:inherit;margin:0;line-height:1.05}
h2{font-size:clamp(1.9rem,1.2rem + 2.6vw,3rem);font-weight:800;font-variation-settings:'wdth' 112;letter-spacing:-.01em}
h3{font-size:1.35rem;font-weight:700;font-variation-settings:'wdth' 108}

.miolo{max-width:1160px;margin:0 auto;padding:0 24px}
.faixa{padding:clamp(56px,8vw,104px) 0}
.duas{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,72px);align-items:start}

/* topo */
.topo{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:20px;padding:10px 24px;background:var(--preto);color:var(--branco)}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto;min-width:0}
.marca img{width:44px;height:44px;border-radius:6px}
.marca span{font:800 1.15rem/1 var(--fonte-titulo);font-variation-settings:'wdth' 118;color:var(--ouro);white-space:nowrap}
.menu{display:flex;gap:22px}
.menu a{text-decoration:none;font-weight:500;color:#DADAD6;padding:6px 0;border-bottom:2px solid transparent}
.menu a:hover{color:var(--branco);border-bottom-color:var(--ouro)}
.entrar{background:var(--ouro);color:var(--preto);text-decoration:none;font:700 1rem/1 var(--fonte-titulo);padding:12px 22px;border-radius:999px;white-space:nowrap}
.entrar:hover{background:#E8B420}

/* botões */
.bt{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 24px;border-radius:999px;text-decoration:none;font:700 1.02rem/1.2 var(--fonte-titulo);text-align:center}
.bt-ouro{background:var(--ouro);color:var(--preto)}
.bt-ouro:hover{background:#E8B420}
.bt-linha{border:2px solid rgba(255,255,255,.7);color:var(--branco)}
.bt-linha:hover{border-color:var(--ouro);color:var(--ouro)}
.bt-preto{background:var(--preto);color:var(--ouro)}
.bt-preto:hover{background:#1A1A18}

/* abertura: curvas de nível sobre o preto */
.hero{position:relative;overflow:hidden;background:var(--preto);color:var(--branco);min-height:min(78vh,720px);display:flex;align-items:flex-end}
.curvas{position:absolute;inset:0;width:100%;height:100%}
.curvas path{fill:none;stroke:var(--laterita);stroke-width:1.4;opacity:.55;vector-effect:non-scaling-stroke}
.curvas .c-forte{stroke:var(--ouro);stroke-width:1.8;opacity:.7}
.hero-in{position:relative;max-width:1160px;width:100%;margin:0 auto;padding:clamp(72px,12vh,140px) 24px clamp(48px,9vh,96px);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(24px,4vw,56px);align-items:end}
.hero-txt{min-width:0}
.hero-foto{margin:0;border:3px solid var(--ouro);background:#111;transform:rotate(1.2deg);box-shadow:-14px 14px 0 var(--laterita)}
.hero-foto img{width:100%;aspect-ratio:3/4;object-fit:cover}
.hero h1{font-size:clamp(2.6rem,1.2rem + 5vw,5.2rem);font-weight:900;font-variation-settings:'wdth' 118;letter-spacing:-.02em;max-width:13ch;text-wrap:balance}
.hero p{max-width:58ch;margin:22px 0 0;font-size:clamp(1.05rem,1rem + .35vw,1.25rem);color:#E4E4E0}
.acoes{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
@media (prefers-reduced-motion:no-preference){
  .curvas path{stroke-dasharray:var(--l,2400);stroke-dashoffset:var(--l,2400);animation:desenha 2.6s cubic-bezier(.3,.6,.2,1) forwards;animation-delay:calc(var(--i,0) * 70ms)}
  @keyframes desenha{to{stroke-dashoffset:0}}
}

/* história */
.historia{background:var(--concreto)}
.desde{margin:18px 0 0;font:800 clamp(1.3rem,1rem + 1vw,1.8rem)/1.15 var(--fonte-titulo);font-variation-settings:'wdth' 110;color:var(--laterita)}
.desde span{display:block;font:500 1rem/1.4 var(--fonte-texto);color:var(--cinza);margin-bottom:4px}
.texto p{margin:0 0 1em;max-width:62ch}
.texto p:last-child{margin-bottom:0}

/* serviços: lista corrida, cada serviço numa linha */
.lista-serv{list-style:none;margin:36px 0 0;padding:0;border-top:2px solid var(--preto)}
.lista-serv li{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:24px;padding:26px 0;border-bottom:1px solid var(--linha)}
.lista-serv h3{font-size:clamp(1.35rem,1.1rem + .9vw,1.9rem);font-weight:800}
.lista-serv p{margin:0;max-width:60ch;color:var(--grafite)}

/* frota: fotos reais em faixa corrida + vitrine do sistema */
.frota{background:var(--preto);color:var(--branco)}
.faixa-fotos{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,260px);gap:14px;overflow-x:auto;margin:36px 0 0;padding-bottom:12px;scroll-snap-type:x mandatory;overscroll-behavior-x:contain}
.faixa-fotos figure{margin:0;scroll-snap-align:start}
.faixa-fotos img{width:100%;aspect-ratio:3/4;object-fit:cover}
.faixa-fotos figcaption{padding:8px 2px 0;font-size:.92rem;color:#CFCFCB}
.cab-vitrine{margin-top:clamp(48px,7vw,80px);padding-top:28px;border-top:1px solid #33332F}
.cab-sec{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 32px}
.cab-sec p{margin:0;max-width:46ch;color:inherit;opacity:.82}
.vitrine{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:28px 22px;margin-top:40px}
.maq{display:flex;flex-direction:column;background:#141413;border-top:4px solid var(--laterita)}
.maq.livre{border-top-color:var(--ouro)}
.maq-foto{aspect-ratio:4/3;background:#1E1E1C;display:flex;align-items:center;justify-content:center;overflow:hidden}
.maq-foto img{width:100%;height:100%;object-fit:cover}
.maq-foto svg{width:58%;height:auto;color:#4A4A46}
.maq-corpo{padding:18px 18px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.maq h3{font-size:1.3rem;color:var(--branco)}
.maq-ficha{margin:0;color:#BDBDB8;font-size:.95rem}
.maq-desc{margin:0;color:#E4E4E0;font-size:.98rem}
.estado{align-self:flex-start;font:600 .85rem/1 var(--fonte-texto);padding:7px 11px;border-radius:999px;background:#2A2A27;color:#D6D6D1}
.estado.livre{background:var(--verde);color:var(--branco)}
.maq .bt{margin-top:auto;min-height:46px;font-size:.98rem}
.aviso{grid-column:1/-1;margin:0;padding:26px;border:1px dashed #4A4A46;color:#D6D6D1;max-width:70ch}
.aviso a{color:var(--ouro)}

/* agregados: cada material com a cor dele */
.lista-agr{list-style:none;margin:36px 0 28px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px}
.lista-agr li{padding:22px 20px 24px;border-left:10px solid var(--c);background:var(--branco)}
.lista-agr h3{font-size:1.4rem}
.lista-agr p{margin:8px 0 0;color:var(--cinza)}
.agr-barro{--c:#2A2420}.agr-areia{--c:#D9C08A}.agr-seixo{--c:#8D8576}.agr-aterro{--c:var(--laterita)}
.agregados{background:var(--concreto)}
/* projetos */
.grade-proj{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(160px,auto);gap:14px;margin-top:36px}
.grade-proj figure{margin:0;display:flex;flex-direction:column}
.grade-proj img{width:100%;flex:1;min-height:0;object-fit:cover;aspect-ratio:4/3}
.grade-proj .p-grande{grid-row:span 2}
.grade-proj .p-grande img{aspect-ratio:auto;height:100%}
.grade-proj .p-larga{grid-column:span 2}
.grade-proj .p-larga img{aspect-ratio:8/3;object-position:center 60%}
.grade-proj figcaption{padding:8px 2px 0;font-size:.92rem;color:var(--cinza)}
/* vagas */
.vagas{background:var(--ouro);color:var(--preto)}
.vagas p{margin:0 0 22px;max-width:52ch;font-size:1.1rem}
/* obras */
.obras{background:var(--branco)}
.galeria{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense;gap:14px;margin-top:36px}
.galeria figure{display:flex;flex-direction:column}
.galeria figure{margin:0;background:var(--concreto)}
.galeria img{width:100%;aspect-ratio:4/3;object-fit:cover}
.galeria .grande{grid-column:span 2;grid-row:span 2}
.galeria .grande img{aspect-ratio:auto;flex:1;min-height:0;height:100%}
@media (max-width:760px){.galeria{grid-template-columns:1fr 1fr;gap:10px}.galeria .grande img{aspect-ratio:4/3;height:auto;flex:none}.galeria figcaption{font-size:.85rem}}
.galeria figcaption{padding:10px 12px;font-size:.95rem;color:var(--cinza)}

/* contato */
.contato p{max-width:44ch;margin:18px 0 26px}
.dados{margin:0;display:grid;gap:18px;border-top:2px solid var(--preto);padding-top:22px}
.dados dt{font-size:.9rem;color:var(--cinza)}
.dados dd{margin:2px 0 0;font:700 clamp(1.1rem,1rem + .5vw,1.4rem)/1.3 var(--fonte-titulo);overflow-wrap:anywhere}
.dados a{text-decoration-color:var(--ouro);text-decoration-thickness:2px;text-underline-offset:4px}

.rodape{background:var(--preto);color:#BDBDB8;padding:36px 0 28px;font-size:.95rem}
.rodape .grupo{flex:1 1 520px}
.grupo-t{margin:0 0 14px;font-size:.9rem;color:#9A9A95}
.grupo-logos{display:flex;flex-wrap:wrap;gap:20px 40px;align-items:center}
.grupo-logos figure{margin:0;display:flex;align-items:center;gap:14px}
.grupo-logos img{height:64px;width:auto;border-radius:6px}
.grupo-logos .logo-x7{height:56px;border-radius:0}
.grupo-logos figcaption{line-height:1.4}
.rodape .miolo{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 32px}
.rodape p{margin:0}
.rodape b{color:var(--branco)}
.rodape a{color:var(--ouro)}

@media (max-width:1060px){.menu{display:none}}
@media (max-width:760px){
  .hero-in{grid-template-columns:1fr}
  .hero-foto{max-width:300px;transform:rotate(1.2deg)}
  .grade-proj{grid-template-columns:1fr 1fr}
  .grade-proj .p-grande{grid-column:span 2;grid-row:auto}
  .grade-proj .p-grande img{aspect-ratio:3/4;height:auto}
  .topo{padding:8px 16px;gap:12px}
  .marca img{width:38px;height:38px}
  .miolo{padding:0 16px}
  .hero-txt{padding-left:16px;padding-right:16px}
  .duas{grid-template-columns:1fr}
  .lista-serv li{grid-template-columns:1fr;gap:8px}
  .acoes .bt{width:100%}
  .entrar{padding:11px 18px}
}
@media (max-width:360px){.marca span{display:none}}

/* Trabalhe conosco */
.pagina-form{background:var(--concreto);padding:clamp(40px,7vw,88px) 0}
.pagina-form h1{font:900 clamp(2.2rem,1.4rem + 3.4vw,3.8rem)/1.02 var(--fonte-titulo);font-variation-settings:'wdth' 116;letter-spacing:-.02em;max-width:16ch}
.pagina-form .intro{max-width:56ch;margin:18px 0 0;font-size:1.1rem}
.form{margin-top:36px;background:var(--branco);padding:clamp(20px,4vw,40px);border-top:6px solid var(--ouro);display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;max-width:860px}
.form .c{display:flex;flex-direction:column;gap:6px;min-width:0}
.form .larga{grid-column:1/-1}
.form label{font-weight:600}
.form .dica{font-size:.9rem;color:var(--cinza)}
.form input,.form select,.form textarea{font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid #A9AAA5;border-radius:8px;background:var(--branco);color:var(--grafite);width:100%}
.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid var(--ouro);outline-offset:1px;border-color:var(--preto)}
.form input[type=file]{padding:10px;background:var(--concreto)}
.form .aceite{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}
.form .aceite input{width:22px;height:22px;flex:none;margin-top:2px}
.form .escondido{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form button{border:0;cursor:pointer;justify-self:start}
.form button[disabled]{opacity:.6;cursor:progress}
.msg-form{grid-column:1/-1;margin:0;padding:14px 16px;border-left:5px solid var(--cinza);background:var(--concreto)}
.msg-form.ok{border-left-color:var(--verde)}
.msg-form.erro{border-left-color:#B3261E}
@media (max-width:760px){.form{grid-template-columns:1fr}.form button{justify-self:stretch}}
