/* =============================================================
   B&W — Design System (inspirado em linear.app)
   Tema escuro (padrão) + tema claro via [data-theme="light"] no <html>.
   Tudo é prefixado com .bw- para não brigar com o tema Smarty.
   ============================================================= */

/* ---------- fonte (hospedada localmente) ----------
   Inter variável: um arquivo cobre os pesos 100–900. Local em vez do Google
   Fonts para não bloquear a renderização e não depender de terceiro (LGPD). */

@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/inter/inter-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
	               U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
	               U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/inter/inter-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
	               U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB,
	               U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------- tokens : escuro (padrão) ---------- */

:root {
	/* superfícies */
	--bw-bg:            #08090a;
	--bw-bg-soft:       #0a0b0c;
	--bw-bg-elev:       #0e0f11;
	--bw-border:        rgba(255, 255, 255, .08);
	--bw-border-strong: rgba(255, 255, 255, .16);
	--bw-surface-1:     rgba(255, 255, 255, .04);
	--bw-surface-2:     rgba(255, 255, 255, .07);
	--bw-header-bg:     rgba(8, 9, 10, .72);
	--bw-grid-line:     rgba(255, 255, 255, .045);

	/* texto */
	--bw-text:          #f7f8f8;
	--bw-text-dim:      #8a8f98;
	--bw-text-faint:    #61656c;

	/* marca */
	--bw-accent:        #e5484d;
	--bw-accent-hi:     #f4696d;
	--bw-accent-soft:   rgba(229, 72, 77, .12);

	/* composições dependentes de tema */
	--bw-title-grad-a:  #ffffff;
	--bw-title-grad-b:  #b9bdc4;
	--bw-card-top:      rgba(255, 255, 255, .045);
	--bw-card-bottom:   rgba(255, 255, 255, .014);
	--bw-panel-top:     #101113;
	--bw-panel-bottom:  #0a0b0c;
	--bw-panel-shadow:  0 40px 90px -40px rgba(0, 0, 0, 1), inset 0 1px 0 rgba(255, 255, 255, .06);
	--bw-card-shadow:   0 18px 40px -24px rgba(0, 0, 0, .9);
	--bw-invert-bg:     #ffffff;
	--bw-invert-fg:     #08090a;
	--bw-invert-bg-h:   #e9eaec;
	--bw-glow-1:        rgba(229, 72, 77, .20);
	--bw-glow-2:        rgba(120, 119, 198, .16);
	--bw-map-filter:    grayscale(1) invert(.92) contrast(.9);

	/* forma */
	--bw-radius:        10px;
	--bw-radius-lg:     16px;
	--bw-header-h:      76px;
	--bw-max:           1120px;
	--bw-ease:          cubic-bezier(.16, 1, .3, 1);

	color-scheme: dark;
}

/* ---------- tokens : claro ---------- */

:root[data-theme="light"] {
	--bw-bg:            #ffffff;
	--bw-bg-soft:       #f7f8f9;
	--bw-bg-elev:       #ffffff;
	--bw-border:        rgba(9, 9, 11, .11);
	--bw-border-strong: rgba(9, 9, 11, .22);
	--bw-surface-1:     rgba(9, 9, 11, .035);
	--bw-surface-2:     rgba(9, 9, 11, .06);
	--bw-header-bg:     rgba(255, 255, 255, .78);
	--bw-grid-line:     rgba(9, 9, 11, .055);

	--bw-text:          #16181d;
	--bw-text-dim:      #5b606a;
	--bw-text-faint:    #83878f;

	--bw-accent:        #d0383d;
	--bw-accent-hi:     #c3282e;
	--bw-accent-soft:   rgba(208, 56, 61, .12);

	--bw-title-grad-a:  #16181d;
	--bw-title-grad-b:  #3d424b;
	--bw-card-top:      rgba(255, 255, 255, 1);
	--bw-card-bottom:   rgba(250, 250, 251, 1);
	--bw-panel-top:     #ffffff;
	--bw-panel-bottom:  #f7f8f9;
	--bw-panel-shadow:  0 30px 70px -40px rgba(9, 9, 11, .45), inset 0 1px 0 rgba(255, 255, 255, .9);
	--bw-card-shadow:   0 16px 36px -24px rgba(9, 9, 11, .35);
	--bw-invert-bg:     #16181d;
	--bw-invert-fg:     #ffffff;
	--bw-invert-bg-h:   #292c33;
	--bw-glow-1:        rgba(229, 72, 77, .13);
	--bw-glow-2:        rgba(120, 119, 198, .10);
	--bw-map-filter:    none;

	color-scheme: light;
}

