/* Industrial Widgets — CSS compartilhado entre todos os widgets do plugin.
   Sem Bootstrap: só CSS Grid/Flexbox próprio. Cores/fontes/formato de botão
   vêm das variáveis --iw-* (preenchidas por includes/class-theme-bridge.php,
   lendo o tema ativo — Elementor Kit, Blocksy ou theme.json — com fallback
   próprio quando nada é encontrado).

   ------------------------------------------------------------------------
   CONVENÇÃO OBRIGATÓRIA — regras que estilizam <img>
   ------------------------------------------------------------------------
   O Elementor injeta o reset `.elementor img { height: auto; border-radius:
   0; }`, com especificidade (0,1,1).

   Duas consequências, e as duas já mordeream este arquivo:

   1) ORDEM. `.iw-x-img img` também é (0,1,1) — empate, decidido por quem vem
      depois no HTML. O CSS do Elementor vinha por último e vencia: todas as
      alturas fixas de foto eram descartadas e as grades de cards ficavam
      desalinhadas. Resolvido em industrial-widgets.php declarando
      'elementor-frontend' como dependência deste arquivo. NÃO remova essa
      dependência.

   2) ESPECIFICIDADE. Uma classe sozinha no <img> (`.iw-x-image`) é (0,1,0) e
      perde de qualquer jeito, mesmo carregando depois. Foram 20 regras mortas
      assim, incluindo todos os avatares `border-radius: 50%`, que
      renderizavam quadrados. Escreva sempre com o elemento na frente:

          img.iw-x-image { border-radius: 24px; }        (0,1,1) — empata e vence

   Ao criar um widget novo com <img class="iw-...">, use a forma `img.classe`,
   senão a regra some silenciosamente. */

.iw-container {
	width: 100%;
	max-width: 1320px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
}

