/* =========================================================
   RBT Engenharia — Design System v1.0
   Malha 4x4 e diagonais a 45° do símbolo da marca
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@600;700&family=Barlow:wght@400;500;600&family=IBM+Plex+Mono:wght@500&display=swap');

:root{
  /* marca */
  --amarelo:        #FAB914;
  --amarelo-hover:  #DFA200;
  --amarelo-claro:  #FFD75E;
  --amarelo-texto:  #7A5A00;
  --grafite:        #6E6E6E;

  /* neutros */
  --n-0:#FFFFFF; --n-50:#F7F6F1; --n-100:#EDEBE3; --n-200:#DBD8CC;
  --n-300:#BEBAAC; --n-400:#949083; --n-500:#6E6E6E; --n-600:#57544B;
  --n-700:#403E37; --n-800:#2B2A25; --n-900:#1C1B17; --n-950:#121210;

  /* semânticas */
  --ok:#1E7A4C; --info:#1F5F8B; --atencao:#B45309; --perigo:#C0261F;

  /* papéis */
  --bg:var(--n-50);
  --surface:var(--n-0);
  --texto:var(--n-800);
  --texto-suave:var(--n-500);
  --titulo:var(--n-900);
  --borda:var(--n-200);
  --acao:var(--amarelo);
  --acao-texto:var(--n-950);

  /* tipografia */
  --f-display:"Poppins",system-ui,sans-serif;
  --f-texto:"Barlow",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,monospace;

  --fs-display: clamp(2.25rem, 1.4rem + 3.8vw, 3.5rem);
  --fs-h1:      clamp(1.875rem, 1.2rem + 3vw, 2.75rem);
  --fs-h2:      clamp(1.5625rem, 1.1rem + 2.1vw, 2.125rem);
  --fs-h3:      clamp(1.3125rem, 1.1rem + 0.9vw, 1.625rem);

  /* espaçamento */
  --e-1:4px;  --e-2:8px;  --e-3:12px; --e-4:16px; --e-5:24px;
  --e-6:32px; --e-7:48px; --e-8:64px; --e-9:96px; --e-10:128px;

  /* raios e sombras */
  --r-sm:3px; --r-md:4px; --r-lg:8px; --r-full:999px;
  --sh-1:0 1px 2px rgba(28,27,23,.06);
  --sh-2:0 2px 4px rgba(28,27,23,.06),0 8px 20px -12px rgba(28,27,23,.22);
  --sh-3:0 12px 32px -12px rgba(28,27,23,.30);

  /* layout */
  --container:1200px;
  --leitura:720px;
  --secao:96px;
}

@media (max-width:768px){ :root{ --secao:64px; } }

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ -webkit-text-size-adjust:100%; }
body{
  font-family:var(--f-texto);
  font-size:16px;
  line-height:1.7;
  color:var(--texto);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
img,picture,svg{ display:block; max-width:100%; }
input,button,textarea,select{ font:inherit; color:inherit; }
button{ cursor:pointer; }
a{ color:inherit; text-decoration:none; }
a[href^="mailto:"]{ overflow-wrap:anywhere; }
ul,ol{ list-style:none; padding:0; }
:focus-visible{ outline:2px solid var(--amarelo-texto); outline-offset:2px; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* ---------- tipografia ---------- */
h1,h2,h3,h4{ font-family:var(--f-display); color:var(--titulo); text-wrap:balance; }
h1{ font-size:var(--fs-h1); font-weight:700; line-height:1.1; letter-spacing:-0.02em; }
.destaque{ color:var(--amarelo-texto); }
.sec-escura .destaque{ color:var(--amarelo); }
h2{ font-size:var(--fs-h2); font-weight:600; line-height:1.15; letter-spacing:-0.01em; }
h3{ font-size:var(--fs-h3); font-weight:600; line-height:1.25; }
h4{ font-family:var(--f-texto); font-size:1.125rem; font-weight:600; line-height:1.3; color:var(--titulo); }
p{ text-wrap:pretty; }
.display{ font-family:var(--f-display); font-weight:700; font-size:var(--fs-display); line-height:1.05; letter-spacing:-0.02em; color:var(--titulo); }
.body-lg{ font-size:clamp(1.0625rem,1rem + .3vw,1.125rem); line-height:1.65; }
.small{ font-size:0.875rem; line-height:1.6; }
.label{
  font-family:var(--f-mono); font-weight:500; font-size:0.75rem;
  text-transform:uppercase; letter-spacing:.14em; line-height:1.4;
}
.lede{ font-size:1.125rem; line-height:1.65; color:var(--n-700); }
.tabular{ font-variant-numeric:tabular-nums; }

.container{ max-width:var(--container); margin-inline:auto; padding-inline:24px; }
@media (min-width:768px){ .container{ padding-inline:40px; } }
@media (min-width:1200px){ .container{ padding-inline:64px; } }
.leitura{ max-width:var(--leitura); }
.medida-texto{ max-width:62ch; }

section{ padding-block:var(--secao); }
.sec-escura{ background:var(--n-900); color:var(--n-200); }
.sec-escura h2,.sec-escura h3,.sec-escura h4{ color:var(--n-0); }
.sec-alt{ background:var(--n-100); }

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  color:var(--amarelo-texto); margin-bottom:var(--e-3);
}
.sec-escura .eyebrow{ color:var(--amarelo-claro); }
.eyebrow::before{
  content:""; width:18px; height:2px; background:var(--amarelo); flex:none;
}

.sec-head{ max-width:var(--leitura); margin-bottom:var(--e-7); }
.sec-head h2{ margin-bottom:var(--e-4); }
.sec-head p{ color:var(--texto-suave); }
.sec-escura .sec-head p{ color:var(--n-300); }

/* ---------- diagonal 45° ---------- */
.mark-45{ position:relative; padding-left:1.1em; }
.mark-45::before{
  content:""; position:absolute; left:0; top:.5em;
  width:8px; height:8px; background:var(--amarelo);
  clip-path:polygon(0 0,100% 0,0 100%);
}
.card-45{
  clip-path:polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 0 100%);
}
.foto-45{
  clip-path:polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 0 100%);
  position:relative; overflow:hidden; background:var(--n-200);
}
.foto-45 img{ width:100%; height:100%; object-fit:cover; }

