/* ============================================================
   NWI Data Center Toolkit — Design System & Animações
   Marca: navy #1a2b4a · cyan #00c8d7 · cyan-dark #0099a8
   Fontes: Montserrat (display) · Inter (texto)
   ============================================================ */

:root {
	--nwi-navy: #1a2b4a;
	--nwi-navy-deep: #101d35;
	--nwi-navy-soft: #24375c;
	--nwi-cyan: #00c8d7;
	--nwi-cyan-dark: #0099a8;
	--nwi-cyan-glow: rgba(0, 200, 215, 0.35);
	--nwi-light: #f4f7fb;
	--nwi-white: #ffffff;
	--nwi-ink: #16233d;
	--nwi-muted: #5d6b85;
	--nwi-border: #e3e9f2;
	--nwi-font-display: 'Montserrat', sans-serif;
	--nwi-font-sans: 'Inter', sans-serif;
	--nwi-radius: 18px;
	--nwi-shadow: 0 18px 45px -18px rgba(16, 29, 53, 0.25);
	--nwi-shadow-lg: 0 30px 70px -25px rgba(16, 29, 53, 0.4);
	--nwi-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Tipografia do TEMA (fonte/cor/títulos) só é reescrita quando o plugin está
   no comando do site (chrome ligado = classe nwi-core-chrome no body). Assim,
   num site cliente que usa só os blocos, o tema NÃO é alterado. */
body.nwi-core-chrome {
	font-family: var(--nwi-font-sans);
	color: var(--nwi-ink);
	-webkit-font-smoothing: antialiased;
}
body.nwi-core-chrome h1, body.nwi-core-chrome h2, body.nwi-core-chrome h3,
body.nwi-core-chrome h4, body.nwi-core-chrome h5, body.nwi-core-chrome h6 {
	font-family: var(--nwi-font-display);
	letter-spacing: -0.01em;
}
.nwi-display { font-family: var(--nwi-font-display); letter-spacing: -0.01em; }

/* Os BLOCOS carregam a tipografia do design system localmente (independe do
   tema e do chrome), sem vazar para o resto da página. :where() = 0 de
   especificidade, então só preenche o que o próprio bloco não define. */
.nwi-calc, .nwi-conf, .nwi-hero, .nwi-cta-band, .nwi-plan, .nwi-table,
.nwi-sechead, .nwi-header, .nwi-footer, [class*="elementor-widget-nwi_"] {
	font-family: var(--nwi-font-sans);
}
.nwi-calc :where(h1, h2, h3, h4, h5, h6),
.nwi-conf :where(h1, h2, h3, h4, h5, h6),
.nwi-hero :where(h1, h2, h3, h4, h5, h6),
.nwi-cta-band :where(h1, h2, h3, h4, h5, h6),
.nwi-plan :where(h1, h2, h3, h4, h5, h6),
[class*="elementor-widget-nwi_"] :where(h1, h2, h3, h4, h5, h6) {
	font-family: var(--nwi-font-display);
}

/* ------------------------------------------------------------
   Animações de entrada (scroll reveal)
   Elementos com .nwi-reveal ganham .is-visible via JS
   ------------------------------------------------------------ */
.nwi-reveal {
	opacity: 0;
	transform: translateY(34px);
	transition: opacity 0.9s var(--nwi-ease), transform 0.9s var(--nwi-ease);
	will-change: opacity, transform;
}
.nwi-reveal.nwi-reveal--left  { transform: translateX(-40px); }
.nwi-reveal.nwi-reveal--right { transform: translateX(40px); }
.nwi-reveal.nwi-reveal--zoom  { transform: scale(0.92); }
.nwi-reveal.is-visible {
	opacity: 1;
	transform: none;
}
.nwi-delay-1 { transition-delay: 0.12s; }
.nwi-delay-2 { transition-delay: 0.24s; }
.nwi-delay-3 { transition-delay: 0.36s; }
.nwi-delay-4 { transition-delay: 0.48s; }
.nwi-delay-5 { transition-delay: 0.60s; }

@media (prefers-reduced-motion: reduce) {
	.nwi-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
	.nwi-hero-orb, .nwi-float, .nwi-svg-anim * { animation: none !important; }
}

/* ------------------------------------------------------------
   Header / Navegação
   ------------------------------------------------------------ */
.nwi-header {
	position: sticky;
	top: 0;
	z-index: 999;
	background: rgba(26, 43, 74, 0.85);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	transition: background 0.4s ease, box-shadow 0.4s ease;
}
.nwi-header.is-scrolled {
	background: rgba(16, 29, 53, 0.97);
	box-shadow: 0 10px 35px -15px rgba(0, 0, 0, 0.55);
}
.nwi-nav {
	max-width: 1240px;
	margin: 0 auto;
	padding: 16px 28px;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0;
}
.nwi-logo {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--nwi-font-display);
	font-weight: 900;
	font-size: 24px;
	color: #fff;
	text-decoration: none !important;
	line-height: 1;
}
.nwi-logo span { color: var(--nwi-cyan); }
.nwi-logo svg { display: block; }
.nwi-menu {
	display: flex;
	align-items: center;
	gap: 6px;
	list-style: none;
	margin: 0;
	margin-left: auto; /* empurra o menu (e o botão) para a direita; logo+marca ficam à esquerda */
	padding: 0;
}
.nwi-menu a {
	display: block;
	padding: 9px 14px;
	border-radius: 10px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 14.5px;
	font-weight: 600;
	text-decoration: none !important;
	transition: color 0.25s ease, background 0.25s ease;
	white-space: nowrap;
}
.nwi-menu a:hover {
	color: #fff;
	background: rgba(0, 200, 215, 0.14);
}
.nwi-burger {
	display: none;
	margin-left: auto; /* no mobile o burger vai para a direita */
	background: transparent;
	border: 0;
	cursor: pointer;
	padding: 9px;
	border-radius: 10px; /* "quadrado" do ícone (fundo personalizável no Estilo) */
	transition: background-color 0.25s ease;
}
.nwi-burger span {
	display: block;
	width: 24px;
	height: 2px;
	margin: 5px 0;
	background: #fff;
	border-radius: 2px;
	transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
}
@media (max-width: 992px) {
	.nwi-burger { display: block; position: relative; z-index: 1500; }
	/* Dropdown ABAIXO da linha do header (top:100%): nunca cobre a logo.
	   Abre DE CIMA PARA BAIXO desdobrando (max-height 0 → aberto). */
	.nwi-menu {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		box-sizing: border-box;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		margin: 0;
		background: var(--nwi-navy-deep, #101d35); /* fallback: nunca fica branco */
		padding: 0 20px;            /* padding vertical entra só quando aberto (abaixo) */
		display: flex;
		max-height: 0;
		opacity: 0;
		overflow: hidden;
		transition: max-height 0.34s var(--nwi-ease), opacity 0.24s ease, padding 0.34s var(--nwi-ease);
		border-bottom: 0 solid rgba(255, 255, 255, 0.08);
		box-shadow: 0 26px 50px rgba(0, 0, 0, 0.35);
		z-index: 1400;
	}
	.nwi-menu.is-open {
		max-height: calc(100vh - 64px);
		opacity: 1;
		overflow-y: auto;
		padding: 10px 20px 20px;
		border-bottom-width: 1px;
	}
	/* a LINHA inteira é clicável (texto + seta abrem o submenu) */
	.nwi-menu > li { width: 100%; margin-left: 0 !important; }
	.nwi-menu > li > .nwi-menu__link { display: flex; align-items: center; justify-content: space-between; width: 100%; }
	.nwi-header.menu-open .nwi-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.nwi-header.menu-open .nwi-burger span:nth-child(2) { opacity: 0; }
	.nwi-header.menu-open .nwi-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}

/* ------------------------------------------------------------
   Botões
   ------------------------------------------------------------ */
.nwi-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 15px 32px;
	/* border-box: com width:100% (modal, formulário, resumo) o padding entra na
	   conta e o botão NÃO estoura a caixa. */
	box-sizing: border-box;
	max-width: 100%;
	border-radius: 14px;
	font-family: var(--nwi-font-display);
	font-weight: 700;
	font-size: 15.5px;
	text-decoration: none !important;
	cursor: pointer;
	border: 0;
	position: relative;
	overflow: hidden;
	transition: transform 0.3s var(--nwi-ease), box-shadow 0.3s var(--nwi-ease);
}
.nwi-btn--primary {
	background: linear-gradient(120deg, var(--nwi-cyan) 0%, var(--nwi-cyan-dark) 100%);
	color: var(--nwi-navy-deep);
	box-shadow: 0 14px 30px -12px var(--nwi-cyan-glow);
}
.nwi-btn--primary:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 40px -14px var(--nwi-cyan-glow);
	color: var(--nwi-navy-deep);
}
.nwi-btn--primary::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, 0.45) 50%, transparent 70%);
	transform: translateX(-120%);
	transition: transform 0.7s ease;
}
.nwi-btn--primary:hover::after { transform: translateX(120%); }
.nwi-btn--ghost {
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.25);
	backdrop-filter: blur(6px);
}
.nwi-btn--ghost:hover {
	transform: translateY(-3px);
	border-color: var(--nwi-cyan);
	color: var(--nwi-cyan);
}
.nwi-btn--dark {
	background: var(--nwi-navy);
	color: #fff;
}
.nwi-btn--dark:hover { transform: translateY(-3px); box-shadow: var(--nwi-shadow); }

/* ------------------------------------------------------------
   Botão "motion" — círculo ciano cresce da esquerda no hover,
   seta desliza e o texto inverte de cor. Usado nos CTAs do Hero.
   Efeito 100% CSS; a marcação vem de nwi_motion_btn_inner().
   ------------------------------------------------------------ */
