/* GEFORTE Engenharia: complemento do template Modrox.
   Só entra aqui o que o template não tem. Duas trocas foram feitas direto
   em style.css e responsive.css: o dourado virou o azul da marca, e
   text-transform:capitalize virou none (em português ele gera
   "Reforma De Fachada"; o texto já vem escrito com a caixa certa). */

/* H1 com a aparência do cabeçalho que o template usa no mesmo lugar.
   O template não tem H1 nessas seções; a página precisa de exatamente um. */
.sec-title h1{
	position:relative;
	font-size:35px;
	font-weight:700;
	color:#242424;
	line-height:1.2em;
	display:block;
}

.services-page-section .services-title h1{
	position:relative;
	color:#242424;
	font-size:50px;
	font-weight:700;
	line-height:1.2em;
	padding-bottom:30px;
}

.services-page-section .services-title h1:after{
	position:absolute;
	content:'';
	left:50%;
	bottom:0px;
	width:90px;
	height:3px;
	margin-left:-45px;
	background-color:#225da1;
}

.about-section-three .title-column .inner-column h1{
	position:relative;
	color:#242424;
	font-size:35px;
	font-weight:600;
	line-height:1.2em;
	padding-bottom:30px;
}

.news-block-four .inner-box .lower-content .upper-box h1{
	position:relative;
	color:#242424;
	font-size:30px;
	font-weight:700;
	line-height:1.25em;
	font-family:'Montserrat', sans-serif;
}

.portfolio-single-section .title-box h1{
	position:relative;
	color:#242424;
	font-size:60px;
	font-weight:700;
	line-height:1.15em;
}

/* Títulos do portfolio-detail: h2 com o desenho do h3 do template. */
.project-description h2{
	position:relative;
	color:#242424;
	font-size:28px;
	font-weight:700;
	line-height:1.2em;
	margin-bottom:16px;
}

.project-description .text h3{
	position:relative;
	color:#242424;
	font-size:20px;
	font-weight:700;
	margin:25px 0px 15px;
}

.project-description .text .list-style-two li,
.project-description .text .list-style-two li:before{
	color:#797979;
	font-weight:400;
}

.project-description .text .list-style-two li:before{
	color:#225da1;
}

/* Título do contato: H1 com o desenho do .sec-title-two h2. */
.sec-title-two h1{
	position:relative;
	font-weight:700;
	font-size:35px;
	color:#242424;
	line-height:1.2em;
	display:inline-block;
}

.sec-title-two h1:after{
	position:absolute;
	content:'';
	left:105%;
	bottom:4px;
	width:35px;
	height:2px;
	background-color:#225da1;
}

/* Grupos da página de perguntas frequentes. */
.faq-grupo{
	position:relative;
	margin-bottom:50px;
}

.faq-grupo .sec-title-two{
	margin-bottom:30px;
}

.faq-grupo .sec-title-two h2{
	font-size:26px;
}

.faq-section .faq-title h1{
	position:relative;
	color:#242424;
	font-size:35px;
	font-weight:700;
	line-height:1.2em;
	margin-bottom:15px;
}

.gallery-section-two .project-title h1{
	position:relative;
	color:#242424;
	font-size:40px;
	font-weight:700;
	line-height:1.3em;
}

.gallery-section-two .project-title h1 span{
	color:#225da1;
}

/* Cabeçalhos dentro do texto do serviço: mesma escala do h4 do blog-detail. */
.news-block-four .inner-box .lower-content .lower-box .text h2{
	position:relative;
	color:#242424;
	font-size:22px;
	font-weight:700;
	line-height:1.3em;
	margin:40px 0px 20px;
}

.news-block-four .inner-box .lower-content .lower-box .text h3{
	position:relative;
	color:#242424;
	font-size:18px;
	font-weight:700;
	line-height:1.3em;
	margin:25px 0px 10px;
}

.news-block-four .inner-box .lower-content .lower-box .text .list-style-two{
	margin-bottom:20px;
}

.news-block-four .inner-box .lower-content .lower-box .text .list-style-two li,
.news-block-four .inner-box .lower-content .lower-box .text .list-style-two li:before{
	color:#797979;
	font-weight:400;
	font-size:16px;
}

.news-block-four .inner-box .lower-content .lower-box .text .list-style-two li:before{
	color:#225da1;
}

.resposta-curta{
	color:#242424 !important;
	font-size:18px !important;
	line-height:1.7em;
}

/* Trilha de navegação (BreadcrumbList sai da mesma lista). */
.trilha{
	position:relative;
	padding:25px 0px 0px;
	font-size:13px;
	color:#797979;
	font-family:'Open Sans', sans-serif;
}

.trilha ol{
	margin:0px;
	padding:0px;
	list-style:none;
}

.trilha li{
	display:inline;
}

.trilha li + li:before{
	content:'/';
	padding:0px 8px;
	color:#bbbbbb;
}

.trilha a{
	color:#797979;
}

.trilha a:hover{
	color:#225da1;
}

.trilha [aria-current]{
	color:#242424;
}

/* Texto de abertura das páginas-pilar, entre o título e os blocos. */
.pilar-texto{
	position:relative;
	max-width:900px;
	margin:-40px auto 90px;
	text-align:center;
}

.pilar-texto p{
	color:#797979;
	font-size:16px;
	line-height:1.8em;
	margin-bottom:20px;
}

.service-block .inner-box .content-column .inner-column .saiba-mais{
	display:inline-block;
	margin-top:20px;
	font-weight:600;
	font-size:15px;
	color:#225da1;
}

.service-block .inner-box .content-column .inner-column h2 a{
	color:#242424;
}

.service-block .inner-box .content-column .inner-column h2 a:hover{
	color:#225da1;
}

/* Tags da barra lateral que não são link. */
.sidebar .popular-tags span{
	position:relative;
	display:inline-block;
	line-height:24px;
	padding:6px 20px 6px;
	margin:0px 6px 10px 0px;
	color:#a6a6a6;
	text-align:center;
	font-size:15px;
	border:1px solid #e9e9e9;
}