/* malha técnica de fundo */
.malha-tecnica{ position:relative; }
.malha-tecnica::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(28,27,23,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(28,27,23,.05) 1px, transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(180deg, black, transparent 85%);
}

/* ---------- botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  height:48px; padding:0 24px; border-radius:var(--r-md);
  font-family:var(--f-texto); font-weight:600; font-size:1rem;
  border:none; white-space:nowrap; transition:background-color .15s ease, transform .15s ease, border-color .15s ease;
}
.btn svg{ width:20px; height:20px; flex:none; }
.btn-lg{ height:56px; padding:0 32px; font-size:1.0625rem; }
.btn-primario{ background:var(--amarelo); color:var(--n-950); }
.btn-primario:hover{ background:var(--amarelo-hover); transform:translateY(-1px); }
.btn-primario:active{ transform:translateY(0); }

/* botões que levam ao WhatsApp: verde da marca WhatsApp */
:root{ --whatsapp:#25D366; --whatsapp-hover:#1EBE5A; }
.btn[href*="wa.me"],
[data-form-orcamento] .btn[type="submit"]{ background:var(--whatsapp); color:var(--n-950); }
.btn[href*="wa.me"]:hover,
[data-form-orcamento] .btn[type="submit"]:hover{ background:var(--whatsapp-hover); }
.btn-secundario{ background:transparent; color:var(--n-900); border:1.5px solid var(--n-900); }
.btn-secundario:hover{ background:var(--n-900); color:var(--n-0); }
.sec-escura .btn-secundario{ color:var(--n-0); border-color:var(--n-0); }
.sec-escura .btn-secundario:hover{ background:var(--n-0); color:var(--n-900); }
.btn-terciario{ background:transparent; color:var(--amarelo-texto); height:auto; padding:0; font-weight:600; }
.btn-terciario:hover{ text-decoration:underline; }
.sec-escura .btn-terciario{ color:var(--amarelo-claro); }
.btn-terciario svg{ width:16px; height:16px; flex:none; }

/* ---------- chip de norma ---------- */
.chip{
  display:inline-flex; align-items:center;
  font-family:var(--f-mono); font-size:.75rem; font-weight:500;
  text-transform:uppercase; letter-spacing:.14em;
  background:var(--n-100); color:var(--n-700);
  border-left:3px solid var(--amarelo);
  padding:4px 10px; border-radius:var(--r-sm);
}
.sec-escura .chip{ background:rgba(255,255,255,.08); color:var(--n-100); }
.chips{ display:flex; flex-wrap:wrap; gap:8px; }

/* ---------- header ---------- */
.header{
  position:sticky; top:0; z-index:50;
  height:72px; display:flex; align-items:center;
  background:rgba(247,246,241,.9); backdrop-filter:blur(12px);
  border-bottom:1px solid transparent;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.header.rolou{ border-bottom-color:var(--borda); box-shadow:var(--sh-1); }
.header .container{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.logo{ display:flex; align-items:center; height:32px; flex:none; }
.logo img{ height:100%; width:auto; }
.nav-desktop{ display:none; }
.nav-desktop ul{ display:flex; align-items:center; gap:32px; }
.nav-desktop a{
  font-weight:500; font-size:.9375rem; color:var(--n-800);
  position:relative; padding:4px 0;
}
.nav-desktop a:hover{ color:var(--n-950); }
.nav-desktop > ul > li{ position:relative; }
.header-cta{ display:none; }
.header-actions{ display:flex; align-items:center; gap:16px; }

.dropdown{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(4px);
  background:var(--n-0); border:1px solid var(--borda); border-radius:var(--r-lg);
  box-shadow:var(--sh-3); padding:8px; min-width:300px;
  opacity:0; visibility:hidden; transition:opacity .15s ease, transform .15s ease;
}
.nav-item:hover .dropdown, .nav-item:focus-within .dropdown{
  opacity:1; visibility:visible; transform:translateX(-50%) translateY(8px);
}
.dropdown a{
  display:flex; align-items:center; gap:10px; padding:10px 12px;
  border-radius:var(--r-md); font-size:.9375rem; font-weight:500; color:var(--n-800);
}
.dropdown a:hover{ background:var(--n-50); color:var(--n-950); }
.dropdown a svg{ width:18px; height:18px; color:var(--amarelo-texto); flex:none; }
.dropdown-cidades{ min-width:420px; column-count:2; column-gap:4px; }
.dropdown-cidades a{ break-inside:avoid; }

.menu-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border:1.5px solid var(--n-300); border-radius:var(--r-md);
  background:transparent;
}
.menu-toggle svg{ width:22px; height:22px; }

.mobile-panel{
  position:fixed; inset:0 0 0 auto; width:88%; max-width:360px;
  background:var(--n-900); color:var(--n-100); z-index:100;
  transform:translateX(100%); transition:transform .25s ease;
  display:flex; flex-direction:column; padding:24px; overflow-y:auto;
}
.mobile-panel.aberto{ transform:translateX(0); }
.mobile-overlay{
  position:fixed; inset:0; background:rgba(18,18,16,.55); z-index:99;
  opacity:0; visibility:hidden; transition:opacity .25s ease;
}
.mobile-overlay.aberto{ opacity:1; visibility:visible; }
.mobile-panel-topo{ display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--e-7); }
.mobile-panel-topo .logo img{ filter:brightness(0) invert(1); }
.mobile-panel a.fechar{
  width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center;
  border:1.5px solid var(--n-700); border-radius:var(--r-md);
}
.mobile-panel a.fechar svg{ width:20px; height:20px; }
.mobile-nav{ display:flex; flex-direction:column; gap:4px; }
.mobile-nav a{
  font-family:var(--f-display); font-weight:600; font-size:1.25rem;
  padding:14px 4px; border-bottom:1px solid rgba(255,255,255,.08);
}
.mobile-sub{ display:flex; flex-direction:column; padding-left:12px; }
.mobile-sub a{ font-family:var(--f-texto); font-weight:500; font-size:1rem; padding:10px 4px; color:var(--n-300); }
.mobile-panel .btn-primario{ margin-top:var(--e-6); width:100%; }

body.menu-aberto{ overflow:hidden; }

/* ---------- hero ---------- */
.hero{ padding-block:var(--e-9) var(--secao); position:relative; overflow:hidden; }
.hero-grid{ display:grid; gap:var(--e-7); align-items:center; position:relative; z-index:1; }
.hero h1{ margin-bottom:var(--e-4); }
.hero .eyebrow{ margin-bottom:var(--e-4); }
.hero .lede{ margin-bottom:var(--e-6); max-width:52ch; }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:16px; }
.hero-foto{ aspect-ratio:4/5; }
.hero-foto-planta{ aspect-ratio:1177/851; background:#fff; }
.hero-foto-planta img{ object-fit:contain; }
.hero-foto-paisagem{ aspect-ratio:4/3; }

/* antes e depois */
.antes-depois{ display:grid; gap:var(--e-4); grid-template-columns:1fr 1fr; }
.antes-depois figure{ margin:0; }
.antes-depois .foto-45{ aspect-ratio:4/3; }
.antes-depois figcaption{ margin-top:8px; }
.antes-depois-quadrado .foto-45{ aspect-ratio:1/1; }

.figura-laudo{ margin-inline:0; }
.figura-laudo .foto-45{ aspect-ratio:9/16; max-width:320px; }
.figura-laudo figcaption{ color:var(--texto-suave); font-size:.9375rem; }

/* galeria de fotos da empresa */
.galeria-empresa{ display:grid; gap:var(--e-4); grid-template-columns:1fr 1fr; }
.galeria-empresa .foto-45{ aspect-ratio:4/5; }
.galeria-empresa .galeria-empresa-destaque{ grid-column:1 / -1; aspect-ratio:3/2; }
.hero-cidades{ margin-top:var(--e-5); display:flex; align-items:center; gap:8px; color:var(--texto-suave); font-size:.9375rem; }
.hero-cidades svg{ width:18px; height:18px; flex:none; color:var(--amarelo-texto); }

@media (min-width:960px){
  .hero-grid{ grid-template-columns:1.1fr 1fr; }
}

/* holofote que segue o mouse (só onde há ponteiro fino, ou seja, desktop) */
.hero-spotlight{
  position:absolute; inset:0; pointer-events:none; z-index:0;
  opacity:0;
  background:radial-gradient(600px circle at var(--mx,50%) var(--my,15%), rgba(250,185,20,.16), transparent 62%);
  transition:opacity .4s ease;
}
@media (hover:hover) and (pointer:fine){
  .hero.tem-mouse .hero-spotlight{ opacity:1; }
}

/* ---------- carrossel do herói ---------- */
.hero-carrossel{ position:relative; }
.carrossel-track{ position:relative; width:100%; height:100%; }
.carrossel-slide{
  position:absolute; inset:0; opacity:0; visibility:hidden;
  transition:opacity 1s ease;
}
.carrossel-slide.is-ativo{ opacity:1; visibility:visible; z-index:1; }
.carrossel-slide img{
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.06); transition:transform 7s ease-out;
}
.carrossel-slide.is-ativo img{ transform:scale(1); }

