/* ===== Cabecalho, menu de servicos, rodape e links novos (todas as paginas) ===== */
.nav{gap:20px}
.nav .brand{flex:none}
.nav>nav{flex:1;display:flex;justify-content:center}
.nav ul{align-items:center;gap:26px;list-style:none;display:flex}
.nav ul a,.nav-btn{position:relative;padding:8px 0;color:var(--text-secondary);font:400 .95rem/1 var(--body);text-decoration:none;background:none;border:0;cursor:pointer;transition:color .3s var(--ease)}
.nav ul a:hover,.nav-btn:hover,.has-menu.open .nav-btn{color:var(--text-primary)}
.nav ul a::after,.nav-btn::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent);transform:scaleX(0);transition:transform .45s var(--ease)}
.nav ul a:hover::after,.nav ul a:focus-visible::after,.nav-btn:hover::after,.has-menu.open .nav-btn::after,.nav ul a[aria-current="page"]::after{transform:scaleX(1)}
.nav ul a[aria-current="page"]{color:var(--text-primary)}
.nav-btn{display:inline-flex;align-items:center;gap:6px}
.nav-btn svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .4s var(--ease)}
.has-menu{position:relative}
.has-menu.open .nav-btn svg{transform:rotate(180deg)}
.menu{position:absolute;left:50%;top:calc(100% + 14px);width:min(560px,92vw);margin-left:-280px;padding:18px;border-radius:18px;background:rgba(10,18,40,.97);backdrop-filter:blur(16px);border:1px solid rgba(217,178,106,.35);box-shadow:0 30px 60px -20px rgba(0,0,0,.8);opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top center;transition:opacity .3s var(--ease),transform .45s var(--ease),visibility 0s .45s}
.has-menu.open .menu{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.menu-top{display:flex;justify-content:space-between;align-items:center;padding:0 6px 12px;margin-bottom:8px;border-bottom:1px solid rgba(102,120,159,.3);font:400 .72rem/1 var(--mono);letter-spacing:.2em;color:var(--text-secondary);text-transform:uppercase}
.menu ul{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px}
.menu li a{display:flex;align-items:center;gap:10px;padding:10px 10px;border-radius:10px;font-size:.93rem;color:var(--text-secondary);transition:background .25s var(--ease),color .25s var(--ease),transform .35s var(--ease)}
.menu li a::before{content:attr(data-n);font:400 .7rem/1 var(--mono);color:var(--accent-muted);letter-spacing:.1em}
.menu li a::after{display:none}
.menu li a:hover,.menu li a:focus-visible{background:rgba(217,178,106,.12);color:var(--text-primary);transform:translateX(4px)}
.menu li a[aria-current="page"]{color:var(--accent)}
.menu-all{color:var(--accent);text-decoration:none}
.menu-all:hover{color:var(--accent-hover)}

/* rodape */
.sf{position:relative;z-index:1;margin-top:20px;padding:56px max(16px,5vw) 34px;border-top:1px solid rgba(102,120,159,.25);background:linear-gradient(180deg,transparent,rgba(5,5,10,.35))}
.sf-in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.3fr .8fr 1.2fr .9fr;gap:36px}
.sf .brand{margin-bottom:16px}
.sf p{color:var(--text-secondary);font-size:.93rem;max-width:34ch}
.sf h4{font:400 .72rem/1 var(--mono);letter-spacing:.22em;color:var(--accent);text-transform:uppercase;margin-bottom:16px}
.sf ul{list-style:none;display:grid;gap:9px}
.sf a{text-decoration:none;color:var(--text-secondary);font-size:.93rem;transition:color .3s var(--ease),transform .35s var(--ease);display:inline-block}
.sf a:hover{color:var(--text-primary);transform:translateX(4px)}
.sf-cols2{display:grid;grid-template-columns:1fr 1fr;gap:9px 18px}
.sf-bot{max-width:1180px;margin:36px auto 0;padding-top:20px;border-top:1px solid rgba(102,120,159,.2);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--text-secondary);font-size:.86rem}