.sidebar .cat-list li.atual a{
	color:#225da1;
}

/* FAQ dentro da página de serviço. */
.faq-servico{
	position:relative;
	margin-bottom:60px;
}

.faq-servico .group-title{
	margin-bottom:30px;
}

.accordion-box .block .acc-content .content p{
	margin:0px;
}

/* Legenda de foto de banco de imagens. */
.imagem-ilustrativa{
	display:block;
	font-size:12px;
	color:#999999;
	margin-top:8px;
	font-style:italic;
}

/* Mapa do contato: iframe no lugar do Google Maps JS do template. */
.map-section .map-outer iframe{
	display:block;
	width:100%;
	height:450px;
	border:0px;
}

/* Endereço no rodapé e no formulário: NAP em texto, fonte única. */
.main-footer address,
.form-section address{
	font-style:normal;
	margin:0px;
}

/* Botão flutuante de WhatsApp. */
.whatsapp-flutuante{
	position:fixed;
	right:20px;
	bottom:80px;
	z-index:998;
	width:56px;
	height:56px;
	line-height:56px;
	border-radius:50%;
	text-align:center;
	color:#ffffff;
	font-size:30px;
	background-color:#25d366;
	box-shadow:0px 4px 14px rgba(0,0,0,0.20);
	transition:all 300ms ease;
}

.whatsapp-flutuante:hover,
.whatsapp-flutuante:focus{
	color:#ffffff;
	transform:scale(1.06);
}

/* Campo-isca da janela do WhatsApp, fora da vista. */
.campo-isca{
	position:absolute !important;
	left:-9999px !important;
	width:1px;
	height:1px;
	overflow:hidden;
}


/* Logo em SVG no lugar do PNG 160 x 50 do template. */
.main-header .main-box .logo-box .logo img{
	height:50px;
	width:auto;
}

.footer-widget.logo-widget .logo img{
	height:55px;
	width:auto;
}

.footer-widget .responsavel{
	margin-top:20px;
	font-size:14px;
	line-height:1.7em;
	color:#9a9a9a;
}

@media only screen and (max-width: 767px){
	.services-page-section .services-title h1{
		font-size:32px;
	}
	.portfolio-single-section .title-box h1{
		font-size:34px;
	}
	.sec-title-two h1:after{
		display:none;
	}
	.sec-title h1,
	.sec-title-two h1,
	.about-section-three .title-column .inner-column h1,
	.faq-section .faq-title h1,
	.gallery-section-two .project-title h1{
		font-size:28px;
	}
	.news-block-four .inner-box .lower-content .upper-box h1{
		font-size:24px;
	}
	.pilar-texto{
		margin:-20px auto 60px;
	}
	.whatsapp-flutuante{
		bottom:70px;
	}
}

/* Título do form-section quando a página já usou os H2 (vira H3 com o
   mesmo desenho do .sec-title-two h2 do template). */
.sec-title-two h3{
	position:relative;
	font-weight:700;
	font-size:35px;
	color:#242424;
	line-height:1.2em;
	display:inline-block;
}

.sec-title-two h3:after{
	position:absolute;
	content:'';
	left:105%;
	bottom:4px;
	width:35px;
	height:2px;
	background-color:#242424;
}

@media only screen and (max-width: 767px){
	.sec-title-two h3{
		font-size:26px;
	}
	.sec-title-two h3:after{
		display:none;
	}
}

/* Ícones sobre fundo escuro: o azul da marca some no cinza #4d4f5b do
   template, então eles ficam brancos com o fio em azul. */
.specilazation-section .specilazation-block .inner .icon-box{
	color:#ffffff;
}

/* Blocos escuros do services.html (service-block-two): título e link claros,
   como no template. */
.service-block-two .inner-box .content-column .inner-column h2 a,
.service-block-two .inner-box .content-column .inner-column .saiba-mais{
	color:#ffffff;
}

.service-block-two .inner-box .content-column .inner-column h2 a:hover,
.service-block-two .inner-box .content-column .inner-column .saiba-mais:hover{
	color:#9fc0e6;
}

/* O texto dos serviços é maior que o de exemplo do template: a foto
   acompanha a altura do bloco para manter o desenho meio a meio. */
@media only screen and (min-width: 992px){
	.service-block .inner-box,
	.service-block-two .inner-box{
		display:flex;
		align-items:stretch;
	}
	.service-block-two .inner-box{
		flex-direction:row-reverse;
	}
	.service-block .inner-box:before,
	.service-block .inner-box:after,
	.service-block-two .inner-box:before,
	.service-block-two .inner-box:after{
		display:none;
	}
	.service-block .inner-box .image-column .image,
	.service-block-two .inner-box .image-column .image,
	.service-block .inner-box .image-column .image a,
	.service-block-two .inner-box .image-column .image a{
		display:block;
		height:100%;
	}
	.service-block .inner-box .image-column .image img,
	.service-block-two .inner-box .image-column .image img{
		height:100%;
		object-fit:cover;
	}
}

/* Parceiros: três logos parados, em cinza como os do template. */
.parceiros-fixos{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	align-items:center;
	gap:30px 70px;
	margin:0px;
	padding:10px 0px 0px;
	list-style:none;
}

.parceiros-fixos .image-box{
	margin:0px;
}

.parceiros-fixos img{
	display:block;
	max-height:60px;
	width:auto;
	filter:grayscale(100%);
	opacity:0.65;
	transition:all 300ms ease;
}

.parceiros-fixos img:hover{
	filter:none;
	opacity:1;
}

/* Links do rodapé legíveis sobre o fundo escuro do template. */
.main-footer .address-widget a,
.main-footer .copyright a{
	color:#bdbdbd;
}

.main-footer .address-widget a:hover,
.main-footer .copyright a:hover{
	color:#ffffff;
}

