/*
Theme Name: VerdeWeb Base
Theme URI: https://verdeweb.pt
Author: VerdeWeb
Author URI: https://verdeweb.pt
Description: Tema base para o VerdeWeb Builder. Não tem decisões de design próprias — o desenho vem dos tokens e dos templates do builder, por isso é o mesmo ficheiro em todos os sites. Sem frameworks, sem jQuery, sem painel de opções.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.1
License: GPLv2 or later
Text Domain: verdeweb-base
Tags: one-column, custom-menu, custom-logo, editor-style, translation-ready
*/

/* ---------------------------------------------------------------------------
   Base mínima.

   Tudo aqui usa as variáveis do builder com um valor de recurso, para que o
   site continue legível mesmo sem o plugin ativo. Não há cores de marca nem
   decisões de layout: isso vive nos tokens.
   --------------------------------------------------------------------------- */

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

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

body {
	margin: 0;
	background: var(--vw-color-fundo, #fff);
	color: var(--vw-color-tinta, #17211d);
	font-family: var(--vw-font-corpo, system-ui, -apple-system, "Segoe UI", sans-serif);
	font-size: var(--vw-size-corpo, 1.05rem);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .5em;
	font-family: var(--vw-font-titulo, inherit);
	line-height: 1.15;
	text-wrap: balance;
}
h1 { font-size: var(--vw-size-display, 2.6rem); }
h2 { font-size: var(--vw-size-titulo, 2rem); }
h3 { font-size: var(--vw-size-subtitulo, 1.35rem); }

p, ul, ol, figure, table, pre { margin: 0 0 1em; }
p { text-wrap: pretty; }

a { color: inherit; text-underline-offset: .18em; }

img, svg, video, iframe { max-width: 100%; height: auto; }

input, button, textarea, select { font: inherit; color: inherit; }

button, [type="submit"] { cursor: pointer; }

table { width: 100%; border-collapse: collapse; }
th, td { padding: .6em; border-bottom: 1px solid var(--vw-color-linha, #e3e7e5); text-align: left; }

blockquote {
	margin: 0 0 1em;
	padding-left: 1em;
	border-left: 3px solid var(--vw-color-linha, #e3e7e5);
}

code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .92em; }
pre { padding: 1em; overflow: auto; background: var(--vw-color-fundoalt, #f2f4f3); border-radius: var(--vw-radius-caixa, 12px); }

/* --------------------------------------------------------------- estrutura */

.vwb-wrap {
	width: 100%;
	max-width: var(--vw-space-largura, 1200px);
	margin-inline: auto;
	padding-inline: var(--vw-space-margem, 24px);
}

.vwb-main { display: block; }

.vwb-skip {
	position: absolute;
	left: -9999px;
	padding: 12px 18px;
	background: var(--vw-color-tinta, #17211d);
	color: #fff;
	z-index: 999999;
}
.vwb-skip:focus { left: 8px; top: 8px; }

:where(a, button, input, textarea, select, summary):focus-visible {
	outline: 2px solid var(--vw-color-marca, #2b7a55);
	outline-offset: 2px;
}

/* -------------------------------------------------------- cabeçalho básico

   Só aparece quando NÃO existe um template de cabeçalho no builder. É de
   propósito que é feio-neutro: serve de rede, não de design.
   --------------------------------------------------------------------------- */

.vwb-site-header {
	border-bottom: 1px solid var(--vw-color-linha, #e3e7e5);
	padding-block: var(--vw-space-apertado, 14px);
}
.vwb-site-header .vwb-wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--vw-space-elemento, 20px);
}
.vwb-site-title { margin: 0; font-size: 1.25rem; }
.vwb-site-title a { text-decoration: none; }

.vwb-nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--vw-space-elemento, 20px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.vwb-nav a { text-decoration: none; }
.vwb-nav .current-menu-item > a { text-decoration: underline; }

.vwb-site-footer {
	margin-top: var(--vw-space-seccao, 80px);
	padding-block: var(--vw-space-bloco, 40px);
	border-top: 1px solid var(--vw-color-linha, #e3e7e5);
	color: var(--vw-color-suave, #64726c);
	font-size: var(--vw-size-pequeno, .9rem);
}

/* --------------------------------------------------------------- conteúdo */

.vwb-entry { padding-block: var(--vw-space-bloco, 40px); }
.vwb-entry-meta { color: var(--vw-color-suave, #64726c); font-size: var(--vw-size-pequeno, .9rem); }

.vwb-list {
	display: grid;
	gap: var(--vw-space-elemento, 24px);
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	padding-block: var(--vw-space-bloco, 40px);
}
.vwb-list article h2 { font-size: var(--vw-size-subtitulo, 1.3rem); }
.vwb-list img { border-radius: var(--vw-radius-caixa, 12px); }

.vwb-pagination { display: flex; gap: 10px; flex-wrap: wrap; padding-block: var(--vw-space-bloco, 40px); }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.alignwide { max-width: min(100%, 1400px); margin-inline: auto; }
.alignfull { width: 100%; }
.aligncenter { display: block; margin-inline: auto; }
