/*
Theme Name: Tema Art Labs
Description: Tema organizador da Art Labs. Base WordPress limpa e leve para que um plugin da Art Labs (Vitrine de Achadinhos, Catálogo Art Labs ou Guia Comercial Art Labs) funcione como ferramenta completa. Sem cabeçalho, rodapé ou visual de marca próprios. Compatível com o Elementor, sem depender dele.
Author: Art Labs Agência Digital
Version: 0.1.0
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: tema-art-labs
Domain Path: /languages
Tags: one-column, accessibility-ready, translation-ready, custom-logo, featured-images

Projeto Gerado pelo Prompt Mestre do Desenvolvedor e Vibe Coder Dante Testa — www.dantetesta.com.br
*/

/* Todas as regras usam :where() (especificidade zero): plugin, Elementor e tema filho sempre vencem. */

:where(*, *::before, *::after) { box-sizing: border-box; }

:where(html) { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

:where(body) {
	margin: 0;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 1.0625rem;
	line-height: 1.6;
	color: #1d1d1f;
	background: #fff;
	overflow-wrap: break-word;
}

:where(img, video, iframe, embed, object, svg) { max-width: 100%; }
:where(img, video) { height: auto; }

:where(h1, h2, h3, h4, h5, h6) { line-height: 1.25; margin: 1.6em 0 .5em; }
:where(h1) { font-size: clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem); margin-top: 0; }
:where(h2) { font-size: clamp(1.4rem, 1.2rem + .9vw, 1.9rem); }
:where(h3) { font-size: 1.3rem; }
:where(p, ul, ol, figure, blockquote, pre, table) { margin: 0 0 1.2em; }

:where(a) { color: #0b57d0; text-underline-offset: .15em; }
:where(a:hover) { text-decoration-thickness: 2px; }

:where(pre) { overflow-x: auto; padding: 1em; background: #f4f4f5; }
:where(code, kbd, pre, samp) { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .92em; }
:where(blockquote) { margin-inline: 0; padding-inline-start: 1em; border-inline-start: 4px solid #d4d4d8; }
:where(table) { border-collapse: collapse; width: 100%; display: block; overflow-x: auto; }
:where(th, td) { border: 1px solid #d4d4d8; padding: .5em .75em; text-align: start; }
:where(hr) { border: 0; border-top: 1px solid #d4d4d8; margin: 2em 0; }

:where(input, button, select, textarea) { font: inherit; max-width: 100%; }
:where(button, input[type="submit"]) { cursor: pointer; padding: .55em 1em; }

/* Foco sempre visível (WCAG 2.4.7 / 2.4.11). */
:where(:focus-visible) { outline: 3px solid #0b57d0; outline-offset: 2px; }

/* Largura de leitura das páginas fora do plugin. Páginas do Elementor ficam livres. */
:where(.artlabs-conteudo) { width: 100%; max-width: 46rem; margin-inline: auto; padding: 2rem 1.25rem 3rem; }
:where(.artlabs-largura-total .artlabs-conteudo, .elementor-page .artlabs-conteudo) { max-width: none; padding: 0; }

:where(.artlabs-item) { margin-bottom: 2.5rem; }
:where(.artlabs-item h2) { margin-top: 0; }
:where(.artlabs-meta) { font-size: .9rem; color: #52525b; }
:where(.artlabs-paginacao .nav-links) { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }

/* Alinhamentos e mídia do editor. */
:where(.alignleft) { float: left; margin: 0 1.5em 1em 0; }
:where(.alignright) { float: right; margin: 0 0 1em 1.5em; }
:where(.aligncenter) { display: block; margin-inline: auto; }
:where(.alignwide, .alignfull) { max-width: none; }
:where(.wp-caption, .wp-block-image figcaption) { font-size: .9rem; color: #52525b; }
:where(.wp-caption) { max-width: 100%; }
:where(.gallery) { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .75rem; }
:where(.sticky, .bypostauthor, .gallery-caption) { display: block; }

/* Leitores de tela e link de pular. */
:where(.screen-reader-text) {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%);
	white-space: nowrap; border: 0;
}
:where(.screen-reader-text:focus) {
	clip: auto; clip-path: none; width: auto; height: auto; margin: 0;
	top: .5rem; left: .5rem; z-index: 100000;
	padding: .75rem 1rem; background: #fff; color: #1d1d1f;
	box-shadow: 0 0 0 3px #0b57d0; white-space: normal;
}

@media (prefers-reduced-motion: reduce) {
	:where(*, *::before, *::after) {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}