/* Ícones da seção de especialização: o template alinha o primeiro bloco à
   esquerda e os outros ao centro, o que desalinha quando os rótulos têm
   tamanhos diferentes. Aqui os três ficam centralizados, como no celular. */
.specilazation-block,
.specilazation-block .inner .inner-most{
	text-align:center;
}

.specilazation-block .inner .icon-box{
	height:60px;
}

/* Seção final (form-section): o template usa texto escuro sobre dourado;
   sobre o azul da marca o texto fica branco. */
.form-section .sec-title-two.style-two h2,
.form-section .sec-title-two.style-two h3,
.form-section .sec-title-two .text,
.form-section .list-style-one li,
.form-section .list-style-one li .icon,
.form-section .list-style-one li a,
.form-section .chamada-whatsapp p{
	color:#ffffff;
}

.form-section .sec-title-two.style-two h2:after,
.form-section .sec-title-two.style-two h3:after{
	background-color:#ffffff;
}

.form-section .sec-title-two .text{
	opacity:0.9;
}

.form-section .list-style-one li a:hover{
	text-decoration:underline;
}

.form-section .info-column .inner-column{
	border-left-color:rgba(255,255,255,0.35);
}

.form-section .theme-btn.btn-style-one{
	color:#ffffff;
	background:#242424;
	border-color:#242424;
}

.form-section .theme-btn.btn-style-one:hover{
	color:#242424;
	background:#ffffff;
	border-color:#ffffff;
}

/* Chamadas para o WhatsApp no lugar dos formulários do template. */
.chamada-whatsapp p{
	font-size:16px;
	line-height:1.8em;
	margin-bottom:25px;
}

.chamada-whatsapp .theme-btn .fa,
.contact-section .chamada-whatsapp .theme-btn .fa{
	font-size:1.25em;
	margin-right:8px;
	vertical-align:-2px;
}

.contact-section .chamada-whatsapp{
	margin-top:30px;
}

.sidebar-page-container .comment-form .form-inner.chamada-whatsapp p{
	color:#797979;
}

.faq-form-section .faq-form-box.chamada-whatsapp p{
	color:#555555;
}

/* Telefone vertical da barra lateral virou link do WhatsApp. */
.left-info-bar .number a{
	color:inherit;
}

.left-info-bar .number a:hover{
	color:#225da1;
}

/* Janela do WhatsApp (modal do Bootstrap 3 do template). */
.modal-whatsapp .modal-dialog{
	max-width:440px;
	margin:90px auto 30px;
}

.modal-whatsapp .modal-content{
	position:relative;
	border:none;
	border-radius:0px;
	box-shadow:0px 20px 60px rgba(0,0,0,0.25);
}

.modal-whatsapp .close{
	position:absolute;
	right:18px;
	top:12px;
	z-index:2;
	font-size:30px;
	opacity:0.5;
}

.modal-whatsapp .modal-body{
	padding:45px 40px 35px;
	text-align:center;
}

.modal-whatsapp .icone{
	width:64px;
	height:64px;
	line-height:64px;
	margin:0px auto 20px;
	border-radius:50%;
	color:#ffffff;
	font-size:34px;
	background-color:#25d366;
}

.modal-whatsapp .titulo{
	color:#242424;
	font-size:22px;
	font-weight:700;
	line-height:1.3em;
	margin-bottom:10px;
	font-family:'Montserrat', sans-serif;
}

.modal-whatsapp .texto{
	color:#797979;
	font-size:15px;
	line-height:1.7em;
	margin-bottom:25px;
}

.modal-whatsapp .form-group{
	margin-bottom:15px;
}

.modal-whatsapp input[type="text"],
.modal-whatsapp input[type="tel"]{
	display:block;
	width:100%;
	height:52px;
	padding:10px 20px;
	font-size:15px;
	color:#242424;
	border:1px solid #e0e0e0;
	background:#ffffff;
	transition:all 300ms ease;
}

.modal-whatsapp input[type="text"]:focus,
.modal-whatsapp input[type="tel"]:focus{
	border-color:#225da1;
}

.modal-whatsapp .erro{
	color:#c0392b;
	font-size:14px;
	margin:0px 0px 12px;
}

.modal-whatsapp .btn-whatsapp{
	display:block;
	width:100%;
	padding:14px 20px;
	color:#ffffff;
	font-size:15px;
	font-weight:700;
	letter-spacing:0.5px;
	text-transform:uppercase;
	background-color:#25d366;
	border:none;
	transition:all 300ms ease;
}

.modal-whatsapp .btn-whatsapp:hover,
.modal-whatsapp .btn-whatsapp:focus{
	background-color:#1ebe5a;
}

.modal-whatsapp .btn-whatsapp .fa{
	font-size:20px;
	margin-right:8px;
	vertical-align:-2px;
}

.modal-whatsapp .aviso{
	font-size:12px;
	line-height:1.6em;
	color:#999999;
	margin:15px 0px 0px;
}

.modal-whatsapp .aviso a{
	color:#999999;
	text-decoration:underline;
}

@media only screen and (max-width: 767px){
	.modal-whatsapp .modal-dialog{
		margin:70px 15px 20px;
	}
	.modal-whatsapp .modal-body{
		padding:40px 22px 28px;
	}
	.form-section .info-column .inner-column{
		border-left:none;
		padding-left:0px;
	}
}

/* ===== Rodada 2026-10-20 ===== */

/* Busca do topo removida: o espaço que o template reservava para o botão
   (padding-right:65px no .nav-outer) volta para o menu. */
.main-header .nav-outer{
	padding-right:0px;
}

/* Responsável técnico em três linhas: rótulo, nome e registro. */
.footer-widget .responsavel span{
	display:block;
}

.footer-widget .responsavel .rotulo{
	color:#ffffff;
	font-weight:600;
}

/* Assinatura do rodapé: os três selos da agência, centralizados, sobre uma
   faixa um tom abaixo do #242424 do template. */
