/*
Theme Name: Liga de Cirurgia
Theme URI: https://example.org/
Author: Liga de Cirurgia Geral
Description: Tema de blocos para ligas acadêmicas de cirurgia. Identidade técnico-científica, biblioteca de procedimentos padronizada e edição visual pelo Editor do Site — sem necessidade de construtor de páginas.
Version: 2.4.2
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: liga-cirurgia
Tags: block-theme, full-site-editing, education, one-column, custom-colors, custom-menu
*/

/* =========================================================
   1. Base
   ========================================================= */

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

body {
	font-optical-sizing: auto;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--wp--preset--color--drape);
	color: var(--wp--preset--color--campo);
}

:where(a):focus-visible,
:where(button):focus-visible,
:where(input):focus-visible,
:where(select):focus-visible,
:where(textarea):focus-visible,
.wp-block-navigation a:focus-visible {
	outline: 2px solid var(--wp--preset--color--drape-claro);
	outline-offset: 3px;
	border-radius: 2px;
}

/* =========================================================
   2. Rótulos e microtipografia (família "dado")
   ========================================================= */

.lc-rotulo,
.lc-rotulo p {
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--neutro);
	margin: 0;
}

.lc-rotulo--drape,
.lc-rotulo--drape p { color: var(--wp--preset--color--drape); }

.lc-dado,
.lc-dado p {
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--pequeno);
	letter-spacing: 0.01em;
}

/* Numeração de seção: só onde a ordem significa algo */
.lc-indice {
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	color: var(--wp--preset--color--drape);
	letter-spacing: 0.12em;
}

/* =========================================================
   3. Elemento assinatura — "campo estéril"
   Moldura de fio fino com marcas de canto e rótulo sobre a
   regra superior, como uma prancha técnica.
   ========================================================= */

.lc-campo {
	position: relative;
	background: var(--wp--preset--color--superficie);
	border: 1px solid var(--wp--preset--color--linha);
	border-radius: var(--wp--custom--raio);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	transition: border-color 0.25s ease, transform 0.25s ease;
}

/* marcas de canto */
.lc-campo::before,
.lc-campo::after {
	content: "";
	position: absolute;
	width: 9px;
	height: 9px;
	border: 1px solid var(--wp--preset--color--drape-claro);
	opacity: 0.85;
	pointer-events: none;
}

.lc-campo::before {
	top: -1px;
	left: -1px;
	border-right: 0;
	border-bottom: 0;
}

.lc-campo::after {
	bottom: -1px;
	right: -1px;
	border-left: 0;
	border-top: 0;
}

/* rótulo assentado sobre a regra superior */
.lc-campo > .lc-campo__etiqueta {
	position: absolute;
	top: 0;
	left: clamp(1.5rem, 3vw, 2.25rem);
	transform: translateY(-50%);
	background: var(--wp--preset--color--superficie);
	padding: 0 0.6rem;
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--drape);
	white-space: nowrap;
}

a.lc-campo:hover,
.lc-campo:has(a:hover) {
	border-color: var(--wp--preset--color--drape-claro);
	transform: translateY(-2px);
}

/* variante sobre fundo escuro */
.lc-campo--escuro {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.22);
}

.lc-campo--escuro > .lc-campo__etiqueta {
	background: var(--wp--preset--color--drape);
	color: rgba(255, 255, 255, 0.85);
}

.lc-campo--escuro::before,
.lc-campo--escuro::after { border-color: rgba(255, 255, 255, 0.45); }

/* =========================================================
   4. Cabeçalho
   ========================================================= */

.lc-barra-topo {
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.lc-cabecalho {
	position: sticky;
	top: 0;
	z-index: 40;
	background: color-mix(in srgb, var(--wp--preset--color--campo) 92%, transparent);
	backdrop-filter: saturate(180%) blur(10px);
	border-bottom: 1px solid var(--wp--preset--color--linha);
}

.lc-cabecalho .wp-block-navigation {
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--pequeno);
	letter-spacing: 0.02em;
}

.lc-cabecalho .wp-block-navigation-item__content {
	text-decoration: none;
	padding-block: 0.35rem;
	position: relative;
}

.lc-cabecalho .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: var(--wp--preset--color--drape);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.lc-cabecalho .wp-block-navigation-item__content:hover::after,
.lc-cabecalho .current-menu-item .wp-block-navigation-item__content::after {
	transform: scaleX(1);
}

/* =========================================================
   5. Herói
   ========================================================= */

.lc-heroi {
	border-bottom: 1px solid var(--wp--preset--color--linha);
}

.lc-heroi h1 {
	text-wrap: balance;
	font-stretch: 112%;
	font-weight: 700;
}

.lc-heroi__lista {
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--pequeno);
}

.lc-heroi__lista li {
	display: flex;
	gap: 0.9rem;
	padding: 0.65rem 0;
	border-bottom: 1px dotted var(--wp--preset--color--linha);
	color: var(--wp--preset--color--neutro);
}

.lc-heroi__lista li:last-child { border-bottom: 0; padding-bottom: 0; }
.lc-heroi__lista b { color: var(--wp--preset--color--tinta); font-weight: 500; }

/* =========================================================
   6. Etiquetas de cenário — cor carrega informação
   ========================================================= */

.lc-cenario {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.09em;
	text-transform: uppercase;
	padding: 0.3rem 0.6rem;
	border-radius: 2px;
	border: 1px solid currentColor;
	color: var(--wp--preset--color--drape);
	background: transparent;
	text-decoration: none;
}

/* Emergência é a única etiqueta preenchida — urgência se lê antes de se ler. */
.lc-cenario--emergencia {
	color: #ffffff;
	background: var(--wp--preset--color--drape);
	border-color: var(--wp--preset--color--drape);
}

.lc-cenario--ambulatorio { color: var(--wp--preset--color--drape); }
.lc-cenario--bloco { color: var(--wp--preset--color--tinta); }

/* =========================================================
   7. Grade de cartões
   ========================================================= */

.lc-grade {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
}

