/* Geosolares LP — layout da landing page contratada (set/2026), reproduzido em CSS puro. */
:root {
  --azul: #0c2a5a;
  --azul-escuro: #081d40;
  --laranja: #f47c20;
  --laranja-escuro: #d8650f;
  --cinza: #eef0f3;
  --texto: #1f2937;
  --texto-claro: #5b6472;
  --branco: #fff;
  --raio: 14px;
  --fonte: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.geo-lp { margin: 0; font-family: var(--fonte); color: var(--texto); background: var(--branco); line-height: 1.55; font-size: 16px; }
body.geo-lp img { max-width: 100%; height: auto; display: block; }
body.geo-lp h1, body.geo-lp h2, body.geo-lp h3 { line-height: 1.2; margin: 0 0 .5em; text-wrap: balance; }
body.geo-lp a:not(.geo-btn) { color: inherit; }
.geo-wrap { width: min(1140px, 100% - 40px); margin-inline: auto; }
.geo-secao { padding-block: 64px; }
.geo-secao h2 { font-size: clamp(24px, 3vw, 34px); font-weight: 700; color: var(--azul); text-align: center; }
.geo-secao > .geo-wrap > p.geo-sub { text-align: center; max-width: 720px; margin: 0 auto 32px; color: var(--texto-claro); }
.geo-cta-row { text-align: center; margin-top: 36px; }
.geo-cinza { background: var(--cinza); }
.geo-azul { background: var(--azul); color: var(--branco); }
.geo-azul h2 { color: var(--branco); }

/* botões */
.geo-btn { display: inline-block; padding: 12px 26px; border-radius: 8px; font-weight: 600; font-size: 15px; text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: transform .15s, background .15s; line-height: 1.3; }
.geo-btn:hover { transform: translateY(-1px); }
.geo-btn-laranja { background: var(--laranja); color: var(--branco); }
.geo-btn-laranja:hover { background: var(--laranja-escuro); }
.geo-btn-azul { background: var(--azul); color: var(--branco); }
.geo-btn-azul:hover { background: var(--azul-escuro); }
.geo-btn-contorno { background: transparent; color: var(--azul); border-color: var(--azul); }
.geo-azul .geo-btn-contorno { color: var(--branco); border-color: var(--branco); }

/* cabeçalho */
.geo-header { position: sticky; top: 0; z-index: 50; background: var(--branco); box-shadow: 0 1px 8px rgba(0,0,0,.08); }
.geo-header .geo-wrap { display: flex; align-items: center; gap: 24px; min-height: 72px; }
.geo-logo img { width: 130px; height: auto; }
.geo-nav { display: flex; gap: 22px; margin-left: auto; }
.geo-nav a { text-decoration: none; color: var(--azul); font-weight: 500; font-size: 14px; }
.geo-nav a:hover { color: var(--laranja); }
.geo-header-cta { margin-left: auto; font-size: 13px; padding: 9px 18px; }
.geo-nav + .geo-header-cta { margin-left: 0; }
.geo-menu-btn { display: none; background: none; border: 0; font-size: 26px; color: var(--azul); cursor: pointer; }

/* herói */
.geo-hero { position: relative; color: var(--branco); background: var(--azul) center/cover no-repeat; padding-block: 90px 140px; isolation: isolate; }
.geo-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,42,90,.95) 0%, rgba(12,42,90,.85) 45%, rgba(12,42,90,.35) 100%); z-index: -1; }
.geo-hero h1 { font-size: clamp(28px, 4vw, 44px); font-weight: 400; max-width: 640px; }
.geo-hero h1 strong { font-weight: 800; }
.geo-hero h1 .geo-laranja { color: var(--laranja); }
.geo-hero p { max-width: 560px; font-size: 16px; }
.geo-hero .geo-atende { text-transform: uppercase; letter-spacing: .06em; font-weight: 600; font-size: 14px; margin: 22px 0 26px; }