.assinatura-selos{
	position:relative;
	padding:22px 0px;
	background-color:#1b1b1b;
	border-top:1px solid rgba(255,255,255,0.06);
}

.assinatura-selos ul{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	align-items:center;
	gap:18px 48px;
	margin:0px;
	padding:0px;
	list-style:none;
}

.assinatura-selos a{
	display:flex;
	align-items:center;
	gap:10px;
	color:rgba(255,255,255,0.65);
	font-size:12px;
	line-height:1.4;
	font-family:'Open Sans', sans-serif;
	transition:color 200ms ease;
}

.assinatura-selos a:hover,
.assinatura-selos a:focus{
	color:#ffffff;
}

.assinatura-selos svg{
	flex:none;
	width:26px;
	height:26px;
	color:rgba(255,255,255,0.5);
	transition:color 200ms ease;
}

.assinatura-selos a:hover svg{
	color:#9fc0e6;
}

.assinatura-selos b{
	display:block;
	font-weight:600;
	color:inherit;
}

.assinatura-selos em{
	display:block;
	font-style:normal;
	color:rgba(255,255,255,0.4);
}

@media only screen and (max-width: 767px){
	.assinatura-selos ul{
		flex-direction:column;
		align-items:flex-start;
		width:max-content;
		margin:0px auto;
	}
}

/* ===== Hero da home =====
   Foto aérea de obra no lugar do Revolution Slider. Sequência, disparada
   pela classe .ativo (geforte.js, depois do preloader):
   1. a câmera desce como um drone (zoom 1.16 > 1.04) e segue num Ken Burns lento;
   2. a planta técnica (lote, contorno da casa, cotas) se desenha sobre a obra;
   3. o texto sobe por máscara, linha a linha; botões e números entram por último.
   Sem JS (.preparado nunca é posta) ou com redução de movimento, tudo aparece
   pronto e parado. */
.hero-geforte{
	position:relative;
	height:calc(100vh - 70px);
	min-height:560px;
	max-height:880px;
	overflow:hidden;
	background-color:#0b4589;
	z-index:10;
}

.hero-geforte .hero-midia,
.hero-geforte .hero-camada,
.hero-geforte .hero-veu{
	position:absolute;
	left:0px;
	top:0px;
	width:100%;
	height:100%;
}

.hero-geforte .hero-midia{
	will-change:transform;
}

.hero-geforte .hero-camada{
	transform:scale(1.04);
	transform-origin:62% 50%;
}

.hero-geforte .hero-foto,
.hero-geforte .hero-planta{
	position:absolute;
	left:0px;
	top:0px;
	width:100%;
	height:100%;
}

.hero-geforte .hero-foto{
	max-width:none;
	object-fit:cover;
	object-position:50% 50%;
}

/* Planta técnica em branco, fina, sobre a foto. */
.hero-planta{
	color:#ffffff;
	pointer-events:none;
}

.hero-planta .grade{
	opacity:0.07;
}

.hero-planta .traco,
.hero-planta .cota path,
.hero-planta .cantos path{
	fill:none;
	stroke:#ffffff;
	stroke-width:1.6;
	vector-effect:non-scaling-stroke;
}

.hero-planta .lote{
	stroke-dasharray:0.012 0.008;
	opacity:0.55;
}

.hero-planta .casa{
	stroke-width:2;
	filter:drop-shadow(0px 0px 6px rgba(159,192,230,0.9));
}

.hero-planta .cota{
	opacity:0.7;
}

.hero-planta .cantos path{
	stroke-width:2.4;
}

.hero-planta .alvo .nucleo{
	fill:#ffffff;
}

.hero-planta .alvo .pulso{
	fill:none;
	stroke:#ffffff;
	stroke-width:1.5;
	vector-effect:non-scaling-stroke;
	transform-box:fill-box;
	transform-origin:center;
}

.hero-planta .rotulo rect{
	fill:rgba(11,69,137,0.82);
	stroke:rgba(255,255,255,0.35);
	stroke-width:1;
	vector-effect:non-scaling-stroke;
}

.hero-planta .rotulo .guia{
	fill:none;
	stroke:#ffffff;
	stroke-width:1.2;
	vector-effect:non-scaling-stroke;
}

.hero-planta .rotulo text{
	fill:#ffffff;
	font-family:'Montserrat', sans-serif;
	font-size:13px;
	font-weight:700;
	letter-spacing:1.5px;
}

.hero-planta .rotulo text.sub{
	font-family:'Open Sans', sans-serif;
	font-size:11px;
	font-weight:400;
	letter-spacing:0.3px;
	opacity:0.85;
}

/* Véu azul da marca: firme à esquerda, onde fica o texto, e aberto sobre a obra. */
.hero-geforte .hero-veu{
	background:
		linear-gradient(90deg, rgba(11,69,137,0.92) 0%, rgba(11,69,137,0.72) 30%, rgba(11,69,137,0.18) 58%, rgba(11,69,137,0) 76%),
		linear-gradient(0deg, rgba(8,30,60,0.55) 0%, rgba(8,30,60,0) 30%);
	pointer-events:none;
}

.hero-geforte .auto-container{
	position:relative;
	height:100%;
	display:flex;
	align-items:center;
	z-index:2;
}

.hero-geforte .hero-texto{
	max-width:560px;
	padding-bottom:70px;
	text-align:left;
}

.hero-eyebrow{
	display:flex;
	align-items:center;
	gap:14px;
	margin-bottom:22px;
	color:#ffffff;
	font-size:13px;
	font-weight:600;
	letter-spacing:2px;
	text-transform:uppercase;
	font-family:'Montserrat', sans-serif;
	opacity:0.9;
}

.hero-eyebrow .fio{
	display:block;
	width:48px;
	height:2px;
	background-color:#9fc0e6;
	transform-origin:left center;
}

.main-slider-one.hero-geforte .content-inner h2{
	font-size:68px;
	line-height:1.08em;
	margin-bottom:24px;
	letter-spacing:-0.5px;
}

