/* =====================================================================
   CADMO Engenharia — site.css (2026)
   Conceito: "planta cadastral" — papel técnico, linhas de levantamento,
   cotas e vértices. Verde CADMO como base, laranja como marcação.
   ===================================================================== */

:root{
  /* cor */
  --verde: #0D2317;         /* marca */
  --verde-2: #173A28;       /* superfícies escuras secundárias */
  --verde-3: #2C5A41;       /* linhas sobre escuro */
  --laranja: #F58634;       /* marca: destaque, vértices */
  --laranja-txt: #B9571A;   /* laranja legível sobre papel */
  --papel: #F4F5F0;         /* fundo claro com viés verde */
  --papel-2: #EBEEE6;
  --branco: #FFFFFF;
  --tinta: #13221A;
  --cinza: #56665C;
  --cinza-claro: #A9B8AE;
  --linha: #D5DCD3;
  --linha-escura: rgba(255,255,255,.14);

  /* tipo */
  --f-display: "Archivo", "Arial Narrow", Arial, sans-serif;
  --f-body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;

  --t-xs: .78rem; --t-sm: .9rem; --t-md: 1.05rem; --t-lg: 1.25rem;
  --t-xl: clamp(1.6rem, 1.1rem + 1.6vw, 2.25rem);
  --t-2xl: clamp(2.1rem, 1.3rem + 3vw, 3.6rem);

  --raio: 6px;
  --gutter: max(20px, env(safe-area-inset-left, 0px));
  --gutter-r: max(20px, env(safe-area-inset-right, 0px));
  --max: 1200px;
  --header-h: 72px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } *{ transition:none!important; animation:none!important; } }