.carrossel-dots{
  position:absolute; left:0; right:0; bottom:16px; z-index:2;
  display:flex; justify-content:center; gap:8px;
}
.carrossel-dots button{
  width:8px; height:8px; border-radius:var(--r-full); border:none;
  background:rgba(255,255,255,.55); padding:0; cursor:pointer;
  transition:background .2s ease, transform .2s ease;
}
.carrossel-dots button.is-ativo{ background:var(--amarelo); transform:scale(1.3); }
.carrossel-dots button:focus-visible{ outline:2px solid var(--amarelo); outline-offset:2px; }

.carrossel-pausa{
  position:absolute; z-index:2; right:12px; bottom:12px;
  width:32px; height:32px; border-radius:var(--r-full); border:none;
  background:rgba(18,18,16,.55); color:var(--n-0);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  backdrop-filter:blur(2px);
}
.carrossel-pausa:hover{ background:rgba(18,18,16,.75); }
.carrossel-pausa:focus-visible{ outline:2px solid var(--amarelo); outline-offset:2px; }
.carrossel-pausa svg{ width:16px; height:16px; }
.carrossel-pausa .icone-play{ display:none; }
.carrossel-pausa.pausado .icone-pausa{ display:none; }
.carrossel-pausa.pausado .icone-play{ display:block; }

/* selos flutuantes de credibilidade sobre a foto do herói */
.hero-selo{
  position:absolute; z-index:2;
  background:var(--n-0); box-shadow:var(--sh-3);
  padding:10px 16px; display:flex; align-items:center; gap:10px;
  clip-path:polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
}
.hero-selo strong{ display:block; font-family:var(--f-display); font-size:1.0625rem; color:var(--titulo); line-height:1.1; }
.hero-selo span{ display:block; font-size:.75rem; color:var(--texto-suave); }
.hero-selo svg{ width:22px; height:22px; color:var(--amarelo); flex:none; }
.hero-selo--nota{ left:-16px; bottom:24px; }
.hero-selo--anos{ right:-14px; top:20px; }
@media (max-width:479px){
  .hero-selo{ padding:8px 12px; }
  .hero-selo--nota{ left:8px; bottom:12px; }
  .hero-selo--anos{ right:8px; top:12px; }
}