/* ---------- reset ---------- */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; background: var(--bw-bg); }

body { margin: 0; }

img, svg, video { max-width: 100%; height: auto; display: block; }
.bw-body svg { display: inline-block; vertical-align: middle; }

button, input, select, textarea { font: inherit; color: inherit; }
button { background: none; border: 0; padding: 0; }

h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }

/* ---------- base ---------- */

.bw-body {
	background-color: var(--bw-bg);
	color: var(--bw-text);
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	font-size: 16px;
	line-height: 1.6;
	letter-spacing: -.011em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
	transition: background-color .2s linear, color .2s linear;
}

.bw-body ::selection { background: var(--bw-accent); color: #fff; }

.bw-body a {
	color: var(--bw-text);
	text-decoration: none;
	transition: color .18s var(--bw-ease), opacity .18s var(--bw-ease);
}

.bw-body :focus-visible {
	outline: 2px solid var(--bw-accent);
	outline-offset: 2px;
	border-radius: 6px;
}

.bw-body p { margin: 0 0 1rem; }
.bw-body p:last-child { margin-bottom: 0; }
.bw-body h1, .bw-body h2, .bw-body h3,
.bw-body h4, .bw-body h5, .bw-body h6 { color: var(--bw-text); margin: 0; }

/* ---------- layout ---------- */

.bw-container {
	width: 100%;
	max-width: var(--bw-max);
	margin-inline: auto;
	padding-inline: 24px;
}

.bw-container-sm { max-width: 780px; }

.bw-section { position: relative; padding: clamp(64px, 9vw, 116px) 0; }
.bw-section-tight { padding: clamp(48px, 6vw, 72px) 0; }

.bw-hr {
	height: 1px;
	border: 0;
	margin: 0;
	background: linear-gradient(90deg, transparent, var(--bw-border) 20%, var(--bw-border) 80%, transparent);
}

.bw-grid { display: grid; gap: 16px; }
.bw-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bw-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bw-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 991.98px) {
	.bw-grid-3, .bw-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 639.98px) {
	.bw-grid-2, .bw-grid-3, .bw-grid-4 { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- tipografia ---------- */

.bw-display,
.bw-h1 {
	font-weight: 600;
	line-height: 1.04;
	letter-spacing: -.035em;
	background: linear-gradient(180deg, var(--bw-title-grad-a) 35%, var(--bw-title-grad-b) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.bw-display { font-size: clamp(2.5rem, 6.2vw, 4.25rem); }
.bw-h1      { font-size: clamp(2.125rem, 4.6vw, 3rem); }

.bw-h2 {
	font-size: clamp(1.75rem, 3.4vw, 2.5rem);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -.032em;
}

.bw-h3 {
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: -.014em;
}

.bw-lead {
	font-size: clamp(1.0625rem, 1.5vw, 1.1875rem);
	line-height: 1.62;
	color: var(--bw-text-dim);
	letter-spacing: -.008em;
}

.bw-eyebrow {
	display: block;
	font-size: .75rem;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bw-text-faint);
	margin-bottom: 14px;
}

.bw-muted  { color: var(--bw-text-dim); }
.bw-faint  { color: var(--bw-text-faint); }
.bw-small  { font-size: .875rem; }
.bw-smaller{ font-size: .8125rem; }
.bw-accent { color: var(--bw-accent-hi); }
.bw-measure{ max-width: 58ch; }
.bw-center { text-align: center; }
.bw-center .bw-lead,
.bw-center .bw-measure { margin-inline: auto; }

.bw-link-dim { color: var(--bw-text-dim) !important; }
.bw-link-dim:hover { color: var(--bw-text) !important; }

.bw-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: .9375rem;
	color: var(--bw-text-dim) !important;
}
.bw-link-arrow svg { transition: transform .2s var(--bw-ease); }
.bw-link-arrow:hover { color: var(--bw-text) !important; }
.bw-link-arrow:hover svg { transform: translateX(3px); }

/* ---------- badge ---------- */

.bw-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 5px 12px 5px 10px;
	border: 1px solid var(--bw-border);
	border-radius: 999px;
	background: var(--bw-surface-1);
	font-size: .8125rem;
	color: var(--bw-text-dim);
	letter-spacing: -.005em;
	backdrop-filter: blur(6px);
}

.bw-badge-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--bw-accent);
	box-shadow: 0 0 0 3px var(--bw-accent-soft);
	flex: none;
}

