/* Huscher – Termo de Compromisso. Tudo escopado em #huscher-termos para não brigar com o tema/Elementor. */
#huscher-termos {
	--hth-bg: #e6ebee;
	--hth-card: #ffffff;
	--hth-ink: #16191b;
	--hth-text: #3b4246;
	--hth-muted: #8c969b;
	--hth-soft: #f3f5f6;
	--hth-line: #e1e6e9;
	--hth-accent: #84a9bc;
	--hth-deep: #3e6475;
	--hth-err: #b3261e;
	font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	color: var(--hth-text);
	background: var(--hth-bg);
	font-size: 16px;
	line-height: 1.6;
	text-align: left;
	border-radius: 0;
	-webkit-font-smoothing: antialiased;
	scroll-margin-top: 90px;
}
#huscher-termos *,
#huscher-termos *::before,
#huscher-termos *::after { box-sizing: border-box; font-family: inherit; }
#huscher-termos p, #huscher-termos h1, #huscher-termos h2, #huscher-termos h3, #huscher-termos ul { margin: 0; padding: 0; }
#huscher-termos strong { color: var(--hth-ink); font-weight: 700; }
#huscher-termos img { max-width: 100%; height: auto; display: block; border: 0; }

/* Cabeçalho */
#huscher-termos .hth-top { background: #fff; border-bottom: 1px solid var(--hth-line); }
#huscher-termos .hth-top-in { max-width: 940px; margin: 0 auto; padding: 20px 20px 18px; }
#huscher-termos .hth-brand { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
#huscher-termos .hth-brand img { height: 44px; width: auto; }
#huscher-termos .hth-step { font-size: 14px; font-weight: 600; color: var(--hth-muted); white-space: nowrap; }
#huscher-termos .hth-bar { display: flex; gap: 6px; }
#huscher-termos .hth-bar span { flex: 1; height: 5px; border-radius: 99px; background: var(--hth-line); transition: background .3s; }
#huscher-termos .hth-bar span.is-done { background: var(--hth-accent); }
#huscher-termos .hth-bar span.is-now { background: var(--hth-deep); }

/* Corpo */
#huscher-termos .hth-main { max-width: 940px; margin: 0 auto; padding: 40px 20px 48px; }
#huscher-termos .hth-card { background: var(--hth-card); border-radius: 22px; padding: 44px 48px; animation: hth-in .35s ease; }
@keyframes hth-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

#huscher-termos .hth-head { display: flex; align-items: center; gap: 18px; margin-bottom: 28px; }
#huscher-termos .hth-num { flex: 0 0 56px; height: 56px; border-radius: 14px; background: #edf2f4; color: var(--hth-deep); font-weight: 700; font-size: 19px; display: flex; align-items: center; justify-content: center; }
#huscher-termos .hth-kicker { font-size: 13px; font-weight: 600; letter-spacing: .18em; color: var(--hth-muted); text-transform: uppercase; }
#huscher-termos .hth-title { font-size: 30px; line-height: 1.2; font-weight: 700; color: var(--hth-ink); letter-spacing: -.01em; }

#huscher-termos .hth-body > * + * { margin-top: 18px; }
#huscher-termos .hth-p { font-size: 17px; line-height: 1.75; }
#huscher-termos .hth-split { display: grid; grid-template-columns: 1.15fr .85fr; gap: 36px; align-items: start; }
#huscher-termos .hth-split-txt > * + * { margin-top: 18px; }
#huscher-termos .hth-fig img { border-radius: 16px; border: 1px solid var(--hth-line); width: 100%; }
#huscher-termos .hth-fig figcaption { font-size: 13px; color: var(--hth-muted); text-align: center; margin-top: 10px; }
#huscher-termos figure { margin: 0; }
#huscher-termos .hth-video { width: 100%; border-radius: 16px; background: #111; display: block; aspect-ratio: 16 / 9; }

#huscher-termos .hth-sub { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--hth-deep); margin-top: 26px; }
#huscher-termos .hth-body > .hth-sub:first-child { margin-top: 0; }