.nwi-btn--motion {
	justify-content: flex-start;
	gap: 0;
	min-width: 172px;
	/* espaço à esquerda para o círculo em repouso; à direita, respiro da pílula */
	padding: 7px 28px 7px 62px;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(0, 200, 215, 0.55);
	border-radius: 999px;
	box-shadow: none;
	isolation: isolate;
}
/* mata o "brilho" herdado de .nwi-btn--primary::after */
.nwi-btn--motion::after { display: none !important; }
.nwi-btn--motion:hover {
	transform: none;
	box-shadow: 0 18px 34px -16px var(--nwi-cyan-glow);
	color: #fff;
}
/* círculo absoluto: cresce sem empurrar o texto (rótulos de qualquer tamanho) */
.nwi-btn__circle {
	position: absolute;
	left: 7px;
	top: 50%;
	z-index: 0;
	width: 46px;
	height: 46px;
	transform: translateY(-50%);
	border-radius: 999px;
	background: linear-gradient(120deg, var(--nwi-cyan) 0%, var(--nwi-cyan-dark) 100%);
	transition: width 0.5s var(--nwi-ease);
}
.nwi-btn--motion:hover .nwi-btn__circle { width: calc(100% - 14px); }
.nwi-btn__icon {
	position: absolute;
	left: 22px;
	top: 50%;
	z-index: 2;
	display: inline-flex;
	transform: translateY(-50%);
	color: var(--nwi-navy-deep);
	transition: transform 0.5s var(--nwi-ease);
}
.nwi-btn--motion:hover .nwi-btn__icon { transform: translate(6px, -50%); }
.nwi-btn__icon svg { width: 22px; height: 22px; display: block; }
.nwi-btn__label {
	position: relative;
	z-index: 1;
	color: #fff;
	white-space: nowrap;
	transition: color 0.5s var(--nwi-ease);
}
.nwi-btn--motion:hover .nwi-btn__label { color: var(--nwi-navy-deep); }

/* ------------------------------------------------------------
   Hero
   ------------------------------------------------------------ */
.nwi-hero-bg {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(1100px 500px at 80% -10%, rgba(0, 200, 215, 0.18), transparent 60%),
		radial-gradient(900px 500px at 10% 110%, rgba(0, 153, 168, 0.14), transparent 60%),
		linear-gradient(160deg, var(--nwi-navy-deep) 0%, var(--nwi-navy) 55%, #14294e 100%);
}
.nwi-hero-grid::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
	background-size: 56px 56px;
	mask-image: radial-gradient(ellipse 90% 70% at 50% 40%, #000 30%, transparent 75%);
	-webkit-mask-image: radial-gradient(ellipse 90% 70% at 50% 40%, #000 30%, transparent 75%);
	pointer-events: none;
}
.nwi-hero-orb {
	position: absolute;
	border-radius: 50%;
	filter: blur(70px);
	opacity: 0.5;
	pointer-events: none;
	animation: nwiOrb 12s ease-in-out infinite alternate;
}
@keyframes nwiOrb {
	from { transform: translate3d(0, 0, 0) scale(1); }
	to   { transform: translate3d(40px, -35px, 0) scale(1.15); }
}
.nwi-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 18px;
	border-radius: 999px;
	background: rgba(0, 200, 215, 0.12);
	border: 1px solid rgba(0, 200, 215, 0.35);
	color: var(--nwi-cyan);
	font-family: var(--nwi-font-display);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.nwi-badge--dark {
	background: rgba(26, 43, 74, 0.07);
	border-color: rgba(26, 43, 74, 0.18);
	color: var(--nwi-navy);
}
.nwi-badge .nwi-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--nwi-cyan);
	animation: nwiPulse 1.8s ease-in-out infinite;
}
@keyframes nwiPulse {
	0%, 100% { box-shadow: 0 0 0 0 var(--nwi-cyan-glow); }
	55%      { box-shadow: 0 0 0 9px rgba(0, 200, 215, 0); }
}

/* Texto com gradiente animado */
.nwi-gradient-text {
	background: linear-gradient(90deg, var(--nwi-cyan), #6ee7f0, var(--nwi-cyan));
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--nwi-cyan);
	animation: nwiShine 5s linear infinite;
}
@keyframes nwiShine {
	to { background-position: 200% center; }
}

/* Flutuação suave de ilustrações */
.nwi-float { animation: nwiFloat 7s ease-in-out infinite; }
.nwi-float--slow { animation-duration: 10s; }
@keyframes nwiFloat {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-16px); }
}

/* ------------------------------------------------------------
   Animações internas das ilustrações SVG (.nwi-svg-anim)
   ------------------------------------------------------------ */
.nwi-svg-anim .blink        { animation: nwiBlink 2.2s ease-in-out infinite; }
.nwi-svg-anim .blink.d2     { animation-delay: 0.5s; }
.nwi-svg-anim .blink.d3     { animation-delay: 1.1s; }
.nwi-svg-anim .blink.d4     { animation-delay: 1.6s; }
@keyframes nwiBlink {
	0%, 100% { opacity: 1; }
	50%      { opacity: 0.15; }
}
.nwi-svg-anim .flow {
	stroke-dasharray: 6 10;
	animation: nwiFlow 1.6s linear infinite;
}
.nwi-svg-anim .flow.slow { animation-duration: 2.8s; }
@keyframes nwiFlow {
	to { stroke-dashoffset: -32; }
}
.nwi-svg-anim .radar {
	transform-origin: center;
	animation: nwiSpin 6s linear infinite;
}
@keyframes nwiSpin { to { transform: rotate(360deg); } }
.nwi-svg-anim .ring {
	transform-origin: center;
	animation: nwiRing 3s ease-out infinite;
	opacity: 0;
}
.nwi-svg-anim .ring.d2 { animation-delay: 1s; }
.nwi-svg-anim .ring.d3 { animation-delay: 2s; }
@keyframes nwiRing {
	0%   { transform: scale(0.4); opacity: 0.8; }
	100% { transform: scale(1.6); opacity: 0; }
}
.nwi-svg-anim .barload {
	transform-origin: left center;
	animation: nwiBar 3.4s ease-in-out infinite;
}
.nwi-svg-anim .barload.d2 { animation-delay: 0.6s; }
.nwi-svg-anim .barload.d3 { animation-delay: 1.2s; }
@keyframes nwiBar {
	0%, 100% { transform: scaleX(0.45); }
	50%      { transform: scaleX(1); }
}

/* ------------------------------------------------------------
   Cards de solução
   ------------------------------------------------------------ */
.nwi-card {
	background: #fff;
	border: 1px solid var(--nwi-border);
	border-radius: var(--nwi-radius);
	padding: 34px 30px;
	height: 100%;
	position: relative;
	overflow: hidden;
	transition: transform 0.45s var(--nwi-ease), box-shadow 0.45s var(--nwi-ease), border-color 0.45s;
}
.nwi-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--nwi-cyan), var(--nwi-cyan-dark));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.5s var(--nwi-ease);
}
.nwi-card:hover {
	transform: translateY(-10px);
	box-shadow: var(--nwi-shadow-lg);
	border-color: rgba(0, 200, 215, 0.45);
}
.nwi-card:hover::before { transform: scaleX(1); }
.nwi-card__icon {
	width: 58px;
	height: 58px;
	border-radius: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, rgba(0, 200, 215, 0.14), rgba(0, 153, 168, 0.1));
	margin-bottom: 20px;
	transition: transform 0.45s var(--nwi-ease);
}
.nwi-card:hover .nwi-card__icon { transform: scale(1.1) rotate(-4deg); }
.nwi-card__badge {
	position: absolute;
	top: 20px;
	right: 20px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nwi-cyan-dark);
	background: rgba(0, 200, 215, 0.12);
	padding: 5px 12px;
	border-radius: 999px;
}
.nwi-card h3 {
	font-size: 21px;
	font-weight: 800;
	color: var(--nwi-navy);
	margin: 0 0 10px;
}
.nwi-card p {
	color: var(--nwi-muted);
	font-size: 15px;
	line-height: 1.65;
	margin: 0 0 18px;
}
.nwi-card ul {
	list-style: none;
	margin: 0 0 22px;
	padding: 0;
}
.nwi-card ul li {
	position: relative;
	padding: 5px 0 5px 26px;
	font-size: 14px;
	color: var(--nwi-ink);
	font-weight: 500;
}
.nwi-card ul li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 10px;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: rgba(0, 200, 215, 0.15) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230099a8' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/9px no-repeat;
}
.nwi-card .nwi-card__cta {
	font-family: var(--nwi-font-display);
	font-weight: 700;
	font-size: 14.5px;
	color: var(--nwi-cyan-dark);
	text-decoration: none !important;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.nwi-card .nwi-card__cta::after {
	content: '→';
	transition: transform 0.3s var(--nwi-ease);
}
.nwi-card:hover .nwi-card__cta::after { transform: translateX(6px); }

/* Cards escuros (sobre fundo navy) */
.nwi-card--dark {
	background: rgba(255, 255, 255, 0.045);
	border-color: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(8px);
}
.nwi-card--dark h3 { color: #fff; }
.nwi-card--dark p { color: rgba(255, 255, 255, 0.65); }
.nwi-card--dark ul li { color: rgba(255, 255, 255, 0.85); }
.nwi-card--dark:hover { border-color: rgba(0, 200, 215, 0.5); box-shadow: 0 30px 70px -25px rgba(0, 0, 0, 0.6); }

/* ------------------------------------------------------------
   Estatísticas / contadores
   ------------------------------------------------------------ */
.nwi-stat {
	text-align: center;
	padding: 10px;
}
.nwi-stat__num {
	font-family: var(--nwi-font-display);
	font-size: clamp(38px, 5vw, 56px);
	font-weight: 900;
	color: #fff;
	line-height: 1.05;
}
.nwi-stat__num .unit { color: var(--nwi-cyan); font-size: 0.6em; font-weight: 800; }
.nwi-stat__label {
	margin-top: 8px;
	color: rgba(255, 255, 255, 0.6);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.02em;
}
.nwi-stat--light .nwi-stat__num { color: var(--nwi-navy); }
.nwi-stat--light .nwi-stat__label { color: var(--nwi-muted); }

/* ------------------------------------------------------------
   Tabela de preços / planos
   ------------------------------------------------------------ */
.nwi-price-card {
	background: #fff;
	border: 1px solid var(--nwi-border);
	border-radius: 22px;
	padding: 38px 32px;
	height: 100%;
	position: relative;
	display: flex;
	flex-direction: column;
	transition: transform 0.45s var(--nwi-ease), box-shadow 0.45s var(--nwi-ease), border-color 0.45s;
}
.nwi-price-card:hover {
	transform: translateY(-10px);
	box-shadow: var(--nwi-shadow-lg);
}
.nwi-price-card.featured {
	background: linear-gradient(165deg, var(--nwi-navy-deep), var(--nwi-navy) 70%);
	border: 1px solid rgba(0, 200, 215, 0.5);
	box-shadow: 0 30px 70px -25px rgba(0, 153, 168, 0.45);
}
.nwi-price-card.featured::after {
	content: attr(data-flag);
	position: absolute;
	top: -14px;
	left: 50%;
	transform: translateX(-50%);
	background: linear-gradient(120deg, var(--nwi-cyan), var(--nwi-cyan-dark));
	color: var(--nwi-navy-deep);
	font-family: var(--nwi-font-display);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	padding: 7px 18px;
	border-radius: 999px;
	white-space: nowrap;
}
.nwi-price-card h3 {
	font-size: 20px;
	font-weight: 800;
	color: var(--nwi-navy);
	margin: 0 0 4px;
}
.nwi-price-card .nwi-price-desc {
	font-size: 13.5px;
	color: var(--nwi-muted);
	margin: 0 0 20px;
	min-height: 40px;
}
.nwi-price-card .nwi-price {
	font-family: var(--nwi-font-display);
	font-weight: 900;
	font-size: 42px;
	color: var(--nwi-navy);
	line-height: 1;
	margin-bottom: 4px;
}
.nwi-price-card .nwi-price small {
	font-size: 15px;
	font-weight: 600;
	color: var(--nwi-muted);
}
.nwi-price-card .nwi-price .cur { font-size: 20px; vertical-align: super; margin-right: 2px; }
.nwi-price-card ul {
	list-style: none;
	padding: 0;
	margin: 22px 0 26px;
	flex: 1;
}
.nwi-price-card ul li {
	position: relative;
	padding: 7px 0 7px 28px;
	font-size: 14px;
	color: var(--nwi-ink);
	border-bottom: 1px dashed var(--nwi-border);
}
.nwi-price-card ul li:last-child { border-bottom: 0; }
.nwi-price-card ul li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 9px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: rgba(0, 200, 215, 0.15) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230099a8' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/9px no-repeat;
}
.nwi-price-card.featured h3,
.nwi-price-card.featured .nwi-price { color: #fff; }
.nwi-price-card.featured .nwi-price-desc { color: rgba(255, 255, 255, 0.6); }
.nwi-price-card.featured ul li { color: rgba(255, 255, 255, 0.88); border-color: rgba(255, 255, 255, 0.12); }

/* Tabelas (Bare Metal) */
.nwi-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--nwi-border);
	border-radius: var(--nwi-radius);
	background: #fff;
	box-shadow: var(--nwi-shadow);
}
table.nwi-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	min-width: 760px;
}
.nwi-table thead th {
	background: var(--nwi-navy);
	color: #fff;
	font-family: var(--nwi-font-display);
	font-size: 12.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 15px 18px;
	text-align: left;
	white-space: nowrap;
}
.nwi-table tbody td {
	padding: 15px 18px;
	border-bottom: 1px solid var(--nwi-border);
	color: var(--nwi-ink);
	vertical-align: middle;
}
.nwi-table tbody tr { transition: background 0.25s ease, transform 0.25s ease; }
.nwi-table tbody tr:hover { background: rgba(0, 200, 215, 0.05); }
.nwi-table tbody tr:last-child td { border-bottom: 0; }
.nwi-table .plan-name { font-family: var(--nwi-font-display); font-weight: 800; color: var(--nwi-navy); }
.nwi-table .plan-price { font-family: var(--nwi-font-display); font-weight: 800; color: var(--nwi-cyan-dark); font-size: 16px; white-space: nowrap; }
.nwi-table .plan-price small { font-weight: 600; color: var(--nwi-muted); font-size: 12px; }
.nwi-table .tag {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	color: var(--nwi-cyan-dark);
	background: rgba(0, 200, 215, 0.11);
	padding: 3px 9px;
	border-radius: 999px;
	margin: 2px 3px 2px 0;
	white-space: nowrap;
}
.nwi-table .hl {
	display: inline-block;
	font-size: 11px;
	font-weight: 800;
	color: #fff;
	background: linear-gradient(120deg, var(--nwi-cyan-dark), var(--nwi-navy-soft));
	padding: 4px 10px;
	border-radius: 999px;
	margin-left: 8px;
	white-space: nowrap;
}