.hero-geforte h2 .linha{
	display:block;
	overflow:hidden;
	padding-bottom:0.06em;
}

.hero-geforte h2 .linha > span{
	display:inline-block;
}

.hero-sub{
	max-width:440px;
	margin-bottom:34px;
	color:rgba(255,255,255,0.88);
	font-size:17px;
	line-height:1.65em;
}

.hero-acoes{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:18px 34px;
}

.hero-whatsapp{
	display:inline-flex;
	align-items:center;
	gap:10px;
	padding:14px 26px;
	color:#0b4589;
	background-color:#ffffff;
	font-size:14px;
	font-weight:700;
	letter-spacing:1px;
	text-transform:uppercase;
	font-family:'Montserrat', sans-serif;
	transition:all 300ms ease;
}

.hero-whatsapp .fa{
	font-size:20px;
	color:#25d366;
}

.hero-whatsapp:hover,
.hero-whatsapp:focus{
	color:#ffffff;
	background-color:#225da1;
}

.hero-whatsapp:hover .fa{
	color:#ffffff;
}

/* Números da empresa numa faixa de vidro, rente ao pé da hero. */
.hero-numeros{
	position:absolute;
	left:0px;
	bottom:0px;
	z-index:3;
	display:flex;
	margin:0px;
	padding:0px;
	list-style:none;
	background:rgba(255,255,255,0.10);
	-webkit-backdrop-filter:blur(12px);
	backdrop-filter:blur(12px);
	border-top:1px solid rgba(255,255,255,0.18);
	border-right:1px solid rgba(255,255,255,0.18);
}

.hero-numeros li{
	padding:22px 38px;
	color:#ffffff;
	border-left:1px solid rgba(255,255,255,0.14);
}

.hero-numeros li:first-child{
	border-left:none;
	padding-left:max(38px, calc((100vw - 1170px) / 2));
}

.hero-numeros strong{
	display:block;
	font-size:34px;
	font-weight:700;
	line-height:1em;
	font-family:'Montserrat', sans-serif;
	font-variant-numeric:tabular-nums;
}

.hero-numeros span{
	display:block;
	margin-top:6px;
	font-size:13px;
	color:rgba(255,255,255,0.78);
}

/* Estado inicial, só quando o JS assumiu a animação. */
.hero-geforte.preparado .hero-camada{ transform:scale(1.16); }
.hero-geforte.preparado .hero-planta .traco{ stroke-dasharray:1 1; stroke-dashoffset:1; }
.hero-geforte.preparado .hero-planta .grade,
.hero-geforte.preparado .hero-planta .cota path:not(.traco),
.hero-geforte.preparado .hero-planta .cantos,
.hero-geforte.preparado .hero-planta .alvo,
.hero-geforte.preparado .hero-planta .rotulo{ opacity:0; }
.hero-geforte.preparado .hero-veu{ opacity:0; }
.hero-geforte.preparado .hero-eyebrow{ opacity:0; }
.hero-geforte.preparado .hero-eyebrow .fio{ transform:scaleX(0); }
.hero-geforte.preparado h2 .linha > span{ transform:translateY(110%); }
.hero-geforte.preparado .hero-sub,
.hero-geforte.preparado .hero-acoes{ opacity:0; transform:translateY(18px); }
.hero-geforte.preparado .hero-numeros{ transform:translateY(100%); }

/* Sequência. */
.hero-geforte.ativo .hero-camada{
	animation:hero-descida 2.6s cubic-bezier(0.22,0.7,0.18,1) forwards, hero-deriva 28s ease-in-out 2.6s infinite alternate;
}
.hero-geforte.ativo .hero-veu{ opacity:1; transition:opacity 1.4s ease 0.3s; }
.hero-geforte.ativo .hero-planta .grade{ opacity:0.07; transition:opacity 1.6s ease 0.8s; }
.hero-geforte.ativo .hero-planta .lote{ animation:hero-traco 1.6s cubic-bezier(0.6,0,0.3,1) 1s forwards; }
.hero-geforte.ativo .hero-planta .casa{ animation:hero-traco 1.9s cubic-bezier(0.6,0,0.3,1) 1.5s forwards, hero-respira 6s ease-in-out 4s infinite; }
.hero-geforte.ativo .hero-planta .cota .traco{ animation:hero-traco 0.9s ease-out 2.6s forwards; }
.hero-geforte.ativo .hero-planta .cota path:not(.traco),
.hero-geforte.ativo .hero-planta .cantos{ opacity:1; transition:opacity 0.6s ease 2.9s; }
.hero-geforte.ativo .hero-planta .alvo{ opacity:1; transition:opacity 0.5s ease 3.1s; }
.hero-geforte.ativo .hero-planta .alvo .pulso{ animation:hero-pulso 2.4s ease-out 3.1s infinite; }
.hero-geforte.ativo .hero-planta .rotulo{ opacity:1; transition:opacity 0.6s ease 3.4s; }
.hero-geforte.ativo .hero-eyebrow{ opacity:0.9; transition:opacity 0.8s ease 0.5s; }
.hero-geforte.ativo .hero-eyebrow .fio{ transform:scaleX(1); transition:transform 0.9s cubic-bezier(0.6,0,0.3,1) 0.6s; }
.hero-geforte.ativo h2 .linha > span{ transform:translateY(0); transition:transform 1s cubic-bezier(0.2,0.75,0.2,1); }
.hero-geforte.ativo h2 .linha:nth-child(1) > span{ transition-delay:0.75s; }
.hero-geforte.ativo h2 .linha:nth-child(2) > span{ transition-delay:0.9s; }
.hero-geforte.ativo h2 .linha:nth-child(3) > span{ transition-delay:1.05s; }
.hero-geforte.ativo .hero-sub{ opacity:1; transform:none; transition:all 0.9s ease 1.4s; }
.hero-geforte.ativo .hero-acoes{ opacity:1; transform:none; transition:all 0.9s ease 1.6s; }
.hero-geforte.ativo .hero-numeros{ transform:none; transition:transform 1s cubic-bezier(0.2,0.75,0.2,1) 1.9s; }