.lc-cartao {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	height: 100%;
	text-decoration: none;
	color: inherit;
}

.lc-cartao h3,
.lc-cartao h4 { margin: 0; }

.lc-cartao p {
	margin: 0;
	color: var(--wp--preset--color--neutro);
	font-size: var(--wp--preset--font-size--pequeno);
	line-height: 1.55;
}

.lc-cartao__pe {
	margin-top: auto;
	padding-top: 0.9rem;
	border-top: 1px solid var(--wp--preset--color--linha);
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--drape);
}

/* =========================================================
   8. Ficha de procedimento
   ========================================================= */

.lc-ficha {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 0 1.75rem;
	border-top: 1px solid var(--wp--preset--color--linha);
	padding: 1.1rem 0;
}

.lc-ficha dt {
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--neutro);
	padding-top: 0.25rem;
}

.lc-ficha dd { margin: 0; }

@media (max-width: 640px) {
	.lc-ficha { grid-template-columns: 1fr; gap: 0.4rem; }
}

/* Aviso clínico */
.lc-aviso {
	border-left: 3px solid var(--wp--preset--color--sinal);
	background: #F6E9E8;
	padding: 1rem 1.25rem;
	font-size: var(--wp--preset--font-size--pequeno);
	line-height: 1.55;
	border-radius: 0 var(--wp--custom--raio) var(--wp--custom--raio) 0;
}

.lc-aviso strong { color: var(--wp--preset--color--sinal); }

/* =========================================================
   9. Conteúdo longo (artigos e procedimentos)
   ========================================================= */

.lc-artigo p { max-width: 68ch; }

.lc-artigo h2 {
	margin-top: 2.75rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--wp--preset--color--linha);
}

.lc-artigo h3 { margin-top: 2rem; }

.lc-artigo ol,
.lc-artigo ul { max-width: 66ch; }

.lc-artigo ol li { padding-left: 0.35rem; margin-bottom: 0.6rem; }

/* =========================================================
   10. Rodapé
   ========================================================= */

