/*
Theme Name: Território da Palavra
Theme URI: https://territoriodapalavra.asas.art.br
Description: Tema acessível do portal Território da Palavra — Plano Bianual da Biblioteca e Videoteca Municipal de São Sebastião "Seu Alvinho". Child theme de Twenty Twenty-Five com identidade visual do projeto, barra de acessibilidade (tema claro/escuro/alto contraste, ajuste de fonte) e integração VLibras.
Author: Território da Palavra
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.7
Requires PHP: 8.1
License: GNU General Public License v2 or later
Text Domain: territorio-palavra
*/

/* ===== Tokens do projeto =====
   Paleta derivada do logotipo: teal #2F7D6E, verde-escuro #1E3932,
   creme #EDE6D5, menta #E8F0EB. */

:root {
  --tdp-focus: #B0713C;
}

/* ===== Modo escuro: redefine os presets do tema ===== */
html[data-theme="dark"] {
  --wp--preset--color--base: #14201c;
  --wp--preset--color--contrast: #f2efe6;
  --wp--preset--color--accent-1: #4fae9b;
  --wp--preset--color--accent-2: #1b2a25;
  --wp--preset--color--accent-3: #182620;
  --wp--preset--color--accent-4: #d9a86e;
  --wp--preset--color--accent-5: #33463f;
  --wp--preset--color--accent-6: #223730;
  color-scheme: dark;
}
html[data-theme="dark"] body { background-color: #14201c; color: #f2efe6; }
html[data-theme="dark"] img.tdp-barra-logos { background: #f2efe6; border-radius: 8px; padding: 12px; }

/* ===== Alto contraste ===== */
html[data-theme="contrast"] {
  --wp--preset--color--base: #ffffff;
  --wp--preset--color--contrast: #000000;
  --wp--preset--color--accent-1: #00513f;
  --wp--preset--color--accent-2: #ffffff;
  --wp--preset--color--accent-3: #ffffff;
  --wp--preset--color--accent-4: #7a3c00;
  --wp--preset--color--accent-5: #000000;
  --wp--preset--color--accent-6: #00291f;
}
html[data-theme="contrast"] body { background: #fff; color: #000; }
html[data-theme="contrast"] a { text-decoration: underline !important; color: #00318c !important; }
html[data-theme="contrast"] .wp-block-button__link,
html[data-theme="contrast"] .tdp-btn {
  background: #000 !important; color: #fff !important; border: 2px solid #000 !important;
}
html[data-theme="contrast"] .wp-block-group { border-color: #000; }

/* ===== Ajuste de tamanho de fonte ===== */
html[data-font="large"] { font-size: 112.5%; }
html[data-font="xlarge"] { font-size: 125%; }

/* ===== Foco visível (WCAG 2.4.7) ===== */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--tdp-focus) !important;
  outline-offset: 2px;
  border-radius: 2px;
}

/* ===== Barra de acessibilidade ===== */
.tdp-a11y-bar {
  background: var(--wp--preset--color--accent-6, #1e3932);
  color: #fff;
  font-size: 0.85rem;
}
.tdp-a11y-bar__inner {
  max-width: 1140px; margin: 0 auto; padding: 6px 16px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}
.tdp-a11y-bar__label { font-weight: 700; margin-right: 4px; }
.tdp-a11y-bar button {
  background: transparent; color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 4px; padding: 3px 10px; font-size: 0.85rem;
  cursor: pointer; line-height: 1.4;
}
.tdp-a11y-bar button:hover { background: rgba(255, 255, 255, 0.15); }
.tdp-a11y-bar button[aria-pressed="true"] {
  background: #fff; color: #1e3932; font-weight: 700; border-color: #fff;
}
html[data-theme="contrast"] .tdp-a11y-bar { background: #000; }
html[data-theme="contrast"] .tdp-a11y-bar button[aria-pressed="true"] { color: #000; }

/* ===== Skip link sempre disponível ===== */
.tdp-skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 100000;
  background: #1e3932; color: #fff; padding: 10px 18px; font-weight: 700;
}
.tdp-skip-link:focus { left: 8px; top: 8px; }

/* A página inicial usa o H1 do bloco de capa; o título da página ("Início")
   ficaria duplicado — WCAG 1.3.1 pede hierarquia única. */
body.home h1.wp-block-post-title { display: none; }

/* ===== Cartões de atividade ===== */
.tdp-card {
  border: 1px solid var(--wp--preset--color--accent-5, #d8d2c0);
  border-radius: 12px; padding: 24px;
  background: var(--wp--preset--color--accent-3, #e8f0eb);
}
.tdp-card h3 { margin-top: 0; }
.tdp-meta { font-size: 0.9rem; opacity: 0.92; }
.tdp-btn-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 12px; }

/* Botões (mínimo 24x24 de alvo, contraste AA) */
.tdp-btn {
  display: inline-block; padding: 10px 22px; border-radius: 8px;
  font-weight: 700; text-decoration: none; line-height: 1.4;
  border: 2px solid transparent;
}
.tdp-btn--primary { background: var(--wp--preset--color--accent-6, #1e3932); color: #fff; }
.tdp-btn--primary:hover { background: var(--wp--preset--color--accent-1, #2f7d6e); color: #fff; }
.tdp-btn--secondary {
  background: transparent; color: var(--wp--preset--color--contrast, #1e3932);
  border-color: var(--wp--preset--color--accent-1, #2f7d6e);
}
.tdp-btn--secondary:hover { background: var(--wp--preset--color--accent-3, #e8f0eb); }
html[data-theme="dark"] .tdp-btn--primary { background: #4fae9b; color: #14201c; }
html[data-theme="dark"] .tdp-btn--secondary { color: #f2efe6; }

/* Barra de logos no rodapé */
img.tdp-barra-logos { max-width: 100%; height: auto; }

/* Movimento reduzido (WCAG 2.3.3) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