/* ------------------------------------------------------------
   FAQ (accordion)
   ------------------------------------------------------------ */
.nwi-faq { max-width: 860px; margin: 0 auto; }
.nwi-faq details {
	background: #fff;
	border: 1px solid var(--nwi-border);
	border-radius: 16px;
	margin-bottom: 14px;
	overflow: hidden;
	transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.nwi-faq details[open] {
	border-color: rgba(0, 200, 215, 0.5);
	box-shadow: var(--nwi-shadow);
}
.nwi-faq summary {
	cursor: pointer;
	list-style: none;
	padding: 20px 56px 20px 24px;
	font-family: var(--nwi-font-display);
	font-weight: 700;
	font-size: 16px;
	color: var(--nwi-navy);
	position: relative;
}
.nwi-faq summary::-webkit-details-marker { display: none; }
.nwi-faq summary::after {
	content: '+';
	position: absolute;
	right: 22px;
	top: 50%;
	transform: translateY(-50%);
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: rgba(0, 200, 215, 0.12);
	color: var(--nwi-cyan-dark);
	font-size: 19px;
	font-weight: 600;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.35s var(--nwi-ease), background 0.3s;
}
.nwi-faq details[open] summary::after {
	transform: translateY(-50%) rotate(45deg);
	background: var(--nwi-cyan);
	color: var(--nwi-navy-deep);
}
.nwi-faq .faq-body {
	padding: 0 24px 22px;
	color: var(--nwi-muted);
	font-size: 15px;
	line-height: 1.7;
}

/* ------------------------------------------------------------
   Calculadora VPS
   ------------------------------------------------------------ */
.nwi-calc {
	background: #fff;
	border: 1px solid var(--nwi-border);
	border-radius: 26px;
	box-shadow: var(--nwi-shadow-lg);
	overflow: hidden;
	display: grid;
	grid-template-columns: 1.5fr 1fr;
}
@media (max-width: 960px) {
	.nwi-calc { grid-template-columns: 1fr; }
}
.nwi-calc__config { padding: 40px 38px; }
.nwi-calc__config h3 {
	font-size: 22px;
	font-weight: 800;
	color: var(--nwi-navy);
	margin: 0 0 6px;
}
.nwi-calc__config > p { color: var(--nwi-muted); font-size: 14px; margin: 0 0 28px; }
.nwi-calc .field { margin-bottom: 26px; }
/* Texto descritivo (tipo de campo "descricao"): explicação, sem input. */
.nwi-calc .nwi-conf-desc {
	display: block;
	font-size: 13.5px;
	line-height: 1.55;
	color: #3a4a63;
	background: rgba(0, 200, 215, .08);
	border: 1px solid rgba(0, 200, 215, .28);
	border-left: 3px solid var(--nwi-cyan-dark);
	border-radius: 10px;
	padding: 12px 14px;
}
.nwi-calc .nwi-conf-desc__t {
	display: block;
	font-weight: 800;
	font-family: var(--nwi-font-display);
	color: var(--nwi-navy);
	margin-bottom: 3px;
}
.nwi-calc .field > label {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-family: var(--nwi-font-display);
	font-weight: 700;
	font-size: 14px;
	color: var(--nwi-navy);
	margin-bottom: 12px;
}
.nwi-calc .field > label output {
	color: var(--nwi-cyan-dark);
	font-size: 16px;
	font-weight: 800;
}
.nwi-calc input[type='range'] {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 8px;
	border-radius: 99px;
	background: linear-gradient(90deg, var(--nwi-cyan) var(--fill, 20%), #e6ecf5 var(--fill, 20%));
	outline: none;
	cursor: pointer;
}
.nwi-calc input[type='range']::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #fff;
	border: 3px solid var(--nwi-cyan-dark);
	box-shadow: 0 4px 12px rgba(0, 153, 168, 0.4);
	transition: transform 0.2s ease;
}
.nwi-calc input[type='range']::-webkit-slider-thumb:hover { transform: scale(1.15); }
.nwi-calc input[type='range']::-moz-range-thumb {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	border: 3px solid var(--nwi-cyan-dark);
	box-shadow: 0 4px 12px rgba(0, 153, 168, 0.4);
}
.nwi-calc .opts {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.nwi-calc .opts button {
	flex: 1 1 auto;
	min-width: 110px;
	background: var(--nwi-light);
	border: 1.5px solid var(--nwi-border);
	border-radius: 12px;
	padding: 12px 14px;
	font-family: var(--nwi-font-sans);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--nwi-ink);
	cursor: pointer;
	transition: all 0.25s ease;
	text-align: center;
}
.nwi-calc .opts button small { display: block; font-weight: 500; color: var(--nwi-muted); font-size: 11.5px; margin-top: 3px; }
.nwi-calc .opts button:hover { border-color: var(--nwi-cyan); transform: translateY(-2px); }
.nwi-calc .opts button.on {
	background: rgba(0, 200, 215, 0.1);
	border-color: var(--nwi-cyan-dark);
	color: var(--nwi-cyan-dark);
	box-shadow: 0 6px 16px -8px var(--nwi-cyan-glow);
}
.nwi-calc .opts button.on small { color: var(--nwi-cyan-dark); }
/* Campo de texto livre (contexto do cliente) — segue o visual dos botões de opção. */
.nwi-calc .nwi-conf-text {
	display: block;
	width: 100%;
	box-sizing: border-box;
	min-height: 48px;
	background: var(--nwi-light);
	border: 1.5px solid var(--nwi-border);
	border-radius: 12px;
	padding: 13px 15px;
	font-family: var(--nwi-font-sans);
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.45;
	color: var(--nwi-ink);
	transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}
.nwi-calc textarea.nwi-conf-text {
	min-height: 96px;
	resize: vertical;
}
.nwi-calc .nwi-conf-text::placeholder { color: var(--nwi-muted); font-weight: 500; }
.nwi-calc .nwi-conf-text:hover { border-color: var(--nwi-cyan); }
.nwi-calc .nwi-conf-text:focus {
	outline: none;
	background: rgba(0, 200, 215, 0.06);
	border-color: var(--nwi-cyan-dark);
	box-shadow: 0 6px 16px -8px var(--nwi-cyan-glow);
}
/* Campos de data (data simples e data completa) — mesmo visual dos demais. */
.nwi-calc .nwi-conf-date {
	flex: 1 1 auto;
	width: 100%;
	box-sizing: border-box;
	min-height: 48px;
	background: var(--nwi-light);
	border: 1.5px solid var(--nwi-border);
	border-radius: 12px;
	padding: 12px 15px;
	font-family: var(--nwi-font-sans);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--nwi-ink);
	transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}