.lc-rodape {
	background: var(--wp--preset--color--tinta);
	color: color-mix(in srgb, #ffffff 86%, transparent);
}

.lc-rodape :where(h2, h3, h4) { color: #ffffff; }
.lc-rodape { border-top: 3px solid var(--wp--preset--color--drape); }
.lc-rodape a { color: color-mix(in srgb, #ffffff 88%, transparent); text-decoration: none; }
.lc-rodape a:hover { color: #ffffff; text-decoration: underline; }

.lc-rodape .wp-block-navigation { font-family: var(--wp--preset--font-family--dado); font-size: var(--wp--preset--font-size--pequeno); }

/* =========================================================
   11. Movimento — discreto e desativável
   ========================================================= */

.lc-revelar {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.lc-revelar.is-visivel {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.lc-revelar { opacity: 1; transform: none; }
}

/* =========================================================
   12. Utilidades de largura
   ========================================================= */

.lc-medida-curta { max-width: 46ch; }
.lc-borda-topo { border-top: 1px solid var(--wp--preset--color--linha); }

/* =========================================================
   13. Identidade — ponto único de ajuste
   Cores extraídas do brasão. Para ajustar, use
   Aparência → Editor → Estilos → Cores → Paleta.
   Vermelho do brasão .......... #8B0E0A  (slug: drape)
   Vermelho de interação ....... #AD130E  (slug: drape-claro)
   Amostrados diretamente do brasão da liga.
   ========================================================= */

/* Filete bordô sob a barra institucional */
.lc-barra-topo { border-bottom: 1px solid rgba(255, 255, 255, 0.25); }

/* Logo no cabeçalho */
.lc-cabecalho .wp-block-site-logo img {
	display: block;
	height: auto;
}

.lc-cabecalho .wp-block-site-logo { margin-right: 0.9rem; }

/* Sobre fundo bordô, a moldura e os rótulos ganham contraste */
.has-drape-background-color .lc-campo--escuro > .lc-campo__etiqueta {
	background: var(--wp--preset--color--drape);
}

/* Rodapé preto: navegação e regras */
.lc-rodape .wp-block-navigation a:hover { color: #ffffff; }

/* Botão contornado herda o bordô institucional */
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background) {
	border-color: currentColor;
	border-width: 1px;
}

/* =========================================================
   15. Botão fora do editor (shortcodes)
   ========================================================= */

.lc-botao {
	display: inline-block;
	background: var(--wp--preset--color--drape);
	color: #ffffff;
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--pequeno);
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0.85rem 1.5rem;
	border-radius: var(--wp--custom--raio);
	white-space: nowrap;
	transition: background 0.2s ease;
}

.lc-botao:hover { background: var(--wp--preset--color--tinta); color: #ffffff; }
.lc-botao--pequeno { padding: 0.55rem 1rem; font-size: var(--wp--preset--font-size--micro); }

/* =========================================================
   16. Agenda — cartões no padrão da amostra do acervo
   ========================================================= */

.lc-agenda { margin-block: var(--wp--preset--spacing--50); }


.lc-agenda__cartao {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.lc-agenda__foto {
	display: block;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	border-radius: var(--wp--custom--raio);
	background: #F6E9E8;
	margin-bottom: 1.1rem;
}

.lc-agenda__foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.lc-agenda__cartao:hover .lc-agenda__foto img { transform: scale(1.04); }

.lc-agenda__quando {
	display: block;
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--drape);
	margin-bottom: 0.5rem;
}

.lc-agenda__titulo {
	font-family: var(--wp--preset--font-family--titulo);
	font-size: 1.18rem;
	font-weight: 600;
	line-height: 1.28;
	letter-spacing: -0.01em;
	margin: 0 0 0.6rem;
	text-wrap: balance;
}

.lc-agenda__titulo a { color: inherit; text-decoration: none; }
.lc-agenda__titulo a:hover { color: var(--wp--preset--color--drape); }

.lc-agenda__resumo {
	font-size: 0.88rem;
	line-height: 1.55;
	color: var(--wp--preset--color--neutro);
	margin: 0 0 1rem;
}

/* Ficha resumida dentro do cartão */
.lc-agenda__ficha {
	margin: 0 0 1rem;
	display: grid;
	gap: 0;
}

.lc-agenda__ficha > div {
	display: grid;
	grid-template-columns: 74px 1fr;
	gap: 0.75rem;
	padding: 0.5rem 0;
	border-top: 1px solid var(--wp--preset--color--linha);
}

.lc-agenda__ficha dt {
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--neutro);
	margin: 0;
}

.lc-agenda__ficha dd {
	margin: 0;
	font-size: 0.85rem;
	line-height: 1.45;
}

.lc-agenda__pe {
	margin-top: auto;
	padding-top: 1rem;
	border-top: 1px solid var(--wp--preset--color--linha);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.lc-agenda__link {
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wp--preset--color--drape);
	white-space: nowrap;
}

/* Cabeçalho da página de uma atividade */
.lc-ficha-agenda {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 1.25rem;
	margin: var(--wp--preset--spacing--30) 0;
	padding: 1.5rem 0;
	border-block: 1px solid var(--wp--preset--color--linha);
}

.lc-ficha-agenda dt {
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--neutro);
	margin-bottom: 0.35rem;
}

.lc-ficha-agenda dd { margin: 0; font-size: 0.95rem; line-height: 1.5; }

.lc-encerrada {
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--neutro);
	border: 1px dashed var(--wp--preset--color--linha);
	border-radius: var(--wp--custom--raio);
	padding: 0.85rem 1.25rem;
	display: inline-block;
}

/* =========================================================
   17. Galeria de álbuns
   ========================================================= */

.lc-galeria { margin-block: var(--wp--preset--spacing--50); }


.lc-album__link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.lc-album__capa {
	display: block;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	border-radius: var(--wp--custom--raio);
	background: #F6E9E8;
	box-shadow: 0 0 0 1px var(--wp--preset--color--linha);
}

.lc-album__capa img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.lc-album__link:hover .lc-album__capa img { transform: scale(1.04); }

.lc-album__texto { display: block; padding-top: 0.85rem; }

.lc-album__titulo {
	display: block;
	font-family: var(--wp--preset--font-family--titulo);
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.3;
	margin-top: 0.3rem;
}

.lc-album__data {
	display: block;
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	color: var(--wp--preset--color--neutro);
	margin-top: 0.3rem;
}

/* =========================================================
   18. Produtos
   ========================================================= */

.lc-produtos { margin-block: var(--wp--preset--spacing--50); }

.lc-produto {
	display: flex;
	flex-direction: column;
	position: relative;
}

.lc-produto__situacao {
	position: absolute;
	top: 0;
	right: clamp(1.5rem, 3vw, 2.25rem);
	transform: translateY(-50%);
	background: var(--wp--preset--color--drape);
	color: #ffffff;
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 0.28rem 0.7rem;
	border-radius: 2px;
}

.lc-produto__situacao--esgotado {
	background: var(--wp--preset--color--neutro);
}

.lc-produto__foto {
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: var(--wp--custom--raio);
	background: #F6E9E8;
	margin-bottom: 1rem;
}

.lc-produto__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }

.lc-produto__nome {
	font-family: var(--wp--preset--font-family--titulo);
	font-size: 1.08rem;
	font-weight: 600;
	margin: 0 0 0.5rem;
	line-height: 1.3;
}

.lc-produto__desc {
	font-size: 0.88rem;
	line-height: 1.55;
	color: var(--wp--preset--color--neutro);
	margin: 0;
}

.lc-produto__pe {
	margin-top: auto;
	padding-top: 1.1rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.lc-produto__preco {
	font-family: var(--wp--preset--font-family--titulo);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--wp--preset--color--drape);
}

/* =========================================================
   19. Parceiros
   ========================================================= */

.lc-parceiros { margin-block: var(--wp--preset--spacing--50); }

.lc-parceiro { display: flex; flex-direction: column; text-align: center; }

.lc-parceiro__logo {
	display: grid;
	place-items: center;
	height: 96px;
	margin-bottom: 1rem;
}

.lc-parceiro__logo img {
	max-height: 96px;
	width: auto;
	object-fit: contain;
}

.lc-parceiro__nome-fallback {
	font-family: var(--wp--preset--font-family--titulo);
	font-weight: 700;
	color: var(--wp--preset--color--drape);
}

.lc-parceiro__nome {
	font-family: var(--wp--preset--font-family--titulo);
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0 0 0.5rem;
}

.lc-parceiro__beneficio {
	font-size: 0.88rem;
	line-height: 1.55;
	color: var(--wp--preset--color--neutro);
	margin: 0;
}

/* Faixa discreta de logotipos, para o rodapé */
.lc-parceiros-faixa { text-align: center; }

.lc-parceiros-faixa ul {
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 2rem;
}

.lc-parceiros-faixa img {
	max-height: 46px;
	width: auto;
	filter: grayscale(1) brightness(1.6);
	opacity: 0.75;
	transition: filter 0.25s ease, opacity 0.25s ease;
}

.lc-parceiros-faixa a:hover img { filter: none; opacity: 1; }

.lc-parceiros-faixa span {
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--pequeno);
	opacity: 0.8;
}


/* =========================================================
   21. Redes sociais
   ========================================================= */

.lc-redes {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	border: 1px solid var(--wp--preset--color--linha);
	border-radius: var(--wp--custom--raio);
	background: var(--wp--preset--color--superficie);
	padding: clamp(1.5rem, 3vw, 2rem);
}

.lc-redes__texto { flex: 1 1 260px; }

.lc-redes__titulo {
	font-family: var(--wp--preset--font-family--titulo);
	font-size: 1.3rem;
	font-weight: 600;
	margin: 0.4rem 0 0.4rem;
	line-height: 1.25;
}

.lc-redes__desc {
	font-size: 0.9rem;
	line-height: 1.55;
	color: var(--wp--preset--color--neutro);
	margin: 0;
}

/* =========================================================
   22. Vitrine do produto
   ========================================================= */

.lc-vitrine {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 3.5rem);
	align-items: start;
}