body{
  margin:0; background:var(--papel); color:var(--tinta);
  font:400 var(--t-md)/1.65 var(--f-body);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
h1,h2,h3,h4{ font-family:var(--f-display); font-stretch:112%; line-height:1.12; margin:0; text-wrap:balance; letter-spacing:-.01em; }
h1{ font-size:var(--t-2xl); font-weight:700; }
h2{ font-size:var(--t-xl); font-weight:700; }
h3{ font-size:var(--t-lg); font-weight:650; }
h4{ font-size:var(--t-md); font-weight:650; }
p{ margin:0; }
:focus-visible{ outline:2px solid var(--laranja); outline-offset:3px; border-radius:2px; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip{ position:absolute; left:12px; top:-60px; z-index:100; background:var(--laranja); color:var(--verde); padding:10px 14px; font-weight:600; border-radius:var(--raio); }
.skip:focus{ top:12px; }

.wrap{ max-width:var(--max); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter-r); }
.mono{ font-family:var(--f-mono); }

/* rótulo técnico (estilo carimbo de prancha) */
.label{
  display:inline-flex; align-items:center; gap:10px;
  font:500 var(--t-xs)/1 var(--f-mono); letter-spacing:.08em; text-transform:uppercase;
  color:var(--laranja-txt);
}
.label::before{ content:""; width:22px; height:1px; background:currentColor; }
.on-dark .label{ color:var(--laranja); }

/* ---------- botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:48px; padding:0 22px; border-radius:var(--raio);
  font:600 var(--t-sm)/1 var(--f-body); letter-spacing:.01em; text-decoration:none;
  border:1.5px solid transparent; cursor:pointer; transition:background .2s, color .2s, border-color .2s, transform .2s;
}
.btn svg{ width:18px; height:18px; flex-shrink:0; }
.btn--primary{ background:var(--laranja); color:var(--verde); }
.btn--primary:hover{ background:#FF9A4E; transform:translateY(-1px); }
.btn--dark{ background:var(--verde); color:var(--branco); }
.btn--dark:hover{ background:var(--verde-2); }
.btn--line{ border-color:currentColor; color:var(--tinta); background:transparent; }
.btn--line:hover{ background:var(--tinta); color:var(--papel); border-color:var(--tinta); }
.on-dark .btn--line{ color:var(--branco); }
.on-dark .btn--line:hover{ background:var(--branco); color:var(--verde); border-color:var(--branco); }

.arrow-link{
  display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:var(--t-sm);
  color:var(--laranja-txt); text-decoration:none;
}
.arrow-link svg{ width:16px; height:16px; transition:transform .2s; }
.arrow-link:hover svg{ transform:translateX(4px); }

/* ---------- cabeçalho ---------- */
body::before{ content:""; position:fixed; inset:0 0 auto; height:env(safe-area-inset-top, 0px); z-index:60; background:var(--papel); }
.header{
  position:sticky; top:env(safe-area-inset-top, 0px); z-index:50;
  background:rgba(244,245,240,.92); backdrop-filter:saturate(1.4) blur(10px); -webkit-backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid transparent; transition:border-color .2s;
}
.header.is-scrolled{ border-bottom-color:var(--linha); }
.header .wrap{ height:var(--header-h); display:flex; align-items:center; gap:28px; }
.brand{ display:flex; align-items:center; flex-shrink:0; }
.brand img{ height:50px; width:auto; }
.nav{ display:flex; align-items:center; gap:4px; margin-left:auto; }
.nav a{
  position:relative; padding:10px 12px; font-size:var(--t-sm); font-weight:500; color:var(--cinza); text-decoration:none; border-radius:var(--raio);
}
.nav a:hover{ color:var(--tinta); }
.nav a[aria-current="page"]{ color:var(--tinta); }
.nav a[aria-current="page"]::after{ content:""; position:absolute; left:12px; right:12px; bottom:4px; height:2px; background:var(--laranja); }
.header .btn{ min-height:42px; padding:0 18px; }
.menu-btn{
  display:none; margin-left:auto; width:46px; height:46px; border:1px solid var(--linha); border-radius:var(--raio);
  background:var(--branco); cursor:pointer; align-items:center; justify-content:center;
}
.menu-btn span, .menu-btn span::before, .menu-btn span::after{ display:block; width:18px; height:2px; background:var(--tinta); position:relative; transition:.25s; }
.menu-btn span::before, .menu-btn span::after{ content:""; position:absolute; left:0; }
.menu-btn span::before{ top:-6px; } .menu-btn span::after{ top:6px; }
.menu-open .menu-btn span{ background:transparent; }
.menu-open .menu-btn span::before{ top:0; transform:rotate(45deg); }
.menu-open .menu-btn span::after{ top:0; transform:rotate(-45deg); }

@media (max-width:960px){
  .menu-btn{ display:flex; }
  .header .btn{ display:none; }
  .nav{
    position:fixed; left:0; right:0; top:calc(var(--header-h) + env(safe-area-inset-top, 0px)); bottom:0;
    flex-direction:column; align-items:stretch; gap:0; margin:0;
    padding:12px var(--gutter-r) 32px var(--gutter); background:var(--papel);
    transform:translateX(100%); visibility:hidden; transition:transform .3s, visibility .3s; overflow-y:auto;
  }
  .menu-open .nav{ transform:none; visibility:visible; }
  .nav a{ padding:16px 4px; font-size:1.15rem; border-bottom:1px solid var(--linha); border-radius:0; color:var(--tinta); }
  .nav a[aria-current="page"]::after{ left:4px; right:auto; width:28px; bottom:10px; }
  .nav .nav-cta{ display:flex; margin-top:20px; border:0; }
}
@media (min-width:961px){ .nav .nav-cta{ display:none; } }

/* ---------- herói (home) ---------- */
.on-dark{ background:var(--verde); color:var(--branco); }
.hero{ position:relative; overflow:hidden; }
.hero::before{ /* malha de levantamento */
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(var(--linha-escura) 1px, transparent 1px),
    linear-gradient(90deg, var(--linha-escura) 1px, transparent 1px);
  background-size:64px 64px; opacity:.35;
  mask-image:linear-gradient(90deg, transparent, #000 45%);
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 45%);
}
.hero .wrap{ position:relative; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:48px; align-items:center; padding-block:72px 56px; }
.hero h1 em{ font-style:normal; color:var(--laranja); }
.hero-lead{ margin-top:22px; font-size:var(--t-lg); line-height:1.55; color:#C6D3CA; max-width:52ch; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.hero-tags{ display:flex; flex-wrap:wrap; gap:8px 22px; margin:36px 0 0; padding:0; list-style:none; font-size:var(--t-sm); color:#C6D3CA; }
.hero-tags li{ display:flex; align-items:center; gap:8px; }
.hero-tags li::before{ content:""; width:7px; height:7px; border:1.5px solid var(--laranja); transform:rotate(45deg); }
.planta{ width:100%; height:auto; overflow:visible; }
.planta text{ font-family:var(--f-mono); }
.planta .lote{ stroke-dasharray:1400; stroke-dashoffset:1400; animation:tracar 2.4s .3s cubic-bezier(.6,.1,.2,1) forwards; }
.planta .vx{ opacity:0; animation:surgir .4s forwards; }
@keyframes tracar{ to{ stroke-dashoffset:0; } }
@keyframes surgir{ to{ opacity:1; } }
@media (prefers-reduced-motion:reduce){ .planta .lote{ stroke-dashoffset:0; } .planta .vx{ opacity:1; } }

/* faixa de números (carimbo) */
.carimbo{ position:relative; border-top:1px solid var(--linha-escura); }
.carimbo .wrap{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); }
.carimbo .cel{ padding:26px 24px 28px; border-left:1px solid var(--linha-escura); }
.carimbo .cel:first-child{ border-left:0; padding-left:0; }
.carimbo .n{ font:700 clamp(2rem, 1.4rem + 2vw, 2.8rem)/1 var(--f-display); font-stretch:115%; font-variant-numeric:tabular-nums; }
.carimbo .n small{ font-size:.55em; color:var(--laranja); margin-left:2px; }
.carimbo .t{ margin-top:8px; font:500 var(--t-xs)/1.4 var(--f-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--cinza-claro); }

/* ---------- seções ---------- */
.sec{ padding-block:clamp(64px, 8vw, 112px); }
.sec--alt{ background:var(--branco); border-block:1px solid var(--linha); }
.sec-head{ display:grid; gap:14px; max-width:720px; margin-bottom:48px; }
.sec-head p{ color:var(--cinza); font-size:var(--t-lg); line-height:1.55; }
.on-dark .sec-head p{ color:#C6D3CA; }
.sec-head--row{ max-width:none; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:24px; }

/* para quem */
.publico{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); border:1px solid var(--linha); border-radius:var(--raio); background:var(--branco); }
.publico a{ display:flex; flex-direction:column; gap:10px; padding:28px 24px; text-decoration:none; border-left:1px solid var(--linha); transition:background .2s; min-width:0; }
.publico a:first-child{ border-left:0; }
.publico a:hover{ background:var(--papel); }
.publico .ico{ width:40px; height:40px; color:var(--verde); }
.publico h3{ font-size:1.08rem; }
.publico p{ color:var(--cinza); font-size:var(--t-sm); line-height:1.55; flex:1; }
.publico .arrow-link{ margin-top:6px; }

/* frentes de serviço */
.frentes{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; }
.frente{
  position:relative; display:flex; flex-direction:column; gap:16px; padding:32px 28px 28px;
  background:var(--branco); border:1px solid var(--linha); border-radius:var(--raio); min-width:0;
}
.frente .num{ font:500 var(--t-xs)/1 var(--f-mono); color:var(--cinza); letter-spacing:.08em; }
.frente h3{ font-size:1.35rem; }
.frente > p{ color:var(--cinza); font-size:var(--t-sm); }
.frente ul{ list-style:none; margin:4px 0 0; padding:0; border-top:1px solid var(--linha); flex:1; }
.frente li{ display:flex; gap:10px; align-items:baseline; padding:11px 0; border-bottom:1px dashed var(--linha); font-size:var(--t-sm); font-weight:500; }
.frente li::before{ content:""; flex-shrink:0; width:6px; height:6px; border:1.5px solid var(--laranja); transform:rotate(45deg) translateY(-2px); }
.frente::after{ content:""; position:absolute; left:-1px; top:-1px; width:14px; height:14px; border-left:2px solid var(--laranja); border-top:2px solid var(--laranja); border-top-left-radius:var(--raio); }

/* processo como poligonal */
.poligonal{ position:relative; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:24px; counter-reset:etapa; }
.poligonal::before{ content:""; position:absolute; left:8px; right:8px; top:8px; border-top:1.5px dashed var(--verde-3); }
.on-dark .poligonal::before{ border-color:rgba(255,255,255,.28); }
.etapa{ position:relative; padding-top:40px; min-width:0; }
.etapa::before{
  counter-increment:etapa; content:""; position:absolute; left:0; top:0; width:17px; height:17px;
  background:var(--verde); border:2px solid var(--laranja); transform:rotate(45deg);
}
.etapa .v{ font:500 var(--t-xs)/1 var(--f-mono); letter-spacing:.08em; color:var(--laranja); }
.etapa h3{ margin:10px 0 8px; font-size:1.15rem; }
.etapa p{ font-size:var(--t-sm); color:#C6D3CA; }
.sec--alt .etapa p, .sec .etapa p{ color:var(--cinza); }
.on-dark .etapa p{ color:#C6D3CA; }

/* diferenciais */
.split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px, 6vw, 80px); align-items:start; }
.lista-dif{ list-style:none; margin:0; padding:0; display:grid; }
.lista-dif li{ display:grid; grid-template-columns:44px minmax(0,1fr); gap:16px; padding:22px 0; border-top:1px solid var(--linha); }
.lista-dif li:last-child{ border-bottom:1px solid var(--linha); }
.lista-dif .ico{ width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--linha); border-radius:var(--raio); color:var(--verde); background:var(--branco); }
.lista-dif .ico svg{ width:22px; height:22px; }
.lista-dif h3{ font-size:1.08rem; margin-bottom:4px; }
.lista-dif p{ color:var(--cinza); font-size:var(--t-sm); }