/* formulário */
.geo-form-card { background: var(--branco); border-radius: var(--raio); box-shadow: 0 12px 40px rgba(8,29,64,.14); padding: 36px clamp(20px, 4vw, 48px); max-width: 980px; margin: -100px auto 0; position: relative; z-index: 2; }
.geo-form-card h2 { text-align: center; font-size: clamp(22px, 3vw, 30px); color: var(--azul); }
.geo-form-card > p { text-align: center; color: var(--texto-claro); margin: 0 auto 24px; max-width: 640px; }
.geo-form-card .geo-form-nota { font-size: 12px; text-align: center; color: var(--texto-claro); margin: 14px 0 0; }
.geo-lp .fluentform .ff-el-group { margin-bottom: 14px; }
.geo-lp .fluentform .ff-el-input--label label { font-size: 13px; font-weight: 500; color: var(--azul); margin-bottom: 4px; }
.geo-lp .fluentform .ff-el-form-control { border: 1.5px solid #b7bec9; border-radius: 8px; padding: 10px 14px; font-family: var(--fonte); font-size: 15px; height: auto; background: var(--branco); }
.geo-lp .fluentform .ff-el-form-control:focus { border-color: var(--azul); box-shadow: 0 0 0 3px rgba(12,42,90,.12); outline: 0; }
.geo-lp .fluentform .ff-btn-submit { background: var(--azul) !important; color: #fff !important; border: 0 !important; border-radius: 8px !important; padding: 12px 28px !important; font-family: var(--fonte) !important; font-weight: 600 !important; font-size: 15px !important; display: block; margin: 8px auto 0; }
.geo-lp .fluentform .ff-btn-submit:hover { background: var(--azul-escuro) !important; }
.geo-lp .fluentform .ff-el-input--content .ff-el-form-check-label, .geo-lp .fluentform .ff-el-tc { font-size: 12px; color: var(--texto-claro); }
.geo-lp .fluentform .ff-el-tc p { margin: 0; }
.geo-lp .fluentform .ff-custom_html span { color: inherit !important; }
.geo-lp .fluentform .ff-el-form-check-label a { color: var(--azul); }
.geo-lp .fluentform .ff_submit_btn_wrapper { text-align: center; }
.geo-lp .fluentform .ff-t-container, .geo-lp .fluentform .ff-t-cell { display: block; }
.geo-lp .fluentform .ff-name-field-wrapper .ff-t-cell:not(:first-child) { display: none; }
@media (min-width: 700px) {
  .geo-lp .fluentform .ff-t-container { display: flex; gap: 16px; }
  .geo-lp .fluentform .ff-t-cell { flex: 1; }
}

/* números / por que */
.geo-numeros { position: relative; color: var(--branco); background: var(--azul) center/cover no-repeat; isolation: isolate; text-align: center; }
.geo-numeros::before { content: ""; position: absolute; inset: 0; background: rgba(12,42,90,.82); z-index: -1; }
.geo-numeros h2 { color: var(--branco); max-width: 760px; margin-inline: auto; }
.geo-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 28px; margin-top: 40px; }
.geo-stats strong { display: block; color: var(--laranja); font-size: clamp(22px, 2.6vw, 28px); font-weight: 800; line-height: 1.15; margin-bottom: 8px; }
.geo-stats span { font-size: 14px; opacity: .92; }

/* soluções (cards) */
.geo-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 22px; margin-top: 36px; }
.geo-card { background: var(--branco); border-radius: var(--raio); overflow: hidden; box-shadow: 0 6px 20px rgba(8,29,64,.08); display: flex; flex-direction: column; }
.geo-card img { aspect-ratio: 4/3; object-fit: cover; width: 100%; }
.geo-card .geo-card-corpo { padding: 20px 20px 24px; text-align: center; }
.geo-card h3 { color: var(--azul); font-size: 20px; font-weight: 800; }
.geo-card p { font-size: 13.5px; color: var(--texto-claro); margin: 0 0 8px; }

