/*!
 * Acessibilidade Total — estilos aplicados à página.
 * O painel em si fica isolado em Shadow DOM (assets/css/widget.css),
 * então nada aqui afeta o layout do Elementor até o visitante ativar um ajuste.
 * #acst-root é excluído das regras para não alterar o próprio painel.
 */

/* ============ Botão (widget Elementor e shortcode) ============ */
.acst-trigger {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-height: 44px;
	padding: .7em 1.2em;
	border: 0;
	border-radius: 999px;
	background-color: var(--acst-primary, #1d4ed8);
	color: var(--acst-on-primary, #fff);
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: filter .15s ease, transform .15s ease;
	outline: 3px solid transparent;
	outline-offset: 3px;
}
.acst-trigger:hover { filter: brightness(1.08); }
.acst-trigger:active { transform: translateY(1px); }
.acst-trigger:focus-visible { outline-color: #111827; }
.acst-trigger svg,
.acst-trigger__icon { width: 1.3em; height: 1.3em; flex: none; }
img.acst-trigger__icon { display: block; object-fit: contain; }
/* Ícone escolhido no widget do Elementor (Font Awesome ou SVG enviado) */
.acst-trigger__icon-wrap { display: inline-flex; align-items: center; justify-content: center; flex: none; line-height: 1; }
.acst-trigger__icon-wrap i { font-size: 1.3em; }
.acst-trigger--icon-only { padding: .7em; aspect-ratio: 1; }

/* ============ Link "Pular para o conteúdo" ============ */
.acst-skip-link {
	position: fixed !important;
	top: 12px;
	inset-inline-start: 12px;
	z-index: 2147483002;
	padding: 14px 20px;
	border-radius: 10px;
	background: #111827 !important;
	color: #fff !important;
	font: 600 16px/1.2 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
	text-decoration: underline !important;
	box-shadow: 0 6px 24px rgba(0, 0, 0, .35);
	transform: translateY(-160%);
	transition: transform .15s ease;
}
.acst-skip-link:focus {
	transform: none;
	outline: 3px solid #fbbf24 !important;
	outline-offset: 2px;
}
.acst-skip-target:focus { outline: none; }

/* ============ Altura da linha ============ */
html.acst-lh-1 body *:not(#acst-root) { line-height: 1.6 !important; }
html.acst-lh-2 body *:not(#acst-root) { line-height: 1.9 !important; }
html.acst-lh-3 body *:not(#acst-root) { line-height: 2.25 !important; }

/* ============ Espaçamento entre letras e palavras ============ */
html.acst-ls-1 body *:not(#acst-root) { letter-spacing: .06em !important; word-spacing: .12em !important; }
html.acst-ls-2 body *:not(#acst-root) { letter-spacing: .12em !important; word-spacing: .24em !important; }
html.acst-ls-3 body *:not(#acst-root) { letter-spacing: .18em !important; word-spacing: .36em !important; }

/* ============ Fonte legível (preserva fontes de ícones) ============ */
/* (seletor composto precisa ficar numa linha só: quebra de linha viraria combinador descendente) */
html.acst-readable body *:not(#acst-root):not(i):not(svg):not(svg *):not(code):not(pre):not(kbd):not([class*="fa-"]):not([class^="fa"]):not([class*=" fa"]):not([class*="eicon"]):not([class*="dashicons"]):not([class*="material-icons"]):not([class*="material-symbols"]):not([class*="ti-"]):not([class*="icon-"]):not([class*="-icon"]):not([data-icon]) {
	font-family: Verdana, Tahoma, "Segoe UI", "Helvetica Neue", Arial, sans-serif !important;
	font-style: normal !important;
}
/* Textos do Elementor que ficam dentro de wrappers com "icon" no nome */
html.acst-readable body .elementor-icon-list-text,
html.acst-readable body .elementor-icon-box-title,
html.acst-readable body .elementor-icon-box-title *,
html.acst-readable body .elementor-icon-box-description {
	font-family: Verdana, Tahoma, "Segoe UI", "Helvetica Neue", Arial, sans-serif !important;
}

/* ============ Alinhar à esquerda ============ */
html.acst-align-left body :is(p, li, h1, h2, h3, h4, h5, h6, blockquote, dd, dt, td, th, figcaption, label, caption,
	.elementor-heading-title, .elementor-widget-text-editor, .elementor-text-editor,
	.elementor-icon-box-content, .elementor-image-box-content, .elementor-testimonial-content) {
	text-align: start !important;
}

/* ============ Destacar links ============ */
html.acst-hl-links body a[href]:not(.acst-skip-link) {
	outline: 3px solid #f59e0b !important;
	outline-offset: 2px !important;
	text-decoration: underline !important;
	text-decoration-thickness: 2px !important;
	text-underline-offset: 3px !important;
}

/* ============ Destacar títulos ============ */
html.acst-hl-headings body :is(h1, h2, h3, h4, h5, h6, [role="heading"]) {
	outline: 3px dashed var(--acst-primary, #1d4ed8) !important;
	outline-offset: 4px !important;
}

/* ============ Destacar foco do teclado ============ */
html.acst-focus body *:not(#acst-root):focus,
html.acst-focus body *:not(#acst-root):focus-visible {
	outline: 4px solid #f59e0b !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 7px #111827 !important;
}

/* ============ Cursor grande ============ */
html.acst-big-cursor,
html.acst-big-cursor * {
	cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M9 4v34l9-8.6 6.4 14 6.2-2.9-6.3-13.6H36z' fill='%23000' stroke='%23fff' stroke-width='2.6' stroke-linejoin='round'/%3E%3C/svg%3E") 9 4, auto !important;
}
html.acst-big-cursor :is(a, button, summary, label, select, [role="button"], [role="link"], [role="tab"], [onclick], input[type="submit"], input[type="button"], input[type="checkbox"], input[type="radio"]),
html.acst-big-cursor :is(a, button, summary, [role="button"], [role="link"], [role="tab"]) * {
	cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M9 4v34l9-8.6 6.4 14 6.2-2.9-6.3-13.6H36z' fill='%231d4ed8' stroke='%23fff' stroke-width='2.6' stroke-linejoin='round'/%3E%3C/svg%3E") 9 4, pointer !important;
}

/* ============ Pausar animações ============ */
html.acst-stop-anim,
html.acst-stop-anim *,
html.acst-stop-anim *::before,
html.acst-stop-anim *::after {
	animation-delay: -1ms !important;
	animation-duration: 1ms !important;
	animation-iteration-count: 1 !important;
	transition-delay: 0s !important;
	transition-duration: 0s !important;
	scroll-behavior: auto !important;
}
/* Animações de entrada do Elementor: mostra o elemento já no estado final */
html.acst-stop-anim .elementor-invisible { visibility: visible !important; }

/* ============ Ocultar imagens ============ */
html.acst-hide-img body :is(img, picture, video, figure > svg, [role="img"]:not(svg)):not(.acst-trigger__icon) {
	visibility: hidden !important;
}
html.acst-hide-img body *:not(#acst-root) { background-image: none !important; }

/* ============ Alto contraste (fundo escuro) ============ */
html.acst-contrast-dark,
html.acst-contrast-dark body { background: #000 !important; }
html.acst-contrast-dark body *:not(#acst-root) {
	background-color: #000 !important;
	background-image: none !important;
	color: #fff !important;
	border-color: #fff !important;
	text-shadow: none !important;
	box-shadow: none !important;
}
html.acst-contrast-dark body :is(a, a *):not(#acst-root) { color: #ffe600 !important; }
html.acst-contrast-dark body :is(button, input, select, textarea, .elementor-button) {
	border: 2px solid #fff !important;
}
html.acst-contrast-dark body ::placeholder { color: #d1d5db !important; opacity: 1 !important; }
html.acst-contrast-dark body mark { background-color: #ffe600 !important; color: #000 !important; }

/* ============ Fundo claro ============ */
html.acst-contrast-light,
html.acst-contrast-light body { background: #fff !important; }
html.acst-contrast-light body *:not(#acst-root) {
	background-color: #fff !important;
	background-image: none !important;
	color: #000 !important;
	border-color: #000 !important;
	text-shadow: none !important;
	box-shadow: none !important;
}
html.acst-contrast-light body :is(a, a *):not(#acst-root) { color: #0000c8 !important; }
html.acst-contrast-light body :is(button, input, select, textarea, .elementor-button) {
	border: 2px solid #000 !important;
}

/* ============ Filtros de cor (no <html> não quebram position:fixed / sticky do Elementor) ============ */
html.acst-contrast-invert { filter: invert(1) hue-rotate(180deg) !important; }
html.acst-contrast-invert body :is(img, video, iframe, canvas, picture > img) {
	filter: invert(1) hue-rotate(180deg) !important;
}
html.acst-contrast-grayscale { filter: grayscale(1) !important; }
html.acst-contrast-lowsat { filter: saturate(.35) !important; }

/* ============ Leitura em voz alta ============ */
html.acst-tts body :is(p, li, h1, h2, h3, h4, h5, h6, td, th, blockquote, figcaption, dd, dt, .elementor-heading-title) {
	cursor: help;
}
.acst-tts-reading {
	outline: 3px solid var(--acst-primary, #1d4ed8) !important;
	outline-offset: 3px !important;
	background-color: rgba(250, 204, 21, .28) !important;
}

/* ============ Usuário pediu menos movimento no sistema ============ */
@media (prefers-reduced-motion: reduce) {
	.acst-trigger,
	.acst-skip-link { transition: none; }
}