/* Checklists */
#huscher-termos .hth-check { background: var(--hth-soft); border-radius: 16px; padding: 22px 24px; }
#huscher-termos .hth-check h3 { font-size: 14px; font-weight: 700; color: var(--hth-deep); margin-bottom: 6px; }
#huscher-termos .hth-check p { font-size: 15px; margin-bottom: 14px; }
#huscher-termos .hth-check ul { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px; }
#huscher-termos .hth-check li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; color: var(--hth-ink); line-height: 1.45; }
#huscher-termos .hth-check li::before { content: ""; flex: 0 0 20px; height: 20px; border-radius: 6px; background: var(--hth-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3L15 6.5' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat; margin-top: 1px; }
#huscher-termos .hth-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
#huscher-termos .hth-grid2 .hth-check ul { grid-template-columns: 1fr; }

/* Prazos */
#huscher-termos .hth-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
#huscher-termos .hth-stat { border: 1px solid var(--hth-line); border-radius: 18px; padding: 22px 24px; }
#huscher-termos .hth-stat small { display: block; font-size: 14px; font-weight: 600; color: var(--hth-muted); margin-bottom: 4px; }
#huscher-termos .hth-stat b { font-size: 32px; font-weight: 700; color: var(--hth-ink); letter-spacing: -.02em; }
#huscher-termos .hth-stat span { font-size: 15px; color: var(--hth-muted); margin-left: 4px; }

/* Fluxo */
#huscher-termos .hth-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; }
#huscher-termos .hth-flow b { background: var(--hth-soft); border-radius: 12px; padding: 12px 18px; font-size: 15px; font-weight: 700; color: var(--hth-ink); }
#huscher-termos .hth-flow b.is-end { background: var(--hth-accent); color: #fff; }
#huscher-termos .hth-flow i { font-style: normal; color: var(--hth-accent); font-size: 18px; }

/* Caixas (política financeira) */
#huscher-termos .hth-box { background: var(--hth-soft); border-radius: 16px; padding: 20px 24px; }
#huscher-termos .hth-box h3 { font-size: 14px; font-weight: 700; color: var(--hth-deep); margin-bottom: 6px; }
#huscher-termos .hth-box p { font-size: 16px; line-height: 1.6; }
#huscher-termos .hth-chips { display: flex; flex-wrap: wrap; gap: 8px; }
#huscher-termos .hth-chips span { background: #fff; border: 1px solid var(--hth-line); border-radius: 10px; padding: 8px 14px; font-size: 15px; color: var(--hth-ink); }
#huscher-termos .hth-note { font-size: 14px; color: var(--hth-muted); }

/* Aceite da seção */
#huscher-termos .hth-agree { display: flex; align-items: center; gap: 16px; margin-top: 36px; padding: 22px 24px; border: 1px solid var(--hth-line); background: #f9fafa; border-radius: 16px; cursor: pointer; user-select: none; transition: background .2s, border-color .2s; }
#huscher-termos .hth-agree:hover { border-color: var(--hth-accent); }
#huscher-termos .hth-agree input { position: absolute; opacity: 0; pointer-events: none; }
#huscher-termos .hth-box-ck { flex: 0 0 32px; height: 32px; border-radius: 9px; border: 1.5px solid #cfd6da; background: #fff; display: flex; align-items: center; justify-content: center; transition: all .2s; }
#huscher-termos .hth-box-ck svg { width: 18px; height: 18px; opacity: 0; transition: opacity .15s; }
#huscher-termos .hth-agree span.hth-agree-txt { font-weight: 700; font-size: 17px; color: var(--hth-ink); }
#huscher-termos .hth-agree.is-on { background: #eef4f7; border-color: var(--hth-accent); }
#huscher-termos .hth-agree.is-on .hth-box-ck { background: var(--hth-accent); border-color: var(--hth-accent); }
#huscher-termos .hth-agree.is-on .hth-box-ck svg { opacity: 1; }
#huscher-termos .hth-agree:focus-within { outline: 3px solid rgba(132, 169, 188, .45); outline-offset: 2px; }