/* cases (carrossel) */
.geo-cases { background: var(--azul); color: var(--branco); border-radius: var(--raio); padding: 32px clamp(16px, 4vw, 56px); position: relative; overflow: hidden; }
.geo-cases::after { content: ""; position: absolute; right: -80px; top: -40px; width: 260px; height: 140%; background: rgba(255,255,255,.06); transform: skewX(-18deg); pointer-events: none; }
.geo-case { display: none; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; }
.geo-case.ativo { display: grid; }
.geo-case img { border-radius: 10px; width: 100%; aspect-ratio: 3/2; object-fit: cover; }
.geo-case dl { margin: 0; font-size: 18px; }
.geo-case dt { display: inline; color: var(--laranja); font-weight: 700; }
.geo-case dd { display: inline; margin: 0 0 0 6px; }
.geo-case dd::after { content: ""; display: block; height: 14px; }
.geo-case-nome { font-size: 22px; font-weight: 800; color: var(--laranja); margin-bottom: 14px; }
.geo-cases-nav { position: absolute; top: 50%; transform: translateY(-50%); background: none; border: 0; color: var(--branco); font-size: 34px; cursor: pointer; padding: 8px; z-index: 2; }
.geo-cases-nav.prev { left: 6px; } .geo-cases-nav.next { right: 6px; }

/* processo */
.geo-processo-top { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: center; }
.geo-processo-top h2 { text-align: left; font-weight: 400; font-size: clamp(24px, 3vw, 32px); }
.geo-processo-top h2 strong { font-weight: 800; }
.geo-grade-fotos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.geo-grade-fotos img { border-radius: 10px; object-fit: cover; width: 100%; aspect-ratio: 1; }
.geo-grade-fotos img:nth-child(2) { aspect-ratio: 4/5; }
.geo-grade-fotos img:nth-child(3) { aspect-ratio: 4/5; margin-top: -30%; }
.geo-passos { margin-top: 56px; background: var(--azul-escuro); border-radius: var(--raio); padding: 40px clamp(20px, 5vw, 60px); display: grid; grid-template-columns: 1.4fr 1fr; gap: 32px; align-items: center; }
.geo-passos h2 { text-align: left; font-weight: 400; font-size: clamp(22px, 2.6vw, 28px); }
.geo-passos h2 strong { color: var(--laranja); font-weight: 700; }
.geo-passos ol { list-style: none; padding: 0; margin: 20px 0 28px; }
.geo-passos li { margin-bottom: 16px; }
.geo-passos li b { display: block; text-transform: uppercase; font-size: 14px; letter-spacing: .03em; }
.geo-passos li span { font-size: 15px; opacity: .92; }
.geo-passos img { border-radius: 10px; width: 100%; aspect-ratio: 3/4; object-fit: cover; }

