/* LTK — identidade "ar que circula": azul-tinta, gelo e ciano. Fontes do sistema, sem dependências externas. */
:root {
  --ink:#0a1f33;
  --navy:#10273b;
  --deep:#0f3a5c;
  --blue:#0c6d97;
  --cyan:#19a7ce;
  --frost:#8cdcf7;
  --ice:#e6f5fb;
  --mist:#f2f8fb;
  --text:#213241;
  --muted:#4a5f70;
  --line:#d7e5ed;
  --white:#fff;
  --green:#0f7a3f;
  --max:1160px;
  --radius:18px;
  --shadow:0 1px 2px rgba(10,31,51,.06),0 12px 32px -12px rgba(10,31,51,.22);
  --display:"Avenir Next","Segoe UI Variable Display","Trebuchet MS",system-ui,-apple-system,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; scroll-padding-bottom:96px; }
body { margin:0; color:var(--text); font:16px/1.65 system-ui,-apple-system,"Segoe UI",Arial,sans-serif; background:var(--white); }
a { color:var(--blue); text-underline-offset:3px; }
.wrap { max-width:var(--max); padding:0 24px; margin:auto; }
/* Foco bicolor permanece visível sobre os fundos claros e escuros. */
a:focus-visible,button:focus-visible { outline:3px solid var(--cyan); outline-offset:3px; box-shadow:0 0 0 6px #fff; }
main:focus-visible { outline:3px solid var(--blue); outline-offset:-3px; }
.skip { position:fixed; top:-100px; left:10px; background:#fff; padding:10px; z-index:20; }
.skip:focus { top:10px; }
.ico { width:1.25em; height:1.25em; flex:none; }
.ico-lg { width:34px; height:34px; }

/* Cabeçalho */
.header { background:var(--white); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:10; }
.head-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:76px; }
.brand { color:var(--navy); text-decoration:none; font-weight:850; font-size:1.23rem; letter-spacing:-.02em; }
.brand span { color:var(--blue); }
.nav { display:flex; flex-wrap:wrap; gap:0 20px; }
.nav a { display:inline-flex; align-items:center; min-height:44px; padding:8px 0; text-decoration:none; color:var(--navy); font-weight:650; }
.nav a:hover { text-decoration:underline; }
.nav a[aria-current] { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:6px; }
.mark { width:38px; height:38px; flex:none; }
.mark rect { fill:var(--navy); }
.mark path { fill:none; stroke:var(--frost); stroke-width:2.6; stroke-linecap:round; }

/* Títulos */
h1,h2,h3 { color:var(--heading,var(--navy)); font-family:var(--display); line-height:1.15; letter-spacing:-.025em; text-wrap:balance; overflow-wrap:break-word; }
h2 { font-size:clamp(1.7rem,3.2vw,2.45rem); font-weight:800; margin:0 0 14px; }
h3 { font-size:1.2rem; font-weight:750; }
.lead { font-size:1.15rem; color:var(--muted); max-width:62ch; margin:0 0 34px; }

/* Hero: campo azul-tinta com o ar frio saindo do aparelho */
.hero { --heading:#fff; position:relative; overflow:hidden; color:#fff; padding:64px 0 72px;
  background:radial-gradient(800px 420px at 88% 10%,rgba(25,167,206,.38),transparent 62%),linear-gradient(155deg,var(--ink) 0%,var(--deep) 100%); }
.hero-grid { position:relative; z-index:1; }
.hero-copy { max-width:760px; }
.hero h1 { color:#fff; font-size:clamp(2rem,4.4vw,3.2rem); font-weight:800; line-height:1.07; letter-spacing:-.035em; margin:0 0 .45em; }
.hero p { color:#d3e6f0; max-width:60ch; font-size:1.08rem; }
.hero .cta-help { font-size:.92rem; margin:16px 0 0; color:#b4cfdd; }
.hero-lines { position:absolute; right:0; bottom:-10px; width:min(560px,70%); height:auto; pointer-events:none; }
.home-hero { padding:64px 0 108px; }
.home-hero .hero-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:24px; }
.home-hero .hero-copy { max-width:none; }
.home-hero h1 { font-size:clamp(2.4rem,5.4vw,4rem); }
.hero-art { width:100%; height:auto; max-height:430px; }
.fluxo { stroke-dasharray:3 15; animation:ar 7s linear infinite; }
.f2 { animation-duration:9s; } .f3 { animation-duration:6s; } .f4 { animation-duration:11s; }
@keyframes ar { to { stroke-dashoffset:-180; } }
.actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }

/* Botões */
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; max-width:100%; overflow-wrap:anywhere; background:#fff; color:var(--navy); font-weight:800; border-radius:999px; padding:12px 26px; text-decoration:none; transition:filter .15s,background .15s; }
.btn.primary { background:var(--blue); color:#fff; }
.btn.wa { background:var(--green); color:#fff; box-shadow:0 8px 20px -8px rgba(15,122,63,.7); }
.btn.big { min-height:56px; padding:14px 32px; font-size:1.05rem; }
.btn.outline { border:2px solid var(--frost); background:transparent; color:#fff; }
.btn.outline:hover { background:rgba(140,220,247,.16); }
.btn.outline.dark { border-color:var(--blue); color:var(--blue); }
.btn.outline.dark:hover { background:var(--ice); }
.btn:hover { filter:brightness(.94); }

/* Faixa de fatos sobre o hero */
.facts { list-style:none; margin:-52px 0 0; padding:0; position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.facts li { display:flex; gap:14px; align-items:flex-start; padding:22px 22px; min-width:0; }
.facts li+li { border-left:1px solid var(--line); }
.facts .ico { width:28px; height:28px; color:var(--cyan); margin-top:2px; }
.facts span { display:flex; flex-direction:column; font-size:.92rem; color:var(--muted); line-height:1.4; }
.facts strong { color:var(--navy); font-size:1rem; margin-bottom:2px; }

/* Seções */
.section { padding:84px 0; }
.section.alt { background:var(--mist); }
.section p { max-width:75ch; }
.grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.card { min-width:0; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:30px; box-shadow:var(--shadow); }
.card p { margin:0 0 18px; color:var(--muted); }
.grid .card { display:flex; flex-direction:column; transition:border-color .2s; }
.grid .card:hover,.grid .card:focus-within { border-color:var(--cyan); }
.card h3 { margin:18px 0 10px; }
.card-icon { display:inline-grid; place-items:center; width:60px; height:60px; border-radius:16px; background:linear-gradient(145deg,var(--ink),var(--deep)); color:var(--frost); }
.grid .card a { margin-top:auto; padding:8px 0; font-weight:700; }
.extra { display:flex; align-items:center; justify-content:space-between; gap:20px 32px; flex-wrap:wrap; margin-top:28px; padding:24px 30px; border-radius:var(--radius); background:var(--ice); border:1px solid #cbe6f2; }
.extra p { margin:0; max-width:60ch; }

/* Áreas atendidas */
.areas-home { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px 56px; align-items:center; }
.cities { display:flex; flex-wrap:wrap; gap:12px; padding:0; margin:0 0 20px; list-style:none; }
.areas-home .cities { margin:0; }
.cities li { display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line); padding:10px 18px 10px 14px; border-radius:999px; font-weight:700; color:var(--navy); }
.cities .ico { color:var(--cyan); }
.cities li.base { background:var(--navy); border-color:var(--navy); color:#fff; }
.cities li.base .ico { color:var(--frost); }

/* Passos: aqui a ordem importa, por isso a numeração */
.steps { counter-reset:passo; list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; padding:0; margin:34px 0 28px; }
.steps li { position:relative; counter-increment:passo; padding-top:64px; }
.steps li::before { content:counter(passo); position:absolute; top:0; left:0; display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:var(--navy); color:var(--frost); font:800 1.25rem var(--display); }
.steps li:not(:last-child)::after { content:""; position:absolute; top:23px; left:62px; right:-20px; border-top:2px dashed #a9cfe0; }
.steps h3 { margin:0 0 8px; }
.steps p { margin:0; color:var(--muted); }

/* Prova social (só aparece quando config.json tem dados reais) */
.stats { list-style:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:24px; margin:0; padding:0; }
.stats li { display:flex; flex-direction:column; padding-left:20px; border-left:4px solid var(--cyan); }
.stats strong { font:800 clamp(2rem,4vw,3rem)/1.1 var(--display); color:var(--navy); letter-spacing:-.03em; }
.stats span { color:var(--muted); }
.gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:20px; }
.gallery figure { margin:0; }
.gallery img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius); background:var(--ice); }
.gallery figcaption { margin-top:8px; font-size:.92rem; color:var(--muted); }
.depoimentos { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; }
.depoimento { margin:0; padding:28px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.depoimento blockquote { margin:0 0 16px; }
.depoimento p { margin:0; font-size:1.08rem; }
.depoimento figcaption { font-weight:700; color:var(--navy); }

/* Páginas de serviço */
.split { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:48px; align-items:start; }
.side-cta { --heading:#fff; position:sticky; top:104px; background:linear-gradient(160deg,var(--ink),var(--deep)); color:#d3e6f0; border-radius:var(--radius); padding:28px; box-shadow:var(--shadow); }
.side-cta h3 { color:#fff; margin:18px 0 8px; }
.side-cta .card-icon { background:rgba(140,220,247,.14); }
.side-cta .btn { width:100%; }
.text-content { max-width:780px; }
.text-content h2 { margin-top:38px; }
.faq { display:grid; gap:14px; }
.qa { padding:20px 24px; background:#fff; border:1px solid var(--line); border-left:4px solid var(--cyan); border-radius:12px; }
.qa h3 { margin:0 0 6px; font-size:1.1rem; }
.qa p { margin:0; color:var(--muted); }
.note { border-left:4px solid #157aa0; padding:12px 16px; background:#edf7fb; }

/* Lista de serviços */
.servicos-lista { display:grid; gap:24px; }
.servico { display:grid; grid-template-columns:auto minmax(0,1fr) 270px; gap:24px 32px; align-items:start; padding:32px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.servico h3 { margin:0 0 8px; font-size:1.4rem; }
.servico p { margin:0 0 16px; color:var(--muted); }
.servico .ticks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 24px; margin:0; }
.servico-acoes { display:flex; flex-direction:column; gap:12px; }
.duo .card h3 { margin-top:0; }

/* Contato */
.contact-options,.duo { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.contact-options a { overflow-wrap:anywhere; }
.contact-options .card h3 { margin-top:0; }
.contact-checklist,.ticks { list-style:none; padding:0; margin:0 0 20px; }
.contact-checklist li,.ticks li { position:relative; margin-bottom:10px; padding-left:30px; }
.contact-checklist li::before,.ticks li::before { content:""; position:absolute; left:2px; top:.45em; width:12px; height:7px; border-left:3px solid var(--cyan); border-bottom:3px solid var(--cyan); transform:rotate(-45deg); }

/* Rodapé */
.footer { --heading:#fff; background:var(--ink); color:#cfe2ec; }
.footer-columns { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.3fr; gap:40px; padding-top:64px; padding-bottom:48px; }
.footer-columns > * { min-width:0; }
.footer h2 { font:700 1rem var(--display); letter-spacing:0; color:#fff; margin:0 0 14px; }
.footer .footer-logo { display:inline-flex; align-items:center; gap:11px; color:#fff; font:800 1.2rem var(--display); letter-spacing:-.02em; margin:0 0 14px; }
.footer .footer-logo span span { color:var(--frost); }
.footer .footer-logo .mark rect { fill:#fff; }
.footer .footer-logo .mark path { stroke:var(--navy); }
.footer-brand p { margin:0 0 10px; max-width:38ch; }
.footer .footer-cities { color:#a9c3d1; font-size:.92rem; }
.footer a { color:#cfe2ec; text-decoration:none; overflow-wrap:anywhere; }
.footer a:hover { color:#fff; text-decoration:underline; }
.footer a:focus-visible { outline-color:var(--frost); box-shadow:none; }
.footer ul { list-style:none; margin:0; padding:0; }
.footer li a { display:inline-block; padding:7px 0; }
.footer-contact li { display:flex; align-items:flex-start; gap:10px; }
.footer-contact li a { display:inline-flex; align-items:center; gap:10px; }
.footer-contact li.plain { padding:7px 0; gap:10px; color:#a9c3d1; font-size:.92rem; }
.footer-contact .ico { color:var(--frost); margin-top:.2em; }
.footer-contact li a .ico { margin-top:0; }
.footer small { display:block; color:#a9c3d1; }
.footer-bottom { border-top:1px solid rgba(140,220,247,.18); padding:20px 0 calc(96px + env(safe-area-inset-bottom,0px)); font-size:.9rem; color:#a9c3d1; }
.footer-bottom .wrap { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 24px; }
.wa-dock { position:fixed; right:20px; bottom:calc(20px + env(safe-area-inset-bottom,0px)); z-index:9; }
.wa-float { display:grid; place-items:center; width:62px; height:62px; border-radius:50%; background:var(--green); box-shadow:0 10px 28px -6px rgba(10,31,51,.55),0 0 0 4px #fff; transition:filter .15s; }
.wa-float:hover { filter:brightness(.92); }
.wa-float svg { width:36px; height:36px; }

@media (max-width:980px) {
  .servico { grid-template-columns:auto minmax(0,1fr); }
  .servico-acoes { grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; }
  .home-hero .hero-grid { grid-template-columns:1fr; }
  .hero-art { max-width:460px; margin:0 auto; }
  .facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .facts li:nth-child(3) { border-left:0; }
  .facts li:nth-child(n+3) { border-top:1px solid var(--line); }
  .split { grid-template-columns:1fr; }
  .side-cta { position:static; }
  .areas-home { grid-template-columns:1fr; }
}
@media (max-width:900px) {
  html { scroll-padding-top:12px; }
  .header { position:static; }
  .head-inner { align-items:flex-start; flex-direction:column; padding-top:15px; padding-bottom:15px; gap:10px; min-height:0; }
  .nav { gap:0 16px; }
  .footer-columns { grid-template-columns:1fr 1fr; padding-top:48px; }
  .footer-brand { grid-column:1 / -1; }
}
@media (max-width:760px) {
  .nav a { font-size:.91rem; }
  .grid,.contact-options,.duo,.steps { grid-template-columns:1fr; }
  .servico { grid-template-columns:1fr; padding:24px; }
  .servico .ticks { grid-template-columns:1fr; }
  .servico-acoes .btn { width:100%; }
  .hero { padding:40px 0 56px; }
  .home-hero { padding:40px 0 84px; }
  .section { padding:56px 0; }
  .steps { gap:36px; }
  .steps li:not(:last-child)::after { top:58px; bottom:-30px; left:23px; right:auto; border-top:0; border-left:2px dashed #a9cfe0; }
  .steps li { padding-top:0; padding-left:70px; }
  .facts { margin-top:-40px; }
  .facts li { padding:16px; flex-direction:column; gap:8px; }
  .actions .btn { width:100%; }
  .wa-dock { right:14px; bottom:calc(14px + env(safe-area-inset-bottom,0px)); }
}
@media (max-width:480px) {
  .footer-columns { grid-template-columns:1fr; }
  .facts { grid-template-columns:1fr; }
  .facts li+li,.facts li:nth-child(n+3) { border-left:0; border-top:1px solid var(--line); }
  .facts li { flex-direction:row; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .fluxo { animation:none; }
}