/* ---------- botões ---------- */

.bw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 38px;
	padding: 0 16px;
	border: 1px solid transparent;
	border-radius: 8px;
	font-size: .9375rem;
	font-weight: 500;
	letter-spacing: -.01em;
	white-space: nowrap;
	cursor: pointer;
	transition: transform .15s var(--bw-ease), background-color .18s var(--bw-ease),
	            border-color .18s var(--bw-ease), box-shadow .18s var(--bw-ease), color .18s var(--bw-ease);
}

.bw-btn:active { transform: translateY(1px); }

.bw-btn-lg { height: 46px; padding: 0 22px; font-size: 1rem; border-radius: 10px; }
.bw-btn-block { width: 100%; }

.bw-btn-primary {
	background: linear-gradient(180deg, #f4696d, #e5484d);
	color: #fff !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 8px 24px -12px rgba(229, 72, 77, .9);
}
.bw-btn-primary:hover {
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 12px 30px -12px rgba(229, 72, 77, 1);
	transform: translateY(-1px);
}

.bw-btn-light {
	background: var(--bw-invert-bg);
	color: var(--bw-invert-fg) !important;
	box-shadow: 0 8px 24px -16px rgba(9, 9, 11, .5);
}
.bw-btn-light:hover { background: var(--bw-invert-bg-h); transform: translateY(-1px); }

.bw-btn-ghost {
	background: var(--bw-surface-1);
	border-color: var(--bw-border);
	color: var(--bw-text) !important;
}
.bw-btn-ghost:hover { background: var(--bw-surface-2); border-color: var(--bw-border-strong); }

.bw-btn-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
}
.bw-center .bw-btn-row { justify-content: center; }

/* ---------- header ---------- */

.bw-header {
	position: sticky;
	top: 0;
	z-index: 1030;
	background: var(--bw-header-bg);
	backdrop-filter: blur(14px) saturate(160%);
	-webkit-backdrop-filter: blur(14px) saturate(160%);
	border-bottom: 1px solid var(--bw-border);
}

.bw-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	height: var(--bw-header-h);
}

.bw-nav-links {
	display: flex;
	align-items: center;
	gap: 2px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.bw-nav-links a {
	display: block;
	padding: 7px 12px;
	border-radius: 8px;
	font-size: .9375rem;
	color: var(--bw-text-dim) !important;
	letter-spacing: -.01em;
}
.bw-nav-links a:hover { color: var(--bw-text) !important; background: var(--bw-surface-1); }
.bw-nav-links .is-active a { color: var(--bw-text) !important; }

.bw-nav-actions { display: flex; align-items: center; gap: 10px; }

/* logotipo */
.bw-logo { display: inline-block; line-height: 1; }
.bw-logo-bar {
	display: block;
	width: 46px;
	height: 7px;
	margin-bottom: 8px;
	background: #e5484d;
	border-radius: 1px;
}
.bw-logo-name {
	display: block;
	font-size: 1.75rem;
	font-weight: 800;
	letter-spacing: -.035em;
	color: var(--bw-text);
}
.bw-logo-tag {
	display: block;
	margin-top: 6px;
	font-size: .6875rem;
	font-weight: 500;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--bw-text-faint);
}