@media (max-width: 820px) {
	.lc-vitrine { grid-template-columns: 1fr; }
}

.lc-vitrine__sem-foto {
	aspect-ratio: 1;
	display: grid;
	place-items: center;
	background: #F6E9E8;
	border-radius: var(--wp--custom--raio);
}

/* Carrossel */

.lc-carrossel { position: relative; }
.lc-carrossel:focus-visible { outline: 2px solid var(--wp--preset--color--drape); outline-offset: 4px; }

.lc-carrossel__palco {
	position: relative;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: var(--wp--custom--raio);
	background: #F6E9E8;
	border: 1px solid var(--wp--preset--color--linha);
}

.lc-carrossel__quadro {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	transition: opacity 0.35s ease;
	pointer-events: none;
}

.lc-carrossel__quadro.ativo { opacity: 1; pointer-events: auto; }

.lc-carrossel__quadro img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.lc-carrossel__seta {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 42px;
	height: 42px;
	border: 1px solid var(--wp--preset--color--linha);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.94);
	color: var(--wp--preset--color--tinta);
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	display: grid;
	place-items: center;
	transition: background 0.2s ease, color 0.2s ease;
}

.lc-carrossel__seta:hover {
	background: var(--wp--preset--color--drape);
	color: #fff;
	border-color: var(--wp--preset--color--drape);
}

.lc-carrossel__seta--antes { left: 12px; }
.lc-carrossel__seta--depois { right: 12px; }

.lc-carrossel__miniaturas {
	display: flex;
	gap: 0.6rem;
	margin-top: 0.85rem;
	flex-wrap: wrap;
}

.lc-carrossel__mini {
	width: 68px;
	height: 68px;
	padding: 0;
	border: 1px solid var(--wp--preset--color--linha);
	border-radius: var(--wp--custom--raio);
	overflow: hidden;
	background: none;
	cursor: pointer;
	opacity: 0.6;
	transition: opacity 0.2s ease, border-color 0.2s ease;
}

.lc-carrossel__mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lc-carrossel__mini:hover { opacity: 1; }
.lc-carrossel__mini.ativo { opacity: 1; border-color: var(--wp--preset--color--drape); border-width: 2px; }

/* Coluna de dados */

.lc-vitrine__preco {
	font-family: var(--wp--preset--font-family--titulo);
	font-size: 2.1rem;
	font-weight: 700;
	color: var(--wp--preset--color--drape);
	margin: 0;
	line-height: 1.1;
}

.lc-vitrine__parcelas {
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--pequeno);
	color: var(--wp--preset--color--neutro);
	margin: 0.4rem 0 0;
}

.lc-vitrine__bloco {
	margin-top: 1.75rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--wp--preset--color--linha);
}

.lc-vitrine__acao { margin-top: 2rem; }

.lc-produto__tamanhos {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0.7rem 0 0;
}

.lc-tamanho {
	display: inline-block;
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--tinta);
	border: 1px solid var(--wp--preset--color--linha);
	border-radius: 2px;
	padding: 0.4rem 0.75rem;
	background: var(--wp--preset--color--superficie);
}

.lc-tamanho--pagamento {
	border-color: var(--wp--preset--color--drape);
	color: var(--wp--preset--color--drape);
	letter-spacing: 0.06em;
}

/* Cartão do produto na vitrine */

.lc-produto__nome a { color: inherit; text-decoration: none; }
.lc-produto__nome a:hover { color: var(--wp--preset--color--drape); }

.lc-produto__foto { position: relative; }

.lc-produto__contador {
	position: absolute;
	right: 8px;
	bottom: 8px;
	background: rgba(18, 18, 18, 0.82);
	color: #fff;
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.08em;
	padding: 0.22rem 0.55rem;
	border-radius: 2px;
}

/* =========================================================
   23. Tabela de contatos (restrita)
   ========================================================= */

.lc-contatos {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
}

.lc-contatos th {
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--neutro);
	text-align: left;
	padding: 0.6rem 0.75rem 0.6rem 0;
	border-bottom: 1px solid var(--wp--preset--color--linha);
	font-weight: 500;
}

.lc-contatos td {
	padding: 0.7rem 0.75rem 0.7rem 0;
	border-bottom: 1px solid var(--wp--preset--color--linha);
}

/* =========================================================
   26. Cabeçalho escuro
   ========================================================= */

.lc-cabecalho {
	background: var(--wp--preset--color--tinta);
	border-bottom: 0;
	backdrop-filter: none;
}

.lc-cabecalho .wp-block-site-title,
.lc-cabecalho .wp-block-site-title a,
.lc-cabecalho .wp-block-navigation,
.lc-cabecalho .wp-block-navigation a,
.lc-cabecalho .wp-block-navigation .wp-block-navigation-item__content {
	color: #ffffff;
}

.lc-cabecalho .wp-block-navigation a:hover,
.lc-cabecalho .wp-block-site-title a:hover { color: #ffffff; }

.lc-cabecalho .wp-block-navigation-item__content::after {
	background: var(--wp--preset--color--drape-claro);
	height: 2px;
}

.lc-cabecalho .wp-block-navigation__submenu-icon svg { fill: currentColor; }

/* Submenu suspenso no computador */
.lc-cabecalho .wp-block-navigation .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--tinta);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: var(--wp--custom--raio);
	padding: 0.4rem 0;
	min-width: 200px;
}

.lc-cabecalho .wp-block-navigation__submenu-container a { padding: 0.55rem 1.1rem; }
.lc-cabecalho .wp-block-navigation__submenu-container a:hover { background: rgba(255, 255, 255, 0.08); }

/* Logo com respiro sobre o fundo escuro */
.lc-cabecalho .wp-block-site-logo img {
	border-radius: 50%;
	background: #ffffff;
	padding: 2px;
}