.iw-btn {
	display: inline-block;
	text-decoration: none !important;
	padding: 15px 32px;
	border-radius: var(--iw-button-radius, 8px);
	font-weight: 700;
	font-size: 15px;
	background-color: var(--iw-color-1, #1c4f7c);
	color: #ffffff;
	border: none;
	cursor: pointer;
	transition: opacity .2s ease;
}

.iw-btn:hover {
	opacity: 0.85;
	color: #ffffff;
}

.iw-btn--outline {
	background-color: transparent;
	border: 1px solid var(--iw-color-1, #1c4f7c);
	color: var(--iw-color-1, #1c4f7c);
}

:where(.iw-heading) {
	font-family: var(--iw-font-heading, inherit);
	color: var(--iw-color-heading, #0e2a4d);
}

:where(.iw-text) {
	font-family: var(--iw-font-body, inherit);
	color: var(--iw-color-text, #495057);
}

/* ------------------------------------------------------------------------
   ÍCONES
   ------------------------------------------------------------------------
   O Icons_Manager do Elementor renderiza a maioria dos ícones do Font Awesome
   como <svg class="e-font-icon-svg">, e não como <i class="fas fa-...">. Um
   <svg> NÃO é dimensionado por font-size: sem width/height explícitos ele sai
   com 0x0 e o ícone simplesmente não aparece.

   Como todos os widgets daqui posicionam o ícone num <span> e controlam o
   tamanho por font-size, isso apagava silenciosamente praticamente todos os
   ícones do plugin — cards de serviço, listas de vantagens, passos numerados,
   linha de telefone, etc.

   1em faz o SVG voltar a acompanhar o font-size que cada widget já define.
   ------------------------------------------------------------------------ */
[class*="iw-"] svg.e-font-icon-svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.iw-badge {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	padding: 8px 16px;
	/* Retângulo levemente arredondado, não pílula: é assim em todas as
	   referências que têm selo (badge-hero, badge-checklist-feature,
	   badge-services-grid, badge-cta-banner, badge-faq-accordion). */
	border-radius: 4px;
	margin-bottom: 20px;
	/* O texto do selo era #4d3a00 (marrom), escolhido para um selo amarelo
	   fixo. Com a cor de fundo vindo do tema, esse marrom fica ilegível na
	   maioria das paletas — o padrão passa a ser branco, sobrescrevível por
	   widget via --iw-badge-text ou pelo controle de cor do próprio widget. */
	color: var(--iw-badge-text, #ffffff);
	background-color: var(--iw-color-2, #5ab4f0);
}

/* ---------- Hero ---------- */
/* Medidas conferidas contra a imagem de referencia: a foto da secao tem cantos
   arredondados, e o card flutuante e centralizado no texto com espacamento
   interno generoso. Antes o card nao tinha padding nenhum, e o selo encostava
   no canto arredondado enquanto a linha de estrelas ficava rente a borda de
   baixo — parecia conteudo cortado. Todos estes valores tem controle
   equivalente no widget; aqui fica so a base. */
.iw-hero {
	position: relative;
	width: 100%;
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: center;
	border-radius: 24px;
	overflow: hidden;
}

.iw-hero-card {
	position: relative;
	z-index: 1;
	width: 100%;
	background: #ffffff;
	border-radius: 20px;
	padding: 56px;
	text-align: center;
	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.15);
}

.iw-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border-radius: 50px;
	padding: 8px 18px;
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 24px;
}

.iw-hero-badge-icon {
	display: inline-flex;
	font-size: 16px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-hero-heading {
	font-size: 40px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 20px;
}

.iw-hero-desc {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 30px;
}

.iw-hero .iw-btn {
	margin-bottom: 20px;
}

.iw-hero-rating {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

.iw-hero-rating-stars {
	color: #f5a623;
	font-size: 14px;
	letter-spacing: 2px;
}

.iw-hero-rating-text {
	font-size: 14px;
	font-weight: 600;
}

.iw-hero-team-badge {
	position: absolute;
	right: 40px;
	bottom: 40px;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 14px;
	background: #ffffff;
	border-radius: 16px;
	padding: 16px 22px;
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
	max-width: 280px;
}

.iw-hero-team-avatars {
	display: flex;
	flex-shrink: 0;
}

img.iw-hero-team-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid #fff;
	margin-left: -12px;
}

.iw-hero-team-avatar:first-child {
	margin-left: 0;
}

.iw-hero-team-text {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
}

@media (max-width: 767px) {
	.iw-hero {
		display: block;
		padding-top: 30px !important;
	}
	.iw-hero-heading {
		font-size: 28px;
	}
	.iw-hero-team-badge {
		position: static;
		margin-top: 20px;
		max-width: 100%;
	}
}

/* ---------- Services Grid ---------- */
.iw-services-header {
	max-width: 700px;
	margin: 0 auto 50px;
	text-align: center;
}

.iw-services-eyebrow {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 12px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-services-heading {
	font-size: 34px;
	font-weight: 800;
	line-height: 1.3;
	margin: 0 0 14px;
}

.iw-services-subtitle {
	font-size: 15px;
	line-height: 1.6;
}

.iw-services-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 24px;
}

@media (min-width: 576px) {
	.iw-services-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-services-grid[data-columns="2"] { grid-template-columns: repeat(2, 1fr); }
	.iw-services-grid[data-columns="3"] { grid-template-columns: repeat(3, 1fr); }
	.iw-services-grid[data-columns="4"] { grid-template-columns: repeat(4, 1fr); }
}

.iw-service-card {
	background: #ffffff;
	border-radius: 12px;
	padding: 36px 28px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
	transition: transform .25s ease, box-shadow .25s ease;
}

.iw-service-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1);
}

.iw-service-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: color-mix(in srgb, var(--iw-color-1, #1c4f7c) 12%, #fff);
	color: var(--iw-color-1, #1c4f7c);
	font-size: 24px;
	margin-bottom: 20px;
}

.iw-service-title {
	font-size: 19px;
	font-weight: 700;
	margin: 0 0 10px;
}

.iw-service-desc {
	font-size: 14px;
	line-height: 1.7;
	margin: 0;
}

/* ---------- Services Grid (com card de destaque) ---------- */
.iw-svc-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 2px;
}

@media (min-width: 576px) {
	.iw-svc-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-svc-grid[data-columns="2"] { grid-template-columns: repeat(2, 1fr); }
	.iw-svc-grid[data-columns="3"] { grid-template-columns: repeat(3, 1fr); }
	.iw-svc-grid[data-columns="4"] { grid-template-columns: repeat(4, 1fr); }
}

.iw-svc-card {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	background: #f2f2f0;
	padding: 40px 30px;
	text-decoration: none !important;
	border-bottom: 4px solid transparent;
	transition: border-color .2s ease, transform .2s ease;
}

.iw-svc-card:hover {
	transform: translateY(-4px);
}

.iw-svc-card.is-active {
	border-bottom-color: var(--iw-color-1, #1c4f7c);
}

.iw-svc-more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
	font-size: 14px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-svc-cta-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	border-bottom: none !important;
}

.iw-svc-cta-text {
	font-size: 15px;
	line-height: 1.6;
	margin: 0 0 20px;
}

.iw-svc-cta-btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	width: fit-content;
}

/* ---------- CTA Banner ---------- */
.iw-cta-section {
	position: relative;
	overflow: hidden;
}

.iw-cta-bg {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.iw-cta-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

.iw-cta-content {
	position: relative;
	z-index: 1;
}

.iw-cta-inner {
	text-align: center;
}

.iw-cta-heading2 {
	font-size: 46px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 34px;
	color: #ffffff;
}

.iw-cta-section .iw-btn {
	padding: 16px 32px;
}

@media (max-width: 767px) {
	.iw-cta-heading2 {
		font-size: 26px;
	}
}

/* ---------- Testimonials Grid ---------- */
.iw-testi-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 24px;
}

@media (min-width: 576px) {
	.iw-testi-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-testi-grid[data-columns="2"] { grid-template-columns: repeat(2, 1fr); }
	.iw-testi-grid[data-columns="3"] { grid-template-columns: repeat(3, 1fr); }
}

.iw-testi-card {
	background: #ffffff;
	border-radius: 12px;
	padding: 32px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

.iw-testi-stars {
	color: #f5a623;
	font-size: 14px;
	letter-spacing: 2px;
	margin-bottom: 16px;
}

.iw-testi-text {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 24px;
}

.iw-testi-author {
	display: flex;
	align-items: center;
	gap: 14px;
}

img.iw-testi-avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
}

.iw-testi-author-info {
	display: flex;
	flex-direction: column;
}

.iw-testi-name {
	font-size: 15px;
	font-weight: 700;
}

.iw-testi-role {
	font-size: 13px;
}

/* ---------- FAQ Accordion ---------- */
.iw-container--narrow {
	max-width: 860px;
}

.iw-faq-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.iw-faq-item {
	background: #ffffff;
	border-radius: 10px;
	border: 1px solid rgba(0, 0, 0, 0.08);
	overflow: hidden;
}

.iw-faq-item-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 24px;
	cursor: pointer;
}

.iw-faq-question {
	font-size: 16px;
	font-weight: 700;
}

.iw-faq-toggle-icon {
	flex-shrink: 0;
	color: var(--iw-color-1, #1c4f7c);
	transition: transform .25s ease;
}

.iw-faq-item.is-open .iw-faq-toggle-icon {
	transform: rotate(180deg);
}

.iw-faq-item-body {
	max-height: 0;
	overflow: hidden;
	transition: max-height .3s ease;
}

.iw-faq-item.is-open .iw-faq-item-body {
	max-height: 400px;
}

.iw-faq-item-body p {
	margin: 0;
	padding: 0 24px 20px;
	font-size: 14px;
	line-height: 1.7;
}

/* ---------- About Checklist ---------- */
.iw-abchk-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 50px;
}

@media (min-width: 992px) {
	.iw-abchk-row { grid-template-columns: 1fr 1fr; }
	.iw-abchk-row[data-image="right"] .iw-abchk-content { order: 1; }
	.iw-abchk-row[data-image="right"] .iw-abchk-img { order: 2; }
}

.iw-abchk-img img {
	display: block;
	width: 100%;
	border-radius: 16px;
}

.iw-abchk-heading {
	font-size: 34px;
	font-weight: 800;
	line-height: 1.3;
	margin: 14px 0 16px;
}

.iw-abchk-desc {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 26px;
}

.iw-abchk-checklist {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 12px 24px;
	margin-bottom: 30px;
}

@media (min-width: 576px) {
	.iw-abchk-checklist { grid-template-columns: repeat(2, 1fr); }
}

.iw-abchk-check-item {
	display: flex;
	align-items: center;
	gap: 10px;
}

.iw-abchk-check-icon {
	color: var(--iw-color-1, #1c4f7c);
	font-size: 14px;
}

/* ---------- Projects Grid ---------- */
.iw-proj-header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 50px;
}

.iw-proj-breadcrumb {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	margin-bottom: 12px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-proj-heading {
	font-size: 38px;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	max-width: 520px;
}

.iw-proj-header-right {
	display: flex;
	align-items: center;
	gap: 24px;
	max-width: 420px;
}

.iw-proj-subtitle {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.iw-proj-header-right .iw-btn {
	white-space: nowrap;
}

.iw-proj-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 24px;
}

@media (min-width: 768px) {
	.iw-proj-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-proj-grid[data-columns="2"] { grid-template-columns: repeat(2, 1fr); }
	.iw-proj-grid[data-columns="3"] { grid-template-columns: repeat(3, 1fr); }
	.iw-proj-grid[data-columns="4"] { grid-template-columns: repeat(4, 1fr); }
}

.iw-proj-card {
	width: 100%;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

.iw-proj-card-img {
	position: relative;
}

.iw-proj-card-img a,
.iw-proj-card-img div {
	display: block;
}

.iw-proj-card-img img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
}

.iw-proj-play-btn {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	color: #17323a;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
}

.iw-proj-card-body {
	padding: 20px;
}

.iw-proj-card-title {
	font-size: 17px;
	font-weight: 700;
	margin: 0;
}

@media (max-width: 767px) {
	.iw-proj-heading {
		font-size: 28px;
	}
}

/* ---------- About Section Stats ---------- */
.iw-abts-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 40px;
}

@media (min-width: 992px) {
	.iw-abts-row { grid-template-columns: 5fr 7fr; gap: 60px; }
}

.iw-abts-main-img {
	position: relative;
}

.iw-abts-main-img img {
	display: block;
	width: 100%;
	border-radius: 12px;
}

.iw-abts-photo-badge {
	position: absolute;
	left: 24px;
	bottom: 24px;
	padding: 20px 28px;
	border-radius: 6px;
	background: var(--iw-color-1, #1c4f7c);
	color: #ffffff;
}

.iw-abts-photo-badge-number {
	display: block;
	font-size: 32px;
	font-weight: 800;
	line-height: 1.2;
}

.iw-abts-photo-badge-label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}

.iw-abts-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 1px solid var(--iw-color-1, #1c4f7c);
	color: var(--iw-color-1, #1c4f7c);
	border-radius: 50px;
	padding: 8px 18px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.5px;
	margin-bottom: 20px;
}

.iw-abts-badge-icon {
	display: inline-flex;
	font-size: 15px;
}

.iw-abts-heading {
	font-size: 38px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 16px;
}

.iw-abts-accent {
	color: var(--iw-color-1, #1c4f7c);
}

.iw-abts-desc {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 30px;
	max-width: 560px;
}

.iw-abts-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 30px;
}

.iw-abts-stat {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px 24px;
	border-radius: 10px;
	background: #f3f5f7;
}

.iw-abts-stat-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 10px;
	background: var(--iw-color-1, #1c4f7c);
	color: #fff;
	font-size: 22px;
	flex-shrink: 0;
}

.iw-abts-stat-text {
	display: flex;
	flex-direction: column;
}

.iw-abts-stat-number {
	font-size: 26px;
	font-weight: 800;
	line-height: 1.2;
}

.iw-abts-stat-label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}

.iw-abts-bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 24px;
}

.iw-abts-bottom-left {
	flex: 1;
	min-width: 260px;
}

.iw-abts-checklist {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

.iw-abts-checklist li {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
	font-size: 15px;
	font-weight: 600;
}

.iw-abts-check-icon {
	display: inline-flex;
	font-size: 18px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-abts-secondary-img {
	width: 220px;
	flex-shrink: 0;
}

.iw-abts-secondary-img img {
	display: block;
	width: 100%;
	border-radius: 12px;
}

/* Fora do layout de duas colunas os cards de números ficavam do tamanho do
   conteúdo, deixando uma faixa vazia à direita da coluna. Empilhados eles
   esticam até a borda. */
@media (max-width: 991px) {
	.iw-abts-stats {
		flex-direction: column;
		align-items: stretch;
	}
}

@media (max-width: 767px) {
	.iw-abts-heading {
		font-size: 28px;
	}
	.iw-abts-secondary-img {
		width: 160px;
	}
}

/* ---------- Why Choose Us Badge ---------- */
.iw-wcb-row {
	display: flex;
	flex-wrap: wrap;
}

.iw-wcb-side {
	position: relative;
	width: 30%;
	min-height: 640px;
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: flex-end;
}

.iw-wcb-side-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

.iw-wcb-side-content {
	position: relative;
	z-index: 1;
	padding: 50px 40px;
}

.iw-wcb-breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 16px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-wcb-heading {
	font-size: 34px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 18px;
	color: #ffffff;
}

.iw-wcb-desc {
	font-size: 14px;
	line-height: 1.7;
	margin: 0 0 26px;
	color: #e6e6e6;
}

.iw-wcb-btn {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	text-decoration: none !important;
	padding: 8px 8px 8px 26px;
	border-radius: 50px;
	font-weight: 700;
	font-size: 15px;
	background: var(--iw-color-1, #1c4f7c);
	color: #ffffff;
	transition: opacity .2s ease;
}

.iw-wcb-btn:hover {
	opacity: 0.9;
}

.iw-wcb-btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #fff;
	color: #17323a;
	font-size: 13px;
	transform: rotate(90deg);
}

.iw-wcb-cards-wrap {
	position: relative;
	width: 70%;
}

.iw-wcb-cards {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	height: 100%;
}

@media (min-width: 768px) {
	.iw-wcb-cards { grid-template-columns: repeat(2, 1fr); }
}

.iw-wcb-card {
	height: 100%;
	padding: 40px;
	background: #f2f2f0;
}

.iw-wcb-card-icon {
	display: inline-flex;
	font-size: 34px;
	margin-bottom: 24px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-wcb-card-title {
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 12px;
}

.iw-wcb-card-desc {
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
}

.iw-wcb-badge {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(45deg);
	border-radius: 16px;
	z-index: 2;
	background: var(--iw-color-1, #1c4f7c);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.iw-wcb-badge-inner {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transform: rotate(-45deg);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 10px;
	text-align: center;
	color: #ffffff;
}

.iw-wcb-badge-icon {
	display: inline-flex;
	font-size: 30px;
	margin-bottom: 10px;
}

.iw-wcb-badge-title {
	display: block;
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 6px;
}

.iw-wcb-badge-text {
	display: block;
	font-size: 12px;
	line-height: 1.4;
	max-width: 120px;
}

@media (max-width: 991px) {
	.iw-wcb-side,
	.iw-wcb-cards-wrap {
		width: 100%;
	}
	.iw-wcb-side {
		min-height: 400px;
	}
	.iw-wcb-badge {
		display: none;
	}
}

/* ---------- Blog Grid ---------- */
.iw-blog-header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 50px;
}

.iw-blog-breadcrumb {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	margin-bottom: 12px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-blog-heading {
	font-size: 38px;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	max-width: 520px;
}

.iw-blog-header-right {
	display: flex;
	align-items: center;
	gap: 24px;
	max-width: 420px;
}

.iw-blog-subtitle {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.iw-blog-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 30px;
}

@media (min-width: 768px) {
	.iw-blog-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-blog-grid[data-columns="2"] { grid-template-columns: repeat(2, 1fr); }
	.iw-blog-grid[data-columns="3"] { grid-template-columns: repeat(3, 1fr); }
	.iw-blog-grid[data-columns="4"] { grid-template-columns: repeat(4, 1fr); }
}

.iw-blog-card {
	background: #ffffff;
	width: 100%;
	display: flex;
	flex-direction: column;
	border-radius: 16px;
	overflow: hidden;
}

.iw-blog-card-img {
	position: relative;
}

.iw-blog-card-img img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
}

.iw-blog-date-badge {
	position: absolute;
	left: 20px;
	bottom: -20px;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--iw-color-1, #1c4f7c);
	color: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1.1;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

.iw-blog-date-day {
	font-size: 18px;
	font-weight: 700;
}

.iw-blog-date-month {
	font-size: 11px;
	text-transform: uppercase;
}

.iw-blog-card-body {
	padding: 30px;
}

.iw-blog-card-title {
	margin: 0 0 12px;
	font-size: 20px;
	font-weight: 700;
}

.iw-blog-card-title a {
	text-decoration: none;
	color: inherit;
}

.iw-blog-card-excerpt {
	font-size: 14px;
	line-height: 1.7;
	margin: 0 0 20px;
}

.iw-blog-card-btn {
	padding: 10px 20px;
	font-size: 14px;
}

@media (max-width: 767px) {
	.iw-blog-heading {
		font-size: 28px;
	}
}

/* ---------- FAQ With Photo ---------- */
.iw-faqp-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: flex-start;
	gap: 40px;
}

@media (min-width: 992px) {
	.iw-faqp-row { grid-template-columns: 5fr 7fr; gap: 60px; }
}

.iw-faqp-photo-wrap {
	position: relative;
	border-radius: 16px;
}

img.iw-faqp-photo {
	width: 100%;
	border-radius: 16px;
	display: block;
}

.iw-faqp-overlay {
	position: absolute;
	left: 0;
	bottom: -30px;
	max-width: 280px;
	color: #fff;
	padding: 26px;
	border-radius: 14px;
	background: var(--iw-color-1, #1c4f7c);
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
}

.iw-faqp-overlay-heading {
	font-size: 19px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 12px;
}

.iw-faqp-overlay-text {
	font-size: 13px;
	line-height: 1.6;
	opacity: 0.9;
	margin: 0 0 16px;
}

.iw-faqp-overlay-link {
	color: #fff !important;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none !important;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.iw-faqp-label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 10px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-faqp-heading {
	font-size: 34px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 30px;
}

.iw-faqp-item {
	border-radius: 14px;
	overflow: hidden;
	margin-bottom: 14px;
	background: var(--iw-color-1, #1c4f7c);
}

.iw-faqp-item-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	padding: 20px 24px;
}

.iw-faqp-question {
	font-size: 15px;
	font-weight: 700;
	padding-right: 16px;
	color: #fff;
}

.iw-faqp-toggle {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	transition: transform 0.2s ease;
}

.iw-faqp-item.is-open .iw-faqp-toggle {
	transform: rotate(180deg);
}

.iw-faqp-item-body {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s ease;
}

.iw-faqp-item.is-open .iw-faqp-item-body {
	max-height: 300px;
}

.iw-faqp-answer {
	font-size: 13px;
	line-height: 1.7;
	margin: 0;
	padding: 0 24px 20px;
	color: rgba(255,255,255,0.9);
}

@media (max-width: 991px) {
	.iw-faqp-overlay {
		position: static;
		max-width: 100%;
		margin-top: -40px;
		margin-left: 20px;
		margin-right: 20px;
	}
	.iw-faqp-heading {
		font-size: 26px;
	}
}

/* ---------- Warranty Tabs ---------- */
.iw-wtabs-heading {
	font-size: 36px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 30px;
}

.iw-wtabs-buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-bottom: 30px;
}

.iw-wtabs-tabbtn {
	border: none;
	padding: 12px 22px;
	border-radius: 8px;
	font-weight: 700;
	font-size: 14px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	background: #fbe4e2;
	color: var(--iw-color-1, #1c4f7c);
	transition: background-color 0.2s ease;
}

.iw-wtabs-tabbtn.is-active {
	background: var(--iw-color-1, #1c4f7c);
	color: #fff;
}

.iw-wtabs-panels {
	border-radius: 16px;
	overflow: hidden;
}

.iw-wtabs-panel {
	display: none;
}

.iw-wtabs-panel.is-active {
	display: block;
}

.iw-wtabs-panel-row {
	display: grid;
	grid-template-columns: 1fr;
}

@media (min-width: 992px) {
	.iw-wtabs-panel-row { grid-template-columns: 1fr 1fr; }
}

.iw-wtabs-content-panel {
	padding: 45px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: var(--iw-color-1, #1c4f7c);
	color: #fff;
}

.iw-wtabs-content-title {
	font-size: 26px;
	font-weight: 800;
	margin: 0 0 14px;
	/* O painel declara color:#fff; sem isto o titulo cai na cor global de
	   heading do tema e some sobre o fundo escuro do painel. */
	color: inherit;
}

.iw-wtabs-content-desc {
	font-size: 14px;
	line-height: 1.7;
	opacity: 0.9;
	margin: 0 0 20px;
}

.iw-wtabs-checklist {
	list-style: none;
	margin: 0 0 26px;
	padding: 0;
}

.iw-wtabs-checklist li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
	font-size: 14px;
	margin-bottom: 10px;
}

.iw-wtabs-duration {
	background: rgba(0, 0, 0, 0.15);
	border-radius: 50px;
	padding: 10px 20px 10px 10px;
	gap: 14px;
	display: inline-flex;
	align-items: center;
	max-width: max-content;
}

.iw-wtabs-duration-icon {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #fff;
	color: #17323a;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.iw-wtabs-duration-text {
	display: flex;
	flex-direction: column;
}

.iw-wtabs-duration-label {
	font-size: 11px;
	opacity: 0.85;
}

.iw-wtabs-duration-value {
	font-size: 14px;
	font-weight: 700;
}

img.iw-wtabs-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	min-height: 300px;
}

@media (max-width: 991px) {
	.iw-wtabs-heading {
		font-size: 28px;
	}
	.iw-wtabs-content-panel {
		padding: 30px;
	}
	.iw-wtabs-image {
		min-height: 220px;
	}
}

/* ---------- Warranty Banner ---------- */
.iw-wbanner-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 40px;
}

@media (min-width: 992px) {
	.iw-wbanner-row { grid-template-columns: 5fr 7fr; gap: 60px; }
}

img.iw-wbanner-image {
	width: 100%;
	display: block;
	border-radius: 16px;
}

.iw-wbanner-heading {
	font-size: 34px;
	font-weight: 800;
	line-height: 1.25;
	margin: 16px 0;
}

.iw-wbanner-description {
	font-size: 14px;
	line-height: 1.7;
	margin: 0 0 30px;
}

.iw-wbanner-bottom {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

@media (min-width: 576px) {
	.iw-wbanner-bottom { grid-template-columns: 1fr 2fr; align-items: center; }
}

.iw-wbanner-stat {
	color: #fff;
	background: var(--iw-color-1, #1c4f7c);
	border-radius: 14px;
	padding: 26px 16px;
	text-align: center;
}

.iw-wbanner-stat-number {
	display: block;
	font-size: 30px;
	font-weight: 800;
	line-height: 1.1;
}

.iw-wbanner-stat-label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	margin-top: 4px;
}

.iw-wbanner-checklist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 4px 20px;
}

@media (min-width: 576px) {
	.iw-wbanner-checklist { grid-template-columns: 1fr 1fr; }
}

.iw-wbanner-checklist li {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	font-size: 14px;
	margin-bottom: 12px;
}

.iw-wbanner-check-icon {
	color: var(--iw-color-1, #1c4f7c);
}

@media (max-width: 991px) {
	.iw-wbanner-heading {
		font-size: 26px;
	}
}

/* ---------- Why Choose Us Complete ---------- */
.iw-wcu-header {
	max-width: 700px;
	margin: 0 auto;
	text-align: center;
}

.iw-wcu-badge {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--iw-color-1, #1c4f7c);
	color: var(--iw-color-1, #1c4f7c);
	border-radius: 50px;
	padding: 6px 18px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.5px;
	gap: 8px;
	margin-bottom: 18px;
}

.iw-wcu-heading {
	font-size: 38px;
	font-weight: 800;
	line-height: 1.3;
	margin: 0 0 16px;
}

.iw-wcu-accent {
	color: var(--iw-color-1, #1c4f7c);
}

.iw-wcu-subtitle {
	font-size: 14px;
	line-height: 1.6;
	max-width: 560px;
	margin: 0 auto;
}

.iw-wcu-columns {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 30px;
	margin-top: 50px;
}

@media (min-width: 992px) {
	.iw-wcu-columns { grid-template-columns: 1fr 2fr 1fr; }
}

.iw-wcu-feature {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px;
	border-radius: 12px;
	margin-bottom: 16px;
	gap: 14px;
	background: #f5f5f5;
}

.iw-wcu-feature--reverse {
	flex-direction: row-reverse;
	text-align: right;
}

.iw-wcu-feature-text {
	display: flex;
	flex-direction: column;
}

.iw-wcu-feature-title {
	font-size: 15px;
	font-weight: 700;
}

.iw-wcu-feature-desc {
	font-size: 12px;
	margin-top: 4px;
}

.iw-wcu-feature-icon,
.iw-wcu-stat-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--iw-color-1, #1c4f7c);
	color: #fff;
	font-size: 16px;
	flex-shrink: 0;
}

.iw-wcu-center-col {
	text-align: center;
}

img.iw-wcu-image {
	max-height: 420px;
	max-width: 100%;
}

.iw-wcu-stats-bar {
	margin-top: 50px;
	padding: 40px 0;
}

.iw-wcu-stats-row {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
}

@media (min-width: 768px) {
	.iw-wcu-stats-row { grid-template-columns: repeat(4, 1fr); }
}

.iw-wcu-stat {
	display: flex;
	align-items: center;
	gap: 14px;
	color: #fff;
}

.iw-wcu-stat-icon {
	width: 50px;
	height: 50px;
	font-size: 18px;
}

.iw-wcu-stat-text {
	display: flex;
	flex-direction: column;
}

.iw-wcu-stat-number {
	font-size: 26px;
	font-weight: 800;
	line-height: 1.2;
}

.iw-wcu-stat-label {
	font-size: 12px;
	opacity: 0.75;
}

.iw-wcu-tagline-bar {
	background: var(--iw-color-1, #1c4f7c);
	padding: 16px 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	flex-wrap: wrap;
}

.iw-wcu-stars {
	color: #ffc107;
	font-size: 13px;
	letter-spacing: 3px;
}

.iw-wcu-tagline-text {
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.5px;
}

/* ---------- Why Choose Us Photo ---------- */
.iw-wcup-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 60px;
}

@media (min-width: 992px) {
	.iw-wcup-row { grid-template-columns: 5fr 7fr; }
}

.iw-wcup-photo-wrap {
	position: relative;
}

img.iw-wcup-image {
	border-radius: 16px;
	width: 100%;
	display: block;
}

.iw-wcup-stat-card {
	position: absolute;
	top: 20px;
	right: -20px;
	background: #fff;
	border-radius: 14px;
	padding: 18px 22px;
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12);
	text-align: center;
}

.iw-wcup-stat-number {
	display: block;
	font-size: 30px;
	font-weight: 800;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-wcup-stat-label {
	display: block;
	font-size: 13px;
	margin-top: 2px;
}

.iw-wcup-testimonial-card {
	position: absolute;
	left: 20px;
	right: 20px;
	bottom: -30px;
	background: #fff;
	border-radius: 14px;
	padding: 24px;
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12);
}

.iw-wcup-testimonial-text {
	font-size: 14px;
	line-height: 1.6;
	margin: 0 0 16px;
}

.iw-wcup-testimonial-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.iw-wcup-testimonial-author {
	display: flex;
	align-items: center;
	gap: 10px;
}

.iw-wcup-testimonial-author img {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	object-fit: cover;
}

.iw-wcup-testimonial-info {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}

.iw-wcup-testimonial-name {
	font-weight: 700;
	font-size: 14px;
}

.iw-wcup-testimonial-role {
	font-size: 12px;
}

.iw-wcup-quote-icon {
	font-size: 26px;
	color: #f0d8d5;
}

.iw-wcup-breadcrumb {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 12px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-wcup-heading {
	font-size: 40px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 18px;
}

.iw-wcup-accent {
	color: var(--iw-color-1, #1c4f7c);
}

.iw-wcup-description {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 26px;
}

.iw-wcup-features {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin-bottom: 30px;
}

@media (min-width: 576px) {
	.iw-wcup-features { grid-template-columns: 1fr 1fr; }
}

.iw-wcup-feature {
	background: #fff;
	border-radius: 12px;
	padding: 22px;
}

.iw-wcup-feature-icon {
	display: block;
	font-size: 22px;
	margin-bottom: 12px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-wcup-feature-title {
	display: block;
	font-size: 15px;
	font-weight: 700;
}

.iw-wcup-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #fff !important;
	background: var(--iw-color-1, #1c4f7c);
	padding: 14px 26px;
	border-radius: 50px;
	font-weight: 600;
	font-size: 15px;
	text-decoration: none;
}

@media (max-width: 991px) {
	.iw-wcup-heading {
		font-size: 30px;
	}
	.iw-wcup-testimonial-card,
	.iw-wcup-stat-card {
		position: static;
		margin-top: 20px;
	}
}

/* ---------- Why Choose Us Simple ---------- */
.iw-wcus-side-col {
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.iw-wcus-feature {
	display: flex;
	flex-direction: column;
	text-align: center;
}

@media (min-width: 992px) {
	.iw-wcus-feature {
		text-align: left;
	}
}

.iw-wcus-feature-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--iw-color-1, #1c4f7c);
	color: #fff;
	font-size: 18px;
	margin-bottom: 14px;
}

@media (min-width: 992px) {
	.iw-wcus-feature-icon {
		margin-left: 0;
		margin-right: auto;
	}
}

.iw-wcus-feature-title {
	display: block;
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 6px;
}

.iw-wcus-feature-desc {
	display: block;
	font-size: 13px;
	line-height: 1.6;
}

.iw-wcus-stats-bar {
	margin-top: 60px;
	padding: 40px 0;
	background: var(--iw-color-1, #1c4f7c);
}

.iw-wcus-stats-bar .iw-wcu-stat-text {
	color: #fff;
}

/* ---------- Services Grid CTA ---------- */
.iw-sgc-section {
	padding: 80px 0;
}

.iw-sgc-header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: 50px;
}

.iw-sgc-header-left {
	max-width: 560px;
}

.iw-sgc-header-right {
	max-width: 420px;
	margin-left: auto;
	text-align: right;
}

.iw-sgc-breadcrumb {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 10px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-sgc-heading {
	font-size: 36px;
	font-weight: 700;
	line-height: 1.25;
	margin: 0;
}

.iw-sgc-subtitle {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 20px;
}

.iw-sgc-btn {
	display: inline-block;
	text-decoration: none !important;
	color: #fff !important;
	background-color: var(--iw-color-1, #1c4f7c);
	padding: 12px 26px;
	border-radius: var(--iw-button-radius, 6px);
	font-weight: 600;
	font-size: 15px;
	transition: opacity .2s ease;
}

.iw-sgc-btn:hover {
	opacity: 0.85;
}

.iw-sgc-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 24px;
}

@media (min-width: 576px) {
	.iw-sgc-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-sgc-grid { grid-template-columns: repeat(4, 1fr); }
}

.iw-sgc-cta-col {
	grid-column: 1 / -1;
}

@media (min-width: 992px) {
	.iw-sgc-cta-col { grid-column: span 2; }
}

/* Texto de apoio e botao dentro da grade (controle "Onde mostrar o texto de
   apoio", valor "grade"): ocupa o que sobrou da ultima fileira de cards, e nao
   uma coluna estreita. Quantas colunas sao vem do widget, que e quem sabe o
   numero de cards — chegam como --iw-sgc-apoio-span-*, no style do elemento. */
.iw-sgc-grid > .iw-sgc-header-right {
	/* O bloco vaza pelas colunas que sobraram, mas o texto nao: em 3 colunas a
	   linha passava de 800px, longe demais para ler. 350px deixa a medida no
	   mesmo tamanho de um card. */
	max-width: 350px;
	margin-left: 0;
	margin-top: 0;
	text-align: left;
	align-self: center;
}

@media (min-width: 576px) {
	.iw-sgc-grid > .iw-sgc-header-right { grid-column: span var(--iw-sgc-apoio-span-2, 1); }
}

@media (min-width: 992px) {
	.iw-sgc-grid > .iw-sgc-header-right { grid-column: span var(--iw-sgc-apoio-span-4, 1); }
}

.iw-sgc-card {
	height: 100%;
	background: #fff;
	border-radius: 10px;
	padding: 30px 24px;
}

.iw-sgc-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 32px;
	margin-bottom: 16px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-sgc-card-title {
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 10px;
}

.iw-sgc-card-desc {
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
}

.iw-sgc-cta-card {
	position: relative;
	height: 100%;
	overflow: hidden;
	display: flex;
	align-items: center;
	border-radius: 10px;
	background: var(--iw-color-1, #1c4f7c);
	min-height: 280px;
}

.iw-sgc-cta-content {
	position: relative;
	z-index: 2;
	padding: 40px;
	max-width: 55%;
}

.iw-sgc-cta-heading {
	font-size: 26px;
	font-weight: 700;
	margin: 0 0 14px;
	color: #fff;
}

.iw-sgc-cta-text {
	font-size: 14px;
	line-height: 1.6;
	margin: 0 0 22px;
	color: #f0f0f0;
}

.iw-sgc-cta-btn {
	display: inline-block;
	text-decoration: none !important;
	padding: 12px 24px;
	border-radius: var(--iw-button-radius, 6px);
	font-weight: 600;
	font-size: 14px;
	transition: opacity .2s ease;
	background: #fff;
	color: var(--iw-color-1, #1c4f7c) !important;
}

.iw-sgc-cta-btn:hover {
	opacity: 0.85;
}

img.iw-sgc-cta-photo {
	position: absolute;
	right: 0%;
	bottom: 0;
	z-index: 1;
	max-height: 100%;
	max-width: 100%;
	object-fit: contain;
	object-position: bottom right;
}

@media (max-width: 991px) {
	.iw-sgc-header-left,
	.iw-sgc-header-right {
		max-width: 100%;
		text-align: left;
	}
	.iw-sgc-header-right {
		margin-top: 24px;
	}
	.iw-sgc-heading {
		font-size: 28px;
	}
	.iw-sgc-cta-content {
		max-width: 100%;
	}
	.iw-sgc-cta-photo {
		display: none;
	}
}

/* ---------- Services Grid Mono ---------- */
.iw-scm-section {
	padding: 80px 0;
}

.iw-scm-header {
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	margin-bottom: 50px;
}

.iw-scm-eyebrow {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 10px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-scm-heading {
	font-size: 34px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 12px;
}

.iw-scm-subtitle {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.iw-scm-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 24px;
}

@media (min-width: 768px) {
	.iw-scm-grid { grid-template-columns: repeat(3, 1fr); }
}

.iw-scm-card {
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 6px;
	background: #fff;
}

.iw-scm-card-img img {
	display: block;
	width: 100%;
	height: 210px;
	object-fit: cover;
	transition: filter .35s ease;
}

.iw-scm-card-img.is-grayscale img {
	filter: grayscale(1);
}

.iw-scm-card:hover .iw-scm-card-img.is-grayscale img {
	filter: grayscale(0);
}

.iw-scm-card-body {
	padding: 24px;
}

.iw-scm-card-title {
	font-size: 19px;
	font-weight: 700;
	margin: 0 0 10px;
	text-align: center;
}

.iw-scm-card-desc {
	font-size: 13px;
	line-height: 1.7;
	margin: 0 0 20px;
	text-align: center;
}

.iw-scm-btn {
	display: block;
	width: fit-content;
	margin: 0 auto;
	text-decoration: none !important;
	color: #fff !important;
	padding: 10px 26px;
	border-radius: var(--iw-button-radius, 4px);
	font-weight: 600;
	font-size: 14px;
	transition: opacity .2s ease;
}

.iw-scm-btn:hover {
	opacity: 0.85;
}

@media (max-width: 767px) {
	.iw-scm-heading {
		font-size: 26px;
	}
}

/* ---------- Services Image Cards ---------- */
.iw-simg-section {
	padding: 100px 0;
}

.iw-simg-header {
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	margin-bottom: 50px;
}

.iw-simg-heading {
	font-size: 36px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 16px;
}

.iw-simg-subtitle {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.iw-simg-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 30px;
}

@media (min-width: 768px) {
	.iw-simg-grid { grid-template-columns: repeat(3, 1fr); }
}

.iw-simg-card {
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 8px;
	background: #fff;
}

.iw-simg-card-img img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
	border-radius: 8px;
}

.iw-simg-card-body {
	padding: 24px 24px 30px;
}

.iw-simg-card-title {
	font-size: 19px;
	font-weight: 700;
	margin: 0 0 12px;
	text-align: center;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-simg-card-desc {
	font-size: 14px;
	line-height: 1.7;
	margin: 0 0 22px;
	text-align: center;
}

.iw-simg-btn {
	display: block;
	width: fit-content;
	margin: 0 auto;
	text-decoration: none !important;
	background: transparent;
	border: 1px solid var(--iw-color-1, #1c4f7c);
	color: var(--iw-color-1, #1c4f7c);
	padding: 10px 26px;
	border-radius: var(--iw-button-radius, 4px);
	font-weight: 600;
	font-size: 14px;
	transition: background-color .2s ease, color .2s ease;
}

.iw-simg-btn:hover {
	background-color: var(--iw-color-1, #1c4f7c);
	color: #fff !important;
}

@media (max-width: 767px) {
	.iw-simg-heading {
		font-size: 26px;
	}
}

/* ---------- Services Overlay Cards ---------- */
.iw-ovc-section {
	padding: 100px 0;
}

.iw-ovc-header {
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	margin-bottom: 50px;
}

.iw-ovc-eyebrow {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	margin-bottom: 10px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-ovc-heading {
	font-size: 34px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 12px;
}

.iw-ovc-subtitle {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.iw-ovc-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 24px;
}

@media (min-width: 576px) {
	.iw-ovc-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-ovc-grid { grid-template-columns: repeat(3, 1fr); }
}

.iw-ovc-card {
	position: relative;
	width: 100%;
	height: 320px;
	background-size: cover;
	background-position: center;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	border-radius: 6px;
}

.iw-ovc-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: rgba(23, 50, 58, 0.55);
}

.iw-ovc-content {
	position: relative;
	z-index: 1;
	width: 100%;
	text-align: left;
	padding: 24px;
}

.iw-ovc-title {
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 8px;
	color: #fff;
}

.iw-ovc-desc {
	font-size: 14px;
	line-height: 1.6;
	margin: 0 0 18px;
	color: #f0f0f0;
}

.iw-ovc-btn {
	display: inline-block;
	text-decoration: none !important;
	color: #fff !important;
	background-color: var(--iw-color-1, #1c4f7c);
	padding: 10px 24px;
	border-radius: var(--iw-button-radius, 4px);
	font-weight: 600;
	font-size: 14px;
	transition: opacity .2s ease;
}

.iw-ovc-btn:hover {
	opacity: 0.85;
}

@media (max-width: 767px) {
	.iw-ovc-heading {
		font-size: 26px;
	}
}

/* ---------- Services Photo Grid ---------- */
.iw-svcp-section {
	padding: 100px 0;
}

.iw-svcp-header {
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	margin-bottom: 40px;
}

.iw-svcp-heading {
	font-size: 36px;
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 12px;
}

.iw-svcp-subtitle {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.iw-svcp-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 24px;
}

@media (min-width: 576px) {
	.iw-svcp-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-svcp-grid { grid-template-columns: repeat(4, 1fr); }
}

.iw-svcp-card {
	position: relative;
	width: 100%;
	height: 700px;
	background-size: cover;
	background-position: center;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	border-radius: 8px;
}

.iw-svcp-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: rgba(23, 50, 58, 0.55);
}

.iw-svcp-content {
	position: relative;
	z-index: 1;
	width: 100%;
	text-align: center;
	padding: 30px 24px 40px;
}

.iw-svcp-label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	margin-bottom: 14px;
	color: #fff;
}

.iw-svcp-title {
	font-size: 30px;
	font-weight: 700;
	line-height: 1.25;
	margin: 0 0 24px;
	color: #fff;
}

.iw-svcp-btn {
	display: inline-block;
	text-decoration: none !important;
	color: #17323a !important;
	background-color: var(--iw-color-2, #f5a623);
	padding: 12px 28px;
	border-radius: var(--iw-button-radius, 4px);
	font-weight: 600;
	font-size: 15px;
	transition: opacity .2s ease;
}

.iw-svcp-btn:hover {
	opacity: 0.85;
}

@media (max-width: 767px) {
	.iw-svcp-heading {
		font-size: 28px;
	}
	.iw-svcp-card {
		height: 420px !important;
	}
	.iw-svcp-title {
		font-size: 24px;
	}
}

/* ---------- Services Tag Grid ---------- */
.iw-stag-section {
	padding: 80px 0 100px;
}

.iw-stag-header {
	display: grid;
	grid-template-columns: 1fr;
	align-items: start;
	gap: 24px;
}

@media (min-width: 992px) {
	.iw-stag-header { grid-template-columns: 1fr 1fr; }
}

.iw-stag-header-left {
	max-width: 560px;
}

.iw-stag-header-right {
	max-width: 480px;
	margin-left: auto;
}

.iw-stag-breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 600;
	margin-bottom: 16px;
	color: var(--iw-color-heading, #17323a);
}

.iw-stag-breadcrumb-icon {
	display: inline-flex;
	font-size: 16px;
	color: var(--iw-color-2, #f5c518);
}

.iw-stag-heading {
	font-size: 38px;
	font-weight: 700;
	line-height: 1.25;
	margin: 0;
}

.iw-stag-subtitle {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 20px;
}

.iw-stag-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none !important;
	color: var(--iw-color-heading, #17323a) !important;
	background-color: var(--iw-color-2, #f5c518);
	padding: 14px 28px;
	border-radius: var(--iw-button-radius, 50px);
	font-weight: 700;
	font-size: 15px;
	transition: opacity .2s ease;
}

.iw-stag-btn:hover {
	opacity: 0.85;
}

.iw-stag-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 24px;
	margin-top: 20px;
}

@media (min-width: 768px) {
	.iw-stag-grid { grid-template-columns: repeat(3, 1fr); }
}

.iw-stag-card {
	position: relative;
	width: 100%;
}

/*
 * O cartao inteiro e o recorte: foto, veu e nome ficam dentro dele. Antes o
 * nome era uma etiqueta absoluta pendurada abaixo da foto (bottom: -30px), e o
 * cartao precisava de 50px de margem so para abrir espaco para ela.
 */
.iw-stag-img {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 10px;
	text-decoration: none !important;
}

.iw-stag-img img {
	display: block;
	width: 100%;
	height: 380px;
	object-fit: cover;
	border-radius: inherit;
}

/*
 * Veu: transparente no topo, cor principal a 90% no pe. O color-mix e o que
 * permite chegar na opacidade sem saber o hex — a --iw-color-1 vem do tema por
 * uma cadeia de var(), entao nao da para montar um rgba() com ela.
 */
.iw-stag-img::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	background: linear-gradient(
		to bottom,
		transparent 0%,
		transparent 38%,
		color-mix(in srgb, var(--iw-stag-veu, var(--iw-color-1, #1c4f7c)) 18%, transparent) 62%,
		color-mix(in srgb, var(--iw-stag-veu, var(--iw-color-1, #1c4f7c)) 55%, transparent) 82%,
		color-mix(in srgb, var(--iw-stag-veu, var(--iw-color-1, #1c4f7c)) 90%, transparent) 100%
	);
}

.iw-stag-tag {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 26px;
	z-index: 1;
	padding: 0 20px;
	text-align: center;
	font-weight: 800;
	font-size: 21px;
	line-height: 1.3;
	color: #ffffff;
}

@media (max-width: 991px) {
	.iw-stag-header-left,
	.iw-stag-header-right {
		max-width: 100%;
	}
	.iw-stag-header-right {
		margin-top: 0;
	}
	.iw-stag-heading {
		font-size: 28px;
	}
}

/* ---------- Blog Section (Centralizado) ---------- */
.iw-blogc-section {
	padding: 120px 0;
}

.iw-blogc-header {
	text-align: center;
	max-width: 650px;
	margin: 0 auto 60px;
}

.iw-blogc-breadcrumb {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 14px;
	color: var(--iw-color-2, #ffdf51);
}

.iw-blogc-breadcrumb svg,
.iw-blogc-breadcrumb i {
	width: 16px;
	height: 16px;
	font-size: 16px;
}

.iw-blogc-heading {
	font-size: 38px;
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 16px;
}

.iw-blogc-subtitle {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.iw-blogc-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 30px;
}

@media (min-width: 768px) {
	.iw-blogc-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-blogc-grid { grid-template-columns: repeat(3, 1fr); }
}

.iw-blogc-card {
	width: 100%;
	background-color: #efece4;
	border-radius: 20px;
	padding: 20px;
}

.iw-blogc-card-img {
	position: relative;
}

.iw-blogc-card-img img {
	display: block;
	width: 100%;
	height: 210px;
	object-fit: cover;
	border-radius: 14px;
}

.iw-blogc-category-badge {
	position: absolute;
	top: 14px;
	right: 14px;
	padding: 6px 14px;
	border-radius: 50px;
	font-size: 12px;
	font-weight: 600;
	background-color: var(--iw-color-heading, #17323a);
	color: #fff;
}

.iw-blogc-date-badge {
	position: absolute;
	left: 14px;
	bottom: -18px;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1.1;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
	background-color: var(--iw-color-2, #ffdf51);
	color: var(--iw-color-heading, #17323a);
}

.iw-blogc-date-day {
	font-size: 16px;
	font-weight: 700;
}

.iw-blogc-date-month {
	font-size: 10px;
	text-transform: uppercase;
}

.iw-blogc-card-body {
	padding-top: 24px;
}

.iw-blogc-card-title {
	margin: 0 0 10px;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.35;
}

.iw-blogc-card-title a {
	text-decoration: none;
	color: var(--iw-color-heading, #17323a);
}

.iw-blogc-card-excerpt {
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
}

@media (max-width: 767px) {
	.iw-blogc-heading {
		font-size: 28px;
	}
}

/* ---------- Blog Section (Data e Comentários) ---------- */
.iw-blogm-section {
	padding: 80px 0;
}

.iw-blogm-header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 50px;
}

.iw-blogm-breadcrumb {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	margin-bottom: 10px;
}

.iw-blogm-heading {
	font-size: 36px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0;
}

.iw-blogm-header-right {
	display: flex;
	align-items: center;
	gap: 24px;
	max-width: 420px;
}

.iw-blogm-subtitle {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.iw-blogm-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #fff !important;
	padding: 14px 26px;
	border-radius: var(--iw-button-radius, 50px);
	font-weight: 600;
	font-size: 15px;
	text-decoration: none;
	white-space: nowrap;
	transition: opacity .2s ease;
}

.iw-blogm-btn:hover {
	opacity: 0.85;
	color: #fff !important;
}

.iw-blogm-btn--card {
	padding: 10px 20px;
	font-size: 14px;
}

.iw-blogm-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 30px;
}

@media (min-width: 768px) {
	.iw-blogm-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-blogm-grid { grid-template-columns: repeat(3, 1fr); }
}

.iw-blogm-card {
	width: 100%;
	background-color: #fff;
}

.iw-blogm-card-img {
	position: relative;
}

.iw-blogm-card-img img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
	border-radius: 16px;
}

.iw-blogm-date-badge {
	position: absolute;
	left: 24px;
	bottom: -22px;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	color: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1.1;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

.iw-blogm-date-day {
	font-size: 18px;
	font-weight: 700;
}

.iw-blogm-date-month {
	font-size: 11px;
	text-transform: uppercase;
}

.iw-blogm-card-body {
	padding: 30px;
}

.iw-blogm-meta {
	display: flex;
	gap: 18px;
	font-size: 13px;
	margin-bottom: 14px;
}

.iw-blogm-meta i {
	margin-right: 5px;
}

.iw-blogm-card-title {
	margin: 0 0 10px;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.35;
}

.iw-blogm-card-title a {
	text-decoration: none;
	color: var(--iw-color-heading, #17323a);
}

.iw-blogm-card-excerpt {
	font-size: 15px;
	line-height: 1.6;
	margin: 0 0 20px;
}

@media (max-width: 767px) {
	.iw-blogm-header-left,
	.iw-blogm-header-right {
		max-width: 100%;
	}
	.iw-blogm-header-right {
		margin-top: 24px;
		align-items: flex-start !important;
		flex-direction: column;
	}
	.iw-blogm-heading {
		font-size: 28px;
	}
}

/* ---------- Slider genérico (sem dependências externas) ---------- */
.iw-slider-viewport {
	overflow: hidden;
}

.iw-slider-track {
	display: flex;
	transition: transform .4s ease;
}

.iw-slider-slide {
	flex-shrink: 0;
}

.iw-slider-controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 30px;
}

.iw-slider-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: none;
	background-color: var(--iw-color-1, #1c4f7c);
	color: #fff;
	cursor: pointer;
	transition: opacity .2s ease;
}

.iw-slider-arrow:hover {
	opacity: 0.85;
}

.iw-slider-dots {
	display: flex;
	align-items: center;
	gap: 8px;
}

.iw-slider-dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	border: none;
	background-color: #d5d5d5;
	cursor: pointer;
	padding: 0;
}

.iw-slider-dot.is-active {
	background-color: var(--iw-color-1, #1c4f7c);
}

/* ---------- Blog Slider ---------- */
.iw-blogs-section {
	padding: 120px 60px;
}

.iw-blogs-header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 60px;
}

.iw-blogs-header-left {
	max-width: 620px;
}

.iw-blogs-header-right {
	max-width: 380px;
}

.iw-blogs-label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 10px;
}

.iw-blogs-heading {
	font-size: 36px;
	font-weight: 700;
	line-height: 1.25;
	margin: 0;
}

.iw-blogs-subtitle {
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.6;
}

.iw-blogs-btn {
	display: inline-block;
	text-decoration: none !important;
	color: #fff !important;
	padding: 14px 28px;
	border-radius: var(--iw-button-radius, 50px);
	font-weight: 600;
	font-size: 15px;
	transition: opacity .2s ease;
}

.iw-blogs-btn:hover {
	opacity: 0.85;
}

.iw-blogs-btn--card {
	padding: 10px 20px;
	font-size: 14px;
	border-radius: var(--iw-button-radius, 6px);
}

.iw-blogs-card {
	background-color: #f7ede9;
	border-radius: 20px;
	padding: 20px;
}

.iw-blogs-card-img img {
	display: block;
	width: 100%;
	height: 200px;
	object-fit: cover;
	border-radius: 14px;
}

.iw-blogs-card-body {
	padding-top: 20px;
}

.iw-blogs-meta {
	display: flex;
	gap: 18px;
	font-size: 13px;
	margin-bottom: 14px;
}

.iw-blogs-meta i {
	margin-right: 5px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-blogs-card-title {
	margin: 0 0 10px;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.35;
}

.iw-blogs-card-title a {
	text-decoration: none;
	color: var(--iw-color-heading, #17323a);
}

.iw-blogs-card-excerpt {
	font-size: 14px;
	line-height: 1.6;
	margin: 0 0 20px;
}

@media (max-width: 991px) {
	.iw-blogs-section {
		padding: 80px 20px;
	}
	.iw-blogs-heading {
		font-size: 28px;
	}
	.iw-blogs-header-right {
		max-width: 100%;
		margin-top: 20px;
	}
}

/* ---------- Testimonial Slider ---------- */
.iw-testi-section {
	padding: 100px 0;
	position: relative;
}

.iw-testi-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 40px;
}

@media (min-width: 992px) {
	.iw-testi-row { grid-template-columns: 5fr 7fr; }
}

.iw-testi-label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 12px;
}

.iw-testi-heading {
	font-size: 32px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 30px;
}

.iw-testi-stat {
	display: flex;
	align-items: center;
	gap: 16px;
}

.iw-testi-avatar-stack {
	display: flex;
}

.iw-testi-avatar-stack img {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid #fff;
	box-shadow: 0 2px 6px rgba(0,0,0,0.1);
	margin-left: -12px;
}

.iw-testi-avatar-stack img:first-child {
	margin-left: 0;
}

.iw-testi-stat-text {
	display: flex;
	flex-direction: column;
}

.iw-testi-stat-number {
	font-size: 24px;
	font-weight: 800;
	line-height: 1.2;
}

.iw-testi-stat-label {
	font-size: 13px;
}

.iw-testi-card {
	padding: 50px;
	border-radius: 20px;
	position: relative;
	background-color: var(--iw-color-1, #1c4f7c);
}

.iw-testi-quote-text {
	font-size: 20px;
	line-height: 1.6;
	margin: 0 0 30px;
	color: #fff;
}

.iw-testi-author {
	display: flex;
	align-items: center;
	gap: 14px;
}

img.iw-testi-author-avatar {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	object-fit: cover;
}

.iw-testi-author-info {
	display: flex;
	flex-direction: column;
}

.iw-testi-author-name {
	font-weight: 700;
	color: #fff;
}

.iw-testi-author-role {
	font-size: 13px;
	color: #f0f0f0;
}

.iw-testi-quote-icon {
	position: absolute;
	right: 40px;
	top: 40px;
	font-size: 32px;
	opacity: 0.5;
}

@media (max-width: 767px) {
	.iw-testi-card {
		padding: 30px;
	}
	.iw-testi-quote-text {
		font-size: 17px;
	}
}

/* ---------- Testimonial Cards (Vídeo) ---------- */
.iw-tcv-section {
	padding: 60px 0;
}

.iw-tcv-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 20px;
}

@media (min-width: 576px) {
	.iw-tcv-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-tcv-grid { grid-template-columns: repeat(4, 1fr); }
}

.iw-tcv-card {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 300px;
	border-radius: 12px;
	overflow: hidden;
	background-color: #fff;
}

.iw-tcv-card.is-video {
	color: #fff;
}

img.iw-tcv-video-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

.iw-tcv-video-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.55) 100%);
	z-index: 1;
}

.iw-tcv-play-btn {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #17323a;
	z-index: 2;
	font-size: 18px;
	background-color: var(--iw-color-2, #8bc34a);
}

.iw-tcv-card-inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 20px;
}

.iw-tcv-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.iw-tcv-author {
	display: flex;
	align-items: center;
	gap: 10px;
}

img.iw-tcv-avatar {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	object-fit: cover;
}

.iw-tcv-author-info {
	display: flex;
	flex-direction: column;
	line-height: 1.25;
}

.iw-tcv-name {
	font-weight: 700;
	font-size: 15px;
	color: var(--iw-color-heading, #17323a);
}

.iw-tcv-name.is-video,
.iw-tcv-role.is-video,
.iw-tcv-date.is-video {
	color: #fff;
}

.iw-tcv-role {
	font-size: 12px;
}

.iw-tcv-social {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.06);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	color: inherit;
	flex-shrink: 0;
}

.is-video .iw-tcv-social {
	background: rgba(255, 255, 255, 0.25);
	color: #fff;
}

.iw-tcv-quote {
	font-size: 14px;
	line-height: 1.6;
	margin: 16px 0;
	flex-grow: 1;
}

.iw-tcv-spacer {
	flex-grow: 1;
}

.iw-tcv-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.iw-tcv-stars {
	font-size: 13px;
	letter-spacing: 2px;
}

.iw-tcv-date {
	font-size: 13px;
	font-weight: 600;
	color: var(--iw-color-heading, #17323a);
}

/* ---------- Testimonials Hero (Completo) ---------- */
.iw-thero-section {
	padding: 80px 0;
}

.iw-thero-top {
	display: grid;
	grid-template-columns: 1fr;
	gap: 30px;
	margin-bottom: 30px;
}

@media (min-width: 992px) {
	.iw-thero-top { grid-template-columns: 7fr 5fr; align-items: start; }
}

.iw-thero-breadcrumb {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 10px;
}

.iw-thero-heading {
	font-size: 44px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 18px;
	color: var(--iw-color-heading, #17323a);
}

.iw-thero-subtitle {
	font-size: 15px;
	line-height: 1.7;
	margin: 0;
	max-width: 520px;
}

.iw-thero-video-card {
	position: relative;
	border-radius: 16px;
	overflow: hidden;
	text-decoration: none !important;
	min-height: 200px;
	display: block;
}

.iw-thero-video-card img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	display: block;
}

.iw-thero-video-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.15) 30%, rgba(0,0,0,0.5) 100%);
}

.iw-thero-video-top {
	position: absolute;
	top: 16px;
	left: 16px;
	right: 16px;
	display: flex;
	align-items: center;
	gap: 10px;
	z-index: 2;
}

.iw-thero-video-avatar {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--iw-color-1, #1c4f7c);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 13px;
	flex-shrink: 0;
}

.iw-thero-video-titles {
	color: #fff;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.iw-thero-video-title {
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.iw-thero-video-subtitle {
	font-size: 11px;
	opacity: 0.85;
}

.iw-thero-video-pause {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: #fff;
	font-size: 22px;
	z-index: 2;
}

.iw-thero-video-link-icon {
	position: absolute;
	left: 16px;
	bottom: 16px;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.25);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	z-index: 2;
}

.iw-thero-video-badge {
	position: absolute;
	right: 16px;
	bottom: 16px;
	background: rgba(0, 0, 0, 0.55);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	padding: 5px 12px;
	border-radius: 50px;
	z-index: 2;
}

.iw-thero-bottom {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

@media (min-width: 992px) {
	.iw-thero-bottom { grid-template-columns: 4fr 8fr; align-items: stretch; }
}

.iw-thero-trust-card,
.iw-thero-cta-card {
	background: #fff;
	border-radius: 16px;
	padding: 26px;
	margin-bottom: 20px;
}

.iw-thero-avatar-stack {
	display: flex;
	align-items: center;
	margin-bottom: 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid #eee;
}

.iw-thero-avatar-stack img {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid #fff;
	margin-left: -12px;
}

.iw-thero-avatar-stack img:first-child {
	margin-left: 0;
}

.iw-thero-avatar-plus {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	margin-left: -12px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--iw-color-1, #1c4f7c);
}

.iw-thero-trust-text {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--iw-color-heading, #17323a);
}

.iw-thero-cta-heading {
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 10px;
	color: var(--iw-color-heading, #17323a);
}

.iw-thero-cta-text {
	font-size: 14px;
	margin: 0 0 20px;
}

.iw-thero-cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #fff !important;
	background-color: var(--iw-color-1, #1c4f7c);
	padding: 12px 22px;
	border-radius: var(--iw-button-radius, 50px);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
}

.iw-thero-testi-slider {
	position: relative;
	height: 100%;
}

.iw-thero-testi-slider .iw-slider-viewport {
	height: 100%;
}

.iw-thero-testi-slider .iw-slider-track {
	height: 100%;
}

.iw-thero-testi-card {
	border-radius: 20px;
	padding: 60px 70px;
	height: 100%;
	min-height: 380px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	position: relative;
	background-color: var(--iw-color-heading, #17232e);
}

.iw-thero-stars {
	font-size: 16px;
	letter-spacing: 4px;
	margin-bottom: 24px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-thero-testi-quote {
	color: #fff;
	font-size: 17px;
	font-style: italic;
	line-height: 1.8;
	margin: 0 0 26px;
}

.iw-thero-testi-name {
	color: #fff;
	font-weight: 700;
	font-size: 16px;
	display: block;
}

.iw-thero-testi-role {
	color: rgba(255, 255, 255, 0.6);
	font-size: 13px;
	display: block;
}

.iw-thero-slider-controls {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	display: flex;
	justify-content: space-between;
	transform: translateY(-50%);
	padding: 0 20px;
	pointer-events: none;
	margin: 0;
}

.iw-thero-slider-arrow {
	pointer-events: auto;
	background: none;
	color: rgba(255, 255, 255, 0.5);
	font-size: 15px;
	font-weight: 600;
	width: auto;
	height: auto;
}

@media (max-width: 991px) {
	.iw-thero-heading {
		font-size: 32px;
	}
	.iw-thero-testi-card {
		padding: 40px 30px;
	}
}

/* ---------- Destinations Grid ---------- */
.iw-dest-section {
	padding: 80px 0;
}

.iw-dest-header {
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	margin-bottom: 40px;
}

.iw-dest-heading {
	font-size: 32px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 12px;
}

.iw-dest-subtitle {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.iw-dest-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

@media (min-width: 992px) {
	.iw-dest-grid { grid-template-columns: repeat(4, 1fr); }
}

.iw-dest-card {
	position: relative;
	width: 100%;
	height: 340px;
	background-size: cover;
	background-position: center;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	border-radius: 4px;
}

.iw-dest-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(to top, rgba(10,20,35,0.85) 0%, rgba(10,20,35,0) 65%);
}

.iw-dest-content {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: 20px;
}

.iw-dest-label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 4px;
	color: #fff;
}

.iw-dest-city {
	font-size: 20px;
	font-weight: 500;
	margin: 0 0 14px;
	color: #fff;
}

.iw-dest-btn {
	display: inline-block;
	text-decoration: none !important;
	color: #17323a !important;
	padding: 10px 20px;
	border-radius: var(--iw-button-radius, 4px);
	font-weight: 600;
	font-size: 13px;
	transition: opacity .2s ease;
}

.iw-dest-btn:hover {
	opacity: 0.85;
}

@media (max-width: 767px) {
	.iw-dest-heading {
		font-size: 26px;
	}
	.iw-dest-card {
		height: 240px !important;
	}
}

/* ---------- CTA Promo Banner ---------- */
.iw-ctapb-row {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	width: 100%;
}

@media (min-width: 768px) {
	.iw-ctapb-row { grid-template-columns: repeat(2, 1fr); }
}

.iw-ctapb-panel {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	min-height: 400px;
	background-color: var(--iw-color-1, #1c4f7c);
}

.iw-ctapb-pattern {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 60%;
	opacity: 0.15;
	background-image: radial-gradient(circle, rgba(255,255,255,0.9) 1.5px, transparent 1.5px);
	background-size: 22px 22px;
	pointer-events: none;
}

.iw-ctapb-content {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: 60px;
}

.iw-ctapb-eyebrow {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	margin-bottom: 16px;
	color: #fff;
}

.iw-ctapb-heading {
	font-size: 34px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 18px;
	color: #fff;
}

.iw-ctapb-desc {
	font-size: 14px;
	line-height: 1.7;
	margin: 0 0 30px;
	max-width: 400px;
	color: #c9d9e6;
}

.iw-ctapb-phone {
	display: flex;
	align-items: center;
	gap: 16px;
	text-decoration: none !important;
	width: fit-content;
}

.iw-ctapb-phone-divider {
	width: 2px;
	align-self: stretch;
	min-height: 40px;
}

.iw-ctapb-phone-icon {
	display: inline-flex;
	font-size: 22px;
}

.iw-ctapb-phone-text {
	display: flex;
	flex-direction: column;
}

.iw-ctapb-phone-label {
	font-size: 13px;
	line-height: 1.4;
	color: #c9d9e6;
}

.iw-ctapb-phone-number {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
	color: #fff;
}

.iw-ctapb-photo {
	background-size: cover;
	background-position: center;
	min-height: 400px;
}

@media (max-width: 767px) {
	.iw-ctapb-heading {
		font-size: 26px;
	}
	.iw-ctapb-panel,
	.iw-ctapb-photo {
		min-height: 320px !important;
	}
}

/* ---------- Feature List Photo ---------- */
.iw-flp-section {
	padding: 80px 0;
}

.iw-flp-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 50px;
}

@media (min-width: 992px) {
	.iw-flp-row { grid-template-columns: 1fr 1fr; }
}

.iw-flp-eyebrow {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 12px;
}

.iw-flp-heading {
	font-size: 34px;
	font-weight: 800;
	line-height: 1.3;
	margin: 0 0 16px;
}

.iw-flp-desc {
	font-size: 14px;
	line-height: 1.7;
	margin: 0 0 30px;
	max-width: 480px;
}

.iw-flp-feature {
	display: flex;
	gap: 18px;
	margin-bottom: 26px;
}

.iw-flp-feature-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	flex-shrink: 0;
	font-size: 18px;
	color: #fff;
	background-color: var(--iw-color-1, #1c4f7c);
}

.iw-flp-feature-title {
	font-size: 17px;
	font-weight: 700;
	margin: 0 0 6px;
}

.iw-flp-feature-desc {
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
	max-width: 400px;
}

.iw-flp-img img {
	display: block;
	width: 100%;
	border-radius: 12px;
}

@media (max-width: 991px) {
	.iw-flp-heading {
		font-size: 26px;
	}
	.iw-flp-img {
		margin-top: 30px;
	}
}

/* ---------- Contact Quote Section ---------- */
.iw-cqs-section {
	padding: 80px 0;
}

.iw-cqs-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 60px;
}

@media (min-width: 992px) {
	.iw-cqs-row { grid-template-columns: 1fr 1fr; }
}

.iw-cqs-breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 600;
	margin-bottom: 14px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-cqs-heading {
	font-size: 40px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 16px;
}

.iw-cqs-heading .accent {
	display: block;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-cqs-desc {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 26px;
	max-width: 480px;
}

.iw-cqs-contact-row {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin-bottom: 30px;
}

.iw-cqs-contact-item {
	display: flex;
	align-items: center;
	gap: 10px;
}

.iw-cqs-contact-icon {
	display: inline-flex;
	font-size: 16px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-cqs-contact-value {
	font-size: 15px;
	font-weight: 600;
	text-decoration: none !important;
}

.iw-cqs-banner {
	position: relative;
	overflow: hidden;
	min-height: 260px;
	background-size: cover;
	background-position: center;
	/* Titulo e botao sao brancos: sem foto escolhida, o cinza claro anterior
	   deixava o texto em 1,19:1. O tom escuro serve aos dois casos. */
	background-color: #1e2a35;
	display: flex;
	align-items: flex-end;
	border-radius: 16px;
}

.iw-cqs-banner-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: rgba(10, 15, 20, 0.55);
}

.iw-cqs-banner-content {
	position: relative;
	z-index: 1;
	padding: 30px;
}

.iw-cqs-banner-heading {
	font-size: 26px;
	font-weight: 800;
	line-height: 1.3;
	margin: 0 0 18px;
	max-width: 320px;
	color: #ffffff;
}

.iw-cqs-banner-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none !important;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #ffffff;
}

.iw-cqs-form-card {
	padding: 40px;
	border-radius: 16px;
	background-color: #ffffff;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
}

.iw-cqs-form-heading {
	font-size: 26px;
	font-weight: 800;
	margin: 0 0 26px;
	text-align: center;
}

.iw-cqs-form-wrap input[type="text"],
.iw-cqs-form-wrap input[type="email"],
.iw-cqs-form-wrap input[type="tel"],
.iw-cqs-form-wrap select {
	width: 100%;
	border: none;
	border-radius: 50px;
	padding: 15px 22px;
	font-size: 14px;
	margin-bottom: 16px;
	background-color: #f2f4f7;
}

.iw-cqs-form-wrap textarea {
	width: 100%;
	border: none;
	border-radius: 20px;
	padding: 15px 22px;
	font-size: 14px;
	margin-bottom: 16px;
	min-height: 140px;
	resize: vertical;
	background-color: #f2f4f7;
}

.iw-cqs-form-wrap .wpcf7-submit {
	display: block;
	width: 100%;
	border: none;
	padding: 16px;
	border-radius: var(--iw-button-radius, 50px);
	font-weight: 700;
	font-size: 15px;
	cursor: pointer;
	background-color: var(--iw-color-1, #1c4f7c);
	color: #ffffff;
}

.iw-cqs-placeholder {
	background: rgba(0, 0, 0, 0.04);
	border: 1px dashed rgba(0, 0, 0, 0.2);
	border-radius: 10px;
	padding: 20px;
	font-size: 13px;
	text-align: center;
	color: #6c757d;
	margin: 0;
}

@media (max-width: 991px) {
	.iw-cqs-heading {
		font-size: 30px;
	}
	.iw-cqs-form-card {
		margin-top: 40px;
		padding: 26px;
	}
}

/* ---------- Contact Section ---------- */
.iw-cs-section {
	padding: 100px 0;
}

.iw-cs-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 60px;
	align-items: start;
}

@media (min-width: 992px) {
	.iw-cs-row { grid-template-columns: 1fr 1fr; }
}

.iw-cs-label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 10px;
}

.iw-cs-heading {
	font-size: 38px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 18px;
}

.iw-cs-desc {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 34px;
}

.iw-cs-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

@media (min-width: 576px) {
	.iw-cs-cards { grid-template-columns: 1fr 1fr; }
}

.iw-cs-card {
	display: flex;
	align-items: center;
	width: 100%;
	height: 100%;
	gap: 14px;
	padding: 20px;
	border-radius: 14px;
	text-decoration: none !important;
	/* Rotulo e valor sao escritos em branco: sem fundo proprio o cartao de
	   contato ficava branco no branco. */
	background-color: var(--iw-color-1, #1c4f7c);
	color: #ffffff;
}

.iw-cs-card-icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.2);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	color: #ffffff;
}

.iw-cs-card-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.iw-cs-card-label {
	font-size: 15px;
	font-weight: 700;
	color: #ffffff;
}

.iw-cs-card-value {
	font-size: 13px;
	opacity: 0.9;
	line-height: 1.4;
	color: #ffffff;
}

.iw-cs-form-card {
	padding: 50px;
	border-radius: 20px;
}

.iw-cs-form-heading {
	font-size: 26px;
	font-weight: 800;
	margin: 0 0 12px;
	text-align: center;
}

.iw-cs-form-subtitle {
	font-size: 14px;
	line-height: 1.6;
	margin: 0 0 30px;
	text-align: center;
}

.iw-cs-form-placeholder {
	background: rgba(0, 0, 0, 0.04);
	border: 1px dashed rgba(0, 0, 0, 0.2);
	border-radius: 10px;
	padding: 20px;
	font-size: 13px;
	text-align: center;
	color: #6c757d;
	margin: 0;
}

.iw-cs-form-wrap input[type="text"],
.iw-cs-form-wrap input[type="email"],
.iw-cs-form-wrap input[type="tel"],
.iw-cs-form-wrap input[type="url"],
.iw-cs-form-wrap textarea,
.iw-cs-form-wrap select {
	width: 100%;
	border: none;
	border-radius: 10px;
	padding: 14px 18px;
	font-size: 14px;
	margin-bottom: 16px;
	background: #fff;
}

.iw-cs-form-wrap textarea {
	min-height: 120px;
	resize: vertical;
}

.iw-cs-form-wrap .wpcf7-submit {
	display: inline-block;
	color: #fff !important;
	border: none;
	padding: 14px 28px;
	border-radius: var(--iw-button-radius, 8px);
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
	background-color: var(--iw-color-1, #1c4f7c);
}

@media (max-width: 991px) {
	.iw-cs-heading {
		font-size: 30px;
	}
	.iw-cs-form-card {
		margin-top: 40px;
		padding: 30px;
	}
}

/* ---------- Experience Banner ---------- */
.iw-exp-section {
	padding: 60px 0 0;
}

.iw-exp-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 30px;
}

@media (min-width: 992px) {
	.iw-exp-row { grid-template-columns: repeat(3, 1fr); }
}

.iw-exp-col--center {
	text-align: center;
}

.iw-exp-heading {
	font-size: 30px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 16px;
}

.iw-exp-description {
	font-size: 14px;
	line-height: 1.7;
	margin: 0 0 24px;
}

.iw-exp-btn {
	display: inline-block;
	color: #fff !important;
	padding: 13px 26px;
	border-radius: var(--iw-button-radius, 8px);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none !important;
}

img.iw-exp-image {
	max-height: 340px;
	max-width: 100%;
	width: auto;
	margin: 0 auto;
	display: block;
}

.iw-exp-stat-number {
	display: block;
	font-size: 42px;
	font-weight: 800;
	line-height: 1;
}

.iw-exp-stat-label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	margin: 6px 0 12px;
}

.iw-exp-stars {
	font-size: 15px;
	letter-spacing: 3px;
	margin-bottom: 14px;
}

.iw-exp-stat-description {
	font-size: 13px;
	line-height: 1.6;
	max-width: 260px;
	margin: 0 auto;
}

.iw-exp-bottom-bar {
	width: 100%;
	height: 8px;
	margin-top: 40px;
}

@media (max-width: 991px) {
	.iw-exp-image {
		margin: 30px auto;
	}
	.iw-exp-heading {
		font-size: 26px;
	}
}

/* ---------- FAQ com Estatísticas ---------- */
.iw-faqs-section {
	padding: 100px 0;
}

.iw-faqs-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
}

@media (min-width: 992px) {
	.iw-faqs-row { grid-template-columns: 1fr 1fr; }
}

.iw-faqs-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 600;
	margin-bottom: 12px;
}

.iw-faqs-label i,
.iw-faqs-label svg {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

.iw-faqs-heading {
	font-size: 36px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 34px;
}

.iw-faqs-item {
	border: 1px solid #e2e2e2;
	border-radius: 12px;
	overflow: hidden;
	margin-bottom: 16px;
}

/* pergunta à esquerda e seta encostada na direita, igual ao .iw-faq-item-header
   do acordeão padrão — antes a seta vinha na frente do texto */
.iw-faqs-item-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	padding: 18px 22px;
	gap: 14px;
}

.iw-faqs-toggle {
	flex-shrink: 0;
	font-size: 14px;
	transition: transform 0.2s ease;
}

/* seta para baixo que gira ao abrir, igual ao .iw-faq-toggle-icon do
   acordeão padrão — antes era um "+" girando 45° para virar "×" */
.iw-faqs-item.is-open .iw-faqs-toggle {
	transform: rotate(180deg);
}

.iw-faqs-question {
	font-size: 15px;
	font-weight: 700;
}

.iw-faqs-item-body {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s ease;
}

.iw-faqs-item.is-open .iw-faqs-item-body {
	max-height: 300px;
}

/* o recuo de 56px à esquerda existia para a resposta alinhar com a pergunta,
   que começava depois da seta; com a seta na direita, alinha nos 22px */
.iw-faqs-answer {
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
	padding: 0 22px 20px;
}

.iw-faqs-intro {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 30px;
}

.iw-faqs-stats-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

@media (min-width: 576px) {
	.iw-faqs-stats-grid { grid-template-columns: 1fr 1fr; }
}

.iw-faqs-stat-card {
	height: 100%;
	padding: 26px;
	border-radius: 12px;
	color: #ffffff;
}

.iw-faqs-stat-icon {
	display: block;
	font-size: 30px;
	margin-bottom: 16px;
	color: #ffffff;
}

.iw-faqs-stat-icon svg {
	width: 30px;
	height: 30px;
}

.iw-faqs-stat-number {
	display: block;
	font-size: 34px;
	font-weight: 800;
	line-height: 1.2;
	color: #ffffff;
}

.iw-faqs-stat-label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	margin-top: 4px;
	color: #ffffff;
}

@media (max-width: 991px) {
	.iw-faqs-heading {
		font-size: 28px;
	}
	.iw-faqs-stats-grid {
		margin-top: 30px;
	}
}

/* No celular o card empilhado (ícone, número, rótulo) come altura à toa.
   Vira grade de 2 colunas: ícone e número lado a lado na 1ª linha, rótulo
   ocupando a linha inteira embaixo. */
@media (max-width: 767px) {
	.iw-faqs-stat-card {
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: center;
		column-gap: 14px;
	}

	.iw-faqs-stat-icon {
		margin-bottom: 0;
	}

	.iw-faqs-stat-label {
		grid-column: 1 / -1;
	}
}

/* ---------- Card de Formulário (Get In Touch) ---------- */
.iw-git-card {
	padding: 40px;
	border-radius: 16px;
}

.iw-git-heading {
	font-size: 52px;
	font-weight: 800;
	line-height: 1.1;
	margin: 0 0 16px;
}

.iw-git-subtitle {
	font-size: 15px;
	line-height: 1.6;
	margin: 0 0 30px;
}

.iw-git-placeholder {
	background: rgba(0, 0, 0, 0.04);
	border: 1px dashed rgba(0, 0, 0, 0.2);
	border-radius: 10px;
	padding: 20px;
	font-size: 13px;
	text-align: center;
	color: #6c757d;
	margin: 0;
}

.iw-git-form-wrap input[type="text"],
.iw-git-form-wrap input[type="email"],
.iw-git-form-wrap input[type="tel"],
.iw-git-form-wrap textarea,
.iw-git-form-wrap select {
	width: 100%;
	border: 1px solid #e2e2e2;
	border-radius: 12px;
	padding: 16px 20px;
	font-size: 15px;
	margin-bottom: 18px;
	background-color: #ffffff;
}

.iw-git-form-wrap textarea {
	min-height: 140px;
	resize: vertical;
}

.iw-git-form-wrap .wpcf7-submit {
	display: block;
	width: 100%;
	border: none;
	padding: 17px;
	border-radius: var(--iw-button-radius, 12px);
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
	background-color: var(--iw-color-1, #1c4f7c);
	color: #ffffff;
}

@media (max-width: 767px) {
	.iw-git-heading {
		font-size: 34px !important;
	}
}

/* ---------- Card de Formulário com Rótulos (Inquiry Form Card) ---------- */
.iw-ifc-card {
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
}

.iw-ifc-top-image img {
	width: 100%;
	display: block;
}

.iw-ifc-card-body {
	padding: 40px;
}

.iw-ifc-heading {
	font-size: 28px;
	font-weight: 800;
	margin: 0 0 10px;
}

.iw-ifc-subtitle {
	font-size: 14px;
	line-height: 1.6;
	margin: 0 0 26px;
}

.iw-ifc-placeholder {
	background: rgba(0, 0, 0, 0.04);
	border: 1px dashed rgba(0, 0, 0, 0.2);
	border-radius: 10px;
	padding: 20px;
	font-size: 13px;
	text-align: center;
	color: #6c757d;
	margin: 0;
}

.iw-ifc-form-wrap label {
	display: block;
	font-weight: 700;
	font-size: 14px;
	margin-bottom: 6px;
}

.iw-ifc-form-wrap input[type="text"],
.iw-ifc-form-wrap input[type="email"],
.iw-ifc-form-wrap input[type="tel"],
.iw-ifc-form-wrap textarea,
.iw-ifc-form-wrap select {
	width: 100%;
	border: 1px solid #dcdcdc;
	border-radius: 8px;
	padding: 12px 16px;
	font-size: 14px;
	margin-bottom: 18px;
}

.iw-ifc-form-wrap textarea {
	min-height: 110px;
	resize: vertical;
}

.iw-ifc-form-wrap .wpcf7-submit {
	display: block;
	width: 100%;
	border: none;
	padding: 15px;
	border-radius: var(--iw-button-radius, 8px);
	font-weight: 700;
	font-size: 15px;
	cursor: pointer;
	background-color: var(--iw-color-1, #1c4f7c);
	color: #ffffff;
}

/* ---------- Process Steps ("Como Funciona") ---------- */
.iw-steps-section {
	padding: 100px 0;
	background-color: #f5f5f5;
}

.iw-steps-header {
	text-align: center;
	margin-bottom: 50px;
}

.iw-steps-label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 10px;
}

.iw-steps-heading {
	font-size: 38px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0;
}

.iw-steps-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 24px;
}

@media (min-width: 576px) {
	.iw-steps-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-steps-grid { grid-template-columns: repeat(4, 1fr); }
}

.iw-steps-card {
	width: 100%;
	height: 100%;
	padding: 30px 26px;
	border-radius: 16px;
	/* O card e escrito em branco: sem fundo proprio o texto ficava invisivel
	   sobre o #f5f5f5 da secao. */
	background-color: var(--iw-color-1, #1c4f7c);
	color: #ffffff;
}

.iw-steps-icon-wrap {
	position: relative;
	display: inline-block;
	margin-bottom: 16px;
}

.iw-steps-icon {
	width: 48px;
	height: 48px;
	background: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
}

.iw-steps-icon svg {
	width: 20px;
	height: 20px;
}

.iw-steps-number {
	position: absolute;
	top: -6px;
	right: -10px;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 3px 7px;
	border-radius: 50px;
	line-height: 1;
}

.iw-steps-card-title {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.35;
	margin: 0 0 12px;
	color: #ffffff;
}

.iw-steps-card-text {
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
	color: rgba(255, 255, 255, 0.85);
}

@media (max-width: 767px) {
	.iw-steps-heading {
		font-size: 28px;
	}
}

/* ---------- Card de Orçamento (Quote Form Card) ---------- */
.iw-qfc-section {
	position: relative;
	overflow: hidden;
	padding: 60px 20px;
}

.iw-qfc-bg {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-size: cover;
	background-position: center;
}

.iw-qfc-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: rgba(23, 20, 20, 0.55);
}

.iw-qfc-container {
	position: relative;
}

.iw-qfc-card {
	position: relative;
	z-index: 1;
	max-width: 380px;
	margin: 0 auto;
	padding: 40px;
	border-radius: 24px;
	background-color: #ffffff;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
}

.iw-qfc-heading {
	font-size: 24px;
	font-weight: 800;
	margin: 0 0 26px;
	text-align: center;
}

.iw-qfc-placeholder {
	background: rgba(0, 0, 0, 0.04);
	border: 1px dashed rgba(0, 0, 0, 0.2);
	border-radius: 10px;
	padding: 20px;
	font-size: 13px;
	text-align: center;
	color: #6c757d;
	margin: 0;
}

.iw-qfc-form-wrap input[type="text"],
.iw-qfc-form-wrap input[type="email"],
.iw-qfc-form-wrap input[type="tel"],
.iw-qfc-form-wrap select {
	width: 100%;
	border: 1px solid #e2e2e2;
	border-radius: 50px;
	padding: 15px 22px;
	font-size: 14px;
	margin-bottom: 16px;
	background-color: #ffffff;
}

.iw-qfc-form-wrap .wpcf7-submit {
	display: block;
	width: 100%;
	border: none;
	padding: 16px;
	border-radius: var(--iw-button-radius, 50px);
	font-weight: 700;
	font-size: 15px;
	cursor: pointer;
	margin-top: 6px;
	background-color: var(--iw-color-1, #1c4f7c);
	color: #ffffff;
}

.iw-qfc-bottom-bar {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 10px;
}

/* ---------- Card de Formulário (Service Request) ---------- */
.iw-srf-card {
	padding: 40px;
	border-radius: 20px;
}

.iw-srf-heading {
	font-size: 26px;
	font-weight: 800;
	margin: 0 0 26px;
}

.iw-srf-placeholder {
	background: rgba(0, 0, 0, 0.04);
	border: 1px dashed rgba(0, 0, 0, 0.2);
	border-radius: 10px;
	padding: 20px;
	font-size: 13px;
	text-align: center;
	color: #6c757d;
	margin: 0;
}

.iw-srf-form-wrap input[type="text"],
.iw-srf-form-wrap input[type="email"],
.iw-srf-form-wrap input[type="tel"],
.iw-srf-form-wrap input[type="url"],
.iw-srf-form-wrap textarea,
.iw-srf-form-wrap select {
	width: 100%;
	border: none;
	border-radius: 10px;
	padding: 16px 20px;
	font-size: 15px;
	margin-bottom: 16px;
	background-color: #ffffff;
}

.iw-srf-form-wrap textarea {
	min-height: 120px;
	resize: vertical;
}

.iw-srf-form-wrap .wpcf7-submit {
	display: block;
	width: 100%;
	border: none;
	padding: 16px;
	border-radius: var(--iw-button-radius, 10px);
	font-weight: 700;
	font-size: 15px;
	cursor: pointer;
	background-color: var(--iw-color-1, #1c4f7c);
	color: #ffffff;
}

/* ---------- Card de Formulário (Agendamento / Foto no Topo) ---------- */
.iw-apf-card {
	border-radius: 18px;
	overflow: hidden;
	background-color: var(--iw-color-2, #3d4f61);
}

.iw-apf-top {
	position: relative;
	overflow: hidden;
	height: 160px;
}

img.iw-apf-top-image {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.iw-apf-top-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.35) 0%, rgba(61, 79, 97, 0.95) 100%);
}

.iw-apf-top-text {
	position: relative;
	padding: 30px 35px;
}

.iw-apf-heading {
	font-size: 30px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 12px;
	color: #ffffff;
}

.iw-apf-subtitle {
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
	opacity: 0.9;
	color: #ffffff;
}

.iw-apf-card-body {
	padding: 35px;
}

.iw-apf-placeholder {
	background: rgba(255, 255, 255, 0.08);
	border: 1px dashed rgba(255, 255, 255, 0.3);
	border-radius: 10px;
	padding: 20px;
	font-size: 13px;
	text-align: center;
	color: #fff;
	margin: 0;
}

.iw-apf-form-wrap input[type="text"],
.iw-apf-form-wrap input[type="email"],
.iw-apf-form-wrap input[type="tel"],
.iw-apf-form-wrap select {
	width: 100%;
	border: none;
	border-radius: 50px;
	padding: 15px 20px;
	font-size: 14px;
	margin-bottom: 16px;
}

.iw-apf-form-wrap .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	justify-content: center;
	border: none;
	padding: 16px;
	border-radius: var(--iw-button-radius, 50px);
	font-weight: 700;
	font-size: 15px;
	cursor: pointer;
	background-color: var(--iw-color-1, #1c4f7c);
	color: #ffffff;
}

/* ---------- Testimonial Grid (Estrelas) ---------- */
.iw-tgr-section {
	padding: 100px 0;
}

.iw-tgr-header {
	text-align: center;
	margin-bottom: 60px;
}

.iw-tgr-label {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 600;
	margin-bottom: 12px;
}

.iw-tgr-label i,
.iw-tgr-label svg {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

.iw-tgr-heading {
	font-size: 38px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 16px;
}

.iw-tgr-subtitle {
	font-size: 15px;
	line-height: 1.6;
	margin: 0 auto;
	max-width: 600px;
}

.iw-tgr-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 24px;
}

@media (min-width: 768px) {
	.iw-tgr-grid { grid-template-columns: repeat(3, 1fr); }
}

.iw-tgr-card {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 35px;
	border-radius: 14px;
}

.iw-tgr-stars {
	font-size: 15px;
	letter-spacing: 3px;
	margin-bottom: 18px;
}

.iw-tgr-quote-text {
	font-size: 16px;
	line-height: 1.6;
	margin: 0 0 30px;
}

.iw-tgr-author-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.iw-tgr-author {
	display: flex;
	align-items: center;
	gap: 12px;
}

img.iw-tgr-author-avatar {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	object-fit: cover;
}

.iw-tgr-author-info {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}

.iw-tgr-author-name {
	font-weight: 700;
	font-size: 15px;
}

.iw-tgr-author-role {
	font-size: 13px;
}

.iw-tgr-quote-icon {
	font-size: 30px;
	line-height: 1;
	color: #d4cfc6;
}

@media (max-width: 767px) {
	.iw-tgr-heading {
		font-size: 28px;
	}
}

/* ---------- Photo Quote Feature ---------- */
.iw-pqf-section {
	padding: 80px 0;
}

.iw-pqf-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 60px;
}

@media (min-width: 992px) {
	.iw-pqf-row { grid-template-columns: 5fr 7fr; }
}

.iw-pqf-photo-col {
	max-width: 360px;
}

.iw-pqf-photo-wrap {
	position: relative;
}

img.iw-pqf-image {
	width: 100%;
	display: block;
	border-radius: 24px;
	aspect-ratio: 3 / 3.4;
	object-fit: cover;
}

/* O cartão abraça o próprio texto no canto inferior esquerdo. Com `right`
   definido ele esticava até a borda oposta da foto, ocupando quase toda a
   largura — na referência ele tem pouco mais da metade. */
.iw-pqf-badge {
	position: absolute;
	left: 16px;
	bottom: 16px;
	max-width: calc(100% - 32px);
	width: max-content;
	background: #fff;
	border-radius: 12px;
	padding: 14px 18px;
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12);
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}

.iw-pqf-badge-name {
	font-size: 15px;
	font-weight: 700;
}

.iw-pqf-badge-title {
	font-size: 13px;
}

.iw-pqf-label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 14px;
}

.iw-pqf-quote {
	font-size: 32px;
	font-weight: 800;
	line-height: 1.35;
	margin: 0 0 20px;
}

.iw-pqf-desc {
	font-size: 15px;
	line-height: 1.7;
	margin: 0;
	max-width: 480px;
}

@media (max-width: 991px) {
	.iw-pqf-photo-col {
		max-width: 280px;
		margin: 0 auto;
	}
	.iw-pqf-quote {
		font-size: 26px;
	}
}

/* ---------- Badge Hero (Texto + Foto) ---------- */
.iw-bh-section {
	padding: 80px 0;
}

.iw-bh-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 50px;
}

@media (min-width: 992px) {
	.iw-bh-row { grid-template-columns: 1fr 1fr; }
}

.iw-bh-heading {
	font-size: 44px;
	font-weight: 800;
	line-height: 1.15;
	margin: 0 0 20px;
}

.iw-bh-desc {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 30px;
	max-width: 460px;
}

.iw-bh-btn {
	display: inline-block;
	text-decoration: none !important;
	padding: 15px 32px;
	border-radius: var(--iw-button-radius, 8px);
	font-weight: 700;
	font-size: 15px;
	/* Botao de rotulo branco: sem fundo proprio ele sumia na pagina clara. */
	background-color: var(--iw-color-1, #1c4f7c);
	color: #ffffff;
}

img.iw-bh-image {
	width: 100%;
	display: block;
	border-radius: 16px;
	object-fit: cover;
}

@media (max-width: 991px) {
	.iw-bh-heading {
		font-size: 32px;
	}
}

/* ---------- Badge Checklist Feature ---------- */
.iw-bcf-section {
	padding: 80px 0;
}

.iw-bcf-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 50px;
}

@media (min-width: 992px) {
	.iw-bcf-row { grid-template-columns: 1fr 1fr; }
	.iw-bcf-row[data-image="right"] .iw-bcf-content { order: 1; }
	.iw-bcf-row[data-image="right"] .iw-bcf-img { order: 2; }
}

.iw-bcf-img img {
	display: block;
	width: 100%;
	border-radius: 16px;
}

.iw-bcf-heading {
	font-size: 34px;
	font-weight: 800;
	line-height: 1.3;
	margin: 0 0 16px;
}

.iw-bcf-desc {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 26px;
}

.iw-bcf-checklist {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 12px 24px;
	margin-bottom: 30px;
}

@media (min-width: 576px) {
	.iw-bcf-checklist { grid-template-columns: repeat(2, 1fr); }
}

.iw-bcf-check-item {
	display: flex;
	align-items: center;
	gap: 10px;
}

.iw-bcf-check-icon {
	color: var(--iw-color-1, #1c4f7c);
	font-size: 14px;
}

.iw-bcf-btn {
	display: inline-block;
	text-decoration: none !important;
	padding: 15px 32px;
	border-radius: var(--iw-button-radius, 8px);
	font-weight: 700;
	font-size: 15px;
	color: #ffffff;
	background-color: var(--iw-color-1, #1c4f7c);
}

/* ---------- Badge CTA Banner ---------- */
.iw-bcb-section {
	padding: 60px 0;
}

/* Referência: dois cartões arredondados SEPARADOS, com espaço entre eles —
   não um cartão único dividido ao meio. Por isso o border-radius fica em
   cada metade, e não no .iw-bcb-row. */
.iw-bcb-row {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 24px;
}

@media (min-width: 768px) {
	.iw-bcb-row { grid-template-columns: repeat(2, 1fr); }
}

.iw-bcb-panel {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	min-height: 400px;
	border-radius: 24px;
	background-color: var(--iw-color-1, #1c4f7c);
}

.iw-bcb-pattern {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100' viewBox='0 0 56 100'%3E%3Cpath d='M28 0L56 16V50L28 66L0 50V16Z M28 34L56 50V84L28 100L0 84V50Z' fill='none' stroke='%23ffffff' stroke-opacity='0.12' stroke-width='1'/%3E%3C/svg%3E");
	background-size: 56px 100px;
	pointer-events: none;
}

.iw-bcb-content {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: 60px;
}

.iw-bcb-heading {
	font-size: 34px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 18px;
	color: #fff;
}

.iw-bcb-desc {
	font-size: 14px;
	line-height: 1.7;
	margin: 0 0 30px;
	max-width: 400px;
	color: #c9d9e6;
}

.iw-bcb-phone {
	display: flex;
	align-items: center;
	gap: 16px;
	text-decoration: none !important;
	width: fit-content;
}

.iw-bcb-phone-divider {
	width: 2px;
	align-self: stretch;
	min-height: 40px;
	/* Valor base: o controle de cor do widget sobrescreve, mas sem isto o
	   divisor fica transparente enquanto o CSS do Elementor não é gerado. */
	background-color: color-mix(in srgb, #ffffff 70%, var(--iw-color-2, #5ab4f0));
}

/* O ícone fica sobre o painel escuro. Deixá-lo na cor de acento do tema o
   torna invisível sempre que o acento for a própria cor do painel — como
   acontece em temas de uma cor só. Branco por padrão, seguindo a convenção
   de "superfície colorida = texto de contraste fixo" usada nos demais
   widgets de painel. O controle de cor do widget ainda pode sobrescrever. */
.iw-bcb-phone-icon {
	display: inline-flex;
	font-size: 22px;
	color: #ffffff;
}

.iw-bcb-phone-text {
	display: flex;
	flex-direction: column;
}

.iw-bcb-phone-label {
	font-size: 13px;
	line-height: 1.4;
	color: #c9d9e6;
}

.iw-bcb-phone-number {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
	color: #fff;
}

.iw-bcb-photo {
	background-size: cover;
	background-position: center;
	min-height: 400px;
	border-radius: 24px;
}

@media (max-width: 767px) {
	.iw-bcb-heading {
		font-size: 26px;
	}
	.iw-bcb-panel,
	.iw-bcb-photo {
		min-height: 320px !important;
	}
}

/* ---------- Badge Services Grid (Foto Flutuante) ---------- */
.iw-bsg-section {
	padding: 80px 0;
}

.iw-bsg-header {
	max-width: 700px;
	margin: 0 auto 50px;
	text-align: center;
}

.iw-bsg-heading {
	font-size: 34px;
	font-weight: 800;
	line-height: 1.3;
	margin: 0;
}

.iw-bsg-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin-bottom: 40px;
}

@media (min-width: 576px) {
	.iw-bsg-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-bsg-grid { grid-template-columns: repeat(4, 1fr); }
}

.iw-bsg-card {
	position: relative;
	display: block;
	text-decoration: none !important;
	text-align: center;
}

.iw-bsg-card-img {
	border-radius: 14px;
	overflow: hidden;
}

.iw-bsg-card-img img {
	display: block;
	width: 100%;
	height: 240px;
	object-fit: cover;
}

/* Cartão branco encostando na borda inferior da foto: recuo simétrico nas
   laterais e metade da altura para fora da imagem. Como ele sai do fluxo,
   o espaço que ocupa é devolvido pelo margin-top negativo do .iw-bsg-card-desc. */
.iw-bsg-card-body {
	position: relative;
	margin: -28px 14px 0;
	background: #fff;
	border-radius: 12px;
	padding: 14px 16px;
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12);
}

.iw-bsg-card-title {
	font-size: 16px;
	font-weight: 700;
	margin: 0;
}

.iw-bsg-card-desc {
	font-size: 13px;
	line-height: 1.5;
	margin: 14px 0 0;
	padding: 0 8px;
}

.iw-bsg-footer {
	text-align: center;
}

.iw-bsg-btn {
	display: inline-block;
	text-decoration: none !important;
	padding: 15px 32px;
	border-radius: var(--iw-button-radius, 8px);
	font-weight: 700;
	font-size: 15px;
	color: #ffffff;
	background-color: var(--iw-color-1, #1c4f7c);
}

@media (max-width: 767px) {
	.iw-bsg-heading {
		font-size: 26px;
	}
}

/* ---------- Numbered Steps Photo ---------- */
.iw-nsp-section {
	padding: 80px 0;
}

/* Os passos ficam centralizados verticalmente em relação à foto, como na
   referência — sem isto eles grudam no topo e sobra um vazio embaixo sempre
   que a foto for mais alta que a lista. */
.iw-nsp-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 50px;
}

@media (min-width: 992px) {
	.iw-nsp-row { grid-template-columns: 1fr 1fr; }
}

img.iw-nsp-image {
	display: block;
	width: 100%;
	border-radius: 16px;
	object-fit: cover;
}

.iw-nsp-steps {
	display: flex;
	flex-direction: column;
}

.iw-nsp-step {
	display: grid;
	grid-template-columns: 32px 1fr;
	gap: 20px;
	padding-bottom: 30px;
}

.iw-nsp-step--last {
	padding-bottom: 0;
}

.iw-nsp-step-marker {
	position: relative;
	display: flex;
	justify-content: center;
}

.iw-nsp-step-number {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	font-weight: 700;
	font-size: 14px;
	color: #ffffff;
	position: relative;
	z-index: 1;
	flex-shrink: 0;
}

.iw-nsp-step:not(.iw-nsp-step--last) .iw-nsp-step-marker::after {
	content: '';
	position: absolute;
	top: 32px;
	bottom: -30px;
	left: 50%;
	width: 2px;
	transform: translateX(-50%);
	background-color: #dfe3e8;
}

.iw-nsp-step-title {
	font-size: 18px;
	font-weight: 700;
	margin: 4px 0 8px;
}

.iw-nsp-step-desc {
	font-size: 14px;
	line-height: 1.7;
	margin: 0;
}

/* ---------- Badge FAQ Accordion ---------- */
.iw-bfaq-section {
	padding: 80px 0;
}

.iw-bfaq-header {
	max-width: 620px;
	margin: 0 auto 40px;
	text-align: center;
}

.iw-bfaq-heading {
	font-size: 32px;
	font-weight: 800;
	line-height: 1.3;
	margin: 0 0 12px;
}

.iw-bfaq-subtitle {
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
}

.iw-bfaq-toggle-icon {
	flex-shrink: 0;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	border: 1px solid rgba(0, 0, 0, 0.15);
	color: #6c757d;
	font-size: 12px;
}

.iw-bfaq-icon-minus {
	display: none;
}

.iw-bfaq-item.is-open .iw-bfaq-toggle-icon {
	background-color: var(--iw-color-1, #1c4f7c);
	border-color: var(--iw-color-1, #1c4f7c);
	color: #ffffff;
}

.iw-bfaq-item.is-open .iw-bfaq-icon-plus {
	display: none;
}

.iw-bfaq-item.is-open .iw-bfaq-icon-minus {
	display: inline-block;
}

@media (max-width: 767px) {
	.iw-bfaq-heading {
		font-size: 26px;
	}
}

/* ---------- Photo Overlay Hero ---------- */
.iw-poh-section {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	min-height: 480px;
	background-size: cover;
	background-position: center;
}

/* Gradiente da esquerda para a direita, como na referencia: escurece so o
   lado do texto e deixa a foto limpa do outro lado. Overlay chapado deixava a
   imagem inteira apagada.
   A cor vem do controle do widget via --iw-poh-overlay-color, para o gradiente
   continuar seguindo o que o usuario escolher. */
.iw-poh-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image: linear-gradient(
		to right,
		var(--iw-poh-overlay-color, rgba(10, 20, 32, 0.75)) 0%,
		var(--iw-poh-overlay-color, rgba(10, 20, 32, 0.75)) 25%,
		transparent 85%
	);
}

.iw-poh-content {
	position: relative;
	z-index: 1;
	max-width: 560px;
}

.iw-poh-eyebrow {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	margin-bottom: 14px;
	color: #ffffff;
}

.iw-poh-heading {
	font-size: 42px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 18px;
	color: #ffffff;
}

.iw-poh-desc {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 28px;
	color: #e2e6ea;
}

.iw-poh-btn {
	display: inline-block;
	text-decoration: none !important;
	padding: 15px 32px;
	border-radius: var(--iw-button-radius, 8px);
	font-weight: 700;
	font-size: 15px;
	color: #ffffff;
	background-color: var(--iw-color-1, #1c4f7c);
}

@media (max-width: 767px) {
	.iw-poh-heading {
		font-size: 30px;
	}
	.iw-poh-section {
		min-height: 380px !important;
	}
}

/* ---------- Testimonial Cards (com Título) ---------- */
.iw-ttc-section {
	padding: 80px 0;
}

.iw-ttc-header {
	max-width: 620px;
	margin: 0 auto 50px;
	text-align: center;
}

.iw-ttc-eyebrow {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 10px;
}

.iw-ttc-heading {
	font-size: 32px;
	font-weight: 800;
	line-height: 1.3;
	margin: 0;
}

.iw-ttc-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

@media (min-width: 768px) {
	.iw-ttc-grid { grid-template-columns: repeat(3, 1fr); }
}

.iw-ttc-card {
	padding: 26px;
	border-radius: 14px;
}

.iw-ttc-stars {
	color: #ffc107;
	font-size: 14px;
	letter-spacing: 2px;
	margin-bottom: 12px;
}

.iw-ttc-card-title {
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 10px;
}

.iw-ttc-quote {
	font-size: 14px;
	line-height: 1.7;
	margin: 0 0 20px;
}

.iw-ttc-author {
	display: flex;
	align-items: center;
	gap: 10px;
}

img.iw-ttc-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
}

.iw-ttc-author-info {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}

.iw-ttc-author-name {
	font-size: 14px;
	font-weight: 700;
}

.iw-ttc-author-location {
	font-size: 13px;
}

@media (max-width: 767px) {
	.iw-ttc-heading {
		font-size: 26px;
	}
}

/* ---------- Simple Photo Hero (Sem Selo) ---------- */
.iw-sph-section {
	padding: 80px 0;
}

.iw-sph-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 50px;
}

@media (min-width: 992px) {
	.iw-sph-row { grid-template-columns: 1fr 1fr; }
}

.iw-sph-eyebrow {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 16px;
	color: #6c757d;
}

.iw-sph-heading {
	font-size: 42px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 18px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-sph-desc {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 28px;
	max-width: 440px;
}

.iw-sph-btn {
	display: inline-block;
	text-decoration: none !important;
	padding: 15px 32px;
	border-radius: var(--iw-button-radius, 50px);
	font-weight: 700;
	font-size: 15px;
	color: #ffffff;
	background-color: var(--iw-color-2, #d1477a);
}

img.iw-sph-image {
	width: 100%;
	display: block;
	border-radius: 16px;
	object-fit: cover;
}

@media (max-width: 991px) {
	.iw-sph-heading {
		font-size: 30px;
	}
}

/* ---------- Icon Feature Grid ---------- */
.iw-ifg-section {
	padding: 80px 0;
}

.iw-ifg-header {
	display: grid;
	grid-template-columns: 1fr;
	align-items: start;
	gap: 24px;
	margin-bottom: 50px;
}

@media (min-width: 992px) {
	.iw-ifg-header { grid-template-columns: 1fr 1fr; }
}

.iw-ifg-header-left {
	max-width: 560px;
}

.iw-ifg-header-right {
	max-width: 420px;
	margin-left: auto;
	padding-top: 8px;
}

.iw-ifg-eyebrow {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 12px;
}

.iw-ifg-heading {
	font-size: 38px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0;
}

.iw-ifg-desc {
	font-size: 15px;
	line-height: 1.7;
	margin: 0;
}

.iw-ifg-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

@media (min-width: 576px) {
	.iw-ifg-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-ifg-grid { grid-template-columns: repeat(4, 1fr); }
}

.iw-ifg-card {
	padding: 30px;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 12px;
}

.iw-ifg-card-title {
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 10px;
}

.iw-ifg-card-desc {
	font-size: 14px;
	line-height: 1.6;
	margin: 0 0 30px;
}

.iw-ifg-icon {
	display: inline-flex;
	font-size: 40px;
	color: var(--iw-color-1, #1c4f7c);
}

@media (max-width: 991px) {
	.iw-ifg-header-right {
		margin-left: 0;
	}
	.iw-ifg-heading {
		font-size: 28px;
	}
}

/* ---------- Photo CTA Quote ---------- */
.iw-pcq-section {
	padding: 80px 0;
}

.iw-pcq-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 60px;
}

@media (min-width: 992px) {
	.iw-pcq-row { grid-template-columns: 1fr 1fr; }
}

.iw-pcq-eyebrow {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 14px;
}

.iw-pcq-heading {
	font-size: 40px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 18px;
}

.iw-pcq-desc {
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 30px;
	max-width: 460px;
}

.iw-pcq-cta-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 24px;
}

.iw-pcq-btn {
	display: inline-block;
	text-decoration: none !important;
	padding: 15px 32px;
	border-radius: var(--iw-button-radius, 8px);
	font-weight: 700;
	font-size: 15px;
	color: #ffffff;
	background-color: var(--iw-color-1, #1c4f7c);
}

.iw-pcq-video-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none !important;
	font-weight: 700;
	font-size: 15px;
}

.iw-pcq-panel {
	position: relative;
	overflow: hidden;
	border-radius: 24px;
	padding: 40px 40px 90px;
}

.iw-pcq-pattern {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	opacity: 0.5;
	pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cpath d='M20 100 Q10 60 40 20 Q70 60 60 100 Q40 80 20 100Z' fill='none' stroke='%231c4f7c' stroke-opacity='0.12' stroke-width='2'/%3E%3C/svg%3E");
	background-size: 120px 120px;
}

img.iw-pcq-image {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	border-radius: 16px;
	object-fit: cover;
}

.iw-pcq-quote-card {
	position: relative;
	z-index: 2;
	margin: -60px 20px 0;
	background: #fff;
	border-radius: 14px;
	padding: 22px 24px;
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12);
}

.iw-pcq-quote-icon {
	display: inline-block;
	font-size: 20px;
	margin-bottom: 8px;
}

.iw-pcq-quote-text {
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
}

@media (max-width: 991px) {
	.iw-pcq-heading {
		font-size: 30px;
	}
}

/* ---------- Cleaning Hero (Foto com Selos Flutuantes) ---------- */
.iw-cldh-section {
	padding: 80px 0 100px;
	overflow: hidden;
}

.iw-cldh-row {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 60px;
}

@media (min-width: 992px) {
	.iw-cldh-row { grid-template-columns: 1fr 1fr; }
}

.iw-cldh-top-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 18px;
	border-radius: 50px;
	background: rgba(245, 148, 10, 0.1);
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 22px;
}

.iw-cldh-top-badge-icon {
	color: var(--iw-color-1, #f5940a);
}

.iw-cldh-heading {
	font-size: 46px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 20px;
	color: #17202a;
}

.iw-cldh-desc {
	font-size: 16px;
	line-height: 1.7;
	margin: 0 0 30px;
	max-width: 460px;
}

.iw-cldh-buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin-bottom: 40px;
}

.iw-cldh-primary-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none !important;
	padding: 15px 28px;
	border-radius: var(--iw-button-radius, 50px);
	font-weight: 700;
	font-size: 15px;
	color: #ffffff;
	background-color: var(--iw-color-1, #f5940a);
}

.iw-cldh-secondary-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none !important;
	padding: 15px 28px;
	border-radius: var(--iw-button-radius, 50px);
	font-weight: 700;
	font-size: 15px;
	color: #17202a;
	border: 1px solid rgba(0, 0, 0, 0.15);
}

.iw-cldh-trust-row {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px 0;
}

@media (max-width: 575px) {
	/* Em duas colunas, o item que abre a segunda linha nao pode ter divisoria. */
	.iw-cldh-trust-item:nth-child(odd) {
		border-left: none;
	}
}

@media (min-width: 576px) {
	.iw-cldh-trust-row { grid-template-columns: repeat(4, 1fr); }
}

/* Icone acima do texto, tudo centralizado, com divisoria vertical separando os
   itens — e assim na referencia deste widget. (A referencia do hero de
   encanamento usa icone a esquerda; sao layouts diferentes, e este widget
   segue o de limpeza, que e o conteudo padrao dele.) */
.iw-cldh-trust-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 8px;
	font-size: 13px;
	line-height: 1.35;
	/* 16px nos dois lados: a divisoria do vizinho precisa do mesmo respiro de
	   cada lado, senao o texto de um item encosta na linha do seguinte. */
	padding: 0 16px;
}

.iw-cldh-trust-item + .iw-cldh-trust-item {
	border-left: 1px solid rgba(0, 0, 0, 0.10);
}

.iw-cldh-trust-icon {
	font-size: 20px;
	color: var(--iw-color-1, #f5940a);
}

.iw-cldh-photo-wrap {
	position: relative;
	max-width: 480px;
	margin: 0 auto;
}

.iw-cldh-blob {
	position: absolute;
	top: -20px;
	right: -20px;
	width: 85%;
	height: 85%;
	border-radius: 50%;
	background-color: var(--iw-color-1, #f5940a);
	opacity: 0.15;
	z-index: 0;
}

img.iw-cldh-image {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	border-radius: 20px;
	object-fit: cover;
}

.iw-cldh-badge {
	position: absolute;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 12px;
	background: #fff;
	border-radius: 14px;
	padding: 14px 18px;
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12);
	/* Sem limite de largura o card de garantia virava uma faixa de uma linha
	   so e estourava a coluna; na referencia ele e compacto e o texto quebra. */
	max-width: 210px;
}

/*
 * Deslocamento em px, nao em %. Como .iw-cldh-photo-wrap tem max-width 480 e
 * fica centralizado, a folga lateral e pequena: -8% (~38px) jogava o card para
 * fora do container e ele era cortado na borda da tela.
 */
.iw-cldh-badge-stat {
	top: 8%;
	right: -18px;
}

.iw-cldh-badge-guarantee {
	top: 52%;
	right: -18px;
}

.iw-cldh-badge-google {
	bottom: 6%;
	left: -18px;
}

.iw-cldh-badge-stat-icon {
	flex-shrink: 0;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	font-size: 18px;
	background-color: var(--iw-color-1, #f5940a);
}

.iw-cldh-badge-guarantee-icon {
	flex-shrink: 0;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	font-size: 18px;
	background-color: #2ea36c;
}

.iw-cldh-badge-google-icon {
	flex-shrink: 0;
	font-size: 22px;
	color: #4285f4;
}

/* `white-space: nowrap` impedia a quebra e, como item flex sem `min-width: 0`
   nao encolhe abaixo do conteudo, o card ignorava o max-width e o texto era
   cortado na borda. Deixar quebrar mantem o card compacto como na referencia. */
.iw-cldh-badge-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
	font-size: 13px;
	line-height: 1.3;
	color: #495057;
}

.iw-cldh-badge-text strong {
	font-size: 16px;
	color: #17202a;
}

.iw-cldh-google-rating {
	display: flex;
	align-items: center;
	gap: 6px;
}

.iw-cldh-google-stars {
	color: #ffc107;
	font-size: 11px;
	letter-spacing: 1px;
}

@media (max-width: 991px) {
	.iw-cldh-heading {
		font-size: 32px;
	}
	.iw-cldh-badge-stat,
	.iw-cldh-badge-guarantee,
	.iw-cldh-badge-google {
		right: 0;
		left: auto;
	}
}

/* ========================================================================
   CABEÇALHOS E RODAPÉS
   ------------------------------------------------------------------------
   Base compartilhada pelos 10 widgets. As cores vêm dos controles, que já
   apontam para as variáveis do tema, então aqui fica só a estrutura.
   ======================================================================== */

.iw-hf { width: 100%; }

/* ---------- faixa superior ---------- */
.iw-hf-topbar { font-size: 13px; line-height: 1.4; }

.iw-hf-topbar-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px 24px;
}

.iw-hf-topbar-left,
.iw-hf-topbar-right {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 22px;
}

.iw-hf-topbar-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none !important;
}

.iw-hf-topbar-icon { display: inline-flex; font-size: 13px; opacity: .9; }

.iw-hf-social { display: inline-flex; align-items: center; gap: 12px; }

.iw-hf-social-link {
	display: inline-flex;
	font-size: 13px;
	text-decoration: none !important;
	opacity: .85;
	transition: opacity .2s ease;
}

.iw-hf-social-link:hover { opacity: 1; }

/* Faixa fina, usada pelo cabeçalho compacto. */
.iw-hf-topbar--slim { font-size: 12px; }
.iw-hf-topbar--slim .iw-hf-topbar-inner { gap: 6px 18px; }

/* Translúcida, para o cabeçalho que fica sobre a foto do hero. */
.iw-hf-topbar--glass {
	background-color: rgba(0, 0, 0, .28) !important;
	backdrop-filter: blur(4px);
}

/* ---------- barra principal ---------- */
.iw-hf-bar-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
}

.iw-hf-bar-left,
.iw-hf-bar-right { display: flex; align-items: center; gap: 24px; }

.iw-hf-bar-inner--compact .iw-hf-bar-left { gap: 40px; }

.iw-hf-bar-centered {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	text-align: center;
}

.iw-hf-logo { display: inline-flex; align-items: center; text-decoration: none !important; }
.iw-hf-logo img { display: block; height: auto; }
.iw-hf-logo-text { font-size: 22px; font-weight: 800; }

/* O cabeçalho transparente sai do fluxo só quando o controle "Sobrepor a
   seção seguinte" está ligado; desligado, ele ocupa espaço como qualquer
   outro widget. */
.iw-hf--sobreposto {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 10;
}

/* ---------- menu ---------- */
.iw-hf-menu,
.iw-hf-menu-inline {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 26px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.iw-hf-menu a,
.iw-hf-menu-inline a {
	display: inline-block;
	padding: 6px 0;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none !important;
	transition: opacity .2s ease;
}

.iw-hf-menu a:hover { opacity: .7; }

.iw-hf-nav--center { justify-content: center; }

/* Submenu simples, sem depender de JS. */
.iw-hf-menu li { position: relative; }

.iw-hf-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 210px;
	list-style: none;
	margin: 0;
	padding: 10px 0;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 16px 34px rgba(0, 0, 0, .14);
	display: none;
	z-index: 20;
	/* Um menu com muitos itens descia a lista até fora da tela e o fim dela
	   ficava fora de alcance. Com teto, o excesso rola por dentro. */
	max-height: 400px;
	overflow-y: auto;
	/* Item de nome longo alarga a caixa em vez de abrir barra horizontal. */
	overflow-x: hidden;
	/* Chegando ao fim da rolagem do submenu, o gesto não passa a rolar a
	   página atrás dele. */
	overscroll-behavior: contain;
}

.iw-hf-menu li:hover > .sub-menu { display: block; }

.iw-hf-menu .sub-menu a {
	display: block;
	padding: 8px 18px;
	font-weight: 500;
	color: var(--iw-color-heading, #17323a);
}

.iw-hf-menu-aviso { font-size: 13px; opacity: .6; }

/* ---------- botão ---------- */
.iw-hf-cta {
	display: inline-block;
	padding: 13px 26px;
	border-radius: var(--iw-button-radius, 8px);
	background-color: var(--iw-color-1, #1c4f7c);
	color: #fff !important;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none !important;
	white-space: nowrap;
	transition: opacity .2s ease;
}

.iw-hf-cta:hover { opacity: .88; }

/* ---------- bloco de contato do cabeçalho ---------- */
.iw-hf-contato-bloco { display: inline-flex; align-items: center; gap: 12px; }

.iw-hf-contato-icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	font-size: 15px;
	color: #fff;
	background-color: var(--iw-color-1, #1c4f7c);
}

.iw-hf-contato-texto { display: flex; flex-direction: column; line-height: 1.25; }
.iw-hf-contato-rotulo { font-size: 12px; opacity: .7; }
.iw-hf-contato-valor { font-size: 15px; }

/* ---------- colunas do rodapé ---------- */
.iw-hf-cols { display: grid; gap: 40px; grid-template-columns: 1fr; }

@media (min-width: 768px) {
	.iw-hf-cols--2 { grid-template-columns: repeat(2, 1fr); }
	.iw-hf-cols--3 { grid-template-columns: repeat(2, 1fr); }
	.iw-hf-cols--4 { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.iw-hf-cols--3 { grid-template-columns: 1.4fr 1fr 1fr; }
	.iw-hf-cols--4 { grid-template-columns: 1.6fr 1fr 1fr 1.2fr; }
}

.iw-hf-col-title { font-size: 16px; font-weight: 700; margin: 0 0 16px; color: inherit; }
.iw-hf-col-text { font-size: 14px; line-height: 1.7; margin: 16px 0 0; opacity: .82; }

.iw-hf-col-menu,
.iw-hf-contato {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 14px;
}

.iw-hf-col-menu a { text-decoration: none !important; opacity: .82; transition: opacity .2s ease; }
.iw-hf-col-menu a:hover { opacity: 1; }
.iw-hf-contato li { opacity: .82; }

.iw-hf-col--inline { display: grid; gap: 30px; grid-template-columns: 1fr 1fr; }

.iw-hf-centered {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 18px;
}

.iw-hf-centered .iw-hf-col-text { max-width: 560px; }
.iw-hf-contato--inline { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 8px 26px; }

/* ---------- faixa de newsletter e de chamada ---------- */
.iw-hf-news { background-color: var(--iw-color-1, #1c4f7c); color: #fff; }

.iw-hf-news-inner,
.iw-hf-ctafaixa-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px 40px;
	padding: 34px 0;
}

.iw-hf-news-title,
.iw-hf-ctafaixa-title { font-size: 22px; font-weight: 800; margin: 0; color: #fff; }

.iw-hf-news-form { flex: 1 1 320px; max-width: 520px; }

.iw-hf-ctafaixa { background-color: var(--iw-color-1, #1c4f7c); }

/* ---------- faixa inferior ---------- */
.iw-hf-bottombar {
	font-size: 13px;
	background-color: rgba(0, 0, 0, .22);
	color: #fff;
}

.iw-hf-bottombar-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px 30px;
}

.iw-hf-bottom-left { display: flex; flex-wrap: wrap; gap: 6px 22px; opacity: .8; }
.iw-hf-bottom-links { display: flex; flex-wrap: wrap; gap: 6px 22px; }
.iw-hf-bottom-links a { text-decoration: none !important; opacity: .8; transition: opacity .2s ease; }
.iw-hf-bottom-links a:hover { opacity: 1; }

/* ---------- celular ---------- */
@media (max-width: 991px) {
	.iw-hf-bar-inner,
	.iw-hf-bar-inner--compact .iw-hf-bar-left {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}
	.iw-hf-topbar-inner { justify-content: flex-start; }
	.iw-hf-bottombar-inner { justify-content: flex-start; }
}

/* Teto de altura no logo: uma imagem alta (ou a foto padrao, se alguem
   escolher uma) esticaria a barra inteira do cabecalho. */
.iw-hf-logo img { max-height: 56px; width: auto; object-fit: contain; }
.iw-hf--footer .iw-hf-logo img { max-height: 48px; }

/* ------------------------------------------------------------------------
   Aparência base de cabeçalhos e rodapés
   ------------------------------------------------------------------------
   Espelha os padrões dos controles de cor/espaçamento. Existe porque o CSS
   que o Elementor gera por página pode não estar em disco (cache limpo,
   página nunca aberta no editor, arquivo removido no deploy) — sem isto o
   cabeçalho aparece sem faixa nenhuma. Quando o CSS do Elementor existe ele
   tem seletor mais específico (.elementor-element-XXXX) e continua mandando,
   inclusive quando o usuário troca a cor.
   ------------------------------------------------------------------------ */

.iw-hf .iw-hf-topbar {
	background-color: var(--iw-color-1, #1c4f7c);
	padding: 10px 0;
}

.iw-hf .iw-hf-topbar,
.iw-hf .iw-hf-topbar a { color: #ffffff; }

/* cabeçalhos: barra clara, texto na cor de título */
.iw-hf .iw-hf-bar {
	background-color: #ffffff;
	padding: 18px 0;
}

.iw-hf .iw-hf-bar,
.iw-hf .iw-hf-bar a { color: var(--iw-color-heading, #17323a); }

.iw-hf--compact .iw-hf-bar { padding: 12px 0; }

/* o transparente fica sobre a foto: sem fundo e com texto claro */
.iw-hf--transparent .iw-hf-bar { background-color: transparent; }
.iw-hf--transparent .iw-hf-bar,
.iw-hf--transparent .iw-hf-bar a { color: #ffffff; }

/* rodapés: barra escura, texto claro */
.iw-hf--footer .iw-hf-bar {
	background-color: var(--iw-color-heading, #17323a);
	padding: 60px 0;
}

.iw-hf--footer .iw-hf-bar,
.iw-hf--footer .iw-hf-bar a { color: #ffffff; }

.iw-hf .iw-hf-bottombar { padding: 14px 0; }

/* faixa inferior: escurece a cor da barra do rodapé em vez de deitar um preto
   translúcido — como ela fica FORA de .iw-hf-bar, o translúcido pegava o
   branco da página e saía cinza. */
.iw-hf--footer .iw-hf-bottombar {
	background-color: color-mix(in srgb, var(--iw-color-heading, #17323a) 78%, #000);
	color: #fff;
}

/* faixas de newsletter/chamada: separa da barra e garante contraste no botão,
   que por padrão usa a mesma cor de fundo da faixa */
.iw-hf-news,
.iw-hf-ctafaixa { box-shadow: inset 0 -1px 0 rgba(255, 255, 255, .2); }

.iw-hf-news .iw-hf-cta,
.iw-hf-ctafaixa .iw-hf-cta {
	background-color: #ffffff;
	color: var(--iw-color-1, #1c4f7c) !important;
}

/* cabeçalho com bloco de contato: é o mais cheio dos cinco. A marca não quebra
   em duas linhas e o menu cede espaço antes dela. */
.iw-hf-logo-text { white-space: nowrap; }
.iw-hf--contact .iw-hf-logo { flex: 0 0 auto; }
.iw-hf--contact .iw-hf-nav { flex: 1 1 auto; min-width: 0; }
.iw-hf--contact .iw-hf-menu { gap: 6px 20px; }
.iw-hf--contact .iw-hf-menu a { font-size: 14px; }
.iw-hf--contact .iw-hf-bar-right { flex: 0 0 auto; gap: 18px; }
.iw-hf--contact .iw-hf-contato-valor { white-space: nowrap; }

/* links da faixa inferior: ela fica fora de .iw-hf-bar, então não herda a cor
   clara dali e os links saíam na cor de link do tema, ilegíveis no escuro */
.iw-hf--footer .iw-hf-bottombar a { color: #ffffff; }

/* as colunas de links do rodapé compacto acompanham quantas o usuário criar,
   em vez de ficarem presas em duas e deixarem buraco na segunda fila.
   Só a partir de 992px: abaixo disso este bloco divide a linha com a coluna do
   logo e cada célula sobrava com ~155px, largura em que um e-mail quebrava no
   meio da palavra. No tablet e no celular ele empilha (bloco de celular
   adiante). */
@media (min-width: 992px) {
	.iw-hf-col--inline { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
}

/* e-mail longo em coluna estreita quebrava no meio da palavra */
.iw-hf-contato li,
.iw-hf-col-menu a { overflow-wrap: break-word; }

/* ------------------------------------------------------------------------
   Rodapés no tablet e no celular
   ------------------------------------------------------------------------
   Este bloco fica DEPOIS de `.iw-hf-col--inline` acima de propósito: aquela
   regra é blanket (sem media query) e vencia, por ordem, qualquer ajuste de
   celular escrito antes dela — era o caso do `grid-template-columns: 1fr`
   que existia no @media (max-width: 991px) e nunca surtia efeito.

   O espaçamento vertical da barra usa clamp() e não media query: o controle
   `bar_padding` do rodapé compacto ficou SEM valor padrão justamente para o
   Elementor não emitir um `padding` fixo por página, que é mais específico
   que esta folha. Mesma convenção de .iw-blog-grid e .iw-cat-grade.
   ------------------------------------------------------------------------ */

/* 36px em telas de 360px, subindo até 60px a partir de 1200px */
.iw-hf--footer-compact .iw-hf-bar { padding: clamp(36px, 2.86vw + 25.7px, 60px) 0; }

@media (max-width: 991px) {
	/* menos ar entre as colunas quando elas viram uma pilha */
	.iw-hf--footer .iw-hf-cols { gap: 32px; }

	/* Links e Contato um sobre o outro: lado a lado nesta faixa cada um fica
	   com ~155px e o e-mail quebra no meio da palavra */
	.iw-hf-col--inline { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 767px) {
	.iw-hf--footer .iw-hf-cols { gap: 28px; }

	/* o nome da empresa é `white-space: nowrap` por causa do cabeçalho, onde
	   ele divide a linha com o menu. No rodapé ele tem a linha toda, e em
	   tela de 320px um nome comprido empurrava a página para o lado. */
	.iw-hf--footer .iw-hf-logo-text {
		white-space: normal;
		font-size: 20px;
		line-height: 1.25;
	}

	.iw-hf--footer .iw-hf-col-title { margin-bottom: 12px; }
}

@media (max-width: 575px) {
	.iw-hf-col--inline { gap: 26px; }

	/* copyright, CNPJ e links legais lado a lado quebravam em pontos
	   arbitrários; empilhados, cada informação fica em uma linha */
	.iw-hf-bottombar-inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.iw-hf-bottom-left { flex-direction: column; gap: 4px; }
	.iw-hf-bottom-links { gap: 4px 18px; }

	/* margens laterais do container: 24px de cada lado tiram 48px de uma tela
	   de 360px, e as linhas de contato passavam a quebrar no meio */
	.iw-hf--footer .iw-container {
		padding-left: 18px;
		padding-right: 18px;
	}
}

/* ------------------------------------------------------------------------
   Cabeçalho clássico no celular: menu hamburger
   ------------------------------------------------------------------------
   No desktop nada muda: .iw-hf-colapso é `display: contents`, então o menu e
   o botão seguem sendo filhos diretos de .iw-hf-bar-inner e o layout continua
   logo | menu | botão. Abaixo de 992px esse mesmo bloco volta a ser uma caixa,
   ocupa a linha inteira e só aparece quando o hamburger está ligado — é o que
   permite ter um painel recolhível sem duplicar o menu no HTML.
   ------------------------------------------------------------------------ */

.iw-hf-colapso { display: contents; }

.iw-hf-toggle {
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: inherit;
	cursor: pointer;
}

.iw-hf-toggle-barra {
	display: block;
	width: 24px;
	height: 2px;
	border-radius: 2px;
	background-color: currentColor;
	transition: transform .2s ease, opacity .2s ease;
}

/* as três barras viram um X quando o painel está aberto */
.is-menu-aberto .iw-hf-toggle-barra:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.is-menu-aberto .iw-hf-toggle-barra:nth-child(2) { opacity: 0; }
.is-menu-aberto .iw-hf-toggle-barra:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Seta dos itens com submenu. O JS a insere só onde há filhos; fica escondida
   no desktop, onde o submenu ainda abre no hover. */
.iw-hf-sub-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	cursor: pointer;
	font-size: 11px;
	line-height: 1;
}

.iw-hf-sub-toggle::before {
	content: '';
	width: 8px;
	height: 8px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform .2s ease;
}

.iw-hf-menu li.is-open > .iw-hf-sub-toggle::before { transform: translateY(2px) rotate(-135deg); }

@media (max-width: 991px) {

	/* a faixa de contato quebra em três linhas no celular; sai por padrão */
	.iw-hf-topbar--oculta-mobile { display: none; }

	/* a regra geral acima empilha logo/menu/botão em coluna — aqui a barra
	   volta a ser uma linha só, com logo à esquerda e hamburger à direita */
	.iw-hf--classic .iw-hf-bar-inner {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		flex-wrap: wrap;
		gap: 12px;
	}

	.iw-hf--classic .iw-hf-toggle { display: inline-flex; }

	/* O painel sai do fluxo e cai POR CIMA da página.
	   Dentro da barra ele empurrava tudo para baixo: o cabeçalho crescia com o
	   menu, e a cada submenu aberto a página inteira descia mais um pedaço. Fora
	   do fluxo, abrir o menu não move nada — e a barra fica de referência para o
	   `top: 100%`, por isso ela vira o bloco de posicionamento. */
	.iw-hf--classic .iw-hf-bar { position: relative; }

	.iw-hf--classic .iw-hf-colapso {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 999;
		padding: 0 24px 18px;
		/* A barra é quem tem a cor de fundo (controle "Cor de fundo"), e o
		   `.iw-hf-bar-inner` no meio é transparente — sem repassar a herança o
		   painel sairia vazado e o conteúdo da página apareceria atrás dele. */
		background-color: inherit;
		box-shadow: 0 18px 34px rgba(0, 0, 0, .14);
		/* Com 15 subcategorias o menu passa da altura da tela; sem teto, o fim
		   da lista ficaria fora de alcance. `dvh` acompanha a barra do
		   navegador no celular, `vh` fica de reserva para quem não o entende. */
		max-height: 80vh;
		max-height: 80dvh;
		overflow-y: auto;
		/* Chegando ao fim da rolagem do painel, o gesto não passa a rolar a
		   página atrás dele. */
		overscroll-behavior: contain;
	}

	.iw-hf--classic .iw-hf-bar-inner { background-color: inherit; }

	/* A barra só sobe de camada com o menu aberto: fora disso ela não precisa
	   disputar empilhamento com nada da página. */
	.iw-hf--classic.is-menu-aberto .iw-hf-bar { z-index: 998; }

	.iw-hf--classic.is-menu-aberto .iw-hf-colapso { display: block; }

	.iw-hf--classic .iw-hf-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.iw-hf--classic .iw-hf-menu > li {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		border-top: 1px solid currentColor;
		border-top-color: color-mix(in srgb, currentColor 18%, transparent);
	}

	.iw-hf--classic .iw-hf-menu > li > a {
		flex: 1 1 auto;
		display: block;
		padding: 13px 0;
	}

	/* o submenu deixa de flutuar e vira lista recolhida dentro do item */
	.iw-hf--classic .iw-hf-menu .sub-menu,
	.iw-hf--classic .iw-hf-menu li:hover > .sub-menu {
		display: none;
		position: static;
		flex: 0 0 100%;
		width: 100%;
		min-width: 0;
		margin: 0;
		padding: 0 0 8px 18px;
		background: transparent;
		border-radius: 0;
		box-shadow: none;
		/* No celular o submenu é lista dentro do painel, e quem rola é o painel.
		   Guardado o teto do desktop, o item viraria um rolador dentro de outro
		   rolador — dois lugares para arrastar no mesmo gesto. */
		max-height: none;
		overflow: visible;
	}

	.iw-hf--classic .iw-hf-menu li.is-open > .sub-menu { display: block; }

	.iw-hf--classic .iw-hf-menu .sub-menu a {
		padding: 10px 0;
		color: inherit;
		font-weight: 500;
	}

	.iw-hf--classic .iw-hf-sub-toggle { display: inline-flex; }

	/* o botão de ação acompanha o menu no painel e ocupa a largura toda */
	.iw-hf--classic .iw-hf-bar-right {
		width: 100%;
		padding: 16px 0 6px;
	}

	.iw-hf--classic .iw-hf-bar-right .iw-hf-cta {
		display: block;
		width: 100%;
		text-align: center;
	}
}

/* ========================================================================
   DEPOIMENTOS
   ------------------------------------------------------------------------
   Base dos 14 modelos. Vale o mesmo que nos cabeçalhos: a aparência de
   partida mora aqui, e não só nos padrões dos controles, porque o CSS que o
   Elementor gera por página pode não existir em disco.
   ======================================================================== */

.iw-dep { padding: 72px 0; }

/* ---------- cabeçalho da seção ---------- */
.iw-dep-cab { margin-bottom: 46px; }

.iw-dep-selo {
	display: inline-block;
	margin-bottom: 14px;
	padding: 5px 14px;
	border: 1px solid var(--iw-color-1, #1c4f7c);
	border-radius: 999px;
	color: var(--iw-color-1, #1c4f7c);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.iw-dep-titulo {
	margin: 0 0 12px;
	font-family: var(--iw-font-heading, inherit);
	font-size: clamp(26px, 3.4vw, 40px);
	line-height: 1.15;
	color: var(--iw-color-heading, #17323a);
}

.iw-dep-subtitulo {
	margin: 0;
	max-width: 62ch;
	font-size: 16px;
	line-height: 1.6;
	color: var(--iw-color-text, #5c6773);
}

/* centralizado, o subtítulo precisa da margem automática para não colar à esquerda */
.iw-dep-cab[style*="center"] .iw-dep-subtitulo { margin-inline: auto; }

/* ---------- peças comuns ---------- */
.iw-dep-grade {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 26px;
}

.iw-dep-item {
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-width: 0;
}

.iw-dep-estrelas { display: inline-flex; gap: 3px; }

.iw-dep-estrelas svg {
	width: 16px;
	height: 16px;
	fill: var(--iw-color-1, #1c4f7c);
}

.iw-dep-texto {
	margin: 0;
	font-size: 15px;
	line-height: 1.7;
	color: var(--iw-color-text, #5c6773);
}

.iw-dep-autor {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: auto;
}

.iw-dep-autor-texto { display: flex; flex-direction: column; line-height: 1.3; }
.iw-dep-nome { font-size: 15px; color: var(--iw-color-heading, #17323a); }
.iw-dep-cargo { font-size: 13px; color: var(--iw-color-1, #1c4f7c); }

img.iw-dep-foto {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 auto;
}

/* autor centralizado e empilhado, usado pelos modelos de destaque */
.iw-dep-autor--empilhado {
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 10px;
}

.iw-dep-autor--empilhado img.iw-dep-foto { width: 56px; height: 56px; }

/* ---------- cartão ---------- */
.iw-dep-card {
	padding: 26px;
	border-radius: 12px;
	background-color: color-mix(in srgb, var(--iw-color-1, #1c4f7c) 8%, #ffffff);
}

/* ---------- destaque (colunas centralizadas) ---------- */
.iw-dep--destaque .iw-dep-item {
	align-items: center;
	text-align: center;
	gap: 18px;
}

.iw-dep--destaque .iw-dep-texto { font-size: 17px; }

/* ---------- único ---------- */
.iw-dep--unico .iw-dep-item {
	align-items: center;
	text-align: center;
	gap: 22px;
	/* o tema pinta <blockquote> com fundo proprio e recuo a esquerda; sem
	   zerar aqui, o texto escuro sumia dentro de um bloco azul */
	margin: 0 0 40px;
	padding: 0;
	border: 0;
	background: none;
	quotes: none;
}

.iw-dep--unico .iw-dep-item::before,
.iw-dep--unico .iw-dep-item::after { content: none; }

.iw-dep--unico .iw-dep-item:last-child { margin-bottom: 0; }

.iw-dep--unico .iw-dep-texto {
	margin-inline: auto;
	max-width: 820px;
	font-size: clamp(19px, 2.2vw, 26px);
	line-height: 1.5;
	color: var(--iw-color-heading, #17323a);
}

.iw-dep--unico .iw-dep-estrelas svg { width: 18px; height: 18px; }

/* ---------- carrossel (faixa que rola de lado) ---------- */
.iw-dep-trilho-fora { overflow: hidden; }

.iw-dep-trilho {
	display: flex;
	gap: 22px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	/* espaço para a sombra do cartão não ser cortada pelo overflow */
	padding-block: 6px;
	scrollbar-width: thin;
}

.iw-dep-trilho .iw-dep-item {
	flex: 0 0 330px;
	scroll-snap-align: start;
}

.iw-dep-trilho:focus-visible { outline: 2px solid var(--iw-color-1, #1c4f7c); outline-offset: 4px; }

/* ---------- cartão com foto ao fundo ---------- */
.iw-dep-foto-card {
	position: relative;
	height: 420px;
	padding: 0;
	border-radius: 14px;
	overflow: hidden;
	display: flex;
	/* .iw-dep-item, que vem antes, define column: em column o align-items
	   alinha na horizontal e o texto ia parar no topo da foto */
	flex-direction: column;
	justify-content: flex-end;
	align-items: stretch;
	gap: 0;
}

img.iw-dep-foto-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.iw-dep-foto-veu {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, #000 0%, rgba(0, 0, 0, .55) 55%, rgba(0, 0, 0, .25) 100%);
	opacity: .55;
}

.iw-dep-foto-conteudo {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 26px;
	width: 100%;
}

/* dentro da foto o texto é sempre claro, senão some no escuro */
.iw-dep-foto-conteudo .iw-dep-texto,
.iw-dep-foto-conteudo .iw-dep-nome { color: #fff; }
.iw-dep-foto-conteudo .iw-dep-cargo { color: rgba(255, 255, 255, .78); }
.iw-dep-foto-conteudo .iw-dep-estrelas svg { fill: #fff; }

.iw-dep-autor--sem-foto { display: inline-flex; }

/* ---------- mural ---------- */
.iw-dep-mural { column-count: 3; column-gap: 22px; }

.iw-dep-mural .iw-dep-item {
	display: block;
	break-inside: avoid;
	margin-bottom: 22px;
}

.iw-dep-mural .iw-dep-texto { margin: 14px 0; }
.iw-dep-mural .iw-dep-autor { margin-top: 0; }

/* ---------- foto ao lado ---------- */
.iw-dep-lado {
	display: grid;
	grid-template-columns: 42% 1fr;
	gap: 50px;
	align-items: center;
	margin-bottom: 50px;
}

.iw-dep-lado:last-child { margin-bottom: 0; }

.iw-dep-lado--invertido .iw-dep-lado-foto { order: 2; }

.iw-dep-lado-foto {
	height: 420px;
	border-radius: 14px;
	overflow: hidden;
}

.iw-dep-lado-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }

.iw-dep-lado-texto { display: flex; flex-direction: column; gap: 18px; }

.iw-dep-lado-texto .iw-dep-texto {
	font-size: clamp(18px, 1.9vw, 24px);
	line-height: 1.5;
	color: var(--iw-color-heading, #17323a);
}

/* ---------- retrato ---------- */
.iw-dep-retrato-linha {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 50px;
	margin-bottom: 44px;
}

.iw-dep-retrato-linha:last-child { margin-bottom: 0; }
.iw-dep-retrato--invertido .iw-dep-retrato-foto { order: -1; }

.iw-dep-retrato-texto { display: flex; flex-direction: column; gap: 16px; max-width: 640px; }

.iw-dep-retrato-texto .iw-dep-texto {
	font-size: clamp(18px, 1.8vw, 23px);
	line-height: 1.5;
	color: var(--iw-color-heading, #17323a);
}

.iw-dep-retrato-foto {
	flex: 0 0 auto;
	width: 300px;
	height: 300px;
	border-radius: 14px;
	overflow: hidden;
}

.iw-dep-retrato-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- faixa ---------- */
.iw-dep-faixa {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 400px;
	border-radius: 14px;
	overflow: hidden;
	margin-bottom: 26px;
}

.iw-dep-faixa:last-child { margin-bottom: 0; }

img.iw-dep-faixa-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.iw-dep-faixa-veu {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, #000 0%, rgba(0, 0, 0, .5) 60%, rgba(0, 0, 0, .2) 100%);
	opacity: .5;
}

.iw-dep-faixa-conteudo {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 46px;
	max-width: 720px;
}

.iw-dep-faixa-conteudo .iw-dep-texto {
	font-size: clamp(18px, 2vw, 24px);
	line-height: 1.5;
	color: #fff;
}

.iw-dep-faixa-conteudo .iw-dep-nome { color: #fff; }
.iw-dep-faixa-conteudo .iw-dep-cargo { color: rgba(255, 255, 255, .78); }
.iw-dep-faixa-conteudo .iw-dep-estrelas svg { fill: #fff; }

/* ---------- marca do cliente ---------- */
.iw-dep-marca {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: auto;
	font-size: 17px;
	color: var(--iw-color-heading, #17323a);
}

.iw-dep-marca-icone { display: inline-flex; font-size: 1.1em; }
.iw-dep--logos .iw-dep-item { gap: 16px; }

/* ---------- caixa com foto ---------- */
.iw-dep-caixa {
	display: grid;
	grid-template-columns: 1fr 34%;
	gap: 34px;
	align-items: center;
	padding: 34px;
	border-radius: 14px;
	background-color: color-mix(in srgb, var(--iw-color-1, #1c4f7c) 7%, #ffffff);
	margin-bottom: 26px;
}

.iw-dep-caixa:last-child { margin-bottom: 0; }
.iw-dep-caixa--invertida .iw-dep-caixa-foto { order: -1; }

.iw-dep-caixa-texto { display: flex; flex-direction: column; gap: 16px; }

.iw-dep-caixa-texto .iw-dep-texto {
	font-size: clamp(17px, 1.7vw, 22px);
	line-height: 1.5;
	color: var(--iw-color-heading, #17323a);
}

.iw-dep-caixa-foto { height: 280px; border-radius: 10px; overflow: hidden; }
.iw-dep-caixa-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- dividido ---------- */
.iw-dep-dividido {
	display: grid;
	grid-template-columns: 42% 1fr;
	min-height: 380px;
	border-radius: 14px;
	overflow: hidden;
	margin-bottom: 26px;
}

.iw-dep-dividido:last-child { margin-bottom: 0; }
.iw-dep-dividido--invertido .iw-dep-dividido-foto { order: 2; }

.iw-dep-dividido-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }

.iw-dep-dividido-painel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 16px;
	padding: 44px;
	background-color: var(--iw-color-heading, #17323a);
}

.iw-dep-dividido-painel .iw-dep-texto {
	font-size: clamp(18px, 1.9vw, 24px);
	line-height: 1.5;
	color: #fff;
}

.iw-dep-dividido-painel .iw-dep-nome { color: #fff; }
.iw-dep-dividido-painel .iw-dep-cargo { color: rgba(255, 255, 255, .78); }
.iw-dep-dividido-painel .iw-dep-estrelas svg { fill: #fff; }
.iw-dep-dividido-painel .iw-dep-autor { margin-top: 0; }

/* ---------- celular ---------- */
@media (max-width: 991px) {
	.iw-dep { padding: 52px 0; }

	.iw-dep-grade { grid-template-columns: 1fr; }
	.iw-dep-mural { column-count: 1; }

	.iw-dep-lado,
	.iw-dep-caixa,
	.iw-dep-dividido { grid-template-columns: 1fr; }

	/* no empilhado a foto vem primeiro, independente do lado escolhido no desktop */
	.iw-dep-lado--invertido .iw-dep-lado-foto,
	.iw-dep-caixa--invertida .iw-dep-caixa-foto,
	.iw-dep-dividido--invertido .iw-dep-dividido-foto { order: 0; }

	.iw-dep-retrato-linha { flex-direction: column; align-items: flex-start; gap: 26px; }
	.iw-dep-retrato--invertido .iw-dep-retrato-foto { order: 0; }
	.iw-dep-retrato-foto { width: 100%; max-width: 320px; }

	.iw-dep-lado-foto { height: 300px; }
	.iw-dep-dividido-foto { height: 260px; }
	.iw-dep-faixa-conteudo { padding: 28px; }
}

/* ========================================================================
   HEROS — FAMÍLIA NOVA (prefixo iw-hr-)
   ------------------------------------------------------------------------
   O widget antigo `iw-hero` já ocupa `.iw-hero-*`; reaproveitar aquelas
   classes faria um mexer no outro. Como nos cabeçalhos, a aparência de
   partida mora aqui e não só nos padrões dos controles, porque o CSS que o
   Elementor gera por página pode não existir em disco.
   ======================================================================== */

.iw-hr { padding: 70px 0; position: relative; }

/* ---------- miolo de texto ---------- */
.iw-hr-texto {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}

.iw-hr-texto--centro { align-items: center; text-align: center; }
.iw-hr-texto--centro .iw-hr-subtitulo { margin-inline: auto; }

.iw-hr-selo {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 5px 14px;
	border: 1px solid var(--iw-color-1, #1c4f7c);
	border-radius: 999px;
	color: var(--iw-color-1, #1c4f7c);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
}

.iw-hr-selo-icone { display: inline-flex; font-size: 1em; }

.iw-hr-titulo {
	margin: 0;
	font-family: var(--iw-font-heading, inherit);
	font-size: clamp(30px, 4.4vw, 52px);
	line-height: 1.08;
	letter-spacing: -.015em;
	color: var(--iw-color-heading, #17323a);
}

.iw-hr-subtitulo {
	margin: 0;
	max-width: 56ch;
	font-size: 16px;
	line-height: 1.65;
	color: var(--iw-color-text, #5c6773);
}

/* sobre foto escura o texto precisa ser claro, senão some */
.iw-hr-texto--claro .iw-hr-titulo,
.iw-hr-texto--claro .iw-hr-subtitulo { color: #fff; }
.iw-hr-texto--claro .iw-hr-selo { color: #fff; border-color: rgba(255, 255, 255, .55); }

/* ---------- botões ---------- */
.iw-hr-botoes { display: flex; flex-wrap: wrap; gap: 12px; }

.iw-hr-btn {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 13px 24px;
	border-radius: var(--iw-button-radius, 8px);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none !important;
	white-space: nowrap;
	transition: opacity .2s ease;
	border: 1px solid transparent;
}

.iw-hr-btn:hover { opacity: .88; }

.iw-hr-btn--principal {
	background-color: var(--iw-color-1, #1c4f7c);
	color: #fff !important;
}

.iw-hr-btn--secundario {
	background-color: #fff;
	border-color: rgba(0, 0, 0, .12);
	color: var(--iw-color-heading, #17323a) !important;
}

.iw-hr-btn-icone { display: inline-flex; font-size: .95em; }

/* ---------- prova social ---------- */
.iw-hr-prova { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

.iw-hr-prova-fotos { display: inline-flex; align-items: center; }

img.iw-hr-prova-foto,
.iw-hr-prova-mais {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid #fff;
	margin-left: -10px;
}

img.iw-hr-prova-foto:first-child { margin-left: 0; }

.iw-hr-prova-mais {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: color-mix(in srgb, var(--iw-color-1, #1c4f7c) 14%, #ffffff);
	color: var(--iw-color-heading, #17323a);
	font-size: 11px;
	font-weight: 700;
}

.iw-hr-prova-texto-bloco { display: flex; flex-direction: column; gap: 2px; }
.iw-hr-estrelas { display: inline-flex; gap: 2px; }
.iw-hr-estrelas svg { width: 14px; height: 14px; fill: var(--iw-color-1, #1c4f7c); }
.iw-hr-prova-texto { font-size: 13px; color: var(--iw-color-text, #5c6773); }

.iw-hr-texto--claro .iw-hr-prova-texto { color: rgba(255, 255, 255, .82); }
.iw-hr-texto--claro .iw-hr-estrelas svg { fill: #fff; }

/* ---------- formulário de e-mail ---------- */
.iw-hr-form {
	display: flex;
	gap: 8px;
	width: 100%;
	max-width: 460px;
	flex-wrap: wrap;
}

.iw-hr-form-campo {
	flex: 1 1 200px;
	min-width: 0;
	padding: 12px 16px;
	border: 1px solid rgba(0, 0, 0, .14);
	border-radius: var(--iw-button-radius, 8px);
	font-size: 14px;
	background: #fff;
	color: var(--iw-color-heading, #17323a);
}

.iw-hr-form-campo:focus-visible { outline: 2px solid var(--iw-color-1, #1c4f7c); outline-offset: 1px; }
.iw-hr-form .iw-hr-btn { border: 0; cursor: pointer; font-family: inherit; }
.iw-hr-form-shortcode { width: 100%; max-width: 460px; }

/* ---------- duas colunas, o arranjo mais comum ---------- */
.iw-hr-duas-colunas {
	display: grid;
	grid-template-columns: 1fr 46%;
	gap: 50px;
	align-items: center;
}

.iw-hr-duas-colunas--invertida > *:last-child { order: -1; }

.iw-hr-col-foto {
	height: 440px;
	border-radius: 14px;
	overflow: hidden;
}

.iw-hr-col-foto img,
.iw-hr-caixa-foto img,
.iw-hr-sangria-foto img,
.iw-hr-par > div img,
.iw-hr-pilha > div img,
.iw-hr-destaque img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ---------- hero 05: caixa com foto ---------- */
.iw-hr-caixa {
	padding: 46px;
	border-radius: 20px;
	background-color: color-mix(in srgb, var(--iw-color-1, #1c4f7c) 8%, #ffffff);
}

.iw-hr-caixa-grade {
	display: grid;
	grid-template-columns: 1fr 48%;
	gap: 44px;
	align-items: center;
}

.iw-hr-caixa-grade--invertida > *:last-child { order: -1; }
.iw-hr-caixa-foto { height: 330px; border-radius: 12px; overflow: hidden; }

/* ---------- hero 10: caixa com foto sangrada ---------- */
.iw-hr-sangria {
	display: grid;
	grid-template-columns: 1fr 48%;
	min-height: 400px;
	border-radius: 20px;
	overflow: hidden;
	background-color: color-mix(in srgb, var(--iw-color-1, #1c4f7c) 7%, #ffffff);
	align-items: center;
}

.iw-hr-sangria--invertida > *:last-child { order: -1; }
.iw-hr-sangria .iw-hr-texto { padding: 46px 40px; }
.iw-hr-sangria-foto { align-self: stretch; }

/* ---------- hero 06: foto de fundo ---------- */
.iw-hr--foto-cheia { padding: 0; }

.iw-hr-cheia {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 560px;
	overflow: hidden;
}

img.iw-hr-cheia-bg,
img.iw-hr-mfundo-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.iw-hr-cheia-veu,
.iw-hr-mfundo-veu {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, .45) 60%, rgba(0, 0, 0, .25) 100%);
	opacity: .55;
}

.iw-hr-cheia > .iw-container,
.iw-hr-mfundo > .iw-container { position: relative; z-index: 1; padding-block: 60px; }

/* ---------- hero 37/38: meia foto sangrada ---------- */
.iw-hr--meia-foto { padding: 0; }

.iw-hr-meia {
	display: grid;
	grid-template-columns: 1fr 50%;
	min-height: 520px;
	align-items: center;
}

.iw-hr-meia--invertida > *:last-child { order: -1; }

/* o texto acompanha o container da página; a foto vai até a borda da tela */
.iw-hr-meia-texto { display: flex; justify-content: flex-end; padding: 60px 40px 60px 24px; }
.iw-hr-meia--invertida .iw-hr-meia-texto { justify-content: flex-start; padding: 60px 24px 60px 40px; }
.iw-hr-meia-texto .iw-hr-texto { max-width: 560px; width: 100%; }
.iw-hr-meia-foto-lado { align-self: stretch; min-height: 320px; }
.iw-hr-meia-foto-lado img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- hero 62: duas fotos em pé ---------- */
.iw-hr-par { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; height: 380px; }
.iw-hr-par > div { overflow: hidden; border-radius: 12px; }
.iw-hr-par-b { margin-top: 40px; }

/* ---------- hero 63: fotos empilhadas ---------- */
.iw-hr-pilha { display: flex; flex-direction: column; gap: 14px; }
.iw-hr-pilha > div { height: 190px; overflow: hidden; border-radius: 12px; }

/* ---------- hero 64: números ---------- */
.iw-hr--numeros { overflow: hidden; }

.iw-hr-curva {
	position: absolute;
	top: -58%;
	left: 50%;
	transform: translateX(-50%);
	width: 130%;
	height: 100%;
	border-radius: 50%;
	background-color: color-mix(in srgb, var(--iw-color-1, #1c4f7c) 7%, #ffffff);
	pointer-events: none;
}

.iw-hr--numeros > .iw-container { position: relative; z-index: 1; }

.iw-hr-numeros {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 34px 60px;
	margin-top: 54px;
}

.iw-hr-numero { display: flex; flex-direction: column; gap: 4px; }

.iw-hr-numero-valor {
	font-family: var(--iw-font-heading, inherit);
	font-size: clamp(28px, 3vw, 38px);
	line-height: 1.05;
	color: var(--iw-color-heading, #17323a);
}

.iw-hr-numero-rotulo { font-size: 14px; color: var(--iw-color-text, #5c6773); }

/* ---------- hero 12/13: galeria em fileiras ---------- */
.iw-hr-galeria-fora { margin-top: 54px; overflow: hidden; }

.iw-hr-galeria {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	margin-inline: -160px;
}

.iw-hr-galeria-item { height: 170px; border-radius: 8px; overflow: hidden; }
.iw-hr-galeria-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* as pontas se apagando dão a sensação de continuar fora da tela */
.iw-hr-galeria-fora--apagada {
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
}

/* No celular as 5 colunas viram selos de ~60px, ilegíveis. Vira 3x3: três
   colunas e só os nove primeiros itens, para não sobrar linha quebrada.
   O 10º (e qualquer outro além dele) some apenas nesta faixa — o desktop
   segue com a fileira de 5 completa. */
@media (max-width: 767px) {
	.iw-hr-galeria {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.iw-hr-galeria-item:nth-child(n + 10) {
		display: none;
	}
}

/* ---------- hero 17: faixa de fotos ---------- */
.iw-hr-tira-fora { margin-top: 50px; overflow: hidden; }
.iw-hr-tira { display: flex; gap: 10px; justify-content: center; }
.iw-hr-tira-item { flex: 0 0 260px; height: 300px; overflow: hidden; }
.iw-hr-tira-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

.iw-hr-tira-fora--apagada {
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
}

/* ---------- hero 20: leque ---------- */
.iw-hr-leque {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	gap: 22px;
	margin-top: 54px;
}

.iw-hr-leque-item {
	width: 150px;
	height: 150px;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 18px 40px rgba(0, 0, 0, .16);
	background: #fff;
	flex: 0 0 auto;
}

.iw-hr-leque-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* a do meio vem na frente das vizinhas */
.iw-hr-leque-item--meio { position: relative; z-index: 2; transform: scale(1.3); }

/* ---------- hero 35: arco ---------- */
.iw-hr-arco-fora { position: relative; margin-top: 56px; overflow: hidden; }

.iw-hr-arco-brilho {
	position: absolute;
	left: 50%;
	top: 10%;
	width: 120%;
	height: 130%;
	transform: translateX(-50%);
	background: radial-gradient(ellipse at center, color-mix(in srgb, var(--iw-color-1, #1c4f7c) 26%, #ffffff) 0%, transparent 70%);
	pointer-events: none;
}

.iw-hr-arco {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	gap: 30px;
}

.iw-hr-arco-item {
	width: 160px;
	height: 160px;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 20px 44px rgba(0, 0, 0, .18);
	background: #fff;
	flex: 0 0 auto;
}

.iw-hr-arco-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

.iw-hr-pilula {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 5px 6px 5px 16px;
	border-radius: 999px;
	background-color: var(--iw-color-heading, #17323a);
	color: #fff;
	font-size: 13px;
}

.iw-hr-pilula-link {
	display: inline-flex;
	padding: 4px 14px;
	border-radius: 999px;
	background-color: rgba(255, 255, 255, .16);
	color: #fff !important;
	font-weight: 700;
	text-decoration: none !important;
}

/* ---------- hero 27: mosaico inclinado ---------- */
.iw-hr-mosaico-fora { overflow: hidden; }

.iw-hr-mosaico {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	transform: rotate(-12deg);
}

.iw-hr-mosaico-item { height: 150px; border-radius: 10px; overflow: hidden; }
.iw-hr-mosaico-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.iw-hr-mosaico-item:nth-child(3n+2) { margin-top: 40px; }

/* ---------- hero 40: mosaico de fundo ---------- */
.iw-hr--mosaico-fundo { padding: 0; }

.iw-hr-mfundo {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 560px;
	overflow: hidden;
}

.iw-hr-mfundo-grade {
	position: absolute;
	inset: 0;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	grid-auto-rows: 1fr;
}

.iw-hr-mfundo-grade img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- hero 53: destaque e marcas ---------- */
.iw-hr-destaque { position: relative; height: 380px; }

.iw-hr-destaque img {
	position: relative;
	z-index: 1;
	object-fit: contain;
}

.iw-hr-destaque-brilho {
	position: absolute;
	inset: 8%;
	border-radius: 50%;
	background: radial-gradient(circle, color-mix(in srgb, var(--iw-color-1, #1c4f7c) 22%, #ffffff) 0%, transparent 68%);
}

.iw-hr-marcas {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 46px;
	margin-top: 56px;
}

.iw-hr-marca {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 18px;
	color: var(--iw-color-heading, #17323a);
}

.iw-hr-marca-icone { display: inline-flex; font-size: 1.15em; }

/* ---------- celular ---------- */
@media (max-width: 991px) {
	.iw-hr { padding: 48px 0; }

	.iw-hr-duas-colunas,
	.iw-hr-caixa-grade,
	.iw-hr-sangria,
	.iw-hr-meia { grid-template-columns: 1fr; }

	/* empilhado, a foto vem sempre depois do texto, qualquer que seja o lado
	   escolhido para o desktop */
	.iw-hr-duas-colunas--invertida > *:last-child,
	.iw-hr-caixa-grade--invertida > *:last-child,
	.iw-hr-sangria--invertida > *:last-child,
	.iw-hr-meia--invertida > *:last-child { order: 0; }

	.iw-hr-caixa { padding: 28px; }
	.iw-hr-sangria .iw-hr-texto,
	.iw-hr-meia-texto,
	.iw-hr-meia--invertida .iw-hr-meia-texto { padding: 32px 20px; }

	.iw-hr-col-foto,
	.iw-hr-caixa-foto { height: 260px; }
	.iw-hr-sangria-foto,
	.iw-hr-meia-foto-lado { height: 260px; }

	.iw-hr-par { height: 260px; }
	.iw-hr-par-b { margin-top: 0; }

	.iw-hr-galeria { margin-inline: 0; }
	.iw-hr-galeria-item { height: 110px; }
	/* no celular a galeria vira 3x3 — ver regra em max-width: 767px */
	.iw-hr-tira-item { flex: 0 0 180px; height: 200px; }

	.iw-hr-leque-item,
	.iw-hr-arco-item { width: 100px; height: 100px; }
	.iw-hr-leque-item--meio { transform: scale(1.15); }

	.iw-hr-mosaico { transform: none; }
	.iw-hr-mosaico-item:nth-child(3n+2) { margin-top: 0; }

	.iw-hr-marcas { gap: 24px; justify-content: flex-start; }
	.iw-hr-destaque { height: 260px; }
	.iw-hr-curva { display: none; }
}

/* ========================================================================
   CATÁLOGO — listagem e ficha de produtos/serviços
   ------------------------------------------------------------------------
   Segue as duas telas do site: /produtos/ (grade de quatro colunas com foto
   e nome) e /produto/<item>/ (foto e ficha de dados à esquerda, nome e
   blocos de especificação à direita).
   ======================================================================== */

.iw-cat { padding: 72px 0; }

/* ---------- cabeçalho dividido ---------- */
.iw-cat-cab {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: end;
	margin-bottom: 44px;
}

.iw-cat-selo {
	display: block;
	margin-bottom: 12px;
	color: var(--iw-color-1, #1c4f7c);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.iw-cat-titulo {
	margin: 0;
	font-family: var(--iw-font-heading, inherit);
	font-size: clamp(26px, 3.4vw, 42px);
	line-height: 1.12;
	color: var(--iw-color-heading, #17323a);
}

.iw-cat-texto {
	margin: 0;
	font-size: 15px;
	line-height: 1.7;
	color: var(--iw-color-text, #5c6773);
}

.iw-cat-vazio { color: var(--iw-color-text, #5c6773); font-size: 15px; }

/* ---------- grade ---------- */
.iw-cat-grade {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 26px;
}

.iw-cat-item {
	display: flex;
	flex-direction: column;
	gap: 12px;
	text-decoration: none !important;
	color: inherit;
}

.iw-cat-foto {
	display: block;
	height: 240px;
	border-radius: 10px;
	overflow: hidden;
	background-color: color-mix(in srgb, var(--iw-color-1, #1c4f7c) 6%, #ffffff);
}

.iw-cat-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .3s ease;
}

.iw-cat-item:hover .iw-cat-foto img { transform: scale(1.04); }

.iw-cat-corpo { display: flex; flex-direction: column; gap: 4px; }

.iw-cat-categoria {
	font-size: 12px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-cat-nome {
	text-transform: capitalize;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--iw-color-heading, #17323a);
}

.iw-cat-preco {
	font-size: 15px;
	font-weight: 700;
	color: var(--iw-color-1, #1c4f7c);
}

/* Quantos itens tem a subcategoria, quando a grade lista subcategorias.
   Mais discreto que o nome: e informacao de apoio, nao o rotulo do cartao. */
.iw-cat-conta {
	font-size: 13px;
	color: var(--iw-color-text, #5c6773);
}

/* ---------- ficha do item ----------
   Mobile-first: uma coluna é o estado base, as duas colunas entram a partir de
   992px. A largura da coluna da foto e a altura da foto chegam por variável
   (controles `largura_coluna` e `altura_foto` do widget) justamente para que
   estas faixas continuem valendo — escritas direto na propriedade, o CSS que o
   Elementor gera por página é mais específico e vencia o @media de celular. */
.iw-fic {
	display: grid;
	grid-template-columns: 1fr;
	gap: 30px;
	align-items: start;
}

@media (min-width: 992px) {
	.iw-fic {
		grid-template-columns: var(--iw-fic-coluna, 38%) 1fr;
		gap: 54px;
	}

	/* a foto só troca de lado quando existem dois lados */
	.iw-fic--invertida .iw-fic-coluna { order: 2; }
}

.iw-fic-coluna { display: flex; flex-direction: column; gap: 24px; }

/* Em coluna única a foto ocupa a largura toda, e aí altura fixa vira tarja: em
   768px eram 720x260. Por proporção ela acompanha a largura, com teto para não
   empurrar o texto para fora da tela no tablet.
   O `height: var(--iw-fic-foto-altura)` sem fallback é de propósito: variável
   não definida deixa a declaração inválida no valor computado, `height` volta
   para `auto` e a proporção manda. Preenchido o controle, `height` ganha da
   proporção e vale o número escolhido. */
.iw-fic-foto {
	display: block;
	aspect-ratio: 4 / 3;
	max-height: 420px;
	height: var(--iw-fic-foto-altura);
	border-radius: 10px;
	overflow: hidden;
}

@media (min-width: 992px) {
	/* com duas colunas a foto tem largura própria: aí altura de verdade */
	.iw-fic-foto {
		aspect-ratio: auto;
		max-height: none;
		height: var(--iw-fic-foto-altura, clamp(300px, 32vw, 440px));
	}
}

.iw-fic-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ficha de dados em duas colunas, como na página de referência */
.iw-fic-dados {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px 24px;
	margin: 0;
	padding-bottom: 22px;
	border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.iw-fic-dado { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

.iw-fic-dado dt {
	font-size: 13px;
	color: var(--iw-color-text, #5c6773);
}

.iw-fic-dado dd {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--iw-color-heading, #17323a);
	overflow-wrap: break-word;
}

.iw-fic-botoes { display: flex; flex-wrap: wrap; gap: 12px; }

.iw-fic-btn {
	display: inline-flex;
	align-items: center;
	padding: 12px 24px;
	border-radius: var(--iw-button-radius, 8px);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none !important;
	border: 1px solid transparent;
	transition: opacity .2s ease;
}

.iw-fic-btn:hover { opacity: .88; }

.iw-fic-btn--principal {
	background-color: var(--iw-color-1, #1c4f7c);
	color: #fff !important;
}

.iw-fic-btn--secundario {
	background-color: transparent;
	border-color: rgba(0, 0, 0, .16);
	color: var(--iw-color-heading, #17323a) !important;
}

/* ---------- coluna da direita ---------- */
.iw-fic-corpo { display: flex; flex-direction: column; gap: 10px; }

.iw-fic-nome {
	margin: 0;
	font-family: var(--iw-font-heading, inherit);
	font-size: clamp(28px, 3.6vw, 44px);
	line-height: 1.1;
	color: var(--iw-color-heading, #17323a);
	text-transform: capitalize;
}

.iw-fic-categoria {
	font-size: 17px;
	color: var(--iw-color-1, #1c4f7c);
}

.iw-fic-texto {
	margin: 10px 0 0;
	font-size: 15px;
	line-height: 1.7;
	color: var(--iw-color-text, #5c6773);
}

.iw-fic-bloco { margin-top: 30px; }

.iw-fic-secao-titulo {
	margin: 0 0 6px;
	padding-bottom: 12px;
	border-bottom: 1px solid rgba(0, 0, 0, .1);
	font-family: var(--iw-font-heading, inherit);
	font-size: 21px;
	color: var(--iw-color-heading, #17323a);
}

.iw-fic-bloco-apoio {
	margin: 12px 0 0;
	font-size: 15px;
	color: var(--iw-color-text, #5c6773);
}

.iw-fic-lista {
	list-style: none;
	margin: 14px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.iw-fic-lista li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--iw-color-text, #5c6773);
}

.iw-fic-check {
	display: inline-flex;
	flex: 0 0 auto;
	margin-top: 3px;
	font-size: 13px;
	color: var(--iw-color-1, #1c4f7c);
}

/* ---------- celular ---------- */
@media (max-width: 991px) {
	.iw-cat { padding: 48px 0; }
	.iw-cat-cab { grid-template-columns: 1fr; gap: 16px; align-items: start; }
	.iw-cat-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iw-cat-foto { height: 170px; }
}

@media (max-width: 575px) {
	.iw-fic-dados { grid-template-columns: 1fr; }

	/* dois botões de ~180px lado a lado quebravam a linha e sobrava um degrau;
	   um por linha e centrados fica com área de toque cheia */
	.iw-fic-botoes { flex-direction: column; align-items: stretch; }
	.iw-fic-btn { justify-content: center; }
}

/* =========================================================================
   Seção de Blog (Categoria e Autor) - iw-blog-section-author
   Cards sem moldura: foto grande arredondada, categoria em destaque, título,
   resumo e linha de autor com avatar redondo. Fundo/borda/sombra do card só
   aparecem se a pessoa mexer na seção "Estilo - Card".

   MOBILE-FIRST, como o resto do arquivo: o padrão é UMA coluna e as colunas
   vão sendo somadas em min-width. Isso não é preferência de estilo — é o que
   faz o widget continuar responsivo depois que alguém mexe no painel: o
   Elementor escreve o valor de desktop num seletor mais específico
   (`.elementor-element-<id> .iw-bloga-grid`) e SEM media query, então uma
   regra nossa dentro de `max-width` perderia para ele e o celular ficaria com
   as colunas do desktop. Por isso a contagem de colunas vem do atributo
   `data-columns` (mesmo caminho de .iw-blog-grid e .iw-cat-grade) e as
   medidas variáveis usam clamp(), que se ajusta sozinho sem breakpoint.
   ========================================================================= */

.iw-bloga-section {
	padding: clamp(48px, 7vw, 80px) 0;
}

.iw-bloga-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: clamp(16px, 2.4vw, 24px);
	margin-bottom: clamp(28px, 4vw, 44px);
}

/* base de 260px: abaixo disso o título divide a linha com o botão e quebra em
   palavras soltas; acima, os dois cabem lado a lado como no modelo */
.iw-bloga-header-left {
	flex: 1 1 260px;
	min-width: 0;
}

.iw-bloga-heading {
	margin: 0;
	font-size: clamp(26px, 4.2vw, 42px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.02em;
	overflow-wrap: break-word;
}

.iw-bloga-subtitle {
	margin: 12px 0 0;
	font-size: clamp(15px, 1.6vw, 16px);
	line-height: 1.6;
	max-width: 62ch;
}

.iw-bloga-btn {
	display: inline-block;
	flex: 0 0 auto;
	padding: 10px 20px;
	border-radius: var(--iw-button-radius, 8px);
	background-color: var(--iw-color-1, #1c4f7c);
	color: #fff !important;
	font-size: 14px;
	font-weight: 600;
	text-align: center;
	text-decoration: none !important;
	white-space: nowrap;
	transition: opacity .2s ease;
}

.iw-bloga-btn:hover {
	opacity: 0.85;
}

.iw-bloga-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(24px, 3vw, 32px);
}

@media (min-width: 768px) {
	.iw-bloga-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* a escolha de colunas do painel só vale no desktop; abaixo disso o número
   fixo estouraria a largura da tela */
@media (min-width: 992px) {
	.iw-bloga-grid[data-columns="1"] { grid-template-columns: minmax(0, 1fr); }
	.iw-bloga-grid[data-columns="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iw-bloga-grid[data-columns="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.iw-bloga-grid[data-columns="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.iw-bloga-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.iw-bloga-card-img {
	min-width: 0;
}

/* uma coluna: a foto acompanha a largura da tela (52vw) até o teto de 300px */
.iw-bloga-card-img img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: clamp(190px, 52vw, 300px);
	object-fit: cover;
	border-radius: 12px;
}

/* duas colunas em diante o card tem metade da largura: o fator cai junto */
@media (min-width: 768px) {
	.iw-bloga-card-img img { height: clamp(200px, 26vw, 300px); }
}

/* três ou quatro colunas deixam o card estreito; foto alta ficaria desproporcional */
@media (min-width: 992px) {
	.iw-bloga-grid[data-columns="3"] .iw-bloga-card-img img { height: clamp(200px, 18vw, 250px); }
	.iw-bloga-grid[data-columns="4"] .iw-bloga-card-img img { height: clamp(180px, 14vw, 220px); }
}

/* coluna flexível para o `margin-top: auto` da linha de autor funcionar */
.iw-bloga-card-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding-top: clamp(16px, 2vw, 20px);
	min-width: 0;
}

/* sem isto o `align-items: stretch` do flex esticaria a categoria e o link
   ficaria clicável na largura toda do card */
.iw-bloga-card-body > .iw-bloga-cat {
	align-self: flex-start;
}

.iw-bloga-cat {
	display: inline-block;
	margin-bottom: 10px;
	font-size: 14px;
	font-weight: 600;
	color: var(--iw-color-1, #1c4f7c);
	text-decoration: none;
}

.iw-bloga-cat:hover {
	text-decoration: underline;
}

.iw-bloga-card-title {
	margin: 0 0 8px;
	font-size: clamp(18px, 2vw, 20px);
	font-weight: 700;
	line-height: 1.35;
	overflow-wrap: break-word;
}

.iw-bloga-card-title a {
	color: var(--iw-color-heading, #0e2a4d);
	text-decoration: none;
}

.iw-bloga-card-excerpt {
	margin: 0 0 20px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--iw-color-text, #5c6773);
	overflow-wrap: break-word;
}

/* o autor desce para o fim do card: com resumos de tamanhos diferentes, as
   linhas de autor dos cards vizinhos continuam alinhadas */
.iw-bloga-author {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-top: auto;
}

/* O avatar sai redondo por CSS: o WordPress devolve a imagem quadrada. */
.iw-bloga-author-avatar {
	display: inline-flex;
	flex: 0 0 auto;
}

.iw-bloga-author-avatar img {
	display: block;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
}

.iw-bloga-author-info {
	display: flex;
	flex-direction: column;
	min-width: 0;
	line-height: 1.35;
}

.iw-bloga-author-name {
	font-size: 14px;
	font-weight: 700;
	color: var(--iw-color-heading, #0e2a4d);
	overflow-wrap: break-word;
}

.iw-bloga-author-date {
	font-size: 13px;
	color: var(--iw-color-text, #5c6773);
}

/* ---------- celular estreito ---------- */
@media (max-width: 575px) {
	/* sozinho na linha, o botão vira alvo de toque de largura cheia */
	.iw-bloga-btn {
		display: block;
		width: 100%;
	}
}

/* ==========================================================================
   RITMO ENTRE SEÇÕES
   ==========================================================================
   Uma seção IW ocupa a página inteira, e o respiro entre duas delas é a soma
   do recuo de baixo da primeira com o de cima da segunda — os containers do
   Elementor não somam nada (gap e margem ficam em zero).

   Antes cada widget trazia o seu próprio número (60, 72, 80, 100, 120px) e a
   mesma página alternava vãos de 62 a 160px. Agora o número mora num lugar só
   e cada seção reserva METADE dele em cada ponta: 80 + 80 = 160.

   Para mudar o ritmo do site inteiro, mude só a variável abaixo.
   ========================================================================== */

:root {
	--iw-ritmo-secao: 160px;
}

/*
 * O pé de toda seção. O seletor prende no wrapper que o Elementor põe em
 * volta do widget, então pega só a raiz — nunca uma caixa interna que por
 * acaso termine em "-section".
 *
 * Ficam de fora, por não casarem com nenhum destes seletores, as barras de
 * cabeçalho e rodapé (.iw-hf*) e os cartões de formulário (.iw-*-card), que
 * não são seções de página inteira.
 */
.elementor-widget-container > [class^="iw-"][class$="-section"],
.elementor-widget-container > .iw-hero,
.elementor-widget-container > .iw-hr,
.elementor-widget-container > .iw-dep,
.elementor-widget-container > .iw-cat {
	padding-bottom: calc(var(--iw-ritmo-secao) / 2);
}

/*
 * O topo, com uma exceção: o hero abre a página, e o recuo de cima dele é o
 * encaixe com o cabeçalho, não um vão entre seções. Esse fica como o widget
 * definiu.
 */
.elementor-widget-container > [class^="iw-"][class$="-section"]:not(
	.iw-cldh-section, .iw-bh-section, .iw-poh-section,
	.iw-sph-section, .iw-thero-section
),
.elementor-widget-container > .iw-hr,
.elementor-widget-container > .iw-dep,
.elementor-widget-container > .iw-cat {
	padding-top: calc(var(--iw-ritmo-secao) / 2);
}

/*
 * Bloco que vai ate a borda: o .iw-hero é uma caixa com fundo e cantos
 * arredondados, e os heros de foto sangrada nascem com recuo zero de
 * proposito. Nos dois casos o recuo interno pertence ao bloco e nao pode
 * virar vao — o afastamento da proxima seção vem da margem.
 *
 * Só o pé: o topo destes encosta no cabeçalho e fica fora do ritmo.
 */
.elementor-widget-container > .iw-hero,
.elementor-widget-container > .iw-hr--foto-cheia,
.elementor-widget-container > .iw-hr--meia-foto,
.elementor-widget-container > .iw-hr--mosaico-fundo {
	padding-bottom: 0;
	margin-bottom: calc(var(--iw-ritmo-secao) / 2);
}

/*
 * Seção que pinta o próprio fundo é um caso à parte: ali o recuo interno é o
 * respiro do conteúdo dentro do bloco colorido, e quem afasta o bloco das
 * vizinhas é a margem. Sem ela o vão cairia para 80px, porque a borda do
 * fundo — e não o texto — passa a ser o "último elemento" da seção.
 *
 * Esta é a única com fundo fixo no CSS. As que ganham fundo por controle do
 * Elementor recebem a mesma margem pelo próprio controle, junto da cor.
 */
.elementor-widget-container > .iw-steps-section {
	margin-block: calc(var(--iw-ritmo-secao) / 2);
}