/* Navegação */
#huscher-termos .hth-nav { display: flex; align-items: center; gap: 18px; margin-top: 26px; }
#huscher-termos .hth-hint { flex: 1; font-size: 15px; color: var(--hth-muted); }
#huscher-termos button.hth-btn {
	appearance: none; font: inherit; font-size: 17px; font-weight: 700; line-height: 1; border-radius: 16px; padding: 20px 30px; cursor: pointer;
	border: 1px solid var(--hth-deep); background: var(--hth-deep); color: #fff; text-transform: none; letter-spacing: 0; box-shadow: none; transition: background .2s, opacity .2s; display: inline-flex; align-items: center; gap: 10px; text-decoration: none; white-space: nowrap;
}
#huscher-termos button.hth-btn:hover { background: #33566a; border-color: #33566a; color: #fff; }
#huscher-termos button.hth-btn:disabled { background: #e1e7ea; border-color: #e1e7ea; color: #a6b1b7; cursor: not-allowed; }
#huscher-termos button.hth-btn.is-ghost { background: #fff; color: var(--hth-ink); border-color: var(--hth-line); }
#huscher-termos button.hth-btn.is-ghost:hover { border-color: var(--hth-accent); background: #fff; color: var(--hth-ink); }
#huscher-termos button.hth-btn.is-small { font-size: 14px; padding: 10px 16px; border-radius: 10px; }
#huscher-termos button.hth-btn:focus-visible { outline: 3px solid rgba(132, 169, 188, .6); outline-offset: 2px; }

/* Boas-vindas */
#huscher-termos .hth-hero { text-align: center; padding: 20px 0 8px; }
#huscher-termos .hth-hero img.hth-hero-logo { height: 64px; width: auto; margin: 0 auto 30px; }
#huscher-termos .hth-hero h1 { font-size: 34px; line-height: 1.2; color: var(--hth-ink); font-weight: 700; letter-spacing: -.015em; }
#huscher-termos .hth-hero p { max-width: 560px; margin: 16px auto 0; font-size: 17px; }
#huscher-termos .hth-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 34px 0 34px; text-align: left; }
#huscher-termos .hth-steps div { background: var(--hth-soft); border-radius: 16px; padding: 18px 20px; font-size: 15px; }
#huscher-termos .hth-steps b { display: block; color: var(--hth-deep); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 4px; }

/* Formulário final */
#huscher-termos .hth-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
#huscher-termos .hth-field { display: flex; flex-direction: column; gap: 6px; }
#huscher-termos .hth-field.is-wide { grid-column: 1 / -1; }
#huscher-termos .hth-field label { font-size: 14px; font-weight: 700; color: var(--hth-ink); }
#huscher-termos .hth-field label em { font-style: normal; font-weight: 500; color: var(--hth-muted); }
#huscher-termos .hth-row { display: flex; gap: 10px; }
#huscher-termos .hth-row input { flex: 1; min-width: 0; }
#huscher-termos .hth-row select { flex: 0 0 96px; }
#huscher-termos input.hth-in, #huscher-termos select.hth-in {
	font: inherit; font-size: 16px; color: var(--hth-ink); background: #fff; border: 1.5px solid #d5dce0; border-radius: 12px; padding: 13px 14px; width: 100%; height: auto; box-shadow: none; outline: none; transition: border-color .2s;
}
#huscher-termos input.hth-in:focus, #huscher-termos select.hth-in:focus { border-color: var(--hth-accent); box-shadow: 0 0 0 3px rgba(132, 169, 188, .25); }
#huscher-termos .hth-field.is-err input.hth-in, #huscher-termos .hth-field.is-err select.hth-in, #huscher-termos .hth-sign.is-err canvas { border-color: var(--hth-err); }
#huscher-termos .hth-err { font-size: 13px; color: var(--hth-err); display: none; }
#huscher-termos .is-err > .hth-err, #huscher-termos .is-err .hth-err { display: block; }
#huscher-termos .hth-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