.ficha{ background:var(--verde); color:var(--branco); border-radius:var(--raio); padding:32px; display:grid; gap:24px; position:sticky; top:calc(var(--header-h) + 24px); }
.ficha .linha{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:18px; align-items:baseline; padding-bottom:22px; border-bottom:1px solid var(--linha-escura); }
.ficha .linha:last-of-type{ border-bottom:0; padding-bottom:0; }
.ficha .n{ font:700 2.6rem/1 var(--f-display); font-stretch:115%; font-variant-numeric:tabular-nums; }
.ficha .n small{ font-size:.5em; color:var(--laranja); }
.ficha p{ color:#C6D3CA; font-size:var(--t-sm); }

/* clientes */
.clientes{ display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); border-top:1px solid var(--linha); border-left:1px solid var(--linha); }
.clientes div{ display:grid; place-items:center; aspect-ratio:3/2; padding:18px; border-right:1px solid var(--linha); border-bottom:1px solid var(--linha); background:var(--branco); }
.clientes img{ max-height:52px; width:auto; object-fit:contain; filter:grayscale(1); opacity:.7; transition:filter .25s, opacity .25s; }
.clientes div:hover img{ filter:none; opacity:1; }

/* posts */
.posts{ display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:24px; }
.post{ display:flex; flex-direction:column; background:var(--branco); border:1px solid var(--linha); border-radius:var(--raio); overflow:hidden; text-decoration:none; transition:border-color .2s, transform .2s; min-width:0; }
.post:hover{ border-color:var(--cinza-claro); transform:translateY(-2px); }
.post .capa{ aspect-ratio:16/9; overflow:hidden; background:var(--papel-2); }
.post .capa img{ width:100%; height:100%; object-fit:cover; }
.post .corpo{ display:flex; flex-direction:column; gap:10px; padding:22px 22px 24px; flex:1; }
.post .meta{ font:500 var(--t-xs)/1.4 var(--f-mono); letter-spacing:.05em; text-transform:uppercase; color:var(--cinza); }
.post .meta b{ color:var(--laranja-txt); font-weight:500; }
.post h3{ font-size:1.12rem; line-height:1.3; }
.post p{ font-size:var(--t-sm); color:var(--cinza); flex:1; }
.post--destaque{ grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); }
.post--destaque .capa{ aspect-ratio:auto; min-height:280px; }
.post--destaque .corpo{ padding:36px; justify-content:center; }
.post--destaque h3{ font-size:var(--t-xl); }