/* ---------- faixa credencial ---------- */
.credencial{ background:var(--n-900); padding-block:0; }
.credencial-lista{
  display:flex; flex-direction:column; align-items:flex-start; gap:12px;
  padding-block:20px;
}
.credencial-item{
  display:flex; align-items:center; gap:10px;
  font-family:var(--f-mono); font-size:.75rem; text-transform:uppercase; letter-spacing:.12em;
  color:var(--n-0);
}
.credencial-item svg{ width:16px; height:16px; color:var(--amarelo); flex:none; }
.credencial-sep{ display:none; color:var(--amarelo); }
.credencial-lista-clara .credencial-item{ color:var(--n-900); }

@media (min-width:768px){
  .credencial-lista{ flex-direction:row; align-items:center; justify-content:center; gap:20px; min-height:64px; }
  .credencial-sep{ display:inline; }
}

/* ---------- apresentação ---------- */
.apresenta{ display:grid; gap:var(--e-8); }
.apresenta-foto{ aspect-ratio:1/1; max-width:420px; }
@media (min-width:900px){
  .apresenta{ grid-template-columns:1fr 1.15fr; align-items:center; }
  .apresenta-foto{ max-width:none; }
}
.apresenta p + p{ margin-top:var(--e-4); }
.apresenta-assinatura{
  display:flex; align-items:center; gap:14px; margin-top:var(--e-6);
  padding-top:var(--e-6); border-top:1px solid var(--borda);
}
.apresenta-assinatura img{ width:56px; height:56px; border-radius:var(--r-full); object-fit:cover; }
.apresenta-assinatura strong{ display:block; font-family:var(--f-display); font-size:1rem; color:var(--titulo); }
.apresenta-assinatura span{ color:var(--texto-suave); }

/* ---------- grade de serviços ---------- */
.servicos-grid{ display:grid; gap:var(--e-5); grid-template-columns:1fr; }
@media (min-width:640px){ .servicos-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .servicos-grid{ grid-template-columns:repeat(3,1fr); } }

.card-servico{
  background:var(--n-0); border:1px solid var(--n-200); padding:var(--e-6);
  box-shadow:var(--sh-1); transition:border-color .15s ease, box-shadow .15s ease;
  display:flex; flex-direction:column; height:100%;
}
.card-servico:hover{ border-color:var(--amarelo); box-shadow:var(--sh-2); }
.card-servico .icone{
  width:52px; height:52px; display:flex; align-items:center; justify-content:center;
  background:var(--n-950); margin-bottom:var(--e-5);
  clip-path:polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%);
}
.card-servico .icone svg{ width:26px; height:26px; color:var(--amarelo); }
.card-servico h3{ margin-bottom:var(--e-2); }
.card-servico .chip{ margin-bottom:var(--e-4); align-self:flex-start; }
.card-servico p{ color:var(--texto-suave); flex:1; margin-bottom:var(--e-5); }
.card-servico .btn-terciario{ display:inline-flex; align-items:center; gap:6px; }
.card-servico .btn-terciario svg{ width:16px; height:16px; transition:transform .15s ease; }
.card-servico:hover .btn-terciario svg{ transform:translateX(3px); }

/* ---------- processo ---------- */
.processo-lista{ display:grid; gap:var(--e-6); margin-top:var(--e-7); }
@media (min-width:768px){ .processo-lista{ grid-template-columns:repeat(4,1fr); gap:var(--e-5); } }
.processo-item{ display:flex; flex-direction:column; gap:var(--e-4); }
.processo-num{
  width:48px; height:48px; flex:none; display:flex; align-items:center; justify-content:center;
  background:var(--n-800); clip-path:polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
  font-family:var(--f-display); font-weight:700; font-size:1.5rem; color:var(--amarelo);
}
.processo-item h4{ color:var(--n-0); }
.processo-item p{ color:var(--n-300); font-size:.9375rem; }
.processo-linha{ display:none; }
@media (min-width:768px){
  .processo-item{ position:relative; padding-top:0; }
}

/* ---------- por que a rbt ---------- */
.porque-grid{ display:grid; gap:var(--e-6); grid-template-columns:1fr; margin-top:var(--e-7); }
@media (min-width:640px){ .porque-grid{ grid-template-columns:repeat(2,1fr); } }
.porque-item{ display:flex; gap:var(--e-4); }
.porque-item .icone{
  width:44px; height:44px; flex:none; display:flex; align-items:center; justify-content:center;
  background:var(--n-100); clip-path:polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
}
.porque-item .icone svg{ width:22px; height:22px; color:var(--amarelo-texto); }
.porque-item h4{ margin-bottom:4px; }
.porque-item p{ color:var(--texto-suave); font-size:.9375rem; }
.porque-fotos{ display:grid; grid-template-columns:1.2fr .8fr; gap:var(--e-4); margin-top:var(--e-8); align-items:end; }
.porque-fotos .foto-45:first-child{ aspect-ratio:3/4; }
.porque-fotos .foto-45:last-child{ aspect-ratio:1/1; }

/* ---------- setores ---------- */
.setores-grid{ display:grid; gap:var(--e-5); grid-template-columns:1fr; }
@media (min-width:560px){ .setores-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .setores-grid{ grid-template-columns:repeat(4,1fr); } }

