/* =====================================================================
   sstengenharia.eng.br — site institucional
   Cores oficiais tiradas do logotipo: azul #02214F e vermelho #CB0214.
   ===================================================================== */
:root{
  --marinho:#02214F;
  --marinho-2:#04305F;
  --azul-claro:#7FA9DC;
  --azul-pal:#C6D8EE;
  --vermelho:#CB0214;
  --tinta:#0A1420;
  --tinta-70:#3E4C5C;
  --tinta-50:#6B7787;
  --papel:#FFFFFF;
  --papel-2:#F4F6F9;
  --linha:#DCE3EB;
  --linha-2:#BCC8D6;
  --linha-esc:rgba(255,255,255,.16);
  --zap:#128C4A;
  --maxw:1220px;
  --display:"IBM Plex Sans Condensed",system-ui,sans-serif;
  --corpo:"IBM Plex Sans",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--papel);color:var(--tinta);
  font-family:var(--corpo);font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.02;letter-spacing:-.018em;margin:0}
p{margin:0}
.env{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 clamp(18px,4vw,44px)}
.mono{font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
.pular{position:absolute;left:-9999px}
.pular:focus{left:12px;top:12px;z-index:200;background:#fff;padding:10px 14px;border:2px solid var(--vermelho)}

/* ---------------- botões ---------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:11px;
  font-family:var(--display);font-size:16px;font-weight:700;letter-spacing:.03em;
  text-transform:uppercase;text-decoration:none;cursor:pointer;border:1.5px solid transparent;
  padding:16px 26px;transition:background .16s,color .16s,border-color .16s,transform .12s;
}
.btn:active{transform:translateY(1px)}
.btn svg{width:19px;height:19px;flex:none}
.btn-zap{background:var(--zap);color:#fff}
.btn-zap:hover{background:#0D7740}
.btn-g{font-size:19px;padding:20px 30px}
.btn-linha{background:transparent;color:var(--tinta);border-color:var(--linha-2)}
.btn-linha:hover{border-color:var(--tinta);background:var(--papel-2)}
.btn-tel{background:var(--marinho);color:#fff}
.btn-tel:hover{background:var(--marinho-2)}
/* o hero tem fundo marinho mas não usa a classe .escuro: sem isto, o botão de
   contorno herda a cor de texto quase preta e some no fundo azul. */
.escuro .btn-linha,.hero .btn-linha{color:#fff;border-color:rgba(255,255,255,.40)}
.escuro .btn-linha:hover,.hero .btn-linha:hover{background:rgba(255,255,255,.10);border-color:#fff;color:#fff}
:focus-visible{outline:2.5px solid var(--vermelho);outline-offset:3px}

/* ---------------- faixa e topo ---------------- */
.faixa-topo{background:var(--marinho);color:#fff}
.faixa-topo-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:42px}
.faixa-txt{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--azul-claro)}
.faixa-dir{display:flex;align-items:center;gap:14px;margin-left:auto}
.faixa-tel{font-family:var(--mono);font-size:12.5px;font-weight:600;color:#fff;text-decoration:none}
.faixa-tel:hover{color:var(--azul-claro)}
.seletor{display:inline-flex;border:1px solid rgba(255,255,255,.28);flex:none}
.seletor button{
  font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  padding:7px 11px;background:transparent;color:#A9C6E6;border:0;cursor:pointer;transition:background .14s,color .14s;
}
.seletor button+button{border-left:1px solid rgba(255,255,255,.28)}
.seletor button:hover{color:#fff}
.seletor button[aria-pressed="true"]{background:#fff;color:var(--marinho)}

.topo{position:sticky;top:0;z-index:80;background:#fff;border-bottom:1px solid var(--linha)}
.topo-in{display:flex;align-items:center;gap:26px;height:92px}
.topo-logo img{height:70px;width:auto}
.nav{display:flex;align-items:center;gap:26px;margin-left:auto}
.nav a{
  font-family:var(--display);font-size:15.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;
  text-decoration:none;color:var(--tinta-70);padding:6px 0;border-bottom:2px solid transparent;
}
.nav a:hover{color:var(--marinho);border-bottom-color:var(--vermelho)}
.topo .btn{padding:12px 18px;font-size:14px}
.menu-btn{
  display:none;align-items:center;gap:9px;margin-left:auto;background:transparent;border:1px solid var(--linha-2);
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:11px 14px;cursor:pointer;
}
.barras{display:inline-flex;flex-direction:column;gap:3px}
.barras i{display:block;width:16px;height:1.6px;background:var(--tinta)}
.menu-mobile{padding:14px 0 22px;border-top:1px solid var(--linha)}
.menu-mobile nav{display:flex;flex-direction:column}
.menu-mobile nav a{
  font-family:var(--display);font-size:21px;font-weight:700;text-transform:uppercase;text-decoration:none;
  padding:15px 0;border-bottom:1px solid var(--linha);display:flex;flex-direction:column;
}
.menu-mobile nav a small{font-family:var(--corpo);font-size:13.5px;font-weight:400;text-transform:none;color:var(--tinta-50);letter-spacing:0}
.menu-mobile .btn{width:100%;margin-top:18px}

/* ---------------- hero ---------------- */
.hero{background:var(--marinho);color:#fff;padding:74px 0 0;overflow:hidden}
.hero-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);gap:clamp(32px,5vw,72px);align-items:center}
.hero h1{font-size:clamp(44px,7.2vw,88px);text-transform:uppercase;letter-spacing:-.03em}
.hero h1 em{font-style:normal;color:var(--azul-claro);display:block}
.hero-txt{margin-top:26px;font-size:19.5px;color:var(--azul-pal);max-width:32em}
.hero-txt b{color:#fff;font-weight:600}
.hero-acoes{display:flex;flex-wrap:wrap;gap:13px;margin-top:32px}
.hero .rotulo{color:var(--azul-claro)}
.hero-rodape{
  margin-top:60px;border-top:1px solid var(--linha-esc);padding:16px 0 22px;
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 26px;color:#8FB2DB;
}

/* diagrama do hero — símbolos de projeto elétrico, não ícone decorativo */
.diagrama{background:rgba(255,255,255,.045);border:1px solid var(--linha-esc);padding:22px 20px 16px;margin:0}
.diagrama-tit{display:flex;justify-content:space-between;gap:14px;color:#8FB2DB;margin-bottom:14px}
.diagrama svg{width:100%;height:auto}
.dg-linha{stroke:#D6E4F5;stroke-width:1.4;fill:none}
.dg-fig{stroke:#D6E4F5;stroke-width:1.4;fill:none}
.dg-preen{fill:rgba(214,228,245,.14);stroke:#D6E4F5;stroke-width:1.4}
.dg-alvo{stroke:#E8737F;stroke-width:1.6;fill:none}
.dg-alvo-preen{fill:rgba(203,2,20,.22);stroke:#E8737F;stroke-width:1.6}
.dg-txt{font-family:var(--mono);font-size:8.4px;fill:#A9C6E6;letter-spacing:.09em;text-transform:uppercase}
.dg-txt-alvo{font-family:var(--mono);font-size:8.4px;fill:#F0A3AB;letter-spacing:.09em;text-transform:uppercase}
.dg-txt-forte{font-family:var(--mono);font-size:9.4px;fill:#fff;letter-spacing:.06em}
.dg-cota{stroke:#5C81B4;stroke-width:1;stroke-dasharray:3 3;fill:none}
.dg-pulso{fill:#E8737F;animation:corre 8s linear infinite}
@keyframes corre{0%{transform:translateX(0);opacity:0}6%{opacity:1}90%{opacity:1}100%{transform:translateX(468px);opacity:0}}
.diagrama-nota{margin-top:12px;padding-top:12px;border-top:1px dashed rgba(255,255,255,.18);font-size:13px;color:#8FB2DB;font-family:var(--corpo)}
@media (prefers-reduced-motion:reduce){.dg-pulso{animation:none;opacity:0}html{scroll-behavior:auto}}

/* ---------------- declaração ---------------- */
.declara{background:var(--papel-2);border-bottom:1px solid var(--linha)}
.declara-in{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:clamp(24px,4vw,56px);padding:38px 0}
.declara p{font-size:16px;color:var(--tinta-70)}
.declara p b{color:var(--tinta);font-weight:600}
.declara .frase{font-family:var(--display);font-size:clamp(21px,2.2vw,27px);font-weight:700;line-height:1.12;text-transform:uppercase;color:var(--marinho)}

/* ---------------- seções ---------------- */
.secao{padding:clamp(58px,7vw,100px) 0}
.secao-2{background:var(--papel-2)}
.escuro{background:var(--marinho);color:#fff}
.rotulo{font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--marinho);display:block;margin-bottom:16px}
.escuro .rotulo{color:var(--azul-claro)}
h2{font-size:clamp(30px,3.9vw,50px);text-transform:uppercase;max-width:17em}
.sub{margin-top:18px;font-size:18px;color:var(--tinta-70);max-width:44em}
.escuro .sub{color:var(--azul-pal)}

/* ---------------- frentes de trabalho (linhas, não cards repetidos) ---------------- */
.frentes{margin-top:52px;border-top:1.5px solid var(--tinta)}
.frente{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr) minmax(0,.85fr);
  gap:clamp(20px,3.4vw,50px);padding:34px 0;border-bottom:1px solid var(--linha);align-items:start;
}
.frente-tit{display:flex;flex-direction:column;gap:10px}
.frente-tit .cod{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--tinta-50)}
.frente h3{font-size:clamp(25px,2.6vw,33px);text-transform:uppercase;color:var(--marinho)}
.frente p{color:var(--tinta-70)}
.frente ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:7px}
.frente li{position:relative;padding-left:18px;font-size:15.5px;color:var(--tinta-70)}
.frente li::before{content:"";position:absolute;left:0;top:.72em;width:8px;height:1.6px;background:var(--vermelho)}
.frente .liga{
  display:inline-flex;align-items:center;gap:8px;margin-top:14px;text-decoration:none;
  font-family:var(--display);font-weight:700;font-size:15.5px;text-transform:uppercase;color:var(--marinho);
  border-bottom:2px solid var(--vermelho);padding-bottom:2px;align-self:flex-start;
}
.frente .liga:hover{color:var(--vermelho)}

/* ---------------- processo ---------------- */
.etapas{display:grid;grid-template-columns:repeat(4,1fr);margin-top:50px;border-top:1.5px solid var(--tinta)}
.etapa{padding:26px 24px 30px 0;border-right:1px solid var(--linha)}
.etapa:last-child{border-right:none}
.etapa .num{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--vermelho);display:block;margin-bottom:14px}
.etapa h3{font-size:22px;text-transform:uppercase;margin-bottom:10px}
.etapa p{font-size:15.5px;color:var(--tinta-70)}

/* ---------------- registro do serviço ---------------- */
.registro{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(30px,5vw,72px);align-items:center}
.painel{border:1px solid var(--linha);background:#fff;padding:26px 26px 22px}
.painel-tit{display:flex;justify-content:space-between;gap:12px;color:var(--tinta-50);border-bottom:1px solid var(--linha);padding-bottom:12px;margin-bottom:8px}
.painel ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.painel li{display:flex;gap:14px;padding:13px 0;border-bottom:1px dashed var(--linha);font-size:15.5px;color:var(--tinta-70)}
.painel li:last-child{border-bottom:none}
.painel li b{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--marinho);flex:none;width:76px;padding-top:4px}

/* ---------------- wallbox (bloco escuro) ---------------- */
.wb-in{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,5vw,72px);align-items:center}
.wb-cartao{border:1px solid var(--linha-esc);background:rgba(255,255,255,.05);padding:26px}
.wb-cartao h3{font-size:23px;text-transform:uppercase;margin-bottom:10px}
.wb-cartao p{color:var(--azul-pal);font-size:16px}
.wb-cartao+.wb-cartao{margin-top:16px}
.wb-acoes{display:flex;flex-wrap:wrap;gap:13px;margin-top:30px}

/* ---------------- regiões ---------------- */
.regioes{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);margin-top:46px}
.regiao{border-top:1.5px solid var(--tinta);padding-top:24px}
.regiao h3{font-size:26px;text-transform:uppercase;color:var(--marinho);margin-bottom:12px}
.regiao .cidades{font-size:15.5px;color:var(--tinta-70)}
.regiao .fone{font-family:var(--mono);font-size:15px;font-weight:600;color:var(--marinho);text-decoration:none;display:inline-block;margin-top:14px}
.regiao .fone:hover{color:var(--vermelho)}
.regiao .btn{margin-top:16px}

/* ---------------- fecho ---------------- */
.fecho{background:var(--marinho);color:#fff;padding:clamp(56px,7vw,96px) 0}
.fecho h2{max-width:14em}
.fecho .sub{color:var(--azul-pal)}
.fecho-acoes{display:flex;flex-wrap:wrap;gap:13px;margin-top:32px}
.fecho .rotulo{color:var(--azul-claro)}

/* ---------------- rodapé ---------------- */
.rodape{background:#03182F;color:#B6CBE4;padding:56px 0 26px;font-size:15px}
.rodape-in{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(24px,4vw,56px)}
.rodape img{height:56px;width:auto;margin-bottom:14px}
.rodape .tagline{font-family:var(--display);font-size:17px;font-weight:700;text-transform:uppercase;color:#fff;letter-spacing:.01em}
.rodape .legal{margin-top:16px;font-size:14px;line-height:1.85}
.rodape a{color:#B6CBE4;text-decoration:none}
.rodape a:hover{color:#fff;text-decoration:underline}
.rodape h4{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#7FA9DC;margin-bottom:14px}
.rodape ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
.insta{display:inline-flex;align-items:center;gap:8px}
.insta svg{width:17px;height:17px}
.rodape-fim{margin-top:44px;padding-top:20px;border-top:1px solid var(--linha-esc);font-size:13px;color:#7E97B6}

/* ---------------- barra fixa do celular ---------------- */
.barra{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;background:#fff;border-top:1px solid var(--linha);padding:8px 12px 10px;box-shadow:0 -6px 20px rgba(10,20,32,.10)}
.barra-sel{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:8px}
.barra-sel>span{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-50)}
.barra .seletor{border-color:var(--linha-2)}
.barra .seletor button{color:var(--tinta-50)}
.barra .seletor button+button{border-left-color:var(--linha-2)}
.barra .seletor button[aria-pressed="true"]{background:var(--marinho);color:#fff}
.barra-acoes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.barra .btn{padding:14px 10px;font-size:14px}

/* ---------------- responsivo ---------------- */
@media (max-width:1100px){
  .nav{display:none}
  .topo-cta{display:none}
  .menu-btn{display:inline-flex}
  .hero-in,.registro,.wb-in{grid-template-columns:1fr}
  .declara-in{grid-template-columns:1fr 1fr}
  .declara .frase{grid-column:1 / -1}
  .etapas{grid-template-columns:1fr 1fr}
  .etapa{padding-right:22px;border-bottom:1px solid var(--linha)}
  .etapa:nth-child(2n){border-right:none}
  .frente{grid-template-columns:1fr;gap:16px}
}
@media (max-width:860px){
  body{font-size:16px;padding-bottom:120px}
  .faixa-txt{display:none}
  .faixa-dir{margin:0 auto}
  .faixa-topo .seletor{display:none}
  .topo-in{height:76px}
  .topo-logo img{height:56px}
  .hero{padding-top:52px}
  .hero-rodape{margin-top:44px;font-size:10.5px}
  .regioes{grid-template-columns:1fr}
  .rodape-in{grid-template-columns:1fr;gap:34px}
  .barra{display:block}
  .menu-mobile{max-height:72vh;overflow:auto}
}
@media (max-width:560px){
  .etapas{grid-template-columns:1fr}
  .etapa{border-right:none;padding-right:0}
  .declara-in{grid-template-columns:1fr}
}