/* faixa de chamada */
.chamada{ position:relative; overflow:hidden; }
.chamada .wrap{ display:grid; grid-template-columns:minmax(0,1.4fr) auto; gap:32px; align-items:center; padding-block:64px; }
.chamada h2{ font-size:clamp(1.7rem, 1.2rem + 1.8vw, 2.5rem); }
.chamada p{ margin-top:12px; color:#C6D3CA; max-width:56ch; }
.chamada .acoes{ display:flex; flex-wrap:wrap; gap:12px; }
.chamada svg.contorno{ position:absolute; right:-80px; top:-40px; width:520px; opacity:.18; pointer-events:none; }

/* ---------- páginas internas ---------- */
.page-hero{ position:relative; overflow:hidden; }
.page-hero .wrap{ position:relative; padding-block:56px 60px; display:grid; gap:18px; }
.page-hero p{ max-width:62ch; font-size:var(--t-lg); color:#C6D3CA; line-height:1.55; }
.trilha{ font:500 var(--t-xs)/1 var(--f-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--cinza-claro); }
.trilha a{ text-decoration:none; color:var(--cinza-claro); }
.trilha a:hover{ color:var(--branco); }
.trilha span{ color:var(--laranja); }
.page-hero svg.contorno{ position:absolute; right:-60px; bottom:-120px; width:560px; opacity:.16; pointer-events:none; }

/* serviços (página) */
.servico-bloco{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr); gap:clamp(28px, 5vw, 72px); padding-block:clamp(56px, 7vw, 96px); border-top:1px solid var(--linha); scroll-margin-top:var(--header-h); }
.servico-bloco:first-child{ border-top:0; }
.servico-bloco .lado{ display:grid; gap:14px; align-content:start; position:sticky; top:calc(var(--header-h) + 24px); }
.servico-bloco .lado p{ color:var(--cinza); }
.servico-bloco .big{ font:700 4.5rem/1 var(--f-display); font-stretch:120%; color:var(--linha); }
.itens{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; }
.item{ padding:24px; background:var(--branco); border:1px solid var(--linha); border-radius:var(--raio); display:grid; gap:10px; align-content:start; min-width:0; }
.item .ico{ width:36px; height:36px; color:var(--laranja-txt); }
.item p{ color:var(--cinza); font-size:var(--t-sm); }

/* sobre */
.prosa{ max-width:66ch; display:grid; gap:18px; font-size:1.08rem; }
.prosa p{ color:#2D3C33; }
.valores{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; }
.valor{ padding:28px; border:1px solid var(--linha); border-radius:var(--raio); background:var(--branco); display:grid; gap:10px; align-content:start; }
.valor .ico{ width:36px; height:36px; color:var(--laranja-txt); }
.valor p{ color:var(--cinza); font-size:var(--t-sm); }
.mv{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px; }
.mv > div{ padding:32px; border-left:3px solid var(--laranja); background:var(--branco); border-radius:0 var(--raio) var(--raio) 0; display:grid; gap:10px; }
.mv p{ color:var(--cinza); }
.equipe{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1px; background:var(--linha-escura); border:1px solid var(--linha-escura); border-radius:var(--raio); overflow:hidden; }
.equipe > div{ background:var(--verde); padding:28px; display:grid; gap:10px; align-content:start; }
.equipe .cod{ font:500 var(--t-xs)/1 var(--f-mono); letter-spacing:.08em; color:var(--laranja); }
.equipe p{ color:#C6D3CA; font-size:var(--t-sm); }

/* faq */
.faq{ max-width:860px; display:grid; gap:10px; }
.faq details{ background:var(--branco); border:1px solid var(--linha); border-radius:var(--raio); transition:border-color .2s; }
.faq details[open]{ border-color:var(--cinza-claro); }
.faq summary{
  list-style:none; cursor:pointer; display:grid; grid-template-columns:minmax(0,1fr) 22px; gap:16px; align-items:center;
  padding:20px 22px; font:600 1.04rem/1.4 var(--f-body);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:""; width:22px; height:22px; border:1px solid var(--linha); border-radius:50%;
  background:
    linear-gradient(var(--tinta),var(--tinta)) center/10px 1.5px no-repeat,
    linear-gradient(var(--tinta),var(--tinta)) center/1.5px 10px no-repeat;
  transition:transform .2s;
}
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq .resp{ padding:0 22px 22px; color:var(--cinza); display:grid; gap:12px; }
.faq .resp strong{ color:var(--tinta); }

/* artigo */
.artigo{ max-width:760px; margin:0 auto; }
.artigo .capa{ border-radius:var(--raio); overflow:hidden; border:1px solid var(--linha); margin-bottom:40px; background:var(--branco); }
.artigo .capa img{ width:100%; }
.texto{ display:grid; gap:18px; font-size:1.08rem; line-height:1.75; }
.texto h2{ font-size:1.5rem; margin-top:18px; }
.texto h3{ font-size:1.2rem; margin-top:10px; }
.texto ul, .texto ol{ margin:0; padding-left:1.2em; display:grid; gap:8px; }
.texto a{ color:var(--laranja-txt); }
.texto blockquote{ margin:0; padding:16px 20px; border-left:3px solid var(--laranja); background:var(--branco); }
.artigo-meta{ display:flex; flex-wrap:wrap; gap:8px 18px; font:500 var(--t-xs)/1.4 var(--f-mono); letter-spacing:.05em; text-transform:uppercase; color:var(--cinza-claro); }

/* contato */
.contato{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(28px, 5vw, 64px); align-items:start; }
.dados{ list-style:none; margin:0; padding:0; display:grid; }
.dados li{ display:grid; grid-template-columns:40px minmax(0,1fr); gap:14px; padding:20px 0; border-top:1px solid var(--linha); }
.dados li:last-child{ border-bottom:1px solid var(--linha); }
.dados .ico{ width:40px; height:40px; display:grid; place-items:center; border-radius:var(--raio); background:var(--verde); color:var(--laranja); }
.dados .ico svg{ width:20px; height:20px; }
.dados .k{ font:500 var(--t-xs)/1.4 var(--f-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--cinza); }
.dados .v{ font-weight:500; overflow-wrap:anywhere; }
.dados a{ text-decoration:none; }
.dados a:hover{ color:var(--laranja-txt); }
.form{ background:var(--branco); border:1px solid var(--linha); border-radius:var(--raio); padding:clamp(22px, 4vw, 40px); display:grid; gap:18px; }
.form .duas{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px; }
.campo{ display:grid; gap:7px; }
.campo label{ font-size:var(--t-sm); font-weight:600; }
.campo input, .campo textarea{
  width:100%; font:inherit; font-size:1rem; color:var(--tinta); background:var(--papel);
  border:1px solid var(--linha); border-radius:var(--raio); padding:12px 14px; transition:border-color .2s, background .2s;
}
.campo textarea{ min-height:150px; resize:vertical; }
.campo input:focus, .campo textarea:focus{ outline:none; border-color:var(--verde); background:var(--branco); box-shadow:0 0 0 3px rgba(245,134,52,.25); }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form .aviso{ font-size:var(--t-xs); color:var(--cinza); }
.form .aviso a{ color:var(--laranja-txt); }
.status{ font-size:var(--t-sm); padding:12px 14px; border-radius:var(--raio); }
.status:empty{ display:none; }
.status.ok{ background:#E3F2E8; color:#1E5C38; }
.status.erro{ background:#FBE7E1; color:#8A2D14; }
.status a{ color:inherit; }
.mapa{ margin-top:clamp(40px, 6vw, 72px); border:1px solid var(--linha); border-radius:var(--raio); overflow:hidden; background:var(--papel-2); }
.mapa iframe{ display:block; width:100%; height:380px; border:0; }

/* legal */
.legal{ max-width:760px; display:grid; gap:14px; }
.legal h2, .legal h3{ font-size:1.2rem; margin-top:18px; }
.legal p, .legal li{ color:#2D3C33; }
.legal a{ color:var(--laranja-txt); }

/* ---------- rodapé ---------- */
.footer{ background:var(--verde); color:#C6D3CA; font-size:var(--t-sm); }
.footer .wrap{ padding-block:64px 28px; }
.footer-grid{ display:grid; grid-template-columns:minmax(0,1.4fr) repeat(3, minmax(0,1fr)); gap:40px; }
.footer img{ height:96px; width:auto; margin-bottom:18px; }
.footer h2{ font:500 var(--t-xs)/1 var(--f-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--laranja); margin-bottom:16px; }
.footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:9px; }
.footer a{ text-decoration:none; }
.footer a:hover{ color:var(--branco); }
.footer .end{ max-width:34ch; }
.footer-base{ margin-top:48px; padding-top:22px; border-top:1px solid var(--linha-escura); display:flex; flex-wrap:wrap; gap:10px 24px; justify-content:space-between; font-size:var(--t-xs); }
.footer-base .coord{ font-family:var(--f-mono); letter-spacing:.04em; color:var(--cinza-claro); }

/* barra de contato fixa (celular) */
.barra-contato{ display:none; }
@media (max-width:760px){
  .barra-contato{
    display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:8px;
    position:fixed; left:0; right:0; bottom:0; z-index:40;
    padding:10px var(--gutter-r) calc(10px + env(safe-area-inset-bottom, 0px)) var(--gutter);
    background:rgba(13,35,23,.96); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  }
  .barra-contato a{ min-height:46px; font-size:var(--t-sm); }
  body{ padding-bottom:calc(68px + env(safe-area-inset-bottom, 0px)); }
}

/* ---------- responsivo ---------- */
@media (max-width:1080px){
  .publico{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .publico a:nth-child(3){ border-left:0; }
  .publico a:nth-child(n+3){ border-top:1px solid var(--linha); }
  .clientes{ grid-template-columns:repeat(4, minmax(0,1fr)); }
  .footer-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width:960px){
  .hero .wrap{ grid-template-columns:minmax(0,1fr); padding-block:48px 40px; gap:36px; }
  .planta{ max-width:520px; }
  .frentes, .valores, .equipe{ grid-template-columns:minmax(0,1fr); }
  .split, .contato, .servico-bloco{ grid-template-columns:minmax(0,1fr); }
  .servico-bloco .lado, .ficha{ position:static; }
  .poligonal{ grid-template-columns:repeat(2, minmax(0,1fr)); row-gap:40px; }
  .poligonal::before{ display:none; }
  .chamada .wrap{ grid-template-columns:minmax(0,1fr); }
  .post--destaque{ grid-template-columns:minmax(0,1fr); }
  .post--destaque .capa{ min-height:0; aspect-ratio:16/9; }
  .sec-head--row{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width:640px){
  .carimbo .wrap{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .carimbo .cel{ padding:20px 0 22px 18px; }
  .carimbo .cel:nth-child(odd){ border-left:0; padding-left:0; }
  .carimbo .cel:nth-child(n+3){ border-top:1px solid var(--linha-escura); }
  .publico, .itens, .mv, .form .duas{ grid-template-columns:minmax(0,1fr); }
  .publico a{ border-left:0; }
  .publico a + a{ border-top:1px solid var(--linha); }
  .poligonal{ grid-template-columns:minmax(0,1fr); }
  .clientes{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .footer-grid{ grid-template-columns:minmax(0,1fr); }
  .brand img{ height:44px; }
  .hero-actions .btn{ flex:1 1 100%; }
}