/* links novos na Home */
.sc-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px}
.sc-actions .sc-cta{margin-top:0}
.sc-link{position:relative;display:inline-flex;align-items:center;gap:6px;padding:6px 0 2px;color:var(--text-primary);font:500 .88rem/1 var(--body);text-decoration:none;opacity:.75;transition:opacity .3s var(--ease),color .3s var(--ease)}
.sc-link::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--text-primary);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.sc:hover .sc-link,.sc-link:focus-visible{opacity:1}
.sc-link:hover{color:var(--accent-hover)}
.sc-link:hover::after,.sc-link:focus-visible::after{transform:scaleX(1);background:var(--accent-hover)}
.home-links{margin-top:14px;display:flex;gap:22px;flex-wrap:wrap}
.home-links a{color:var(--accent);text-decoration:none;font-weight:500;position:relative;transition:color .3s var(--ease)}
.home-links a::after{content:"\2192";margin-left:8px;display:inline-block;transition:transform .4s var(--ease)}
.home-links a:hover{color:var(--accent-hover)}
.home-links a:hover::after{transform:translateX(5px)}

@media (max-width:1100px){.nav ul{gap:18px}.nav ul a,.nav-btn{font-size:.9rem}}
@media (max-width:900px){.nav>nav{display:none}.sf-in{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.sf-in{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.menu{transition:none}}

/* cartoes de servico da Home: links alinhados na base de cada cartao */
.sc{align-items:stretch}
.sc .ic{align-self:start}
.sc-b{display:flex;flex-direction:column}
.sc-actions{margin-top:auto;padding-top:10px;gap:6px 18px}
.sc-actions .sc-cta,.sc-link{white-space:nowrap}

/* Home: pedido de orcamento agora e um link para a pagina propria */
a.sc-cta{text-decoration:none}
.home-last{padding-bottom:clamp(36px,4.5vw,56px)}

/* ===== rodape compacto e alinhado ===== */
.sf{padding:40px max(16px,5vw) 22px}
.sf-in{grid-template-columns:1.1fr .6fr 2.3fr 1.1fr;gap:28px 40px;align-items:start}
.sf .brand{display:flex;margin:0 0 14px}
.sf .brand:hover{transform:none}
.sf p{margin:0;max-width:30ch}
.sf h4{margin:0 0 14px}
.sf ul{gap:8px}
.sf .sf-cols2{display:grid;grid-auto-flow:column;grid-template-rows:repeat(5,auto);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 28px}
.sf-bot{margin-top:26px;padding-top:16px;justify-content:flex-start}
@media (max-width:1200px){.sf-in{grid-template-columns:1fr .55fr 2.7fr 1.15fr;gap:24px 24px}.sf .sf-cols2{gap:8px 20px}}

/* ===== barra de rolagem da pagina: trilho azul-marinho e parte movel dourada ===== */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:#0B1430}
::-webkit-scrollbar-thumb{background:rgba(217,178,106,.6);border-radius:999px;border:2px solid #0B1430}
::-webkit-scrollbar-thumb:hover{background:rgba(235,201,132,.9)}
::-webkit-scrollbar-corner{background:#0B1430}
@supports not selector(::-webkit-scrollbar){html{scrollbar-width:thin;scrollbar-color:rgba(217,178,106,.7) #0B1430}}

/* e-mail de contato no rodape: nunca passa da coluna */
.sf a[href^="mailto:"]{overflow-wrap:anywhere}
.sf-in{grid-template-columns:1fr .6fr 2.3fr 1.3fr}
@media (max-width:1200px){.sf-in{grid-template-columns:.95fr .55fr 2.55fr 1.35fr;gap:24px 20px}.sf .sf-cols2{gap:8px 18px}}
@media (max-width:1200px){.sf-in{grid-template-columns:.85fr .5fr 2.65fr 1.4fr;gap:24px 18px}}

/* ===== cores independentes do tema do dispositivo: o site e sempre escuro ===== */
:root{color-scheme:dark}
@media (forced-colors:active){
  .btn,input,textarea,.dd-btn,.drop-btn{border:1px solid ButtonText}
  .card,.sc,.pj,.step,.qa,.pcta,.oform,.demo,.art{border:1px solid CanvasText}
}

/* rodape: Politica de Privacidade ao lado dos direitos autorais */
.sf-bot{align-items:center;gap:8px 24px}
.sf-bot a{color:var(--text-secondary);text-decoration:none;font-size:.86rem;border-bottom:1px solid rgba(154,166,192,.4);transition:color .3s var(--ease),border-color .3s var(--ease)}
.sf-bot a:hover,.sf-bot a:focus-visible{color:var(--text-primary);border-color:var(--text-primary);transform:none}

/* ===== celular (ate 720 px): cabecalho so com logo e menu, rodape compacto ===== */
.nav-toggle,.mnav{display:none}
@media (max-width:720px){
  .nav-cta{display:none}
  /* destaque de toque: troca o retangulo padrao do navegador por uma resposta discreta; o foco dourado do teclado nao muda */
  html{-webkit-tap-highlight-color:transparent}
  a:active{opacity:.72}
  .btn:active{filter:brightness(.92)}
  button:active{filter:brightness(.92)}
  .nav-toggle:active{background:rgba(217,178,106,.2)}
  /* ao ir para uma secao da Home, o cabecalho fixo nao cobre o titulo */
  #servicos,#como,#promessa{scroll-margin-top:70px}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;flex:none;width:46px;height:46px;margin:-4px 0;padding:0;border-radius:12px;border:1px solid rgba(217,178,106,.45);background:rgba(10,18,40,.65);color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent}
  .nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .nt-bars{position:relative;display:block;width:20px;height:14px}
  .nt-bars i{position:absolute;left:0;right:0;height:2px;border-radius:2px;background:currentColor;transition:transform .3s var(--ease),opacity .2s}
  .nt-bars i:nth-child(1){top:0}
  .nt-bars i:nth-child(2){top:6px}
  .nt-bars i:nth-child(3){top:12px}
  .nav.menu-open .nt-bars i:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .nav.menu-open .nt-bars i:nth-child(2){opacity:0}
  .nav.menu-open .nt-bars i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .nav.menu-open{background:#070D1E;backdrop-filter:none;box-shadow:0 1px 0 rgba(217,178,106,.35)}

  html.mn-lock{overflow:hidden;scrollbar-gutter:stable}
  /* com o menu aberto, as particulas da Home param (o desfoque do fundo nao precisa ser refeito a cada quadro) */
  html.mn-parado .hm-dust i{animation-play-state:paused!important}
  /* o conjunto fica sempre no layout; so a visibilidade muda, depois da saida terminar (sem display:none, sem temporizador) */
  .mnav{display:block;position:fixed;inset:0;z-index:49;visibility:hidden;pointer-events:none;overscroll-behavior:contain;touch-action:none;transition:visibility 0s linear .25s}
  .mnav.is-open{visibility:visible;pointer-events:auto;transition-delay:0s}
  /* camada que escurece a pagina; o desfoque fica parado nela e acompanha so pela opacidade */
  .mn-dim{position:absolute;inset:0;background:rgba(4,8,20,.62);opacity:0;transition:opacity .25s cubic-bezier(.4,0,.6,1)}
  @supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
    .mn-dim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
  }
  .mnav.is-open .mn-dim{opacity:1;transition:opacity .34s cubic-bezier(.22,.61,.36,1)}
  /* painel abaixo do cabecalho, com a altura do conteudo e rolagem propria se passar da tela */
  .mn-scroll{position:absolute;top:var(--nh,66px);left:0;right:0;max-height:calc(100% - var(--nh,66px) - 12px);overflow-y:auto;overflow-anchor:none;contain:layout paint;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:6px max(16px,5vw) 18px;border-radius:0 0 20px 20px;background:radial-gradient(120% 70% at 100% 0,rgba(217,178,106,.1),transparent 60%),#070D1E;border-bottom:1px solid rgba(217,178,106,.4);opacity:0;transform:translateY(-4px);transition:opacity .25s cubic-bezier(.4,0,.6,1),transform .25s cubic-bezier(.4,0,.6,1)}
  .mnav.is-open .mn-scroll{opacity:1;transform:none;transition:opacity .34s cubic-bezier(.22,.61,.36,1),transform .34s cubic-bezier(.22,.61,.36,1)}
  /* o cabecalho acompanha: fundo solido e X na mesma duracao */
  .nav{transition:background .25s ease,box-shadow .25s ease}
  .nav::before{transition:opacity .25s ease}
  .nav.menu-open{transition:background .34s ease,box-shadow .34s ease}
  .nav.menu-open::before{display:block;opacity:0;transition-duration:.34s}
  .mn-list{list-style:none;margin:0;padding:0}
  .mn-list>li{border-bottom:1px solid rgba(102,120,159,.25)}
  .mn-list a,.mn-sbtn{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;padding:0 4px;color:var(--text-primary);font:500 1.12rem/1.2 var(--body);text-decoration:none;background:none;border:0;border-radius:10px;cursor:pointer;text-align:left}
  .mn-list a:active,.mn-sbtn:active{background:rgba(217,178,106,.12)}
  .mn-list a[aria-current="page"]{color:var(--accent)}
  .mn-list a:focus-visible,.mn-sbtn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
  .mn-sbtn svg{width:14px;height:14px;fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .32s cubic-bezier(.4,0,.2,1)}
  .mn-sbtn[aria-expanded="true"] svg{transform:rotate(180deg)}
  .mn-sbtn[aria-expanded="true"]{color:var(--accent)}
  /* servicos: expande e recolhe de uma vez so (a altura anima, os links nao) */
  .mn-subw{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s cubic-bezier(.4,0,.2,1)}
  .mn-has.open .mn-subw{grid-template-rows:1fr}
  .mn-sub{overflow:hidden;min-height:0;list-style:none;margin:0 0 0 6px;padding:0 0 0 14px;border-left:1px solid rgba(217,178,106,.4);visibility:hidden;transition:visibility 0s linear .32s}
  .mn-has.open .mn-sub{visibility:visible;transition-delay:0s}
  .mn-sub li:last-child{margin-bottom:10px}
  .mn-sub a{justify-content:flex-start;gap:12px;min-height:48px;font-size:1rem;font-weight:400;color:var(--text-secondary)}
  .mn-sub a::before{content:attr(data-n);font:400 .72rem/1 var(--mono);letter-spacing:.1em;color:var(--accent-muted)}
  .mn-sub .mn-all a{color:var(--accent);font-weight:500}
  .mn-sub .mn-all a::before{content:none}
  .mn-cta{margin-top:18px;min-height:54px;width:100%;justify-content:center;font-size:1.02rem;text-decoration:none}

  .sf{padding:28px 16px calc(22px + env(safe-area-inset-bottom))}
  .sf-in{grid-template-columns:1fr;gap:10px;justify-items:start}
  .sf-pages,.sf-serv,.sf-orc,.sf-ct h4{display:none}
  .sf .brand{display:inline-flex;align-items:center;min-height:44px;margin:0 0 4px}
  .sf p{max-width:none}
  .sf-ct ul{gap:0}
  .sf a{transition:none}
  .sf a:hover{transform:none}
  .sf-ct a{display:flex;align-items:center;min-height:44px;overflow-wrap:anywhere}
  .sf-bot{margin-top:6px;padding-top:6px;flex-direction:column;align-items:flex-start;gap:0}
  .sf-bot span{padding:8px 0}
  .sf-bot a{display:inline-flex;align-items:center;min-height:44px}
}
@media (prefers-reduced-motion:reduce){.mnav,.mnav.is-open,.mn-dim,.mnav.is-open .mn-dim,.mn-scroll,.mnav.is-open .mn-scroll,.mn-subw,.mn-sub,.nav,.nav::before,.nav.menu-open,.nt-bars i,.mn-sbtn svg{transition:none!important}}

/* quebras de linha: evita palavra sozinha na ultima linha dos textos corridos */
main p,main li,.sf p,.qa-a p{text-wrap:pretty}
main h1,main h2,main h3,.sc3 h3,.scope-note h3{text-wrap:balance}
main li,.fs p,.st p,.pst p,.pc p,.nrow p,.ngrid p,.poss p,.qa-a p,.sc p,.step p,.scope-note p{text-wrap:balance}

/* rodape em telas medias: colunas sem quebrar o e-mail nem o telefone no meio */
.sf .brand svg{flex:none}
.sf a[href*="wa.me"]{white-space:nowrap}
@media (min-width:721px) and (max-width:960px){
  .sf-in{grid-template-columns:auto minmax(0,1fr) auto;gap:22px 24px}
  .sf-brand{grid-column:1/-1}
  .sf a[href^="mailto:"]{white-space:nowrap}
}
@media (min-width:961px) and (max-width:1200px){
  .sf-in{grid-template-columns:minmax(150px,.9fr) auto minmax(0,2.4fr) auto;gap:24px 28px}
  .sf a[href^="mailto:"]{white-space:nowrap}
}