#huscher-termos .hth-sign { margin-top: 26px; }
#huscher-termos .hth-sign-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
#huscher-termos .hth-sign-top label { font-size: 14px; font-weight: 700; color: var(--hth-ink); }
#huscher-termos .hth-sign canvas { display: block; width: 100%; height: 200px; background: #fff; border: 1.5px dashed #c3ccd1; border-radius: 16px; touch-action: none; cursor: crosshair; }
#huscher-termos .hth-sign-line { font-size: 13px; color: var(--hth-muted); text-align: center; margin-top: 8px; }

#huscher-termos .hth-alert { background: #fdecea; color: var(--hth-err); border-radius: 12px; padding: 14px 18px; font-size: 15px; margin-top: 20px; display: none; }
#huscher-termos .hth-alert.is-on { display: block; }

/* Sucesso */
#huscher-termos .hth-done { text-align: center; padding: 30px 0 10px; }
#huscher-termos .hth-done-ico { width: 76px; height: 76px; border-radius: 50%; background: #eef4f7; display: flex; align-items: center; justify-content: center; margin: 0 auto 24px; }
#huscher-termos .hth-done h1 { font-size: 30px; color: var(--hth-ink); font-weight: 700; }
#huscher-termos .hth-done p { max-width: 520px; margin: 12px auto 0; }
#huscher-termos .hth-code { display: inline-block; margin-top: 18px; background: var(--hth-soft); border-radius: 10px; padding: 8px 14px; font-weight: 700; color: var(--hth-deep); letter-spacing: .04em; }
#huscher-termos .hth-done .hth-btn { margin-top: 26px; }

#huscher-termos .hth-spin { width: 18px; height: 18px; border: 2.5px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: hth-spin .8s linear infinite; }
@keyframes hth-spin { to { transform: rotate(360deg); } }

/* Celular */
@media (max-width: 760px) {
	#huscher-termos .hth-top-in { padding: 14px 16px; }
	#huscher-termos .hth-brand img { height: 32px; }
	#huscher-termos .hth-bar { gap: 4px; }
	#huscher-termos .hth-main { padding: 16px 12px 28px; }
	#huscher-termos .hth-card { padding: 26px 20px; border-radius: 18px; }
	#huscher-termos .hth-head { gap: 14px; margin-bottom: 22px; }
	#huscher-termos .hth-num { flex-basis: 46px; height: 46px; font-size: 17px; }
	#huscher-termos .hth-kicker { font-size: 11px; }
	#huscher-termos .hth-title { font-size: 23px; }
	#huscher-termos .hth-p { font-size: 16px; }
	#huscher-termos .hth-split, #huscher-termos .hth-grid2, #huscher-termos .hth-cards, #huscher-termos .hth-steps, #huscher-termos .hth-form { grid-template-columns: 1fr; }
	#huscher-termos .hth-check ul { grid-template-columns: 1fr; }
	#huscher-termos .hth-split .hth-fig { max-width: 420px; }
	#huscher-termos .hth-agree { padding: 18px; margin-top: 28px; }
	#huscher-termos .hth-agree span.hth-agree-txt { font-size: 16px; }
	#huscher-termos .hth-nav { flex-wrap: wrap; gap: 12px; }
	#huscher-termos .hth-hint { order: -1; flex-basis: 100%; text-align: center; font-size: 14px; }
	#huscher-termos button.hth-btn { padding: 17px 22px; font-size: 16px; }
	#huscher-termos .hth-nav .hth-btn.is-next { flex: 1; justify-content: center; }
	#huscher-termos .hth-hero h1 { font-size: 26px; }
	#huscher-termos .hth-hero img.hth-hero-logo { height: 48px; }
	#huscher-termos .hth-flow b { padding: 10px 14px; font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
	#huscher-termos * { animation: none !important; transition: none !important; }
}