/* experiência */
.geo-exp { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.geo-exp img { border-radius: var(--raio); aspect-ratio: 4/5; object-fit: cover; width: 100%; }
.geo-exp-texto { text-align: center; font-size: 18px; color: var(--azul); }
.geo-exp-texto .geo-grande-laranja { display: block; color: var(--laranja); font-size: clamp(32px, 4.5vw, 46px); font-weight: 800; line-height: 1.1; margin: 8px 0; }
.geo-exp-texto .geo-grande-azul { display: block; color: var(--azul); font-size: clamp(32px, 4.5vw, 46px); font-weight: 800; line-height: 1.1; margin: 8px 0; }

/* depoimentos */
.geo-depos { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 40px; margin-top: 32px; }
.geo-depo { display: grid; grid-template-columns: 56px 1fr; gap: 16px; align-items: start; }
.geo-depo img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.geo-depo blockquote { margin: 0; font-size: 14px; color: var(--texto); }
.geo-depo blockquote::before { content: "“"; color: var(--laranja); font-size: 28px; line-height: 0; margin-right: 4px; }
.geo-depo cite { display: block; margin-top: 12px; font-style: normal; font-weight: 600; color: var(--azul); font-size: 14px; }
.geo-depo cite small { display: block; font-weight: 400; color: var(--texto-claro); }
.geo-avaliacoes-resumo { text-align: center; margin: 8px 0 0; color: var(--texto-claro); }
.geo-avaliacoes-resumo strong { color: var(--azul); }
.geo-avaliacoes-resumo a { color: var(--azul); }

/* FAQ */
.geo-faq { max-width: 820px; margin: 32px auto 0; }
.geo-faq details { background: var(--azul); color: var(--branco); border-radius: 10px; margin-bottom: 12px; overflow: hidden; }
.geo-faq summary { cursor: pointer; padding: 16px 48px 16px 22px; font-weight: 600; text-transform: uppercase; font-size: 14px; letter-spacing: .02em; list-style: none; position: relative; }
.geo-faq summary::-webkit-details-marker { display: none; }
.geo-faq summary::after { content: "⌄"; position: absolute; right: 20px; top: 12px; font-size: 22px; transition: transform .2s; }
.geo-faq details[open] summary::after { transform: rotate(180deg); }
.geo-faq .geo-faq-r { background: var(--cinza); color: var(--texto); padding: 16px 22px; font-size: 14.5px; }
.geo-faq .geo-faq-r p { margin: 0 0 8px; }

/* conteúdo local (páginas de cidade) */
.geo-local { max-width: 860px; margin-inline: auto; }
.geo-local h2 { text-align: left; font-size: clamp(22px, 2.6vw, 28px); margin-top: 32px; }
.geo-local h2:first-child { margin-top: 0; }
.geo-local p.lead { font-size: 17px; }
.geo-local table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 15px; }
.geo-local th, .geo-local td { padding: 10px 12px; border-bottom: 1px solid #d5dae2; text-align: left; }
.geo-local th { background: var(--azul); color: var(--branco); font-weight: 600; }
.geo-local .geo-tabela-scroll { overflow-x: auto; }
.geo-local ul { padding-left: 20px; }
.geo-vizinhas { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 16px; }
.geo-vizinhas a { text-decoration: none; background: var(--branco); border: 1.5px solid var(--azul); color: var(--azul); border-radius: 999px; padding: 6px 14px; font-size: 14px; }
.geo-vizinhas a:hover { background: var(--azul); color: var(--branco); }

/* CTA final */
.geo-final { background: var(--azul); color: var(--branco); position: relative; overflow: hidden; }
.geo-final::before, .geo-final::after { content: ""; position: absolute; width: 420px; height: 140%; background: var(--laranja); transform: skewX(-22deg); opacity: .95; }
.geo-final::before { right: -260px; top: -20%; }
.geo-final::after { right: -420px; top: -20%; background: #ff9c4a; opacity: .6; }
.geo-final .geo-wrap { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.geo-final h2 { text-align: left; color: var(--laranja); font-size: clamp(30px, 4vw, 44px); font-weight: 800; }
.geo-final .geo-final-texto p { font-size: 16px; opacity: .95; }
.geo-final .geo-form-card { margin: 0; max-width: none; color: var(--texto); }

/* rodapé */
.geo-footer { padding-block: 48px 32px; border-top: 1px solid #e3e6eb; font-size: 14px; }
.geo-footer .geo-wrap { display: grid; grid-template-columns: 200px 160px 1fr; gap: 32px; align-items: start; }
.geo-footer-links a { display: block; text-decoration: none; color: var(--texto-claro); margin-bottom: 8px; }
.geo-footer-atende { text-transform: uppercase; font-weight: 700; color: var(--azul); margin: 0 0 16px; }
.geo-unidades { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.geo-unidade h3 { font-size: 14px; text-transform: uppercase; color: var(--azul); margin-bottom: 6px; }
.geo-unidade p { margin: 0 0 4px; color: var(--texto-claro); text-transform: uppercase; font-size: 12.5px; }
.geo-unidade p.geo-nota { text-transform: none; font-size: 13px; margin-top: 8px; }
.geo-unidade p.geo-nota strong { color: var(--azul); }
.geo-unidade iframe { width: 100%; height: 170px; border: 0; border-radius: 8px; margin-top: 10px; }
.geo-footer-legal { text-align: center; color: var(--texto-claro); font-size: 12px; margin-top: 36px; }

/* responsivo */
@media (max-width: 900px) {
  .geo-nav { display: none; position: absolute; top: 72px; left: 0; right: 0; background: var(--branco); flex-direction: column; padding: 16px 20px; gap: 14px; box-shadow: 0 8px 16px rgba(0,0,0,.08); }
  .geo-nav.aberto { display: flex; }
  .geo-menu-btn { display: block; margin-left: auto; }
  .geo-header-cta { display: none; }
  .geo-hero { padding-block: 60px 120px; }
  .geo-hero::before { background: rgba(12,42,90,.85); }
  .geo-processo-top, .geo-passos, .geo-exp, .geo-final .geo-wrap, .geo-case { grid-template-columns: 1fr; }
  .geo-grade-fotos img:nth-child(3) { margin-top: 0; }
  .geo-footer .geo-wrap { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .geo-secao { padding-block: 44px; }
  .geo-form-card { margin-top: -80px; padding: 26px 18px; }
  .geo-cases { padding-inline: 40px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .geo-btn { transition: none; } }

/* cards clicáveis + serviços */
.geo-card a { text-decoration: none; }
.geo-card-mais { display: inline-block; margin-top: 6px; color: var(--laranja); font-weight: 600; font-size: 14px; text-decoration: none; }
.geo-servicos { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin-top: 28px; }
.geo-servicos a { display: block; background: var(--branco); border: 1.5px solid #d5dae2; border-radius: 10px; padding: 16px 18px; text-decoration: none; color: var(--azul); font-weight: 600; }
.geo-servicos a:hover { border-color: var(--laranja); }
.geo-servicos a small { display: block; font-weight: 400; color: var(--texto-claro); margin-top: 4px; font-size: 13px; }

/* blog */
.geo-blog-titulo { font-size: clamp(28px, 4vw, 40px); color: var(--azul); text-align: center; }
.geo-blog .geo-sub { text-align: center; max-width: 720px; margin: 0 auto 32px; color: var(--texto-claro); }
.geo-blog-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.geo-blog-card { background: var(--branco); border-radius: var(--raio); overflow: hidden; box-shadow: 0 6px 20px rgba(8,29,64,.08); display: flex; flex-direction: column; }
.geo-blog-capa img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.geo-blog-corpo { padding: 18px 20px 22px; }
.geo-blog-corpo time { font-size: 12px; color: var(--texto-claro); text-transform: uppercase; letter-spacing: .04em; }
.geo-blog-corpo h2 { font-size: 19px; margin: 6px 0 8px; text-align: left; }
.geo-blog-corpo h2 a { text-decoration: none; color: var(--azul); }
.geo-blog-corpo p { font-size: 14px; color: var(--texto-claro); margin: 0 0 8px; }
.geo-paginacao { text-align: center; margin-top: 32px; }
.geo-paginacao .page-numbers { display: inline-block; padding: 8px 14px; margin: 0 3px; border-radius: 8px; border: 1.5px solid #d5dae2; text-decoration: none; color: var(--azul); }
.geo-paginacao .page-numbers.current { background: var(--azul); color: var(--branco); border-color: var(--azul); }
.geo-post-wrap { max-width: 780px; }
.geo-post-meta { color: var(--texto-claro); font-size: 14px; text-align: center; }
.geo-post-meta a { color: var(--laranja); text-decoration: none; font-weight: 600; }
.geo-post h1 { font-size: clamp(28px, 4vw, 40px); color: var(--azul); text-align: center; margin-bottom: 24px; }
.geo-post-capa { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: var(--raio); margin-bottom: 28px; }
.geo-post-conteudo { font-size: 17px; line-height: 1.7; }
.geo-post-conteudo h2 { font-size: 24px; text-align: left; margin-top: 32px; color: var(--azul); }
.geo-post-conteudo h3 { font-size: 20px; color: var(--azul); margin-top: 24px; }
.geo-post-conteudo ul, .geo-post-conteudo ol { padding-left: 24px; }
.geo-post-conteudo a { color: var(--laranja); }
.geo-post-conteudo img { border-radius: 10px; }
.geo-post-conteudo .geo-fonte { font-size: 14px; color: var(--texto-claro); border-top: 1px solid #e3e6eb; padding-top: 14px; margin-top: 32px; }
.geo-post-cta { background: var(--azul); color: var(--branco); border-radius: var(--raio); padding: 28px clamp(20px, 4vw, 40px); margin-top: 40px; text-align: center; }
.geo-post-cta h2 { color: var(--branco); font-size: 22px; }
.geo-post-cta p { opacity: .92; margin-bottom: 18px; }
.geo-post-voltar { margin-top: 28px; }
.geo-post-voltar a { color: var(--azul); text-decoration: none; font-weight: 600; }