.nwi-calc .nwi-conf-date:hover { border-color: var(--nwi-cyan); }
.nwi-calc .nwi-conf-date:focus {
	outline: none;
	background: rgba(0, 200, 215, 0.06);
	border-color: var(--nwi-cyan-dark);
	box-shadow: 0 6px 16px -8px var(--nwi-cyan-glow);
}
.nwi-calc .nwi-daterange {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.nwi-calc .nwi-daterange .nwi-conf-date { flex: 1 1 0; width: auto; min-width: 120px; }
.nwi-calc .nwi-daterange-sep {
	flex: 0 0 auto;
	font-family: var(--nwi-font-display);
	font-weight: 700;
	font-size: 13px;
	color: var(--nwi-muted);
}
.nwi-calc__summary {
	background: linear-gradient(170deg, var(--nwi-navy-deep), var(--nwi-navy) 80%);
	color: #fff;
	padding: 40px 34px;
	display: flex;
	flex-direction: column;
}
.nwi-calc__summary h4 {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nwi-cyan);
	margin: 0 0 20px;
}
.nwi-calc__summary .line {
	display: flex;
	justify-content: space-between;
	font-size: 14px;
	padding: 9px 0;
	border-bottom: 1px dashed rgba(255, 255, 255, 0.14);
	color: rgba(255, 255, 255, 0.85);
}
.nwi-calc__summary .line span:last-child { font-weight: 700; color: #fff; }
.nwi-calc__summary .total {
	margin-top: auto;
	padding-top: 22px;
}
.nwi-calc__summary .total .label { font-size: 13px; color: rgba(255, 255, 255, 0.6); }
.nwi-calc__summary .total .value {
	font-family: var(--nwi-font-display);
	font-size: 44px;
	font-weight: 900;
	color: var(--nwi-cyan);
	line-height: 1.1;
	transition: transform 0.2s ease;
}
.nwi-calc__summary .total .value.bump { transform: scale(1.06); }
.nwi-calc__summary .total .value small { font-size: 16px; color: rgba(255, 255, 255, 0.7); font-weight: 600; }
.nwi-calc__summary .annual { font-size: 13px; color: rgba(255, 255, 255, 0.55); margin-top: 6px; }
.nwi-calc__summary .annual b { color: #7ee9f2; }
.nwi-calc__summary .nwi-btn { margin-top: 22px; width: 100%; }

/* ------------------------------------------------------------
   Formulário de contato
   ------------------------------------------------------------ */
.nwi-form input,
.nwi-form textarea,
.nwi-form select {
	width: 100%;
	background: #fff;
	border: 1.5px solid var(--nwi-border);
	border-radius: 12px;
	padding: 14px 16px;
	font-family: var(--nwi-font-sans);
	font-size: 15px;
	color: var(--nwi-ink);
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
	margin-bottom: 16px;
}
.nwi-form input:focus,
.nwi-form textarea:focus,
.nwi-form select:focus {
	outline: none;
	border-color: var(--nwi-cyan-dark);
	box-shadow: 0 0 0 4px rgba(0, 200, 215, 0.14);
}

/* ------------------------------------------------------------
   Footer
   ------------------------------------------------------------ */
.nwi-footer {
	background: var(--nwi-navy-deep);
	color: rgba(255, 255, 255, 0.65);
}
.nwi-footer a { color: rgba(255, 255, 255, 0.65); text-decoration: none !important; transition: color 0.25s; font-size: 14px; }
.nwi-footer a:hover { color: var(--nwi-cyan); }
.nwi-footer h4 {
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin: 0 0 16px;
}
.nwi-footer ul { list-style: none; margin: 0; padding: 0; }
.nwi-footer ul li { padding: 5px 0; }
.nwi-footer .nwi-footer-grid {
	max-width: 1240px;
	margin: 0 auto;
	padding: 70px 28px 40px;
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
	gap: 40px;
}
@media (max-width: 900px) {
	.nwi-footer .nwi-footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
	.nwi-footer .nwi-footer-grid { grid-template-columns: 1fr; }
}
.nwi-footer .nwi-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.09);
	padding: 24px 28px;
	text-align: center;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.4);
}
.nwi-social {
	display: flex;
	gap: 10px;
	margin-top: 18px;
}
.nwi-social a {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s var(--nwi-ease);
}
.nwi-social a:hover {
	background: var(--nwi-cyan);
	border-color: var(--nwi-cyan);
	transform: translateY(-4px);
}
.nwi-social a:hover svg { stroke: var(--nwi-navy-deep); }

/* WhatsApp flutuante */
.nwi-whats {
	position: fixed;
	right: 26px;
	bottom: 26px;
	z-index: 998;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: #25d366;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 14px 35px -10px rgba(37, 211, 102, 0.65);
	animation: nwiWhats 2.6s ease-in-out infinite;
	transition: transform 0.3s var(--nwi-ease);
}
.nwi-whats:hover { transform: scale(1.12); animation-play-state: paused; }
@keyframes nwiWhats {
	0%, 100% { box-shadow: 0 14px 35px -10px rgba(37, 211, 102, 0.65), 0 0 0 0 rgba(37, 211, 102, 0.5); }
	60%      { box-shadow: 0 14px 35px -10px rgba(37, 211, 102, 0.65), 0 0 0 16px rgba(37, 211, 102, 0); }
}

/* Divisor de seção em onda */
.nwi-section-label {
	font-family: var(--nwi-font-display);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nwi-cyan-dark);
}

/* ------------------------------------------------------------
   Widgets nativos do Elementor (skin NWI)
   Aplicados via classe CSS no campo Avançado → Classes CSS
   ------------------------------------------------------------ */
/* Títulos */
.nwi-wh .elementor-heading-title {
	font-family: var(--nwi-font-display);
	font-weight: 900;
	color: var(--nwi-navy);
	line-height: 1.15;
	letter-spacing: -0.01em;
}
.nwi-wh--h1 .elementor-heading-title { font-size: clamp(38px, 5.4vw, 64px); line-height: 1.08; }
.nwi-wh--h2 .elementor-heading-title { font-size: clamp(30px, 4vw, 44px); }
.nwi-wh--h3 .elementor-heading-title { font-size: 21px; font-weight: 800; }
.nwi-wh--h4 .elementor-heading-title { font-size: 18px; font-weight: 800; }
.nwi-wh--light .elementor-heading-title { color: #fff; }
.nwi-wh--label .elementor-heading-title {
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nwi-cyan-dark);
}
.nwi-wh--label-cyan .elementor-heading-title { color: var(--nwi-cyan); }
.nwi-wh--price .elementor-heading-title { font-size: 42px; line-height: 1; }
.nwi-wh--price .elementor-heading-title small { font-size: 15px; font-weight: 600; color: var(--nwi-muted); }
.nwi-wh--price .elementor-heading-title .cur { font-size: 20px; vertical-align: super; margin-right: 2px; }
.nwi-wh--price-light .elementor-heading-title { color: #fff; }
.nwi-wh--price-light .elementor-heading-title small { color: rgba(255, 255, 255, 0.6); }

/* Texto */
.nwi-wtext, .nwi-wtext p { color: var(--nwi-muted); font-size: 15px; line-height: 1.65; }
.nwi-wtext p { margin: 0 0 10px; }
.nwi-wtext--lead, .nwi-wtext--lead p { font-size: 17.5px; line-height: 1.7; }
.nwi-wtext--hero, .nwi-wtext--hero p { font-size: clamp(16px, 2vw, 19px); line-height: 1.7; color: rgba(255, 255, 255, 0.7); }
.nwi-wtext--light, .nwi-wtext--light p { color: rgba(255, 255, 255, 0.65); }
.nwi-wtext--small, .nwi-wtext--small p { font-size: 13.5px; }

/* Botões */
.nwi-btn-el .elementor-button {
	background: linear-gradient(120deg, var(--nwi-cyan) 0%, var(--nwi-cyan-dark) 100%);
	color: var(--nwi-navy-deep);
	font-family: var(--nwi-font-display);
	font-weight: 700;
	font-size: 15.5px;
	padding: 15px 32px;
	border-radius: 14px;
	box-shadow: 0 14px 30px -12px var(--nwi-cyan-glow);
	transition: transform 0.3s var(--nwi-ease), box-shadow 0.3s var(--nwi-ease);
}
.nwi-btn-el .elementor-button:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 40px -14px var(--nwi-cyan-glow);
	color: var(--nwi-navy-deep);
}
.nwi-btn-el--ghost .elementor-button {
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.25);
	box-shadow: none;
}
.nwi-btn-el--ghost .elementor-button:hover { border-color: var(--nwi-cyan); color: var(--nwi-cyan); box-shadow: none; }
.nwi-btn-el--dark .elementor-button { background: var(--nwi-navy); color: #fff; box-shadow: none; }
.nwi-btn-el--dark .elementor-button:hover { box-shadow: var(--nwi-shadow); color: #fff; }
.nwi-btn-el--link .elementor-button {
	background: none;
	box-shadow: none;
	padding: 0;
	color: var(--nwi-cyan-dark);
	font-size: 14.5px;
}
.nwi-btn-el--link .elementor-button:hover { color: var(--nwi-cyan-dark); transform: translateX(4px); box-shadow: none; }
.nwi-btn-el--block .elementor-button { width: 100%; }

/* Ícone em caixa */
.nwi-icon-el .elementor-icon {
	width: 58px;
	height: 58px;
	border-radius: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, rgba(0, 200, 215, 0.14), rgba(0, 153, 168, 0.1));
	color: var(--nwi-cyan-dark);
	font-size: 26px;
	transition: transform 0.45s var(--nwi-ease);
}
.nwi-icon-el .elementor-icon svg { width: 26px; height: 26px; fill: var(--nwi-cyan-dark); }

/* Lista de itens (features) */
.nwi-ilist .elementor-icon-list-item { padding: 5px 0; }
.nwi-ilist .elementor-icon-list-icon { color: var(--nwi-cyan-dark); font-size: 13px; }
.nwi-ilist .elementor-icon-list-icon svg { fill: var(--nwi-cyan-dark); width: 13px; }
.nwi-ilist .elementor-icon-list-text { color: var(--nwi-ink); font-size: 14px; font-weight: 500; padding-left: 8px; }
.nwi-ilist--light .elementor-icon-list-text { color: rgba(255, 255, 255, 0.85); }
.nwi-ilist--divided .elementor-icon-list-item { border-bottom: 1px dashed var(--nwi-border); padding: 7px 0; }
.nwi-ilist--divided .elementor-icon-list-item:last-child { border-bottom: 0; }
.nwi-ilist--divided-dark .elementor-icon-list-item { border-bottom: 1px dashed rgba(255, 255, 255, 0.14); }
.nwi-ilist--trust .elementor-icon-list-item { margin-right: 26px; }
.nwi-ilist--trust .elementor-icon-list-icon { color: var(--nwi-cyan); font-size: 9px; }
.nwi-ilist--trust .elementor-icon-list-text { color: rgba(255, 255, 255, 0.55); font-size: 13.5px; font-weight: 600; }

/* Contadores */
.nwi-counter-el .elementor-counter-number-wrapper {
	font-family: var(--nwi-font-display);
	font-size: clamp(38px, 5vw, 56px);
	font-weight: 900;
	color: #fff;
	justify-content: center;
	line-height: 1.05;
}
.nwi-counter-el .elementor-counter-number-suffix { color: var(--nwi-cyan); font-size: 0.6em; align-self: center; }
.nwi-counter-el .elementor-counter-title {
	color: rgba(255, 255, 255, 0.6);
	font-size: 14px;
	font-weight: 500;
	text-align: center;
	margin-top: 8px;
}

/* Acordeão (FAQ) */
.nwi-acc .elementor-accordion-item {
	background: #fff;
	border: 1px solid var(--nwi-border) !important;
	border-radius: 16px;
	margin-bottom: 14px;
	overflow: hidden;
	transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.nwi-acc .elementor-tab-title {
	font-family: var(--nwi-font-display);
	font-weight: 700;
	font-size: 16px;
	color: var(--nwi-navy);
	padding: 20px 24px;
	border: 0 !important;
}
.nwi-acc .elementor-tab-title a { color: var(--nwi-navy); }
.nwi-acc .elementor-tab-title.elementor-active { color: var(--nwi-cyan-dark); }
.nwi-acc .elementor-tab-title .elementor-accordion-icon { color: var(--nwi-cyan-dark); }
.nwi-acc .elementor-tab-content {
	color: var(--nwi-muted);
	font-size: 15px;
	line-height: 1.7;
	border: 0 !important;
	padding: 0 24px 22px;
}

/* Colunas como cards */
.nwi-col-card { padding: 13px; }
.nwi-col-card > .elementor-widget-wrap {
	background: #fff;
	border: 1px solid var(--nwi-border);
	border-radius: var(--nwi-radius);
	padding: 34px 30px !important;
	position: relative;
	overflow: hidden;
	transition: transform 0.45s var(--nwi-ease), box-shadow 0.45s var(--nwi-ease), border-color 0.45s;
}
.nwi-col-card > .elementor-widget-wrap::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--nwi-cyan), var(--nwi-cyan-dark));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.5s var(--nwi-ease);
}
.nwi-col-card:hover > .elementor-widget-wrap {
	transform: translateY(-10px);
	box-shadow: var(--nwi-shadow-lg);
	border-color: rgba(0, 200, 215, 0.45);
}
.nwi-col-card:hover > .elementor-widget-wrap::before { transform: scaleX(1); }
.nwi-col-card:hover .nwi-icon-el .elementor-icon { transform: scale(1.1) rotate(-4deg); }
.nwi-col-card--dark > .elementor-widget-wrap {
	background: rgba(255, 255, 255, 0.045);
	border-color: rgba(255, 255, 255, 0.1);
}
.nwi-col-card--dark:hover > .elementor-widget-wrap {
	border-color: rgba(0, 200, 215, 0.5);
	box-shadow: 0 30px 70px -25px rgba(0, 0, 0, 0.6);
}