/* logotipo grande (rodapé) */
.bw-logo-lg .bw-logo-bar  { width: 58px; height: 8px; }
.bw-logo-lg .bw-logo-name { font-size: 2.25rem; }
.bw-logo-lg .bw-logo-tag  { font-size: .75rem; }

@media (max-width: 575.98px) {
	.bw-logo-bar  { width: 38px; height: 6px; }
	.bw-logo-name { font-size: 1.5rem; }
	.bw-logo-tag  { font-size: .625rem; }
}

/* botão de ícone (tema / menu) */
.bw-icon-btn {
	display: inline-grid;
	place-items: center;
	width: 38px;
	height: 38px;
	flex: none;
	border: 1px solid var(--bw-border);
	border-radius: 8px;
	background: var(--bw-surface-1);
	color: var(--bw-text-dim);
	cursor: pointer;
	transition: color .18s var(--bw-ease), border-color .18s var(--bw-ease), background-color .18s var(--bw-ease);
}
.bw-icon-btn:hover { color: var(--bw-text); border-color: var(--bw-border-strong); background: var(--bw-surface-2); }

/* ícone sol/lua conforme o tema ativo
   (precisa de .bw-body na frente para vencer `.bw-body svg`) */
.bw-body .bw-icon-moon { display: inline-block; }
.bw-body .bw-icon-sun  { display: none; }
:root[data-theme="light"] .bw-body .bw-icon-moon { display: none; }
:root[data-theme="light"] .bw-body .bw-icon-sun  { display: inline-block; }

.bw-burger { display: none; }

/* menu mobile */
.bw-mobile-menu {
	display: none;
	border-top: 1px solid var(--bw-border);
	background: var(--bw-bg);
	padding: 12px 0 20px;
}
.bw-mobile-menu.is-open { display: block; }
.bw-mobile-menu ul { list-style: none; margin: 0 0 14px; padding: 0; }

/* Restrito a `ul a`: solto (`.bw-mobile-menu a`) esta regra também pegava o
   botão "Falar com um contador" do fim do menu, desmanchando o .bw-btn — ela
   tem especificidade maior e vencia até o `color: #fff !important` do
   .bw-btn-primary, deixando o texto cinza, à esquerda e fora do eixo. */
.bw-mobile-menu ul a {
	display: block;
	padding: 11px 4px;
	font-size: 1rem;
	color: var(--bw-text-dim) !important;
	border-bottom: 1px solid var(--bw-border);
}
.bw-mobile-menu ul a:hover,
.bw-mobile-menu ul .is-active a { color: var(--bw-text) !important; }

@media (max-width: 991.98px) {
	.bw-nav-links { display: none; }
	.bw-burger { display: inline-grid; }
	.bw-nav-actions .bw-btn-nav-cta { display: none; }
}

/* ---------- fundos decorativos ---------- */

.bw-hero {
	position: relative;
	overflow: hidden;
	padding-top: clamp(56px, 8vw, 96px);
	padding-bottom: clamp(56px, 8vw, 88px);
}

.bw-glow {
	position: absolute;
	inset: -20% -10% auto -10%;
	height: 720px;
	pointer-events: none;
	background:
		radial-gradient(58% 46% at 50% 12%, var(--bw-glow-1), transparent 70%),
		radial-gradient(40% 34% at 78% 0%, var(--bw-glow-2), transparent 70%);
	filter: blur(6px);
}