.setor-card{ position:relative; }
.setor-foto{
  position:relative; aspect-ratio:3/4; overflow:hidden;
}
.setor-foto img{
  transition:transform .7s cubic-bezier(.22,.8,.2,1);
}
.setor-card:hover .setor-foto img, .setor-card:focus-within .setor-foto img{
  transform:scale(1.08);
}
.setor-numero{
  position:absolute; top:14px; left:14px; z-index:1;
  font-family:var(--f-mono); font-size:.75rem; letter-spacing:.08em;
  color:var(--n-950); background:var(--amarelo);
  padding:3px 9px; clip-path:polygon(0 0, 100% 0, 100% 100%, 6px 100%);
}
.setor-overlay{
  position:absolute; inset:0; z-index:1;
  display:flex; flex-direction:column; justify-content:flex-end; padding:20px;
  background:linear-gradient(to top, rgba(18,18,16,.92) 0%, rgba(18,18,16,.55) 48%, rgba(18,18,16,0) 78%);
}
.setor-overlay h4{ font-family:var(--f-display); color:var(--n-0); font-size:1.125rem; margin-bottom:5px; transition:transform .35s ease; }
.setor-overlay p{ color:rgba(255,255,255,.85); font-size:.875rem; line-height:1.5; margin:0; }

@media (hover:hover) and (pointer:fine){
  .setor-card:hover .setor-overlay h4, .setor-card:focus-within .setor-overlay h4{ transform:translateY(-2px); }
}

/* ---------- avaliações ---------- */
.avaliacoes-resumo{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  margin-bottom:var(--e-7);
}
.avaliacoes-nota{ font-family:var(--f-display); font-weight:700; font-size:2rem; color:var(--titulo); line-height:1; }
.avaliacoes-estrelas{ display:flex; gap:2px; color:var(--amarelo); }
.avaliacoes-estrelas svg{ width:22px; height:22px; }
.avaliacoes-legenda{ color:var(--texto-suave); font-size:.9375rem; }
.avaliacoes-legenda strong{ color:var(--n-800); }
.avaliacoes-link{ display:inline-flex; align-items:center; gap:6px; margin-left:auto; }
.avaliacoes-link svg{ width:16px; height:16px; }

.avaliacoes-grid{ display:grid; gap:var(--e-5); grid-template-columns:1fr; }
@media (min-width:640px){ .avaliacoes-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .avaliacoes-grid{ grid-template-columns:repeat(3,1fr); } }

.avaliacao-card{
  background:var(--n-0); border:1px solid var(--n-200); padding:var(--e-6);
  box-shadow:var(--sh-1); display:flex; flex-direction:column; gap:var(--e-4); height:100%;
}
.avaliacao-estrelas{ display:flex; gap:2px; color:var(--amarelo); }
.avaliacao-estrelas svg{ width:15px; height:15px; }
.avaliacao-texto{ color:var(--n-800); font-size:.9375rem; line-height:1.65; flex:1; }
.avaliacao-autor{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding-top:var(--e-4); border-top:1px solid var(--n-200);
}
.avaliacao-nome{ font-weight:600; font-size:.9375rem; color:var(--n-900); }
.avaliacao-fonte{
  font-size:.75rem; color:var(--texto-suave); display:flex; align-items:center; gap:4px; flex:none;
}
.avaliacao-fonte svg{ width:14px; height:14px; }

/* ---------- FAQ ---------- */
.faq-item{ border-bottom:1px solid var(--borda); }
.faq-pergunta{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:var(--e-4);
  background:transparent; border:none; text-align:left; padding:var(--e-5) 0;
  font-family:var(--f-texto); font-weight:600; font-size:1.125rem; color:var(--n-900);
}
.faq-pergunta .sinal{ position:relative; width:20px; height:20px; flex:none; }
.faq-pergunta .sinal::before,.faq-pergunta .sinal::after{
  content:""; position:absolute; background:var(--amarelo); transition:transform .2s ease;
}
.faq-pergunta .sinal::before{ left:0; top:50%; width:100%; height:2px; transform:translateY(-50%); }
.faq-pergunta .sinal::after{ top:0; left:50%; width:2px; height:100%; transform:translateX(-50%); }
.faq-item[data-aberto="true"] .sinal::after{ transform:translateX(-50%) scaleY(0); }
.faq-resposta{
  max-width:62ch; overflow:hidden; height:0; transition:height .2s ease;
}
.faq-resposta-inner{ padding-bottom:var(--e-5); color:var(--texto); }

/* ---------- CTA final ---------- */
.cta-final{ background:var(--n-900); position:relative; overflow:hidden; }
.cta-final .container{ text-align:center; }
.cta-final .eyebrow{ justify-content:center; }
.cta-final h2{ max-width:640px; margin-inline:auto; margin-bottom:var(--e-4); color:var(--n-0); }
.cta-final p{ max-width:52ch; margin-inline:auto; color:var(--n-300); margin-bottom:var(--e-7); }
.cta-final-ctas{ display:flex; flex-wrap:wrap; justify-content:center; gap:16px; }

/* ---------- rodapé ---------- */
.rodape{ background:var(--n-900); color:var(--n-300); position:relative; }
.rodape-barra{ height:4px; background:var(--amarelo); }
.rodape .container{ padding-block:var(--e-9) var(--e-7); }
.rodape-grid{ display:grid; gap:var(--e-7); grid-template-columns:1fr; }
@media (min-width:768px){ .rodape-grid{ grid-template-columns:1.3fr 1fr 1fr 1fr; gap:var(--e-6); } }
.rodape-marca img{ height:32px; filter:brightness(0) invert(1); margin-bottom:var(--e-4); }
.rodape-marca p{ max-width:32ch; font-size:.9375rem; }
.rodape h5{ font-family:var(--f-mono); font-size:.75rem; text-transform:uppercase; letter-spacing:.12em; color:var(--n-0); margin-bottom:var(--e-4); }
.rodape ul{ display:flex; flex-direction:column; gap:10px; }
.rodape a{ font-size:.9375rem; }
.rodape a:hover{ color:var(--n-0); }
.rodape-sociais{ display:flex; gap:12px; margin-top:var(--e-5); }
.rodape-sociais a{
  width:38px; height:38px; display:flex; align-items:center; justify-content:center;
  border:1.5px solid var(--n-700); border-radius:var(--r-full);
}
.rodape-sociais a:hover{ border-color:var(--amarelo); background:var(--amarelo); color:var(--n-950); }
.rodape-sociais svg{ width:18px; height:18px; }
.rodape-base{
  border-top:1px solid rgba(255,255,255,.1); margin-top:var(--e-8); padding-top:var(--e-5);
  display:flex; flex-direction:column; gap:8px; font-size:.8125rem; color:var(--n-500);
}
@media (min-width:768px){ .rodape-base{ flex-direction:row; justify-content:space-between; } }