/* Colunas como cards de preço */
.nwi-col-price { padding: 13px; }
.nwi-col-price > .elementor-widget-wrap {
	background: #fff;
	border: 1px solid var(--nwi-border);
	border-radius: 22px;
	padding: 38px 32px !important;
	position: relative;
	transition: transform 0.45s var(--nwi-ease), box-shadow 0.45s var(--nwi-ease);
}
.nwi-col-price:hover > .elementor-widget-wrap { transform: translateY(-10px); box-shadow: var(--nwi-shadow-lg); }
.nwi-col-price--featured > .elementor-widget-wrap {
	background: linear-gradient(165deg, var(--nwi-navy-deep), var(--nwi-navy) 70%);
	border: 1px solid rgba(0, 200, 215, 0.5);
	box-shadow: 0 30px 70px -25px rgba(0, 153, 168, 0.45);
}
.nwi-flag {
	position: absolute;
	top: -14px;
	left: 50%;
	transform: translateX(-50%);
	background: linear-gradient(120deg, var(--nwi-cyan), var(--nwi-cyan-dark));
	color: var(--nwi-navy-deep);
	font-family: var(--nwi-font-display);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	padding: 7px 18px;
	border-radius: 999px;
	white-space: nowrap;
	z-index: 2;
}

/* Coluna faixa CTA */
.nwi-col-cta > .elementor-widget-wrap {
	background:
		radial-gradient(700px 300px at 85% 20%, rgba(0, 200, 215, 0.25), transparent 65%),
		linear-gradient(140deg, var(--nwi-navy-deep), var(--nwi-navy));
	border-radius: 28px;
	padding: 70px 60px !important;
	position: relative;
	overflow: hidden;
}
@media (max-width: 640px) { .nwi-col-cta > .elementor-widget-wrap { padding: 48px 28px !important; } }

/* Número de passo */
.nwi-step-n .elementor-heading-title {
	width: 62px;
	height: 62px;
	margin: 0 auto;
	border-radius: 20px;
	background: linear-gradient(135deg, var(--nwi-cyan), var(--nwi-cyan-dark));
	color: var(--nwi-navy-deep);
	font-family: var(--nwi-font-display);
	font-size: 24px;
	font-weight: 900;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 16px 30px -12px var(--nwi-cyan-glow);
}

/* ------------------------------------------------------------
   Layout / utilidades
   ------------------------------------------------------------ */
.nwi-center { text-align: center; }
img.nwi-illus, .nwi-illus svg { width: 100%; height: auto; display: block; }

.nwi-sec { padding: 96px 0; position: relative; }
.nwi-sec--tight { padding: 64px 0; }
.nwi-sec--light { background: var(--nwi-light); }
.nwi-sec--white { background: #fff; }
.nwi-sec--dark { background: linear-gradient(165deg, var(--nwi-navy-deep), var(--nwi-navy) 75%); }
.nwi-wrap { max-width: 1240px; margin: 0 auto; padding: 0 28px; }
.nwi-wrap--narrow { max-width: 920px; }

.nwi-h2 {
	font-family: var(--nwi-font-display);
	font-size: clamp(30px, 4vw, 44px);
	font-weight: 900;
	color: var(--nwi-navy);
	line-height: 1.15;
	margin: 14px 0 18px;
}
.nwi-sec--dark .nwi-h2 { color: #fff; }
.nwi-lead {
	font-size: 17.5px;
	line-height: 1.7;
	color: var(--nwi-muted);
	max-width: 720px;
	margin: 0 auto;
}
.nwi-center .nwi-lead { margin-left: auto; margin-right: auto; }
.nwi-sec--dark .nwi-lead { color: rgba(255, 255, 255, 0.65); }

.nwi-grid { display: grid; gap: 26px; }
.nwi-grid--2 { grid-template-columns: repeat(2, 1fr); }
.nwi-grid--3 { grid-template-columns: repeat(3, 1fr); }
.nwi-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) {
	.nwi-grid--3, .nwi-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.nwi-grid--2, .nwi-grid--3, .nwi-grid--4 { grid-template-columns: 1fr; }
}

.nwi-split {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: 60px;
	align-items: center;
}
@media (max-width: 960px) {
	.nwi-split { grid-template-columns: 1fr; gap: 40px; }
}

/* Hero */
.nwi-hero {
	padding: 110px 0 120px;
	position: relative;
	z-index: 1;
}
.nwi-hero h1 {
	font-size: clamp(38px, 5.4vw, 64px);
	font-weight: 900;
	color: #fff;
	line-height: 1.08;
	margin: 22px 0 22px;
}
.nwi-hero .nwi-hero-sub {
	font-size: clamp(16px, 2vw, 19px);
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.7);
	max-width: 620px;
	margin-bottom: 38px;
}
.nwi-hero .nwi-hero-ctas { display: flex; flex-wrap: wrap; gap: 16px; }
.nwi-hero--center { text-align: center; }
.nwi-hero--center .nwi-hero-sub { margin-left: auto; margin-right: auto; }
.nwi-hero--center .nwi-hero-ctas { justify-content: center; }

/* Ticker de confiança sob o hero */
.nwi-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 34px;
	margin-top: 46px;
	align-items: center;
}
.nwi-hero--center .nwi-trust { justify-content: center; }
.nwi-trust span {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: rgba(255, 255, 255, 0.55);
	font-size: 13.5px;
	font-weight: 600;
}
.nwi-trust span::before {
	content: '';
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--nwi-cyan);
}