.bw-gridlines {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		linear-gradient(to right, var(--bw-grid-line) 1px, transparent 1px),
		linear-gradient(to bottom, var(--bw-grid-line) 1px, transparent 1px);
	background-size: 68px 68px;
	-webkit-mask-image: radial-gradient(ellipse 78% 62% at 50% 0%, #000 30%, transparent 78%);
	mask-image: radial-gradient(ellipse 78% 62% at 50% 0%, #000 30%, transparent 78%);
}

.bw-relative { position: relative; z-index: 1; }

/* cabeçalho de páginas internas */
.bw-pagehead {
	position: relative;
	overflow: hidden;
	padding: clamp(48px, 7vw, 88px) 0 clamp(36px, 5vw, 56px);
	border-bottom: 1px solid var(--bw-border);
}
.bw-pagehead .bw-glow { height: 460px; opacity: .8; }

/* ---------- cards ---------- */

.bw-card {
	position: relative;
	padding: 24px;
	border: 1px solid var(--bw-border);
	border-radius: var(--bw-radius-lg);
	background: linear-gradient(180deg, var(--bw-card-top), var(--bw-card-bottom));
	transition: border-color .22s var(--bw-ease), transform .22s var(--bw-ease), box-shadow .22s var(--bw-ease);
}

a.bw-card { display: block; }

.bw-card:hover {
	border-color: var(--bw-border-strong);
	transform: translateY(-2px);
	box-shadow: var(--bw-card-shadow);
}

.bw-card .bw-h3 { margin-bottom: 8px; }
.bw-card p { color: var(--bw-text-dim); font-size: .9375rem; }

.bw-card-icon {
	display: inline-grid;
	place-items: center;
	width: 38px;
	height: 38px;
	margin-bottom: 18px;
	border: 1px solid var(--bw-border);
	border-radius: 10px;
	background: var(--bw-surface-1);
	color: var(--bw-accent-hi);
}

.bw-card-plain {
	border: 1px solid var(--bw-border);
	border-radius: var(--bw-radius-lg);
	background: var(--bw-bg-elev);
	padding: 24px;
}

/* ---------- lista com check ---------- */

.bw-checklist { list-style: none; margin: 0; padding: 0; }
.bw-checklist li {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	padding: 7px 0;
	color: var(--bw-text-dim);
	font-size: .9375rem;
}
.bw-checklist li svg { flex: none; margin-top: 4px; color: var(--bw-accent-hi); }
.bw-checklist strong { color: var(--bw-text); font-weight: 500; }

/* ---------- passos ---------- */

.bw-step-num {
	display: inline-grid;
	place-items: center;
	width: 30px;
	height: 30px;
	margin-bottom: 16px;
	border: 1px solid var(--bw-border);
	border-radius: 8px;
	background: var(--bw-surface-1);
	font-size: .8125rem;
	font-weight: 600;
	color: var(--bw-text);
	font-variant-numeric: tabular-nums;
}

/* ---------- painel simulado (produto) ---------- */

.bw-panel {
	border: 1px solid var(--bw-border);
	border-radius: var(--bw-radius-lg);
	background: linear-gradient(180deg, var(--bw-panel-top), var(--bw-panel-bottom));
	box-shadow: var(--bw-panel-shadow);
	overflow: hidden;
}

.bw-panel-bar {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 12px 16px;
	border-bottom: 1px solid var(--bw-border);
	background: var(--bw-surface-1);
}
.bw-panel-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--bw-border-strong); }
.bw-panel-title {
	margin-left: 6px;
	font-size: .8125rem;
	color: var(--bw-text-faint);
	letter-spacing: -.005em;
}

.bw-panel-body { padding: 8px 16px 16px; }

.bw-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 13px 0;
	border-bottom: 1px solid var(--bw-border);
	font-size: .9375rem;
}
.bw-row:last-child { border-bottom: 0; }
.bw-row-label { display: flex; align-items: center; gap: 10px; min-width: 0; }
.bw-row-label span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bw-row-meta { color: var(--bw-text-faint); font-size: .8125rem; white-space: nowrap; }