/* Barra institucional: links sempre brancos, sem afetar o resto do site */
.lc-barra-topo,
.lc-barra-topo p { color: #ffffff; }

.lc-barra-topo a,
.lc-barra-topo a:visited,
.lc-barra-topo a:hover {
	color: #ffffff !important;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.45);
	padding-bottom: 1px;
}

.lc-barra-topo a:hover { border-bottom-color: #ffffff; }

/* =========================================================
   27. Menu no celular — painel inteiro, itens centralizados
   ========================================================= */

.lc-cabecalho .wp-block-navigation__responsive-container-open {
	color: #ffffff;
	margin-left: auto;
}

.lc-cabecalho .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--tinta);
	color: #ffffff;
	padding: clamp(2rem, 8vw, 4rem) 1.5rem;
	min-height: 100vh;
	min-height: 100dvh;
}

.lc-cabecalho .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex: 1;
	width: 100%;
}

.lc-cabecalho .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 1.6rem;
	width: 100%;
}

.lc-cabecalho .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	justify-content: center;
	width: 100%;
}

.lc-cabecalho .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.15rem;
	letter-spacing: 0.02em;
	text-align: center;
	color: #ffffff;
}

.lc-cabecalho .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background: transparent;
	border: 0;
	padding: 0.6rem 0 0;
	align-items: center;
	gap: 0.85rem;
	width: 100%;
}

.lc-cabecalho .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 0.92rem;
	color: rgba(255, 255, 255, 0.72);
}

.lc-cabecalho .wp-block-navigation__responsive-container-close {
	color: #ffffff;
}

/* =========================================================
   28. Emendas de cor sem fresta
   ========================================================= */

.lc-rodape { border-top: 0; margin-top: 0; }

main.wp-block-group > :last-child { margin-bottom: 0; }

.lc-secao-bordo { margin-bottom: 0 !important; }

/* =========================================================
   29. Chamada de redes sociais
   ========================================================= */

.lc-redes {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(1.25rem, 3vw, 2.5rem);
	flex-wrap: wrap;
	border: 1px solid var(--wp--preset--color--linha);
	border-radius: var(--wp--custom--raio);
	background: var(--wp--preset--color--superficie);
	padding: clamp(1.75rem, 4vw, 2.5rem);
}

.lc-redes__texto { flex: 1 1 280px; min-width: 0; }

.lc-redes__titulo {
	font-family: var(--wp--preset--font-family--titulo);
	font-size: clamp(1.2rem, 2.5vw, 1.45rem);
	font-weight: 600;
	margin: 0.5rem 0 0.5rem;
	line-height: 1.25;
}

.lc-redes__desc {
	font-size: 0.92rem;
	line-height: 1.55;
	color: var(--wp--preset--color--neutro);
	margin: 0;
	max-width: 58ch;
}

.lc-redes .lc-botao {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	flex-shrink: 0;
}

.lc-redes .lc-botao svg { width: 17px; height: 17px; fill: currentColor; }

/* Lista de próximas atividades sobre bordô: contraste legível */
.lc-secao-bordo .lc-heroi__lista,
.lc-secao-bordo .lc-heroi__lista li {
	color: #ffffff;
	border-bottom-color: rgba(255, 255, 255, 0.28);
}