/* ---------- whatsapp flutuante ---------- */
.wa-flutuante{
  position:fixed; right:24px; bottom:24px; z-index:60;
  width:56px; height:56px; border-radius:var(--r-full);
  background:var(--whatsapp); color:var(--n-950);
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--sh-3);
  opacity:0; visibility:hidden; transform:translateY(12px) scale(.9);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
}
.wa-flutuante.visivel{ opacity:1; visibility:visible; transform:translateY(0) scale(1); }
.wa-flutuante:hover{ background:var(--whatsapp-hover); }
.wa-flutuante svg{ width:28px; height:28px; }

/* ---------- breadcrumb ---------- */
.breadcrumb{ padding-block:var(--e-5); font-size:.875rem; color:var(--texto-suave); }
.breadcrumb ol{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.breadcrumb a:hover{ color:var(--amarelo-texto); }
.breadcrumb li:not(:last-child)::after{ content:"/"; margin-left:8px; color:var(--n-300); }
.breadcrumb li[aria-current]{ color:var(--n-800); }

/* ---------- página de serviço ---------- */
.servico-hero{ padding-block:var(--e-8); }
.servico-hero .chips{ margin-bottom:var(--e-4); }
.servico-hero h1{ margin-bottom:var(--e-5); max-width:20ch; }
.servico-hero-ctas{ display:flex; flex-wrap:wrap; gap:16px; }

.lista-check{ display:flex; flex-direction:column; gap:var(--e-4); margin-top:var(--e-5); }
.lista-check li{ display:flex; gap:12px; align-items:flex-start; }
.lista-check svg{ width:20px; height:20px; flex:none; color:var(--ok); margin-top:2px; }

.etapas-servico{ counter-reset:etapa; display:grid; gap:var(--e-6); margin-top:var(--e-7); }
.etapa h3{ font-family:var(--f-texto); font-size:1.125rem; font-weight:600; line-height:1.3; color:var(--titulo); }
@media (min-width:768px){ .etapas-servico{ grid-template-columns:repeat(4,1fr); } }
.etapa{ counter-increment:etapa; position:relative; padding-top:var(--e-7); }
.etapa::before{
  counter(etapa,decimal-leading-zero);
  content:counter(etapa,decimal-leading-zero);
  position:absolute; top:0; left:0;
  font-family:var(--f-mono); font-size:.8125rem; color:var(--amarelo-texto);
  border-top:2px solid var(--amarelo); padding-top:8px; width:100%;
}

.docs-grid{ display:grid; gap:var(--e-5); grid-template-columns:1fr; margin-top:var(--e-7); }
@media (min-width:640px){ .docs-grid{ grid-template-columns:repeat(2,1fr); } }

.grid-3{ display:grid; gap:var(--e-5); grid-template-columns:1fr; margin-top:var(--e-7); }
@media (min-width:640px){ .grid-3{ grid-template-columns:repeat(3,1fr); } }
.valor-card{ background:var(--n-0); border:1px solid var(--borda); padding:var(--e-6); }
.valor-card h3{ font-family:var(--f-texto); font-size:1.125rem; font-weight:600; line-height:1.3; color:var(--titulo); margin-bottom:8px; }
.valor-card p{ color:var(--texto-suave); font-size:.9375rem; }
.missao-quote{
  border-left:3px solid var(--amarelo); padding-left:24px; margin:var(--e-7) 0;
  font-family:var(--f-display); font-size:1.3125rem; font-style:italic; color:var(--n-900); line-height:1.5;
}
.doc-card{ display:flex; gap:var(--e-4); padding:var(--e-5); background:var(--n-0); border:1px solid var(--borda); }
.doc-card svg{ width:28px; height:28px; flex:none; color:var(--amarelo-texto); }
.doc-card h4{ margin-bottom:4px; }
.doc-card p{ color:var(--texto-suave); font-size:.9375rem; }

.servicos-relacionados{ display:grid; gap:var(--e-4); grid-template-columns:1fr; margin-top:var(--e-6); }
@media (min-width:640px){ .servicos-relacionados{ grid-template-columns:repeat(3,1fr); } }
.relacionado-card{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:var(--e-5); background:var(--n-0); border:1px solid var(--borda);
}
.relacionado-card:hover{ border-color:var(--amarelo); }
.relacionado-card svg{ width:18px; height:18px; color:var(--amarelo-texto); flex:none; }

/* ---------- formulário ---------- */
.form-grid{ display:grid; gap:var(--e-5); min-width:0; }
@media (min-width:768px){ .form-grid{ grid-template-columns:1fr 1fr; } }
.form-grid .full{ grid-column:1/-1; }
.campo{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.campo label{ font-weight:600; font-size:.9375rem; color:var(--n-900); }
.campo .obrigatorio{ color:var(--perigo); }
.campo input,.campo select,.campo textarea{
  width:100%; max-width:100%; height:48px; padding:0 14px; background:var(--n-0);
  border:1.5px solid var(--n-200); border-radius:var(--r-sm);
}
.campo textarea{ height:auto; min-height:120px; padding:12px 14px; resize:vertical; }
.campo input:focus,.campo select:focus,.campo textarea:focus{
  border-color:var(--n-900); outline:2px solid var(--amarelo); outline-offset:1px;
}
.campo-ajuda{ font-size:.8125rem; color:var(--texto-suave); }
.campo-erro{ display:none; align-items:center; gap:6px; font-size:.8125rem; color:var(--perigo); }
.campo-erro svg{ width:14px; height:14px; }
.campo.invalido input,.campo.invalido select,.campo.invalido textarea{ border-color:var(--perigo); }
.campo.invalido .campo-erro{ display:flex; }
.form-nota{ margin-top:var(--e-3); }
.form-sucesso{
  display:none; align-items:flex-start; gap:12px;
  background:rgba(30,122,76,.08); border:1.5px solid var(--ok); padding:var(--e-5);
  border-radius:var(--r-md); margin-top:var(--e-5);
}
.form-sucesso svg{ width:22px; height:22px; color:var(--ok); flex:none; }
.form-sucesso.visivel{ display:flex; }

.contato-grid{ display:grid; gap:var(--e-8); grid-template-columns:1fr; }
.contato-grid > div{ min-width:0; }
@media (min-width:960px){ .contato-grid{ grid-template-columns:1.2fr 1fr; } }
form[data-form-orcamento]{ min-width:0; }
.contato-info-card{ background:var(--n-0); border:1px solid var(--borda); padding:var(--e-6); }
.contato-info-item{ display:flex; gap:14px; padding-block:var(--e-4); border-bottom:1px solid var(--borda); }
.contato-info-item:last-child{ border-bottom:none; }
.contato-info-item svg{ width:22px; height:22px; color:var(--amarelo-texto); flex:none; }
.contato-info-item > div{ min-width:0; }
.contato-info-item h5{ font-family:var(--f-texto); font-weight:600; font-size:.9375rem; margin-bottom:2px; }
.contato-info-item p,.contato-info-item a{ color:var(--texto-suave); font-size:.9375rem; overflow-wrap:anywhere; }
.contato-mapa{ aspect-ratio:16/10; background:var(--n-200); margin-top:var(--e-5); overflow:hidden; }
.contato-mapa iframe{ width:100%; height:100%; border:0; }

/* ---------- sobre ---------- */
.trajetoria{ display:grid; gap:var(--e-6); margin-top:var(--e-7); }
@media (min-width:768px){ .trajetoria{ grid-template-columns:repeat(3,1fr); } }
.trajetoria-item{ padding-top:var(--e-4); border-top:2px solid var(--amarelo); }
.trajetoria-item .label{ color:var(--amarelo-texto); display:block; margin-bottom:8px; }
.principios{ display:grid; gap:var(--e-5); grid-template-columns:1fr; margin-top:var(--e-7); }
@media (min-width:640px){ .principios{ grid-template-columns:repeat(2,1fr); } }

/* util */
.mt-2{ margin-top:var(--e-2); } .mt-3{ margin-top:var(--e-3); } .mt-4{ margin-top:var(--e-4); }
.mt-5{ margin-top:var(--e-5); } .mt-6{ margin-top:var(--e-6); } .mt-7{ margin-top:var(--e-7); }
.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
/* ---------- animação de entrada ao rolar ---------- */
.reveal{
  opacity:0; transform:translateY(28px);
  transition:opacity .7s cubic-bezier(.22,.8,.2,1), transform .7s cubic-bezier(.22,.8,.2,1);
}
.reveal.is-visivel{ opacity:1; transform:translateY(0); }

.reveal-grupo > *{
  opacity:0; transform:translateY(28px);
  transition:opacity .6s cubic-bezier(.22,.8,.2,1), transform .6s cubic-bezier(.22,.8,.2,1);
}
.reveal-grupo.is-visivel > *{ opacity:1; transform:translateY(0); }
.reveal-grupo.is-visivel > *:nth-child(1){ transition-delay:.03s; }
.reveal-grupo.is-visivel > *:nth-child(2){ transition-delay:.09s; }
.reveal-grupo.is-visivel > *:nth-child(3){ transition-delay:.15s; }
.reveal-grupo.is-visivel > *:nth-child(4){ transition-delay:.21s; }
.reveal-grupo.is-visivel > *:nth-child(5){ transition-delay:.27s; }
.reveal-grupo.is-visivel > *:nth-child(6){ transition-delay:.33s; }
.reveal-grupo.is-visivel > *:nth-child(7){ transition-delay:.39s; }
.reveal-grupo.is-visivel > *:nth-child(8){ transition-delay:.45s; }

@media (prefers-reduced-motion: reduce){
  .reveal, .reveal-grupo > *{ opacity:1; transform:none; transition:none; }
}

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.skip-link{
  position:absolute; left:16px; top:-60px; z-index:200;
  background:var(--n-900); color:var(--n-0); padding:12px 20px; border-radius:var(--r-md);
  transition:top .15s ease;
}
.skip-link:focus{ top:16px; }

@media (min-width:1024px){
  .nav-desktop{ display:block; }
  .menu-toggle{ display:none; }
  .header-cta{ display:inline-flex; }
}

/* créditos de imagens de terceiros */
.creditos-imagens{ margin-top:var(--e-6); font-size:.8125rem; color:var(--texto-suave); }
.creditos-imagens a{ color:inherit; text-decoration:underline; }

/* galeria da página de wallbox */
.galeria-wallbox{ display:grid; grid-auto-flow:column; grid-auto-columns:78%; gap:var(--e-4); margin-top:var(--e-6); overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:var(--e-3); -webkit-overflow-scrolling:touch; }
.galeria-wallbox figure{ margin:0; scroll-snap-align:start; }
.galeria-wallbox .foto-45{ aspect-ratio:3/4; }
.galeria-wallbox figcaption{ margin-top:8px; font-size:.9375rem; color:var(--texto-suave); }
@media (min-width:720px){
  .galeria-wallbox{ grid-auto-flow:row; grid-template-columns:repeat(3,1fr); grid-auto-columns:auto; overflow:visible; padding-bottom:0; }
}

/* dobra 1 padronizada no computador */
.hero-servicos{ text-wrap:balance; line-height:1.7; align-items:flex-start; }
.hero-servicos::before{ margin-top:.8em; }
.servico-hero .hero-servicos{ margin-bottom:var(--e-4); }
.servico-hero .lede{ margin-bottom:var(--e-6); max-width:52ch; }
.hero-normas{ margin-top:var(--e-5); }
@media (min-width:960px){
  .hero, .servico-hero{ padding-block:var(--e-8) var(--e-9); }
  .hero-grid{ grid-template-columns:1.2fr 1fr; gap:var(--e-8); align-items:start; }
  .hero-grid > div:first-child{ padding-top:var(--e-5); }
  .hero h1, .servico-hero h1{ margin-bottom:var(--e-5); max-width:18ch; }
  .hero-foto, .hero-foto-paisagem, .hero-foto-planta{ aspect-ratio:1/1; }
  .hero-carrossel img{ object-position:center 25%; }
  .hero-foto-planta{ border:1px solid var(--borda); }
  .hero-foto-planta img{ object-position:center; padding:var(--e-4); }
}

/* artigos do conteúdo técnico */
.artigo > p, .artigo > .lista-artigo{ margin-top:var(--e-4); }
.artigo > h2{ margin-top:var(--e-8); }
.artigo > h3{ margin-top:var(--e-5); font-size:1.1875rem; }
.artigo > h3 + p{ margin-top:var(--e-2); }
.lista-artigo{ display:flex; flex-direction:column; gap:10px; padding-left:0; }
.lista-artigo li{ position:relative; padding-left:22px; }
.lista-artigo li::before{ content:""; position:absolute; left:2px; top:.62em; width:8px; height:8px; background:var(--amarelo); }
.resumo-artigo{ background:var(--n-100); border-left:4px solid var(--amarelo); padding:var(--e-5) var(--e-6); }
.resumo-artigo .label{ color:var(--amarelo-texto); display:block; margin-bottom:var(--e-2); }
.resumo-artigo p{ font-size:1.0625rem; line-height:1.65; color:var(--n-800, var(--n-700)); }
.artigo-servico{ margin-top:var(--e-8); border:1px solid var(--borda); padding:var(--e-6); }
.artigo-servico h2{ margin-top:0; }
.artigo-servico p{ margin-top:var(--e-3); margin-bottom:var(--e-4); }
.artigo a:not(.btn-terciario){ color:var(--amarelo-texto); text-decoration:underline; text-underline-offset:2px; }
.artigo-servico .btn-terciario{ display:inline-flex; align-items:center; gap:6px; }
.artigo-servico .btn-terciario svg{ width:18px; height:18px; flex:none; }

/* aviso de cookies: cartão discreto no canto, não cobre o botão do WhatsApp */
.cookie-aviso{ position:fixed; left:16px; right:88px; bottom:16px; z-index:70; max-width:380px;
  background:var(--n-900); color:var(--n-100); border-left:3px solid var(--amarelo); border-radius:var(--r-lg);
  padding:16px 18px; box-shadow:0 12px 32px rgba(0,0,0,.25); font-size:.875rem; line-height:1.55;
  opacity:0; transform:translateY(16px); transition:opacity .35s ease, transform .35s ease; pointer-events:none; }
.cookie-aviso.visivel{ opacity:1; transform:translateY(0); pointer-events:auto; }
.cookie-aviso strong{ color:var(--n-0); }
.cookie-aviso a{ color:var(--amarelo-claro); text-decoration:underline; text-underline-offset:2px; }
.cookie-acoes{ display:flex; gap:10px; margin-top:12px; }
.cookie-acoes button{ font:inherit; font-weight:600; border:none; cursor:pointer; border-radius:var(--r-md); padding:8px 16px; }
.cookie-aceitar{ background:var(--amarelo); color:var(--n-950); }
.cookie-aceitar:hover{ background:var(--amarelo-hover); }
.cookie-recusar{ background:transparent; color:var(--n-200); text-decoration:underline; text-underline-offset:2px; }
@media (min-width:640px){ .cookie-aviso{ left:24px; bottom:24px; right:auto; } }
@media (prefers-reduced-motion:reduce){ .cookie-aviso{ transition:none; } }
.rodape-base a{ color:inherit; text-decoration:underline; text-underline-offset:2px; }

/* página 404 */
.erro404{ padding-block:var(--e-9) var(--e-10); position:relative; }
.erro404-grid{ display:grid; gap:var(--e-7); align-items:center; position:relative; z-index:1; }
.erro404-codigo{ display:flex; align-items:center; justify-content:center; font-family:var(--f-display); font-weight:700;
  font-size:clamp(6rem, 22vw, 11rem); line-height:1; color:var(--titulo); letter-spacing:-.04em; }
.erro404-raio{ width:.8em; height:.8em; fill:var(--amarelo); margin-inline:.04em; animation:erro404-pisca 3.2s infinite; }
@keyframes erro404-pisca{ 0%,62%,68%,74%,100%{ opacity:1; } 64%,70%{ opacity:.15; } }
@media (prefers-reduced-motion:reduce){ .erro404-raio{ animation:none; } }
@media (min-width:960px){ .erro404-grid{ grid-template-columns:1fr 1.2fr; gap:var(--e-9); } }
.erro404 .eyebrow{ margin-bottom:var(--e-4); }
.erro404 h1{ margin-bottom:var(--e-5); }
.erro404 .lede{ margin-bottom:var(--e-6); max-width:52ch; }
.erro404 .btn-secundario[href*="wa.me"]{ border-color:transparent; }