.bw-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 9px;
	border: 1px solid var(--bw-border);
	border-radius: 999px;
	font-size: .75rem;
	color: var(--bw-text-dim);
	white-space: nowrap;
}
.bw-pill-dot { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.bw-pill-ok      { color: #30a46c; border-color: rgba(48, 164, 108, .32); background: rgba(48, 164, 108, .10); }
.bw-pill-warn    { color: #b98100; border-color: rgba(255, 197, 61, .34); background: rgba(255, 197, 61, .12); }
.bw-pill-neutral { color: var(--bw-text-dim); }

:root:not([data-theme="light"]) .bw-pill-ok   { color: #4cc38a; }
:root:not([data-theme="light"]) .bw-pill-warn { color: #ffc53d; }

/* barras de um "gráfico" */
.bw-bars { display: flex; align-items: flex-end; gap: 6px; height: 84px; margin-top: 6px; }
.bw-bars i {
	flex: 1;
	border-radius: 3px 3px 0 0;
	background: linear-gradient(180deg, rgba(229, 72, 77, .85), rgba(229, 72, 77, .18));
}

/* ---------- faixa de segmentos (marquee) ---------- */

.bw-marquee {
	position: relative;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.bw-marquee-track {
	display: flex;
	width: max-content;
	gap: 12px;
	animation: bw-scroll 38s linear infinite;
}
/* cada cópia da lista; a 2.ª só existe para fechar o loop */
.bw-marquee-set { display: contents; }
.bw-marquee:hover .bw-marquee-track { animation-play-state: paused; }
@keyframes bw-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

.bw-chip {
	padding: 8px 16px;
	border: 1px solid var(--bw-border);
	border-radius: 999px;
	background: var(--bw-surface-1);
	color: var(--bw-text-dim);
	font-size: .875rem;
	white-space: nowrap;
}

/* ---------- números ---------- */

.bw-stat-value {
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 600;
	letter-spacing: -.035em;
	line-height: 1.1;
	color: var(--bw-text);
}
.bw-stat-label { font-size: .875rem; color: var(--bw-text-dim); margin-top: 6px; }

/* ---------- FAQ ---------- */

.bw-faq { border-top: 1px solid var(--bw-border); }
.bw-faq-item { border-bottom: 1px solid var(--bw-border); }

.bw-faq-q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	width: 100%;
	padding: 20px 0;
	background: none;
	border: 0;
	text-align: left;
	color: var(--bw-text);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: -.014em;
	cursor: pointer;
}
.bw-faq-q svg { flex: none; color: var(--bw-text-dim); transition: transform .22s var(--bw-ease); }
.bw-faq-item.is-open .bw-faq-q svg { transform: rotate(45deg); }

.bw-faq-a {
	overflow: hidden;
	max-height: 0;
	transition: max-height .3s var(--bw-ease);
}
.bw-faq-a > div {
	padding: 0 0 22px;
	max-width: 68ch;
	color: var(--bw-text-dim);
	font-size: .9375rem;
}

/* ---------- CTA ---------- */

.bw-cta {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--bw-border);
	border-radius: 20px;
	background: linear-gradient(180deg, var(--bw-card-top), var(--bw-card-bottom));
	padding: clamp(32px, 5vw, 56px);
	text-align: center;
}
.bw-cta::before {
	content: "";
	position: absolute;
	inset: auto -20% -70% -20%;
	height: 320px;
	background: radial-gradient(50% 60% at 50% 100%, var(--bw-glow-1), transparent 70%);
	pointer-events: none;
}

/* ---------- formulário ---------- */

.bw-field { margin-bottom: 16px; }
.bw-label {
	display: block;
	margin-bottom: 7px;
	font-size: .8125rem;
	font-weight: 500;
	color: var(--bw-text-dim);
}
.bw-input,
.bw-textarea,
.bw-select {
	width: 100%;
	padding: 10px 13px;
	border: 1px solid var(--bw-border);
	border-radius: 9px;
	background: var(--bw-surface-1);
	color: var(--bw-text);
	font-family: inherit;
	font-size: .9375rem;
	transition: border-color .18s var(--bw-ease), background-color .18s var(--bw-ease);
}
.bw-textarea { min-height: 120px; resize: vertical; }
.bw-input::placeholder, .bw-textarea::placeholder { color: var(--bw-text-faint); }
.bw-input:focus, .bw-textarea:focus, .bw-select:focus {
	outline: none;
	border-color: var(--bw-border-strong);
	background: var(--bw-surface-2);
}
.bw-select option { background: var(--bw-bg-elev); color: var(--bw-text); }

/* armadilha de robô: precisa existir no DOM, mas nunca ser vista nem focável */
.bw-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* erro por campo */
.bw-erro {
	display: none;
	margin-top: 6px;
	font-size: .8125rem;
	color: #f4696d;
}
.bw-erro.is-visible { display: block; }
.bw-field.tem-erro .bw-input,
.bw-field.tem-erro .bw-textarea,
.bw-field.tem-erro .bw-select { border-color: #e5484d; }

/* aviso geral do formulário */
.bw-form-aviso {
	display: none;
	margin-top: 14px;
	padding: 12px 14px;
	border: 1px solid var(--bw-border);
	border-radius: 9px;
	font-size: .875rem;
	line-height: 1.5;
}
.bw-form-aviso.is-visible { display: block; }
.bw-form-aviso.is-ok {
	color: #30a46c;
	border-color: rgba(48, 164, 108, .32);
	background: rgba(48, 164, 108, .08);
}
.bw-form-aviso.is-erro {
	color: #f4696d;
	border-color: rgba(229, 72, 77, .32);
	background: rgba(229, 72, 77, .08);
}

.bw-form.is-enviando { opacity: .6; pointer-events: none; }

/* ---------- mapa ---------- */

.bw-map {
	border: 1px solid var(--bw-border);
	border-radius: var(--bw-radius-lg);
	overflow: hidden;
	line-height: 0;
}
.bw-map iframe { filter: var(--bw-map-filter); }

/* ---------- bloco de serviço (página interna) ---------- */

.bw-service {
	display: grid;
	grid-template-columns: 1fr 1.15fr;
	gap: clamp(24px, 4vw, 56px);
	padding: clamp(36px, 5vw, 56px) 0;
	border-bottom: 1px solid var(--bw-border);
	scroll-margin-top: calc(var(--bw-header-h) + 24px);
}
.bw-service:last-child { border-bottom: 0; }
@media (max-width: 767.98px) { .bw-service { grid-template-columns: 1fr; } }

/* ---------- footer ---------- */

.bw-footer {
	position: relative;
	border-top: 1px solid var(--bw-border);
	background: var(--bw-bg-soft);
	padding: clamp(48px, 7vw, 76px) 0 0;
}

.bw-footer-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
	gap: 40px 32px;
}
@media (max-width: 991.98px) { .bw-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) { .bw-footer-grid { grid-template-columns: 1fr; } }

.bw-footer-title {
	font-size: .75rem;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--bw-text-faint);
	margin-bottom: 16px;
}

.bw-footer-list { list-style: none; margin: 0; padding: 0; }
.bw-footer-list li { margin-bottom: 10px; font-size: .9375rem; color: var(--bw-text-dim); }
.bw-footer-list a { color: var(--bw-text-dim) !important; }
.bw-footer-list a:hover { color: var(--bw-text) !important; }

.bw-footer-bottom {
	margin-top: clamp(40px, 6vw, 64px);
	border-top: 1px solid var(--bw-border);
	padding: 22px 0 28px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	align-items: center;
	justify-content: space-between;
	font-size: .8125rem;
	color: var(--bw-text-faint);
}

/* botão flutuante do WhatsApp */
.bw-wa-float {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 1040;
	display: inline-grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: #25d366;
	color: #06240f !important;
	box-shadow: 0 12px 30px -10px rgba(37, 211, 102, .7);
	transition: transform .2s var(--bw-ease);
}
.bw-wa-float:hover { transform: translateY(-3px) scale(1.04); }

/* ---------- animações de entrada ---------- */

[data-reveal] {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .7s var(--bw-ease), transform .7s var(--bw-ease);
	transition-delay: var(--bw-delay, 0ms);
}
[data-reveal].is-visible { opacity: 1; transform: none; }

/* Movimento reduzido (inclui "animações do Windows" desligadas):
   mantemos o fade — que não desloca nada na tela — e trocamos o
   deslize contínuo da faixa por uma lista estática em várias linhas. */
@media (prefers-reduced-motion: reduce) {
	[data-reveal] { transform: none; transition: opacity .45s linear; transition-delay: 0ms; }

	.bw-marquee { -webkit-mask-image: none; mask-image: none; }
	.bw-marquee-track {
		animation: none;
		width: 100%;
		flex-wrap: wrap;
		justify-content: center;
		row-gap: 10px;
	}
	.bw-marquee-set + .bw-marquee-set { display: none; }

	html { scroll-behavior: auto; }
}

/* Pré-visualização: força o movimento mesmo com movimento reduzido ativo.
   Ligado pela barra de diagnóstico local (só existe em ambiente de dev). */
:root.bw-force-motion [data-reveal] {
	transform: translateY(14px);
	transition: opacity .7s var(--bw-ease), transform .7s var(--bw-ease);
	transition-delay: var(--bw-delay, 0ms);
}
:root.bw-force-motion [data-reveal].is-visible { transform: none; }
:root.bw-force-motion .bw-marquee {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
:root.bw-force-motion .bw-marquee-track {
	width: max-content;
	flex-wrap: nowrap;
	animation: bw-scroll 38s linear infinite;
}
:root.bw-force-motion .bw-marquee-set + .bw-marquee-set { display: contents; }

/* ---------- barra de diagnóstico (apenas ambiente local) ---------- */

.bw-diag {
	border-top: 1px solid var(--bw-border);
	background: var(--bw-bg);
	padding: 10px 0;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12px;
	color: var(--bw-text-faint);
}
.bw-diag-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 18px;
}
.bw-diag b { font-weight: 500; color: var(--bw-text-dim); }
.bw-diag-warn { color: var(--bw-accent-hi); }
.bw-diag button {
	border: 1px solid var(--bw-border);
	border-radius: 6px;
	padding: 3px 10px;
	font: inherit;
	color: var(--bw-text-dim);
	cursor: pointer;
}
.bw-diag button:hover { color: var(--bw-text); border-color: var(--bw-border-strong); }

/* ---------- utilitários ---------- */
/* prefixadas com .bw-body para vencerem o reset de margem de p/h* */

/* espaçamento vertical entre blocos irmãos (páginas de texto) */
.bw-body .bw-stack-lg > * + * { margin-top: 34px; }

.bw-body .bw-mt-1 { margin-top: 8px; }
.bw-body .bw-mt-2 { margin-top: 16px; }
.bw-body .bw-mt-3 { margin-top: 24px; }
.bw-body .bw-mt-4 { margin-top: 32px; }
.bw-body .bw-mt-5 { margin-top: 48px; }
.bw-body .bw-mb-2 { margin-bottom: 16px; }
.bw-body .bw-mb-3 { margin-bottom: 24px; }
.bw-body .bw-mb-4 { margin-bottom: 32px; }
.bw-body .bw-mb-5 { margin-bottom: 48px; }

.bw-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(32px, 5vw, 64px);
	align-items: center;
}
@media (max-width: 991.98px) { .bw-split { grid-template-columns: 1fr; } }

.bw-hide-md { display: initial; }
@media (max-width: 767.98px) { .bw-hide-md { display: none !important; } }