/* Steps (como funciona) */
.nwi-step { text-align: center; padding: 20px 16px; }
.nwi-step .n {
	width: 62px;
	height: 62px;
	margin: 0 auto 18px;
	border-radius: 20px;
	background: linear-gradient(135deg, var(--nwi-cyan), var(--nwi-cyan-dark));
	color: var(--nwi-navy-deep);
	font-family: var(--nwi-font-display);
	font-size: 24px;
	font-weight: 900;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 16px 30px -12px var(--nwi-cyan-glow);
}
.nwi-step h3 { font-size: 18px; font-weight: 800; color: var(--nwi-navy); margin: 0 0 8px; }
.nwi-sec--dark .nwi-step h3 { color: #fff; }
.nwi-step p { font-size: 14px; color: var(--nwi-muted); line-height: 1.65; margin: 0; }
.nwi-sec--dark .nwi-step p { color: rgba(255, 255, 255, 0.6); }

/* CTA band */
.nwi-cta-band {
	background:
		radial-gradient(700px 300px at 85% 20%, rgba(0, 200, 215, 0.25), transparent 65%),
		linear-gradient(140deg, var(--nwi-navy-deep), var(--nwi-navy));
	border-radius: 28px;
	padding: 70px 60px;
	position: relative;
	overflow: hidden;
}
.nwi-cta-band::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
	background-size: 44px 44px;
	mask-image: radial-gradient(ellipse at 70% 40%, #000 20%, transparent 70%);
	-webkit-mask-image: radial-gradient(ellipse at 70% 40%, #000 20%, transparent 70%);
}
.nwi-cta-band h2 { color: #fff; font-size: clamp(28px, 3.6vw, 40px); font-weight: 900; margin: 0 0 14px; position: relative; }
.nwi-cta-band p { color: rgba(255, 255, 255, 0.7); font-size: 17px; margin: 0 0 30px; max-width: 560px; position: relative; }
.nwi-cta-band .nwi-hero-ctas { position: relative; }
@media (max-width: 640px) { .nwi-cta-band { padding: 48px 28px; } }

/* ============================================================
   v1.1.0 — correções de integração WordPress/Elementor
   ============================================================ */

/* Header/footer LEGADOS embutidos no conteúdo Elementor (HTML antigo).
   BUG CORRIGIDO v3.5: o header/rodapé que o plugin renderiza vem dos
   WIDGETS nwi_header/nwi_footer (marcados com data-nwi-widget-*) e fica
   dentro de .elementor — a regra antiga (:not([data-nwi-core])) escondia
   justamente eles. Agora só esconde o que NÃO é widget oficial nem
   está dentro do wrapper oficial .nwi-chrome-tpl. */
body.nwi-core-chrome .elementor .nwi-header:not([data-nwi-core]):not([data-nwi-widget-header]),
body.nwi-core-chrome .elementor .nwi-footer:not([data-nwi-core]):not([data-nwi-widget-footer]),
body.nwi-core-chrome .elementor .nwi-whats:not([data-nwi-core]) {
	display: none !important;
}
body.nwi-core-chrome .nwi-chrome-tpl .nwi-header,
body.nwi-core-chrome .nwi-chrome-tpl .nwi-footer,
body.nwi-core-chrome .nwi-chrome-tpl .nwi-whats {
	display: revert !important; /* garante a exibição do chrome oficial */
}

/* Ilustração da hero: tamanho garantido dentro de colunas Elementor. */
.nwi-illus {
	width: 100%;
	max-width: 560px;
	margin-inline: auto;
}
.nwi-illus svg {
	min-height: 280px;
}

/* Widgets Elementor com reveal: evita "pulo" de layout. */
.elementor-widget.nwi-reveal {
	will-change: opacity, transform;
}

/* Admin bar do WordPress: header sticky abaixo dela. */
body.admin-bar .nwi-header[data-nwi-core] {
	top: 32px;
}
@media (max-width: 782px) {
	body.admin-bar .nwi-header[data-nwi-core] {
		top: 46px;
	}
}

/* ============================================================
   v2.1.0 — logomarca + seletor de marca no header
   ============================================================ */

/* Fundo escuro do body: elimina a faixa branca entre o header
   sticky e a primeira seção. */
body.nwi-core-chrome { background: #0d1b33; }

.nwi-logo--mark { gap: 0; }
.nwi-logo--mark img { height: 40px; width: auto; display: block; }

/* Texto fixo (1 opção) */
.nwi-brand__static {
	font-family: 'Montserrat', sans-serif;
	letter-spacing: -0.01em;
	line-height: 1;
	margin-left: 12px;
	white-space: nowrap;
}

/* Dropdown de marca — sem bordas, discreto, com foco no texto */
.nwi-brand { position: relative; margin-left: 10px; } /* 10px da logo (ajustável no controle "Distância da logo") */
.nwi-brand__btn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: none;
	/* Borda TRANSPARENTE por padrão (não some do layout): assim o controle
	   "Cor da borda" no Elementor passa a aparecer — antes era border:0 e a cor
	   sozinha não tinha largura/estilo, então nunca "pegava". */
	border: 1px solid transparent;
	padding: 5px 7px;
	margin: -6px -8px;
	cursor: pointer;
	font-family: 'Montserrat', sans-serif;
	letter-spacing: -0.01em;
	line-height: 1;
	border-radius: 10px;
	transition: background-color 0.18s ease;
	-webkit-tap-highlight-color: transparent;
}
.nwi-brand__btn:hover { background: rgba(255, 255, 255, 0.06); }
.nwi-brand__btn:focus-visible {
	outline: 2px solid var(--nwi-cyan, #00c8d7);
	outline-offset: 2px;
}
.nwi-brand__chevron {
	flex: 0 0 auto;
	opacity: 0.65;
	transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.18s ease;
}
.nwi-brand__btn:hover .nwi-brand__chevron { opacity: 1; }
.nwi-brand.is-open .nwi-brand__chevron { transform: rotate(180deg); opacity: 1; }

.nwi-brand__menu {
	position: absolute;
	top: calc(100% + 12px);
	left: -6px;
	min-width: 200px;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: rgba(13, 24, 44, 0.97);
	-webkit-backdrop-filter: blur(18px);
	backdrop-filter: blur(18px);
	border: 1px solid rgba(0, 200, 215, 0.16);
	border-radius: 16px;
	box-shadow: 0 24px 60px -18px rgba(0, 0, 0, 0.65);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px) scale(0.98);
	transform-origin: top left;
	transition: opacity 0.18s ease, transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), visibility 0.18s;
	z-index: 1001;
}
.nwi-brand.is-open .nwi-brand__menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0) scale(1);
}
/* Desktop (mouse): abre o dropdown da marca ao passar o mouse — deixa claro que
   há mais opções. No mobile/touch (≤992px ou sem hover) segue só no clique. */
@media (min-width: 993px) and (hover: hover) {
	.nwi-brand:hover .nwi-brand__menu {
		opacity: 1;
		visibility: visible;
		transform: translateY(0) scale(1);
	}
	.nwi-brand:hover .nwi-brand__chevron { transform: rotate(180deg); opacity: 1; }
	/* Ponte invisível sobre o vão de 12px entre o botão e o menu: sem ela, ao
	   descer o mouse o :hover cairia e o menu fecharia antes de chegar nos itens. */
	.nwi-brand::after {
		content: '';
		position: absolute;
		top: 100%;
		left: -6px;
		width: 200px;
		height: 14px;
		display: none;
	}
	.nwi-brand:hover::after { display: block; }
}
.nwi-brand__menu li a {
	display: block;
	padding: 10px 14px;
	border-radius: 10px;
	font-family: 'Montserrat', sans-serif;
	text-decoration: none;
	line-height: 1.2;
	white-space: nowrap;
	transition: background-color 0.15s ease;
}
.nwi-brand__menu li a:hover,
.nwi-brand__menu li a:focus-visible { background: rgba(0, 200, 215, 0.12); outline: none; }
.nwi-brand__menu li.is-current a { background: rgba(0, 200, 215, 0.08); }

@media (prefers-reduced-motion: reduce) {
	.nwi-brand__chevron, .nwi-brand__menu { transition: none !important; }
}
@media (max-width: 860px) {
	.nwi-brand__static, .nwi-brand__btn { font-size: 18px !important; }
}

/* ------------------------------------------------------------
   v2.2 — suporte aos controles de estilo dos widgets
   ------------------------------------------------------------ */
.nwi-sechead { margin-bottom: 56px; }

/* Caixa do formulário (antes era estilo inline — agora ajustável) */
.nwi-form--card {
	background: #fff;
	border: 1px solid var(--nwi-border);
	border-radius: 22px;
	padding: 38px;
	box-shadow: var(--nwi-shadow);
}
.nwi-form .nwi-btn[type='submit'],
.nwi-form button.nwi-btn { width: 100%; }

/* Botão compacto (CTA do header) */
.nwi-btn--sm { padding: 11px 22px; font-size: 14px; }

/* ============================================================
   v2.2.1 — correções do site ao vivo
   ============================================================ */

/* 1. Ícones Font Awesome inline (Elementor renderiza <svg> sem
      tamanho fora dos widgets nativos dele → ficavam gigantes) */
.nwi-card__icon { color: var(--nwi-cyan-dark); font-size: 26px; }
.nwi-card__icon svg,
.nwi-card__icon i {
	width: 26px;
	height: 26px;
	flex: none;
}
.nwi-card__icon svg { fill: currentColor; }
svg.e-font-icon-svg { height: 1em; width: auto; fill: currentColor; }

/* 2. FAQ: accordions do Elementor ganham a skin NWI automaticamente */
.elementor-widget-accordion .elementor-accordion .elementor-accordion-item {
	background: #fff;
	border: 1px solid var(--nwi-border);
	border-radius: 16px;
	margin-bottom: 14px;
	overflow: hidden;
	transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.elementor-widget-accordion .elementor-accordion .elementor-tab-title {
	font-family: var(--nwi-font-display);
	font-weight: 700;
	font-size: 16px;
	color: var(--nwi-navy);
	padding: 20px 24px;
	border: 0;
}
.elementor-widget-accordion .elementor-accordion .elementor-tab-title a { color: var(--nwi-navy); }
.elementor-widget-accordion .elementor-accordion .elementor-tab-title.elementor-active,
.elementor-widget-accordion .elementor-accordion .elementor-tab-title.elementor-active a { color: var(--nwi-cyan-dark); }
.elementor-widget-accordion .elementor-accordion .elementor-tab-title .elementor-accordion-icon { color: var(--nwi-cyan-dark); }
.elementor-widget-accordion .elementor-accordion .elementor-tab-content {
	font-family: var(--nwi-font-sans);
	color: var(--nwi-muted);
	font-size: 15px;
	line-height: 1.7;
	border: 0;
	padding: 0 24px 22px;
}

/* 3. Blindagem do design system: componentes NWI mantêm as fontes
      da marca mesmo com Kits/temas que estilizam h1–h6 e body
      (especificidade maior, sem !important — os controles de
      estilo dos widgets continuam vencendo) */
body .nwi-hero-bg h1,
body div.nwi-sechead .nwi-h2,
body div.nwi-card h3,
body div.nwi-price-card h3,
body div.nwi-step h3,
body div.nwi-cta-band h2,
body div.nwi-stat__num,
body span.nwi-section-label,
body a.nwi-btn,
body header.nwi-header .nwi-menu a,
body footer.nwi-footer h4,
body table.nwi-table thead th {
	font-family: var(--nwi-font-display);
}
body p.nwi-hero-sub,
body p.nwi-lead,
body div.nwi-card p,
body div.nwi-card ul li,
body div.nwi-price-card ul li,
body div.nwi-step p,
body div.nwi-stat__label,
body footer.nwi-footer p {
	font-family: var(--nwi-font-sans);
}

/* ============================================================
   v3.0 — modo cotação, leads, hero com vídeo, logo maior
   ============================================================ */

/* Logo com o dobro do tamanho (menor que o botão do WhatsApp 60px) */
.nwi-logo img { height: 56px !important; width: auto !important; }
.nwi-nav { padding-top: 10px; padding-bottom: 10px; }

/* Editor do Elementor: nunca esconder blocos com animação de entrada */
.elementor-editor-active .nwi-reveal { opacity: 1 !important; transform: none !important; }

/* Hero transparente: o vídeo/fundo vem do CONTAINER do Elementor
   (Seção → Estilo → Fundo → Vídeo). O widget só põe o overlay. */
.nwi-hero-bg--none { background: none !important; }
.nwi-hero-bg--none::before { display: none; }
.nwi-hero-overlay::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(180deg, rgba(12, 21, 38, .55), rgba(12, 21, 38, .35) 45%, rgba(12, 21, 38, .82));
	pointer-events: none;
}
.nwi-hero-bg--none .nwi-hero { position: relative; z-index: 1; }