@keyframes hero-descida{
	from{ transform:scale(1.16); }
	to{ transform:scale(1.04); }
}

@keyframes hero-deriva{
	from{ transform:scale(1.04) translate3d(0,0,0); }
	to{ transform:scale(1.1) translate3d(-1.2%,-0.8%,0); }
}

@keyframes hero-traco{
	to{ stroke-dashoffset:0; }
}

@keyframes hero-pulso{
	0%{ transform:scale(0.6); opacity:0.9; }
	100%{ transform:scale(2.4); opacity:0; }
}

@keyframes hero-respira{
	0%,100%{ opacity:1; }
	50%{ opacity:0.55; }
}

@media (prefers-reduced-motion: reduce){
	.hero-geforte *{
		animation:none !important;
		transition:none !important;
	}
	.hero-geforte.preparado .hero-camada{ transform:scale(1.04); }
	.hero-geforte.preparado .hero-planta .traco{ stroke-dashoffset:0; }
	.hero-geforte.preparado .hero-planta .cota path,
	.hero-geforte.preparado .hero-planta .cantos,
	.hero-geforte.preparado .hero-planta .alvo,
	.hero-geforte.preparado .hero-planta .rotulo,
	.hero-geforte.preparado .hero-veu,
	.hero-geforte.preparado .hero-eyebrow,
	.hero-geforte.preparado .hero-sub,
	.hero-geforte.preparado .hero-acoes{ opacity:1; transform:none; }
	.hero-geforte.preparado .hero-planta .grade{ opacity:0.07; }
	.hero-geforte.preparado h2 .linha > span,
	.hero-geforte.preparado .hero-numeros,
	.hero-geforte.preparado .hero-eyebrow .fio{ transform:none; }
}

@media only screen and (max-width: 1023px){
	.main-slider-one.hero-geforte .content-inner h2{
		font-size:54px;
	}
	.hero-geforte .hero-veu{
		background:
			linear-gradient(90deg, rgba(11,69,137,0.92) 0%, rgba(11,69,137,0.7) 45%, rgba(11,69,137,0.2) 80%),
			linear-gradient(0deg, rgba(8,30,60,0.6) 0%, rgba(8,30,60,0) 35%);
	}
}

@media only screen and (max-width: 767px){
	.hero-geforte{
		height:auto;
		min-height:calc(100svh - 70px);
		max-height:none;
	}
	.hero-geforte .auto-container{
		align-items:flex-end;
		min-height:calc(100svh - 70px);
	}
	.hero-geforte .hero-texto{
		padding:120px 0px 130px;
	}
	.hero-geforte .hero-camada{
		transform-origin:58% 45%;
	}
	.hero-geforte .hero-veu{
		background:linear-gradient(0deg, rgba(11,69,137,0.96) 0%, rgba(11,69,137,0.82) 42%, rgba(11,69,137,0.25) 72%, rgba(11,69,137,0.05) 100%);
	}
	.main-slider-one.hero-geforte .content-inner h2{
		font-size:40px;
	}
	.hero-sub{
		font-size:15px;
		margin-bottom:26px;
	}
	.hero-planta .rotulo,
	.hero-planta .cota-v{
		display:none;
	}
	.hero-numeros{
		right:0px;
		border-right:none;
	}
	.hero-numeros li,
	.hero-numeros li:first-child{
		flex:1;
		padding:16px 14px;
	}
	.hero-numeros strong{
		font-size:24px;
	}
	.hero-numeros span{
		font-size:11px;
		line-height:1.3em;
	}
}

/* ===== Página de serviço e artigo: leitura em blocos =====
   O texto corrido do blog-detail virou blocos com ícone: resumo em caixa,
   sumário de atalhos, contexto local em cartão, checklist em grade, etapas
   em linha do tempo, erros em cartões de alerta e referências externas.
   Ícones: Font Awesome 4 do template, escolhidos por src/lib/icones.ts. */
.leitura-blocos .text p{
	line-height:1.8em;
}

.leitura-blocos .text a,
.leitura-blocos .text p a{
	color:#225da1;
	font-weight:600;
	border-bottom:1px solid rgba(34,93,161,0.3);
	transition:border-color 200ms ease;
}

.leitura-blocos .text a:hover{
	border-bottom-color:#225da1;
}

.leitura-blocos .text h2{
	scroll-margin-top:100px;
}

/* Selos do topo (responsável, ART, região) com ícone no lugar da barra. */
.news-block-four .inner-box .lower-content .lower-box .selos-servico{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin-bottom:28px;
}

.news-block-four .inner-box .lower-content .lower-box .selos-servico li{
	display:inline-flex;
	align-items:center;
	gap:8px;
	margin:0px;
	padding:7px 14px;
	color:#0b4589;
	font-size:13px;
	font-weight:600;
	background-color:#eef3f9;
	border-radius:50px;
}

.news-block-four .inner-box .lower-content .lower-box .selos-servico li:after{
	display:none;
}

.selos-servico .fa{
	color:#225da1;
	font-size:15px;
}

