/* ==========================================================================
   Modo acessível – Terra de Cambra
   Tudo o que está dentro de "html.tdc-a11y" só se aplica quando o
   visitante ativa o modo no botão do cabeçalho. Sem o modo ativo,
   o site fica exatamente como o Blocksy o desenha.
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Cores do modo acessível (ajuste aqui se quiser outros tons).
      Todas têm contraste de pelo menos 7:1 sobre branco (WCAG AAA).
   -------------------------------------------------------------------------- */
html.tdc-a11y {
	--tdc-focus-inner: #000000;
	--tdc-focus-outer: #ffbf47;

	/* Texto maior para tudo o que usa rem (Blocksy, Stackable, Tainacan) */
	font-size: 112.5%;
	scroll-behavior: auto !important;
}

/*
 * NOTA SOBRE AS CORES
 *
 * Uma versão anterior redefinia aqui as variáveis da paleta do Blocksy
 * (--theme-palette-color-*) e do Elementor. Essa abordagem foi abandonada por
 * duas razões, ambas confirmadas por uma auditoria ao site:
 *
 *   1. Era cega ao fundo. Forçar texto escuro em todo o lado escurecia também
 *      o texto do rodapé, que assenta em fundo escuro, piorando o contraste
 *      em vez de o melhorar.
 *   2. Era incompleta. Não cobria a posição 8 da paleta, nem as cores inline
 *      que o Stackable e o Elementor escrevem diretamente nos elementos, que
 *      sempre venceriam estas variáveis.
 *
 * O contraste passou a ser tratado em a11y-mode.js, que lê a cor de fundo
 * efetiva de cada elemento e só corrige o texto quando o contraste real é
 * insuficiente, escolhendo claro ou escuro conforme o fundo.
 */

/* --------------------------------------------------------------------------
   1. Tamanho mínimo e espaçamento do texto (WCAG 1.4.4 e 1.4.12)
      max() garante pelo menos 18px sem encolher texto que já é maior,
      incluindo texto do Elementor definido em px.
   -------------------------------------------------------------------------- */
html.tdc-a11y body :is(p, li, dd, dt, td, th, blockquote, figcaption, label, caption) {
	font-size: max(1em, 18px) !important;
	line-height: 1.6 !important;
	letter-spacing: 0.02em !important;
	word-spacing: 0.06em !important;
}

html.tdc-a11y body :is(h1, h2, h3, h4, h5, h6) {
	line-height: 1.3 !important;
}

/* --------------------------------------------------------------------------
   2. Links distinguíveis sem depender da cor (WCAG 1.4.1)
   -------------------------------------------------------------------------- */
html.tdc-a11y body :is(p, li, dd, td, th, blockquote, figcaption) a:not(.ct-button):not(.wp-block-button__link):not(.elementor-button):not(.wp-element-button) {
	text-decoration: underline !important;
	text-decoration-thickness: 0.1em !important;
	text-underline-offset: 0.18em !important;
}

/* --------------------------------------------------------------------------
   3. Foco de teclado bem visível em fundos claros e escuros (WCAG 2.4.7 / 2.4.13)
   -------------------------------------------------------------------------- */
html.tdc-a11y :focus-visible {
	outline: 3px solid var(--tdc-focus-inner) !important;
	outline-offset: 0 !important;
	box-shadow: 0 0 0 6px var(--tdc-focus-outer) !important;
	border-radius: 2px;
}

/* --------------------------------------------------------------------------
   4. Sem animações, transições nem movimento (WCAG 2.3.3 / 2.2.2)
   -------------------------------------------------------------------------- */
html.tdc-a11y *,
html.tdc-a11y *::before,
html.tdc-a11y *::after {
	animation-duration: 0.001ms !important;
	animation-delay: 0s !important;
	animation-iteration-count: 1 !important;
	transition-duration: 0.001ms !important;
	transition-delay: 0s !important;
	scroll-behavior: auto !important;
}

/* Elementor: elementos com animação de entrada ficam logo visíveis */
html.tdc-a11y .elementor-invisible {
	visibility: visible !important;
	opacity: 1 !important;
}

/* Elementor: efeitos de movimento e parallax desligados */
html.tdc-a11y .elementor-motion-effects-layer,
html.tdc-a11y .elementor-motion-effects-element {
	transform: none !important;
}

/* --------------------------------------------------------------------------
   5. Alvos de toque com pelo menos 24x24 px (WCAG 2.5.8)
   -------------------------------------------------------------------------- */
html.tdc-a11y :is(.ct-icon-container, .elementor-social-icon, .ct-header-socials a, .ct-social-box a) {
	min-width: 24px;
	min-height: 24px;
}

/* --------------------------------------------------------------------------
   6. Estado do botão do cabeçalho (fora de .tdc-a11y: aplica-se sempre)
   -------------------------------------------------------------------------- */
[data-tdc-a11y-toggle] .tdc-a11y-state::before {
	content: "○";
	margin-inline-end: 0.4em;
	font-weight: 700;
}

[data-tdc-a11y-toggle][aria-pressed="true"] .tdc-a11y-state::before {
	content: "●";
}

/* Texto apenas para leitores de ecrã */
.tdc-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