/* Modo cotação: esconde valores monetários */
/* modo cotação: linhas mostram a seleção exata (valor à direita) */
.nwi-calc--noprice .nwi-calc__summary .line span:last-child { color: #fff; font-weight: 600; text-align: right; }
body.nwi-noprice-planos .nwi-price { display: none !important; }
body.nwi-noprice-tabelas .nwi-table .plan-price { display: none !important; }
body.nwi-noprice-tabelas .nwi-table [data-nwi-price] { display: none !important; }

/* Stepper de quantidade (configuradores) — estica e alinha à largura dos botões */
.nwi-qty {
	display: flex;
	width: 100%;
	align-items: stretch;
	border: 1.5px solid var(--nwi-border);
	border-radius: 12px;
	overflow: hidden;
	transition: border-color .25s ease, box-shadow .25s ease;
}
.nwi-qty:focus-within { border-color: var(--nwi-cyan-dark); box-shadow: 0 6px 16px -8px var(--nwi-cyan-glow); }
.nwi-qty button {
	flex: 0 0 48px;
	height: 48px;
	border: 0;
	background: var(--nwi-light);
	font-size: 22px;
	line-height: 1;
	color: var(--nwi-navy);
	cursor: pointer;
	transition: background .2s;
}
.nwi-qty button:hover { background: rgba(0, 200, 215, .15); }
/* Bloco central: número + unidade juntos e centralizados (ex.: "50 (megabits)").
   Só o número é editável; o input se dimensiona pela qtd. de dígitos (via JS). */
.nwi-qty .nwi-qty-mid {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	border-left: 1.5px solid var(--nwi-border);
	border-right: 1.5px solid var(--nwi-border);
	background: #fff;
	padding: 0 10px;
}
.nwi-qty .nwi-qty-mid:focus-within { background: rgba(0, 200, 215, .06); }
.nwi-qty .nwi-qty-val {
	border: 0;
	background: transparent;
	text-align: right;
	font: 800 17px var(--nwi-font-display);
	color: var(--nwi-navy);
	padding: 0;
	width: 2ch;
	min-width: 1ch;
	max-width: 100%;
	outline: none;
	-moz-appearance: textfield;
}
.nwi-qty .nwi-qty-val::-webkit-outer-spin-button,
.nwi-qty .nwi-qty-val::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.nwi-qty .nwi-qty-uom {
	flex: 0 0 auto;
	font: 600 15px var(--nwi-font-display);
	color: var(--nwi-muted);
	white-space: nowrap;
}

/* Opções tipo "modelo" (lista longa, ex.: 18 Bare Metal) */
.opts--models { max-height: 340px; overflow-y: auto; padding-right: 4px; }
.opts--models button { flex: 1 1 100%; text-align: left; }

/* Formulário de lead */
.nwi-leadform { margin-top: 22px; border-top: 1px dashed rgba(255, 255, 255, .18); padding-top: 20px; }
.nwi-leadform h5 {
	margin: 0 0 4px;
	font: 800 15px var(--nwi-font-display);
	color: #fff;
	letter-spacing: .02em;
}
.nwi-leadform__sub { font-size: 12.5px; color: rgba(255, 255, 255, .55); margin: 0 0 14px; }
.nwi-leadform__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10px; }
@media (max-width: 640px) { .nwi-leadform__grid { grid-template-columns: 1fr; } }
.nwi-leadform input[type=text],
.nwi-leadform input[type=tel],
.nwi-leadform input[type=email] {
	width: 100%;
	background: rgba(255, 255, 255, .07);
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 10px;
	padding: 11px 13px;
	font: 400 13.5px var(--nwi-font-sans);
	color: #fff;
	margin-bottom: 10px;
	transition: border .25s;
}
.nwi-leadform input:focus { outline: 0; border-color: var(--nwi-cyan); }
.nwi-leadform input::placeholder { color: rgba(255, 255, 255, .4); }
/* Selects "Já sou cliente" e "Pessoa Física/Jurídica". */
.nwi-leadform select.nwi-lf-select {
	width: 100%;
	background: rgba(255, 255, 255, .07);
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 10px;
	padding: 11px 13px;
	font: 400 13.5px var(--nwi-font-sans);
	color: #fff;
	margin-bottom: 10px;
	transition: border .25s;
	-webkit-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 13px center;
}
.nwi-leadform select.nwi-lf-select:focus { outline: 0; border-color: var(--nwi-cyan); }
.nwi-leadform select.nwi-lf-select option { color: #10233f; }
/* Documento oculto (CPF/CNPJ) não pode reaparecer pelo grid. */
.nwi-leadform [hidden] { display: none !important; }
.nwi-leadform__lgpd {
	display: flex;
	gap: 9px;
	align-items: flex-start;
	font-size: 12px;
	color: rgba(255, 255, 255, .6);
	margin: 6px 0 12px;
	cursor: pointer;
	line-height: 1.5;
}
.nwi-leadform__lgpd input { margin-top: 2px; accent-color: var(--nwi-cyan); }
.nwi-leadform__lgpd a { color: var(--nwi-cyan); }
.nwi-leadform__err { color: #ff8f8f; font-size: 12.5px; min-height: 16px; margin-bottom: 6px; }
.nwi-leadform .nwi-btn { width: 100%; }
.nwi-leadform__note { font-size: 11.5px; color: rgba(255, 255, 255, .4); text-align: center; margin: 10px 0 0; }

/* Configurador: resumo sem preço */
.nwi-conf .nwi-conf__summary .line {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	font-size: 13.5px;
	padding: 8px 0;
	border-bottom: 1px dashed rgba(255, 255, 255, .14);
	color: rgba(255, 255, 255, .75);
}
.nwi-conf .nwi-conf__summary .line span:last-child { color: #fff; font-weight: 600; text-align: right; }
.nwi-conf .nwi-conf__hint { color: rgba(255, 255, 255, .5); font-size: 13.5px; margin: 4px 0 0; }

/* ---------- Mega-menu do header (componente próprio, sem Elementor Pro) ---------- */
.nwi-menu > li.nwi-has-sub { position: relative; }
.nwi-menu > li.nwi-has-sub > .nwi-menu__link { display: inline-flex; align-items: center; gap: 5px; }
.nwi-sub-caret { display: inline-flex; transition: transform .25s var(--nwi-ease); }
.nwi-menu > li.nwi-has-sub:hover > .nwi-menu__link .nwi-sub-caret,
.nwi-menu > li.nwi-has-sub.is-open > .nwi-menu__link .nwi-sub-caret { transform: rotate(180deg); }

.nwi-submenu {
	position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(10px);
	padding-top: 14px; /* ponte invisível para o hover não "cair" */
	opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity .22s var(--nwi-ease), transform .22s var(--nwi-ease), visibility .22s;
	z-index: 1200;
}
.nwi-submenu--full { left: 0; right: auto; transform: translateY(10px); }
.nwi-submenu__inner {
	background: #fff; border: 1px solid var(--nwi-border); border-radius: 18px;
	box-shadow: 0 24px 60px rgba(16, 29, 53, .18);
	padding: 14px; display: grid; gap: 4px 18px;
	grid-template-columns: repeat(var(--nwi-sub-cols, 1), minmax(220px, 1fr));
}
.nwi-menu > li.nwi-has-sub:hover > .nwi-submenu,
.nwi-menu > li.nwi-has-sub:focus-within > .nwi-submenu,
.nwi-menu > li.nwi-has-sub.is-open > .nwi-submenu {
	opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0);
}
.nwi-menu > li.nwi-has-sub:hover > .nwi-submenu--full,
.nwi-menu > li.nwi-has-sub.is-open > .nwi-submenu--full { transform: translateY(0); }

.nwi-subcol__title { font: 700 11px var(--nwi-font-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--nwi-cyan-dark); margin: 8px 12px 6px; }
.nwi-submenu a.nwi-subitem {
	display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px;
	border-radius: 12px; color: inherit; background: none; white-space: normal;
	transition: background .18s ease;
}
.nwi-submenu a.nwi-subitem:hover { background: var(--nwi-light); }
.nwi-subitem__icon {
	width: 38px; height: 38px; flex: none; border-radius: 10px;
	background: rgba(0, 200, 215, .12); color: var(--nwi-cyan-dark);
	display: flex; align-items: center; justify-content: center;
}
.nwi-subitem__icon svg { width: 18px; height: 18px; }
.nwi-subitem__icon i { font-size: 17px; }
.nwi-subitem__body { display: flex; flex-direction: column; }
.nwi-subitem__title { font: 700 14.5px var(--nwi-font-display); color: var(--nwi-navy); }
.nwi-subitem__desc { font-size: 12.5px; color: var(--nwi-muted); margin-top: 2px; line-height: 1.45; }

/* Mobile: submenu vira acordeão dentro do drawer escuro */
@media (max-width: 992px) {
	.nwi-submenu {
		position: static; transform: none !important; padding-top: 0;
		opacity: 1; visibility: visible; pointer-events: auto; display: none;
	}
	.nwi-menu > li.nwi-has-sub.is-open > .nwi-submenu { display: block; }
	.nwi-submenu__inner { grid-template-columns: 1fr; background: rgba(255, 255, 255, .04); border: 0; border-radius: 12px; box-shadow: none; padding: 6px; }
	.nwi-subcol__title { color: var(--nwi-cyan); }
	.nwi-submenu a.nwi-subitem:hover { background: rgba(255, 255, 255, .06); }
	.nwi-subitem__title { color: #fff; }
	.nwi-subitem__desc { color: rgba(255, 255, 255, .6); }
}

/* ---------- Confirmação de envio do pedido ---------- */
.nwi-modal {
	position: fixed; inset: 0; z-index: 99999; display: none;
	align-items: center; justify-content: center; padding: 20px;
	background: rgba(16, 29, 53, .62); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
}
.nwi-modal.is-open { display: flex; animation: nwiModalIn .2s ease; }
.nwi-modal__box {
	background: #fff; border-radius: 22px; padding: 34px 30px 28px;
	max-width: 420px; width: 100%; text-align: center;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .28);
	animation: nwiModalPop .25s cubic-bezier(.2, .9, .3, 1.2);
}
.nwi-modal__check {
	width: 62px; height: 62px; border-radius: 50%;
	background: rgba(0, 200, 215, .14); color: var(--nwi-cyan-dark);
	display: flex; align-items: center; justify-content: center; margin: 0 auto 16px;
}
.nwi-modal__box h4 { font: 800 21px var(--nwi-font-display); color: var(--nwi-navy); margin: 0 0 8px; }
.nwi-modal__box p { font-size: 14.5px; line-height: 1.6; color: var(--nwi-muted); margin: 0 0 22px; }
.nwi-modal__actions { display: flex; flex-direction: column; gap: 10px; }
.nwi-modal__actions .nwi-btn { width: 100%; }
.nwi-modal__close { background: transparent; border: 1px solid var(--nwi-border); color: var(--nwi-muted); }
.nwi-modal__close:hover { background: var(--nwi-light); color: var(--nwi-ink); }
@keyframes nwiModalIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes nwiModalPop { from { opacity: 0; transform: translateY(12px) scale(.97); } to { opacity: 1; transform: none; } }

/* ============================================================
   v3.8 — Calculadora Bare Metal
   ============================================================ */
/* segmento: cards maiores, uma linha rolável */
.nwi-bmcalc .opts--seg { display:grid; grid-template-columns:repeat(5,1fr); gap:9px; }
@media(max-width:1100px){ .nwi-bmcalc .opts--seg{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:560px){ .nwi-bmcalc .opts--seg{ grid-template-columns:repeat(2,1fr); } }
.nwi-bmcalc .opts--seg button{ flex-direction:column; align-items:flex-start; text-align:left; padding:14px 15px; min-width:0; }
.nwi-bmcalc .opts--seg b{ font:800 14px var(--nwi-font-display); color:var(--nwi-navy); display:block; margin-bottom:4px; }
.nwi-bmcalc .opts--seg button.on b{ color:var(--nwi-cyan-dark); }
.nwi-bmcalc .opts--seg small{ margin-top:0; }
.nwi-bmcalc .opts--wrap{ display:flex; flex-wrap:wrap; }
.nwi-bmcalc .opts--wrap button{ flex:1 1 auto; min-width:88px; }
.nwi-bmcalc .opts button b{ display:block; }

/* adicionais */
.nwi-bm-addons{ display:flex; flex-direction:column; gap:10px; }
.nwi-bm-addon{ display:flex; align-items:center; justify-content:space-between; gap:12px;
	background:var(--nwi-light); border:1px solid var(--nwi-border); border-radius:12px; padding:11px 14px; }
.nwi-bm-addon > span{ font:600 13.5px var(--nwi-font-sans); color:var(--nwi-ink); }
.nwi-bm-addon--disk{ flex-wrap:wrap; }
.nwi-bm-addon--disk select{ background:#fff; border:1px solid var(--nwi-border); border-radius:9px;
	padding:8px 10px; font:600 12.5px var(--nwi-font-sans); color:var(--nwi-ink); margin-left:auto; }
.nwi-bm-toggles{ background:none; border:0; padding:0; gap:9px; }
.nwi-bm-toggle{ flex:1 1 auto; background:transparent; border:1.5px solid var(--nwi-border); border-radius:11px;
	padding:12px 14px; font:600 13px var(--nwi-font-sans); color:var(--nwi-ink); cursor:pointer; transition:.25s; text-align:center; }
.nwi-bm-toggle:hover{ border-color:rgba(0,200,215,.5); }
.nwi-bm-toggle.on{ background:rgba(0,200,215,.12); border-color:var(--nwi-cyan-dark); color:var(--nwi-cyan-dark); }
/* summary do BM em modo cotação: mesma regra do nwi-calc--noprice já cobre */

/* ============================================================
   v3.9 — Monte seu Plano (módulo unificado)
   ============================================================ */
.nwi-plan{ display:grid; grid-template-columns:1fr 380px; gap:22px; align-items:start; }
@media(max-width:1000px){ .nwi-plan{ grid-template-columns:1fr; } }
.nwi-plan__intro{ margin-bottom:18px; }
.nwi-plan__intro h3{ font:800 24px var(--nwi-font-display); color:var(--nwi-navy); margin:0 0 6px; }
.nwi-plan__intro p{ color:var(--nwi-muted); margin:0; font-size:15px; }
.nwi-plan__main{ display:flex; flex-direction:column; gap:14px; }

/* seção de serviço (accordion) */
.nwi-plan-svc{ background:#fff; border:1px solid var(--nwi-border); border-radius:16px; overflow:hidden; transition:border-color .3s; }
.nwi-plan-svc.is-on{ border-color:rgba(0,200,215,.55); box-shadow:var(--nwi-shadow); }
.nwi-plan-svc__head{ display:flex; align-items:center; gap:12px; padding:18px 20px; cursor:pointer; user-select:none; }
.nwi-plan-svc__toggle{ display:flex; align-items:center; gap:12px; flex:1; cursor:pointer; margin:0; }
.nwi-plan-svc__toggle input{ position:absolute; opacity:0; width:0; height:0; }
.nwi-plan-svc__check{ width:24px; height:24px; border-radius:7px; border:2px solid var(--nwi-border); flex:none; position:relative; transition:.25s; }
.nwi-plan-svc__toggle input:checked + .nwi-plan-svc__check{ background:var(--nwi-cyan-dark); border-color:var(--nwi-cyan-dark); }
.nwi-plan-svc__toggle input:checked + .nwi-plan-svc__check::after{ content:''; position:absolute; left:7px; top:3px; width:6px; height:11px; border:solid #fff; border-width:0 3px 3px 0; transform:rotate(45deg); }
.nwi-plan-svc__name{ font:800 16px var(--nwi-font-display); color:var(--nwi-navy); display:flex; flex-direction:column; }
.nwi-plan-svc__name small{ font:400 12.5px var(--nwi-font-sans); color:var(--nwi-muted); margin-top:2px; }
.nwi-plan-svc__chevron{ color:var(--nwi-muted); transition:transform .3s var(--nwi-ease); }
.nwi-plan-svc.is-open .nwi-plan-svc__chevron{ transform:rotate(180deg); }
.nwi-plan-svc__body{ display:none; border-top:1px solid var(--nwi-border); }
.nwi-plan-svc.is-open .nwi-plan-svc__body{ display:block; }
/* dentro do plano a calculadora ocupa a largura toda (sem o resumo lateral próprio) */
.nwi-plan .nwi-plan-svc__body .nwi-calc{ grid-template-columns:1fr; border:0; border-radius:0; box-shadow:none; background:transparent; }
.nwi-plan .nwi-plan-svc__body .nwi-calc__summary{ display:none; }
.nwi-plan .nwi-plan-svc__body .nwi-calc__config{ padding:22px 24px; }
.nwi-plan .nwi-plan-svc__body .nwi-calc__config > h3, .nwi-plan .nwi-plan-svc__body .nwi-calc__config > p{ display:none; } /* título já está no head */

/* modo single (página do serviço): sem accordion, calculadora normal */
.nwi-plan--single{ grid-template-columns:1fr 380px; }
.nwi-plan--single .nwi-plan-svc{ border:0; box-shadow:none; background:transparent; }
.nwi-plan--single .nwi-plan-svc__body{ border:0; }
.nwi-plan--single .nwi-plan .nwi-calc__config{ padding:0; }

/* resumo lateral do plano */
.nwi-plan__side{ position:sticky; top:90px; }
.nwi-plan__summary{ background:linear-gradient(170deg,var(--nwi-navy-deep),var(--nwi-navy) 80%); border-radius:20px; padding:26px 24px; color:#fff; margin-bottom:16px; }
.nwi-plan__summary h4{ font:700 12px var(--nwi-font-sans); letter-spacing:.16em; text-transform:uppercase; color:var(--nwi-cyan); margin:0 0 16px; }
.nwi-plan__empty{ color:rgba(255,255,255,.5); font-size:13.5px; margin:0; }
.nwi-plan-item{ padding:14px 0 4px; border-bottom:1px dashed rgba(255,255,255,.14); }
.nwi-plan-item:last-child{ border-bottom:0; }
.nwi-plan-item__svc{ font:700 11px var(--nwi-font-sans); letter-spacing:.14em; text-transform:uppercase; color:var(--nwi-cyan); margin:0 0 8px; }
.nwi-plan-item__todo{ font-size:12.5px; color:rgba(255,255,255,.5); font-style:italic; padding:2px 0 8px; }
/* detalhamento espaçado: rótulo à esquerda, valor à direita (igual ao resumo da calculadora) */
.nwi-plan-item .line{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:7px 0; border-bottom:1px solid rgba(255,255,255,.07); font-size:13px; }
.nwi-plan-item .line:last-child{ border-bottom:0; }
.nwi-plan-item .line span:first-child{ color:rgba(255,255,255,.6); }
.nwi-plan-item .line span:last-child{ font-weight:700; color:#fff; text-align:right; }
.nwi-plan__total{ display:flex; justify-content:space-between; align-items:baseline; margin-top:16px; padding-top:16px; border-top:1px solid rgba(255,255,255,.18); }
.nwi-plan__total span{ font-size:12.5px; color:rgba(255,255,255,.6); }
.nwi-plan__total b{ font:900 26px var(--nwi-font-display); color:var(--nwi-cyan); }
/* o form do plano encaixa DENTRO da barra escura, igual à calculadora:
   herda o estilo base .nwi-leadform (texto claro + acentos cyan) e só
   ganha um respiro do topo separando do total. */
.nwi-plan__summary .nwi-leadform{ margin-top:22px; }