/* Resumo citável em destaque. */
.servico-resumo{
	position:relative;
	display:flex;
	gap:18px;
	margin-bottom:30px;
	padding:26px 28px;
	background:linear-gradient(135deg, #f3f7fc 0%, #ffffff 100%);
	border:1px solid #e1e9f3;
	border-left:4px solid #225da1;
}

.servico-resumo > .fa{
	flex:none;
	width:42px;
	height:42px;
	line-height:42px;
	text-align:center;
	color:#ffffff;
	font-size:20px;
	background-color:#225da1;
	border-radius:50%;
}

.servico-resumo .resposta-curta{
	margin:0px;
}

/* Sumário. */
.servico-sumario{
	margin-bottom:10px;
	padding:18px 0px 6px;
	border-top:1px solid #ececec;
	border-bottom:1px solid #ececec;
}

.servico-sumario .rotulo{
	display:block;
	margin-bottom:12px;
	color:#242424;
	font-size:13px;
	font-weight:700;
	letter-spacing:1px;
	text-transform:uppercase;
	font-family:'Montserrat', sans-serif;
}

.servico-sumario ul{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin:0px;
	padding:0px;
	list-style:none;
}

.servico-sumario li{
	margin-bottom:12px;
}

.leitura-blocos .text .servico-sumario a{
	display:inline-block;
	padding:6px 14px;
	color:#555555;
	font-size:13px;
	font-weight:600;
	border:1px solid #e1e1e1;
	border-radius:50px;
	transition:all 200ms ease;
}

.leitura-blocos .text .servico-sumario a:hover{
	color:#ffffff;
	background-color:#225da1;
	border-color:#225da1;
}

.leitura-blocos .text .paragrafo-abertura{
	color:#4a4a4a;
	font-size:17px;
}

/* Contexto local em cartão com ícone. */
.servico-local{
	display:flex;
	gap:22px;
	margin:40px 0px 10px;
	padding:30px;
	background-color:#0b4589;
	color:rgba(255,255,255,0.88);
}

.servico-local .icone{
	flex:none;
	width:52px;
	height:52px;
	line-height:52px;
	text-align:center;
	font-size:24px;
	color:#0b4589;
	background-color:#ffffff;
	border-radius:50%;
}

.news-block-four .inner-box .lower-content .lower-box .text .servico-local h2{
	margin:0px 0px 14px;
	color:#ffffff;
}

.servico-local p{
	color:rgba(255,255,255,0.88);
}

.servico-local p:last-child{
	margin-bottom:0px;
}

.leitura-blocos .text .servico-local a{
	color:#ffffff;
	border-bottom-color:rgba(255,255,255,0.5);
}

/* Checklist em duas colunas. */
.servico-checklist{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:12px;
	margin:22px 0px 10px;
	padding:0px;
	list-style:none;
}

.servico-checklist li{
	display:flex;
	gap:12px;
	align-items:flex-start;
	padding:16px 18px;
	color:#555555;
	font-size:15px;
	line-height:1.6em;
	background-color:#f7f9fc;
	border:1px solid #e8eef6;
	transition:all 250ms ease;
}

.servico-checklist li:hover{
	background-color:#ffffff;
	border-color:#c9d8ec;
	box-shadow:0px 8px 24px rgba(11,69,137,0.08);
}

.servico-checklist li > .fa{
	flex:none;
	width:24px;
	height:24px;
	line-height:24px;
	margin-top:1px;
	text-align:center;
	font-size:12px;
	color:#ffffff;
	background-color:#225da1;
	border-radius:50%;
}

/* Chamada no meio do texto. */
.servico-chamada{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
	gap:18px 30px;
	margin:36px 0px 6px;
	padding:24px 28px;
	border:2px dashed #c9d8ec;
}

.servico-chamada p{
	flex:1 1 320px;
	margin:0px;
	color:#555555;
}

.servico-chamada p strong{
	color:#242424;
}

.leitura-blocos .text .servico-chamada .theme-btn{
	border-bottom:2px solid #225da1;
	color:#ffffff;
	font-weight:600;
}

.leitura-blocos .text .servico-chamada .theme-btn:hover{
	color:#225da1;
}

.servico-chamada .theme-btn .fa,
.lateral-chamada .theme-btn .fa{
	margin-right:6px;
	font-size:1.2em;
}

/* Etapas em linha do tempo, com ícone no marco. */
.servico-etapas{
	position:relative;
	margin:26px 0px 10px;
	padding:0px;
	list-style:none;
}

.servico-etapas:before{
	position:absolute;
	content:'';
	left:23px;
	top:10px;
	bottom:10px;
	width:2px;
	background:linear-gradient(180deg, #225da1 0%, rgba(34,93,161,0.15) 100%);
}

.servico-etapas li{
	position:relative;
	display:flex;
	gap:22px;
	padding-bottom:26px;
}

.servico-etapas li:last-child{
	padding-bottom:0px;
}

.servico-etapas .marco{
	position:relative;
	flex:none;
	width:48px;
	height:48px;
	line-height:44px;
	text-align:center;
	color:#225da1;
	font-size:19px;
	background-color:#ffffff;
	border:2px solid #225da1;
	border-radius:50%;
	transition:all 250ms ease;
}

.servico-etapas li:hover .marco{
	color:#ffffff;
	background-color:#225da1;
}

.servico-etapas .conteudo{
	padding-top:4px;
}

.news-block-four .inner-box .lower-content .lower-box .text .servico-etapas h3,
.blog-artigo .servico-etapas h3{
	margin:6px 0px 8px;
}

.servico-etapas p{
	margin-bottom:0px;
}

/* Erros em cartões de alerta. */
.servico-alertas{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:16px;
	margin:24px 0px 10px;
}

.servico-alertas .alerta{
	position:relative;
	padding:24px 24px 22px;
	background-color:#ffffff;
	border:1px solid #ececec;
	border-top:3px solid #0b4589;
	box-shadow:0px 6px 20px rgba(0,0,0,0.04);
}

.servico-alertas .alerta > .fa{
	display:inline-block;
	width:38px;
	height:38px;
	line-height:38px;
	margin-bottom:12px;
	text-align:center;
	font-size:16px;
	color:#0b4589;
	background-color:#eef3f9;
	border-radius:50%;
}

.news-block-four .inner-box .lower-content .lower-box .text .servico-alertas h3{
	margin:0px 0px 8px;
	font-size:17px;
}

.servico-alertas p{
	margin-bottom:0px;
	font-size:15px;
	line-height:1.7em;
}

/* Referências externas. */
.servico-fontes{
	margin:40px 0px 0px;
	padding:22px 26px;
	background-color:#f7f7f7;
}

.servico-fontes .rotulo{
	display:block;
	margin-bottom:12px;
	color:#242424;
	font-size:14px;
	font-weight:700;
	font-family:'Montserrat', sans-serif;
}

.servico-fontes .rotulo .fa{
	color:#225da1;
	margin-right:6px;
}

.servico-fontes ul{
	margin:0px;
	padding:0px;
	list-style:none;
}

.servico-fontes li{
	margin-bottom:8px;
	font-size:14px;
}

.servico-fontes li:last-child{
	margin-bottom:0px;
}

.leitura-blocos .text .servico-fontes a{
	font-weight:400;
}

.servico-fontes a .fa{
	font-size:11px;
	margin-left:3px;
}

/* Chamada da barra lateral, presa no topo durante a rolagem. */
.lateral-chamada{
	padding:30px 26px;
	text-align:center;
	color:rgba(255,255,255,0.85);
	background-color:#0b4589;
}

.lateral-chamada .icone{
	display:inline-block;
	width:56px;
	height:56px;
	line-height:56px;
	margin-bottom:14px;
	font-size:28px;
	color:#ffffff;
	background-color:#25d366;
	border-radius:50%;
}

.lateral-chamada .titulo{
	margin-bottom:10px;
	color:#ffffff;
	font-size:18px;
	font-weight:700;
	line-height:1.35em;
	font-family:'Montserrat', sans-serif;
}

.lateral-chamada p{
	margin-bottom:20px;
	font-size:14px;
	line-height:1.7em;
	color:rgba(255,255,255,0.8);
}

.lateral-chamada .theme-btn{
	color:#0b4589;
	background-color:#ffffff;
	border-color:#ffffff;
}

.lateral-chamada .theme-btn:hover{
	color:#ffffff;
	background:none;
}

/* A coluna lateral acompanha a altura do conteúdo para a chamada, que é o
   último widget, ficar presa no topo enquanto o texto rola. */
@media only screen and (min-width: 992px){
	.sidebar-page-container > .auto-container > .row{
		display:flex;
	}
	.sidebar-page-container > .auto-container > .row:before,
	.sidebar-page-container > .auto-container > .row:after{
		display:none;
	}
	.sidebar-page-container .sidebar-side .sidebar{
		height:100%;
	}
	.sidebar-page-container .lateral-chamada{
		position:sticky;
		top:90px;
	}
}

@media only screen and (max-width: 767px){
	.servico-checklist,
	.servico-alertas{
		grid-template-columns:1fr;
	}
	.servico-resumo,
	.servico-local{
		flex-direction:column;
		padding:22px;
	}
	.servico-etapas:before{
		left:19px;
	}
	.servico-etapas .marco{
		width:40px;
		height:40px;
		line-height:36px;
		font-size:16px;
	}
	.servico-etapas li{
		gap:16px;
	}
}

/* ===== Blog ===== */

/* Índice: o título do services.html no topo do blog-column. */
.blog-titulo{
	padding:0px;
}

.blog-page-section .pilar-texto{
	margin:-30px auto 60px;
}

/* Cartão do artigo: o template usa h3; aqui é h2 (o índice só tem o H1 acima). */
.news-block-three .inner-box .lower-content h2{
	position:relative;
	font-size:22px;
	font-weight:700;
	line-height:1.3em;
	margin-bottom:12px;
}

.news-block-three .inner-box .lower-content h2 a{
	color:#242424;
	transition:all 0.3s ease;
}

.news-block-three .inner-box .lower-content h2 a:hover{
	color:#225da1;
}

/* Tópicos do artigo: os cartões de alerta, com o fio azul da marca. */
.artigo-topicos .alerta{
	border-top-color:#225da1;
}

.artigo-topicos .alerta > .fa{
	color:#ffffff;
	background-color:#225da1;
}

/* Obras citadas: cartão com foto e ficha. */
.artigo-obras{
	display:grid;
	grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
	gap:18px;
	margin:22px 0px 10px;
}

.leitura-blocos .text .artigo-obras .obra{
	display:block;
	color:#555555;
	font-weight:400;
	border:1px solid #ececec;
	background-color:#ffffff;
	transition:all 250ms ease;
}

.leitura-blocos .text .artigo-obras .obra:hover{
	border-color:#c9d8ec;
	box-shadow:0px 10px 28px rgba(11,69,137,0.10);
	transform:translateY(-3px);
}

.artigo-obras .obra img{
	display:block;
	width:100%;
	height:auto;
}

.artigo-obras .dados{
	display:block;
	padding:16px 18px 18px;
	font-size:13px;
	line-height:1.6em;
}

.artigo-obras .dados strong{
	display:block;
	margin-bottom:6px;
	color:#242424;
	font-size:17px;
	font-family:'Montserrat', sans-serif;
}

.artigo-obras .dados > span{
	display:block;
}

.artigo-obras .dados .fa{
	width:14px;
	color:#225da1;
}

.artigo-servicos{
	font-size:15px;
}

.artigo-servicos a{
	color:#225da1;
	font-weight:600;
}

/* Referências da home, abaixo do FAQ. */
.home-fontes{
	margin-top:20px;
}

/* Texto branco no cartão azul de contexto local: a regra do template para
   .text p (cinza #797979) e .text p a (roxo) é mais específica que a do
   cartão e derrubava o contraste para 2,2 sobre o #0b4589. */
.news-block-four .inner-box .lower-content .lower-box .text .servico-local p,
.news-block-four .inner-box .lower-content .lower-box .text .servico-local li{
	color:#ffffff;
}

.news-block-four .inner-box .lower-content .lower-box .text .servico-local p a,
.news-block-four .inner-box .lower-content .lower-box .text .servico-local a{
	color:#ffffff;
	font-weight:700;
	border-bottom:1px solid rgba(255,255,255,0.6);
}

.news-block-four .inner-box .lower-content .lower-box .text .servico-local a:hover{
	color:#cfe0f5;
	border-bottom-color:#ffffff;
}