.lc-secao-bordo .lc-heroi__lista b { color: #ffffff; font-weight: 600; }
.lc-secao-bordo .lc-campo--escuro > .lc-campo__etiqueta { color: #ffffff; }

/* =========================================================
   30. Fotos da atividade
   ========================================================= */

.lc-fotos-ativ {
	margin-block: var(--wp--preset--spacing--50);
	width: min(1180px, calc(100vw - clamp(2rem, 8vw, 6rem)));
	margin-inline: auto;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}

/* Palco mais largo que o do produto, para foto de evento */
.lc-carrossel__palco--largo { aspect-ratio: 3 / 2; }

/* Acima de 8 fotos: mosaico clicável */
.lc-mosaico {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
}

.lc-mosaico li { margin: 0; }

.lc-mosaico a {
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: var(--wp--custom--raio);
	background: #F6E9E8;
}

.lc-mosaico img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.lc-mosaico a:hover img { transform: scale(1.05); }

.lc-fotos-ativ .lc-rotulo { text-align: center; margin-top: 1rem; }

/* =========================================================
   31. CORREÇÕES v1.6.0
   ========================================================= */

/* --- 31.1 Cabeçalho: altura simétrica e alinhamento vertical --- */

.lc-cabecalho > .wp-block-group:last-child {
	display: flex;
	align-items: center;
	min-height: 92px;
}

.lc-cabecalho > .wp-block-group:last-child > .wp-block-group {
	width: 100%;
	align-items: center;
}

.lc-cabecalho .wp-block-site-title { line-height: 1.25; }

/* --- 31.2 Menu no celular: fundo preto, texto branco --- */

.wp-block-navigation__responsive-container.is-menu-open,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	background-color: #121212 !important;
	color: #ffffff !important;
}

.wp-block-navigation__responsive-container.is-menu-open a,
.wp-block-navigation__responsive-container.is-menu-open a:hover,
.wp-block-navigation__responsive-container.is-menu-open a:focus,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon,
.wp-block-navigation__responsive-container.is-menu-open button {
	color: #ffffff !important;
	fill: #ffffff !important;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background-color: transparent !important;
	border: 0 !important;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a {
	color: rgba(255, 255, 255, 0.78) !important;
}

.wp-block-navigation__responsive-container-close,
.wp-block-navigation__responsive-container-close svg { color: #ffffff !important; fill: #ffffff !important; }

/* --- 31.3 Celular: barra bordô e ícone do menu centralizados --- */

@media (max-width: 781px) {

	.lc-barra-topo .wp-block-group {
		justify-content: center;
		text-align: center;
		gap: 0.4rem;
	}

	.lc-barra-topo p { width: 100%; text-align: center; }

	.lc-cabecalho > .wp-block-group:last-child > .wp-block-group {
		flex-direction: column;
		align-items: center;
		gap: 1rem;
	}

	.lc-cabecalho > .wp-block-group:last-child > .wp-block-group > .wp-block-group {
		justify-content: center;
		text-align: center;
	}

	.lc-cabecalho .wp-block-site-title { text-align: center; }

	.lc-cabecalho .wp-block-navigation {
		width: 100%;
		justify-content: center;
	}

	.lc-cabecalho .wp-block-navigation__responsive-container-open {
		margin-inline: auto;
	}
}

/* --- 31.4 Herói: empilha antes de quebrar --- */

@media (max-width: 1024px) {

	.lc-heroi .wp-block-columns {
		flex-direction: column !important;
		gap: var(--wp--preset--spacing--40) !important;
	}

	.lc-heroi .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}

	.lc-heroi .lc-campo { width: 100%; }
}

/* A ficha nunca quebra caractere a caractere */
.lc-ficha {
	grid-template-columns: minmax(0, 150px) minmax(0, 1fr);
}

.lc-ficha dd {
	min-width: 0;
	overflow-wrap: break-word;
	word-break: normal;
	hyphens: auto;
}

@media (max-width: 860px) {
	.lc-ficha { grid-template-columns: 1fr; gap: 0.3rem; }
	.lc-ficha dt { padding-top: 0; }
}


/* --- 31.7 Chamada do Instagram: botão abaixo do texto --- */

.lc-redes {
	flex-direction: column;
	align-items: flex-start;
	text-align: left;
	gap: 1.5rem;
}

.lc-redes__texto { flex: 1 1 auto; width: 100%; }
.lc-redes .lc-botao { align-self: flex-start; }


/* --- 31.9 Cartão de produto com altura equilibrada --- */

.lc-produto__foto { margin-bottom: 1rem; }
.lc-produto__nome { margin-top: 0; }
.lc-produto__pe { margin-top: auto; }

/* =========================================================
   32. CORREÇÕES v1.7.0
   ========================================================= */

/* --- 32.1 Cabeçalho: centralização vertical de verdade ---
   A regra antiga mirava o último filho e a estrutura gerada
   pelo WordPress tem uma camada a mais. Agora a mira é a
   própria linha, por classe. */

.lc-cabecalho__linha {
	display: flex !important;
	align-items: center !important;
	width: 100%;
	min-height: 56px;
}

.lc-cabecalho__marca {
	display: flex !important;
	align-items: center !important;
	gap: 0.9rem;
}

.lc-cabecalho__marca .wp-block-site-logo,
.lc-cabecalho__marca .wp-block-site-title {
	margin: 0;
	display: flex;
	align-items: center;
}

.lc-cabecalho__linha .wp-block-navigation {
	align-items: center;
	margin: 0;
}

/* O grupo que envolve a linha não pode achatar contra o topo */
.lc-cabecalho > .wp-block-group {
	display: block;
	min-height: 0;
}

.lc-cabecalho > .wp-block-group > .wp-block-group {
	display: flex;
	align-items: center;
	min-height: 0;
}

/* --- 32.2 Botão do Instagram: reforço redundante ---
   O estilo principal está escrito no elemento. Estas regras
   servem de segunda camada caso o inline seja reescrito. */

.lc-redes .lc-botao,
.lc-redes a.lc-botao {
	display: inline-flex !important;
	align-items: center;
	gap: 0.55rem;
	background: #8B0E0A !important;
	color: #ffffff !important;
	text-decoration: none !important;
	padding: 0.85rem 1.5rem;
	border-radius: 3px;
	line-height: 1;
}

.lc-redes .lc-botao span,
.lc-redes .lc-botao:hover span { color: #ffffff !important; }

.lc-redes .lc-botao svg {
	width: 17px !important;
	height: 17px !important;
	min-width: 17px;
	fill: #ffffff !important;
	display: block !important;
}

.lc-redes .lc-botao:hover { background: #121212 !important; border-color: #121212 !important; }

/* --- 32.3 Herói: menos espaço no topo --- */

.lc-heroi {
	padding-top: clamp(1.75rem, 3.5vw, 3rem) !important;
}

/* --- 32.4 Emenda bordô → preto sem filete claro --- */

.lc-barra-topo,
.lc-cabecalho .lc-barra-topo {
	border-bottom: 0 !important;
	box-shadow: none !important;
	margin-bottom: 0 !important;
}

.lc-cabecalho > .wp-block-group { border-top: 0 !important; margin-top: 0 !important; }


/* --- 33.1 Membros: quatro por linha, sempre centralizados --- */


.lc-membro__nome--aniver { font-size: 0.88rem; margin-bottom: 0.3rem; }

.lc-membro__aniver-data {
	display: block;
	font-family: var(--wp--preset--font-family--dado);
	font-size: 0.68rem;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--drape);
}

/* --- 33.2 Formulários com respiro dos dois lados --- */

.lc-formulario {
	max-width: 460px;
	margin-inline: auto !important;
	padding-inline: 1rem;
	box-sizing: border-box;
	width: 100%;
}

.lc-formulario form {
	box-sizing: border-box;
	width: 100%;
	padding: clamp(1.5rem, 4vw, 2rem);
}

.lc-formulario input[type=text],
.lc-formulario input[type=email],
.lc-formulario input[type=password],
.lc-formulario select,
.lc-formulario textarea {
	box-sizing: border-box;
	width: 100% !important;
	max-width: 100%;
	display: block;
}

.lc-formulario p,
.lc-formulario .login-username,
.lc-formulario .login-password,
.lc-formulario .login-remember,
.lc-formulario .login-submit {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

/* =========================================================
   FONTE ÚNICA — LARGURA E DISTRIBUIÇÃO
   -----------------------------------------------------
   Todas as regras de largura e de grade vivem aqui e em
   nenhum outro lugar. Havia três definições concorrentes
   da mesma grade, que se anulavam — era por isso que o
   alinhamento não pegava por mais que fosse corrigido.
   ========================================================= */

/* --- 1. Largura das seções geradas por shortcode ---
   O WordPress gera, a partir do theme.json, uma regra assim:

       .wp-container-xxx > *  { max-width: 760px; margin-inline: auto }

   Ela tem especificidade maior que um seletor de classe simples e
   por isso vencia todas as tentativas anteriores — a seção ficava
   presa em 760px, onde cabem exatamente dois itens por linha.

   Estas regras usam a mesma estrutura de descendência para empatar
   em especificidade, e !important nas propriedades de largura para
   não depender da ordem de carga. */

.wp-block-post-content > .lc-membros,
.wp-block-post-content > .lc-agenda,
.wp-block-post-content > .lc-produtos,
.wp-block-post-content > .lc-galeria,
.wp-block-post-content > .lc-parceiros,
.wp-block-post-content > .lc-documentos,
.wp-block-post-content > .lc-fotos-ativ,
.entry-content > .lc-membros,
.entry-content > .lc-agenda,
.entry-content > .lc-produtos,
.entry-content > .lc-galeria,
.entry-content > .lc-parceiros,
.entry-content > .lc-documentos,
.entry-content > .lc-fotos-ativ,
.lc-membros,
.lc-agenda,
.lc-produtos,
.lc-galeria,
.lc-parceiros,
.lc-documentos,
.lc-fotos-ativ {
	width: min(1180px, calc(100vw - clamp(2rem, 8vw, 6rem))) !important;
	max-width: none !important;
	margin-inline: auto !important;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	box-sizing: border-box;
}

/* Dentro de contêiner já largo, não desloca de novo. */
.alignwide .lc-membros,
.alignwide .lc-agenda,
.alignwide .lc-produtos,
.alignfull .lc-membros,
.alignfull .lc-agenda,
.alignfull .lc-produtos {
	left: auto;
	transform: none;
	width: 100% !important;
}

/* --- 2. Grade única, usada por todas as listagens ---
   Flex centralizado: com 1 item ele fica no meio, com 4
   os quatro na mesma linha, e a partir daí quebra sozinho. */

.lc-membros__grade,
.lc-agenda__grade,
.lc-produtos__grade,
.lc-galeria__grade,
.lc-parceiros__grade {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	gap: clamp(1.5rem, 3vw, 2.25rem);
}

/* --- 3. Largura de cada item --- */

/* Pessoas: menores, cabem cinco por linha */
.lc-membro {
	flex: 0 0 auto !important;
	width: 180px !important;
	max-width: 180px !important;
	margin-inline: 0 !important;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	list-style: none;
}

/* Cartões: maiores, três por linha.
   O !important aqui protege contra a mesma regra de largura do
   WordPress alcançar os itens da lista. */
.lc-agenda__cartao,
.lc-produto,
.lc-album,
.lc-parceiro {
	flex: 0 1 340px !important;
	width: auto !important;
	min-width: 280px;
	max-width: 380px !important;
	display: flex;
	flex-direction: column;
	margin-inline: 0 !important;
}

@media (max-width: 900px) {
	.lc-membro { width: 160px; }
	.lc-agenda__cartao,
	.lc-produto,
	.lc-album,
	.lc-parceiro { flex: 0 1 300px; min-width: 260px; }
}

@media (max-width: 640px) {
	.lc-membros__grade,
	.lc-agenda__grade,
	.lc-produtos__grade,
	.lc-galeria__grade,
	.lc-parceiros__grade { gap: 1.5rem 1rem; }

	.lc-membro { width: calc(50% - 0.5rem); max-width: 180px; }

	.lc-agenda__cartao,
	.lc-produto,
	.lc-album,
	.lc-parceiro { flex: 1 1 100%; min-width: 0; max-width: 100%; }
}

/* --- 4. Retrato circular ---
   Largura E altura fixas e iguais. Nunca herda altura do
   pai, que era o que transformava o círculo em oval. */

.lc-membro__foto {
	position: relative;
	width: 148px;
	height: 148px;
	flex: 0 0 auto;
	border-radius: 50%;
	overflow: hidden;
	background: #F6E9E8;
	box-shadow: 0 0 0 2px var(--wp--preset--color--drape);
	display: grid;
	place-items: center;
	margin: 0 0 1rem;
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.lc-membro:hover .lc-membro__foto {
	box-shadow: 0 0 0 3px var(--wp--preset--color--drape-claro);
	transform: translateY(-3px);
}

.lc-membro__foto img,
.lc-membro__foto figure,
.lc-membro__foto picture {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	display: block;
	margin: 0;
	padding: 0;
	max-width: none;
	border-radius: 50%;
}

@media (max-width: 900px) { .lc-membro__foto { width: 132px; height: 132px; } }
@media (max-width: 640px) { .lc-membro__foto { width: 120px; height: 120px; } }

/* --- 5. Textos do membro --- */

.lc-membro__iniciais {
	font-family: var(--wp--preset--font-family--titulo);
	font-size: 2rem;
	font-weight: 700;
	color: var(--wp--preset--color--drape);
}

.lc-membro__nome {
	font-family: var(--wp--preset--font-family--titulo);
	font-size: 0.98rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.01em;
	margin: 0 0 0.6rem;
	text-wrap: balance;
}

.lc-membro__cargo {
	position: static;
	display: inline-block;
	background: var(--wp--preset--color--drape);
	color: #ffffff;
	font-family: var(--wp--preset--font-family--dado);
	font-size: 0.64rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 0.32rem 0.7rem;
	border-radius: 2px;
	margin: 0 0.15rem 0.3rem;
	line-height: 1.4;
	white-space: nowrap;
}

.lc-membro__bio {
	font-size: 0.84rem;
	line-height: 1.55;
	color: var(--wp--preset--color--neutro);
	margin: 0.6rem 0 0;
}

/* --- 6. Aniversariantes: versão reduzida --- */

.lc-membros__grade--aniver { gap: 1.75rem 1.25rem; }
.lc-membros__grade--aniver .lc-membro { width: 132px; }
.lc-membros__grade--aniver .lc-membro__foto { width: 96px; height: 96px; }
.lc-membro__nome--aniver { font-size: 0.86rem; margin-bottom: 0.3rem; }

.lc-membro__aniver-data {
	display: block;
	font-family: var(--wp--preset--font-family--dado);
	font-size: 0.66rem;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--drape);
}

/* --- 7. Faixa de seção --- */

.lc-faixa {
	display: block;
	width: 100%;
	box-sizing: border-box;
	background: var(--wp--preset--color--drape);
	color: #ffffff;
	font-family: var(--wp--preset--font-family--dado);
	font-size: var(--wp--preset--font-size--pequeno);
	font-weight: 500;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	text-align: center;
	padding: 0.9rem 1rem;
	margin: 0 0 var(--wp--preset--spacing--40);
	border-radius: 2px;
	line-height: 1.3;
}

@media (max-width: 640px) {
	.lc-faixa { letter-spacing: 0.14em; font-size: 0.76rem; }
}

/* --- 8. Nota abaixo de um grupo --- */

.lc-membros + .lc-rotulo,
.lc-nota-grupo {
	display: block;
	text-align: center;
	max-width: 58ch;
	margin: 1.5rem auto 0;
	font-family: var(--wp--preset--font-family--texto);
	font-size: 0.88rem;
	line-height: 1.55;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--neutro);
}

/* --- 9. Conteúdo das páginas aproveitando a tela ---
   O corpo do texto seguia a medida de leitura de 760px,
   o que deixava metade da tela vazia em telas grandes. */

.lc-artigo,
.wp-block-post-content {
	--lc-medida: min(880px, 100%);
}

.wp-block-post-content > p,
.wp-block-post-content > ul,
.wp-block-post-content > ol,
.wp-block-post-content > h2,
.wp-block-post-content > h3,
.wp-block-post-content > .wp-block-table {
	max-width: var(--lc-medida);
	margin-inline: auto;
}

/* --- 10. Área do ligante e aprovações: grade fluida --- */

.lc-area__grade {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
	gap: 1rem;
	list-style: none;
	margin: 2rem 0 0;
	padding: 0;
}

.lc-aprov__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 250px);
	gap: 1.75rem;
	align-items: start;
	width: 100%;
	box-sizing: border-box;
}

@media (max-width: 780px) {
	.lc-aprov__item { grid-template-columns: 1fr; }
}

/* --- 11. Reforço: a grade nunca depende de número fixo de colunas ---
   O shortcode escrevia "--lc-colunas" direto no HTML, e estilo escrito
   no elemento vence qualquer folha de estilo. Era a causa real da
   presidência e dos orientadores saírem em duas colunas.
   Estas regras garantem que, mesmo se sobrar algum resquício em
   página já salva, a grade continue se organizando pelo espaço. */

.lc-membros__grade,
.lc-agenda__grade,
.lc-produtos__grade,
.lc-galeria__grade,
.lc-parceiros__grade {
	grid-template-columns: none !important;
	--lc-colunas: initial;
}

/* =========================================================
   12. A GRADE INTERNA TAMBÉM PRECISA DE LARGURA
   -----------------------------------------------------
   Diagnóstico pelo inspetor, com números:

       seção .lc-membros ......... 1180px  correto
       grade .lc-membros__grade ... 585px  ESTRANGULADO
       item  .lc-membro ........... 180px  correto

   Todas as correções anteriores trataram da seção e do
   item. A grade, que fica entre os dois, nunca foi
   alcançada — e era ela que limitava tudo.

   585px comporta exatamente dois itens de 180px. Era por
   isso que sempre saíam dois por linha, em toda tentativa.
   ========================================================= */

.lc-membros__grade,
.lc-agenda__grade,
.lc-produtos__grade,
.lc-galeria__grade,
.lc-parceiros__grade,
.lc-membros > ul,
.lc-agenda > ul,
.lc-produtos > ul,
.lc-galeria > ul,
.lc-parceiros > ul,
.lc-mural__lista,
.lc-material__lista {
	width: 100% !important;
	max-width: 100% !important;
	margin-inline: 0 !important;
	box-sizing: border-box;
}

/* Qualquer lista dentro destas seções herda a largura total */

.lc-membros ul,
.lc-agenda ul,
.lc-produtos ul,
.lc-galeria ul,
.lc-parceiros ul {
	max-width: none !important;
}

/* E os itens não podem ser limitados pela mesma regra */

.lc-membros__grade > li,
.lc-agenda__grade > li,
.lc-produtos__grade > li,
.lc-galeria__grade > li,
.lc-parceiros__grade > li {
	max-width: none;
	margin-inline: 0 !important;
}

/* Recompõe a largura própria de cada tipo de item, que a
   regra acima poderia ter afrouxado */

.lc-membros__grade > .lc-membro {
	width: 180px !important;
	max-width: 180px !important;
}

.lc-membros__grade--aniver > .lc-membro {
	width: 132px !important;
	max-width: 132px !important;
}

.lc-agenda__grade > .lc-agenda__cartao,
.lc-produtos__grade > .lc-produto,
.lc-galeria__grade > .lc-album,
.lc-parceiros__grade > .lc-parceiro {
	max-width: 380px !important;
}

@media (max-width: 900px) {
	.lc-membros__grade > .lc-membro { width: 160px !important; max-width: 160px !important; }
}

@media (max-width: 640px) {
	.lc-membros__grade > .lc-membro {
		width: calc(50% - 0.75rem) !important;
		max-width: 180px !important;
	}
}


/* =========================================================
   VITRINE DE CURSOS — LARGURA
   O bloco do shortcode ocupa a largura ampla do tema, sem
   truque de deslocamento.
   ========================================================= */

.wp-block-post-content > .wp-block-shortcode:has(.lc-vitrine),
.entry-content > .wp-block-shortcode:has(.lc-vitrine) {
	max-width: var(--wp--style--global--wide-size, 1180px);
	width: 100%;
	margin-inline: auto;
}
