/* ==========================================================================
   Jowtas Tree — modules.css
   Estilos dos módulos ACF Flexible Content + templates de página.
   ========================================================================== */

/* Espaçamento vertical entre módulos.
   - Usa margin-bottom no wrapper (não margin-top no próximo) — assim cada
     módulo controla seu próprio espaçamento abaixo de si mesmo.
   - O valor base vem de --jt-module-gap (responsivo, definido em layout.css).
   - O usuário pode sobrescrever por módulo via classe .jt-spacing-{nivel}. */
.jt-module-wrap {
	margin-bottom: var(--jt-module-gap);
}
.jt-module-wrap:last-child {
	margin-bottom: 0;
}
.jt-module-wrap.jt-spacing-nenhum   { margin-bottom: 0; }
.jt-module-wrap.jt-spacing-pequeno  { margin-bottom: calc(var(--jt-module-gap) * 0.55); }  /* ~4/6px   */
.jt-module-wrap.jt-spacing-grande   { margin-bottom: calc(var(--jt-module-gap) * 2.2); }   /* ~18/22px */

/* ----- Placeholder -------------------------------------------------------- */

.jt-mod-placeholder {
	padding: var(--jt-space-5);
	border: 1px dashed var(--jt-color-border);
	border-radius: var(--jt-radius);
	color: var(--jt-color-text-muted);
	text-align: center;
	background: rgba(255, 255, 255, 0.02);
}

/* ----- Utilitários compartilhados ----------------------------------------- */

.jt-align-left   { text-align: left; }
.jt-align-center { text-align: center; }
.jt-align-right  { text-align: right; }
.jt-align-justify { text-align: justify; }

.jt-rounded {
	border-radius: var(--jt-radius);
}

/* ==========================================================================
   Módulos v1.6.0
   ========================================================================== */

/* ----- Section Title (compartilhado) -------------------------------------
   Classe de estilo para títulos de módulos. Tamanho, peso e line-height
   seguem a configuração global de headings (options page → Aparência).
   Apenas uppercase e margin são próprios desta classe. */
.jt-section-title {
	margin: 0;
	text-transform: uppercase;
	color: var(--jt-color-heading);
}

/* Espaço padrão entre o título e o conteúdo do módulo abaixo dele. */
.jt-section-title + * {
	margin-top: var(--jt-space-3);
}

/* ----- Módulo: Título ---------------------------------------------------- */
/* (Sem regras próprias — usa .jt-section-title.) */

/* ----- Módulo: Texto ------------------------------------------------------ */
.jt-mod-texto__inner            { max-width: 100%; }
.jt-mod-texto--w-100            { max-width: 100%; }
.jt-mod-texto--w-80             { max-width: 80%; }
.jt-mod-texto--w-60             { max-width: 60%; }
.jt-mod-texto.jt-align-center .jt-mod-texto__inner { margin-inline: auto; }
.jt-mod-texto.jt-align-right  .jt-mod-texto__inner { margin-left: auto; }
.jt-mod-texto__inner > *:last-child { margin-bottom: 0; }
.jt-mod-texto__inner img {
	max-width: 100%;
	height: auto;
	border-radius: var(--jt-radius);
}
.jt-mod-texto__inner blockquote {
	border-left: 3px solid var(--jt-color-primary);
	padding: var(--jt-space-3) var(--jt-space-5);
	margin: var(--jt-space-5) 0;
	background: var(--jt-glass-bg);
	border-radius: var(--jt-radius-sm);
	font-style: italic;
}

/* ----- Módulo: Botão (sempre full-width) --------------------------------- */
.jt-mod-botao .jt-btn {
	display: flex;
	width: 100%;
}

/* ----- Módulo: Imagem / Banner -------------------------------------------
   Imagem inteira (sem corte), respeitando a largura do container do tema.
   A altura segue a proporção natural da imagem original. */
.jt-mod-imagem__figure {
	margin: 0;
}
.jt-mod-imagem__img {
	display: block;
	width: 100%;
	height: auto;
}
.jt-mod-imagem__img.jt-rounded {
	border-radius: var(--jt-radius-lg);
}
.jt-mod-imagem__caption {
	margin-top: var(--jt-space-3);
	text-align: center;
	font-size: var(--jt-fs-sm);
	color: var(--jt-color-text-muted);
	font-style: italic;
}

/* ----- Módulo: Separador -------------------------------------------------- */
.jt-mod-separador {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--jt-sep-h, 32px);
}
.jt-mod-separador--vazio {
	min-height: var(--jt-sep-h, 32px);
}
.jt-mod-separador__line {
	width: 100%;
	margin: 0;
	border: 0;
	border-top: 1px solid var(--jt-color-border);
}
.jt-mod-separador__icon {
	color: var(--jt-color-accent);
	font-size: 1.5rem;
	display: flex;
	align-items: center;
	gap: var(--jt-space-3);
}
.jt-mod-separador__icon::before,
.jt-mod-separador__icon::after {
	content: "";
	display: block;
	width: 60px;
	height: 1px;
	background: var(--jt-color-border);
}

/* ----- Lightbox (compartilhado) ------------------------------------------ */
.jt-lightbox {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.92);
	z-index: 9999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: var(--jt-space-5);
}
.jt-lightbox[aria-hidden="false"] {
	display: flex;
}
body.jt-lightbox-open {
	overflow: hidden;
}
.jt-lightbox__figure {
	margin: 0;
	max-width: 100%;
	max-height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--jt-space-3);
}
.jt-lightbox__img {
	display: block;
	max-width: 92vw;
	max-height: 80vh;
	object-fit: contain;
	border-radius: var(--jt-radius);
	box-shadow: 0 24px 64px rgba(0, 0, 0, 0.6);
}
.jt-lightbox__caption {
	color: var(--jt-color-text-muted);
	font-size: var(--jt-fs-sm);
	text-align: center;
	max-width: 80ch;
}
.jt-lightbox__close,
.jt-lightbox__prev,
.jt-lightbox__next {
	position: absolute;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: #fff;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background var(--jt-trans), transform var(--jt-trans-fast);
	font-size: 1.5rem;
	line-height: 1;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}
.jt-lightbox__close:hover,
.jt-lightbox__prev:hover,
.jt-lightbox__next:hover {
	background: rgba(255, 255, 255, 0.18);
}
.jt-lightbox__close:active,
.jt-lightbox__prev:active,
.jt-lightbox__next:active {
	transform: scale(0.96);
}
.jt-lightbox__close {
	top: var(--jt-space-4);
	right: var(--jt-space-4);
	font-size: 1.75rem;
}
.jt-lightbox__prev { left:  var(--jt-space-4); top: 50%; transform: translateY(-50%); }
.jt-lightbox__next { right: var(--jt-space-4); top: 50%; transform: translateY(-50%); font-size: 1.5rem; }
.jt-lightbox__prev:hover { transform: translateY(-50%); }
.jt-lightbox__next:hover { transform: translateY(-50%); }
.jt-lightbox__counter {
	position: absolute;
	bottom: var(--jt-space-4);
	left: 50%;
	transform: translateX(-50%);
	color: rgba(255, 255, 255, 0.7);
	font-size: var(--jt-fs-xs);
	font-weight: 600;
	letter-spacing: 0.05em;
	background: rgba(0, 0, 0, 0.4);
	padding: 6px 14px;
	border-radius: var(--jt-radius-full);
}
@media (max-width: 640px) {
	.jt-lightbox__close { width: 40px; height: 40px; top: var(--jt-space-3); right: var(--jt-space-3); }
	.jt-lightbox__prev,
	.jt-lightbox__next  { width: 40px; height: 40px; }
}

/* ----- Módulo: Galeria Grid ---------------------------------------------- */
.jt-mod-galeria-grid {
	display: grid;
	gap: var(--jt-space-3);
}
.jt-mod-galeria-grid--gap-small  { gap: var(--jt-space-2); }
.jt-mod-galeria-grid--gap-medium { gap: var(--jt-space-3); }
.jt-mod-galeria-grid--gap-large  { gap: var(--jt-space-5); }

.jt-mod-galeria-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.jt-mod-galeria-grid--cols-3 { grid-template-columns: repeat(2, 1fr); }
.jt-mod-galeria-grid--cols-4 { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 640px) {
	.jt-mod-galeria-grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
	.jt-mod-galeria-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
}
.jt-mod-galeria-grid img {
	transition: transform var(--jt-trans-slow);
}
.jt-mod-galeria-grid a:hover img {
	transform: scale(1.05);
}

/* ----- Módulo: Vídeo Externo --------------------------------------------- */
.jt-mod-video-externo .jt-rounded {
	border-radius: var(--jt-radius-lg);
}
.jt-mod-video-externo iframe {
	border: 0;
}

/* ----- Módulo: Vídeo Galeria --------------------------------------------- */
.jt-mod-video-galeria .jt-rounded {
	border-radius: var(--jt-radius-lg);
}
.jt-mod-video-galeria video {
	background: #000;
}

/* ----- Módulo: Post Único / Post card base -------------------------------
   Cards sempre com altura igual (em listas/carrosséis) via flex stretch.
   Title/excerpt com line-clamp pra todos terem o mesmo "peso visual". */
.jt-post-card {
	padding: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	height: 100%;
}
.jt-post-card__thumb {
	display: block;
	flex-shrink: 0;
	overflow: hidden;
}
.jt-post-card__thumb img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform var(--jt-trans-slow);
}
.jt-post-card:hover .jt-post-card__thumb img {
	transform: scale(1.04);
}
.jt-post-card__body {
	padding: var(--jt-space-4) var(--jt-space-5) var(--jt-space-5);
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}
.jt-post-card__title {
	margin: 0 0 var(--jt-space-2);
	font-size: var(--jt-fs-lg);
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.jt-post-card__title a {
	color: var(--jt-color-heading);
}
.jt-post-card__title a:hover {
	color: var(--jt-color-accent);
}
.jt-post-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jt-space-3);
	font-size: var(--jt-fs-xs);
	color: var(--jt-color-text-muted);
	margin-bottom: var(--jt-space-3);
}
.jt-post-card__meta i {
	margin-right: 4px;
}
.jt-post-card__excerpt {
	margin: 0;
	font-size: var(--jt-fs-sm);
	color: var(--jt-color-text);
	line-height: 1.55;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex: 1 1 auto;
}

/* ==========================================================================
   Módulos v1.7.0 — FAQ + carrosséis
   ========================================================================== */

/* ----- Módulo: FAQ -------------------------------------------------------- */
.jt-mod-faq__list {
	display: flex;
	flex-direction: column;
	gap: var(--jt-space-3);
}
.jt-mod-faq__item {
	background: var(--jt-glass-bg);
	border: 1px solid var(--jt-glass-border);
	border-radius: var(--jt-radius);
	overflow: hidden;
	transition: border-color var(--jt-trans);
}
.jt-mod-faq__item[open] {
	border-color: rgba(147, 51, 234, 0.4);
}
.jt-mod-faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--jt-space-3);
	padding: var(--jt-space-4) var(--jt-space-5);
	cursor: pointer;
	font-weight: 600;
	color: var(--jt-color-heading);
	list-style: none;
	transition: background var(--jt-trans);
}
.jt-mod-faq__question::-webkit-details-marker { display: none; }
.jt-mod-faq__question:hover {
	background: rgba(255, 255, 255, 0.04);
}
.jt-mod-faq__chevron {
	transition: transform var(--jt-trans);
	color: var(--jt-color-accent);
	flex-shrink: 0;
}
.jt-mod-faq__item[open] .jt-mod-faq__chevron {
	transform: rotate(180deg);
}
.jt-mod-faq__answer {
	padding: 0 var(--jt-space-5) var(--jt-space-4);
	color: var(--jt-color-text);
	line-height: 1.7;
}
.jt-mod-faq__answer p:last-child { margin-bottom: 0; }

/* ----- Carrossel genérico ------------------------------------------------- */
.jt-carousel {
	position: relative;
}
.jt-carousel__track {
	display: flex;
	align-items: stretch;
	gap: var(--jt-space-3);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding-bottom: var(--jt-space-2);
}
.jt-carousel__track::-webkit-scrollbar { display: none; }

.jt-carousel__slide {
	flex: 0 0 100%;
	scroll-snap-align: start;
	min-width: 0;
	display: flex; /* faz o card filho ocupar 100% da altura do slide */
}

/* Slides em formato card (post carrossel) — cards visíveis configuráveis
   via classes .jt-carousel--visible-{1,2,3} no container. */
@media (min-width: 768px) {
	.jt-carousel--visible-1 .jt-carousel__slide--card {
		flex: 0 0 100%;
	}
	.jt-carousel--visible-2 .jt-carousel__slide--card {
		flex: 0 0 calc((100% - var(--jt-space-3)) / 2);
	}
	.jt-carousel--visible-3 .jt-carousel__slide--card {
		flex: 0 0 calc((100% - var(--jt-space-3) * 2) / 3);
	}
}

.jt-carousel__slide--social {
	flex: 0 0 100%;
}
@media (min-width: 768px) {
	.jt-carousel__slide--social {
		flex: 0 0 540px;
	}
}

/* Setas */
.jt-carousel__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.55);
	color: var(--jt-color-heading);
	border: 1px solid var(--jt-glass-border);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 2;
	transition: background var(--jt-trans), transform var(--jt-trans);
}
.jt-carousel__arrow:hover {
	background: var(--jt-color-primary);
}
.jt-carousel__arrow--prev { left: 8px; }
.jt-carousel__arrow--next { right: 8px; }

/* Dots */
.jt-carousel__dots {
	display: flex;
	justify-content: center;
	gap: var(--jt-space-2);
	margin-top: var(--jt-space-4);
}
.jt-carousel__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--jt-glass-border);
	border: 0;
	padding: 0;
	cursor: pointer;
	transition: background var(--jt-trans), transform var(--jt-trans);
}
.jt-carousel__dot.is-active {
	background: var(--jt-color-accent);
	transform: scale(1.3);
}

/* Containers de carrossel — position relative pra ancorar setas absolute */
.jt-mod-galeria-carrossel,
.jt-mod-post-carrossel,
.jt-mod-social-carrossel {
	position: relative;
}

/* Social carrossel — Instagram e TikTok apenas. Respeita altura manual
   quando configurada (auto se 0). Twitter / X foi removido do carrossel
   por conta da inconsistência de altura dos tweets. */
.jt-mod-social-carrossel .jt-carousel__slide--social {
	height: var(--jt-social-h-mobile, auto);
	overflow: hidden;
	align-items: flex-start;
	border-radius: var(--jt-radius-lg);
}
@media (min-width: 768px) {
	.jt-mod-social-carrossel .jt-carousel__slide--social {
		height: var(--jt-social-h-desktop, auto);
	}
}
.jt-mod-social-carrossel .jt-carousel__slide--social iframe,
.jt-mod-social-carrossel .jt-carousel__slide--social .instagram-media,
.jt-mod-social-carrossel .jt-carousel__slide--social .tiktok-embed {
	max-width: 100% !important;
}

/* ----- Módulo: Social Post -----------------------------------------------
   Em 100% (default) o embed renderiza no tamanho natural — height: auto
   significa que o container cresce com o conteúdo. Em escalas < 100%, o
   PHP injeta um inline style com --jt-social-h-mobile/--jt-social-h-desktop
   contendo a altura calculada, e o container clipa o excedente. */
.jt-mod-social-post {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.jt-mod-social-post__inner {
	width: 100%;
	max-width: 540px;
	height: var(--jt-social-h-mobile, auto);
	overflow: hidden;
	border-radius: var(--jt-radius-lg);
}
@media (min-width: 768px) {
	.jt-mod-social-post__inner {
		height: var(--jt-social-h-desktop, auto);
	}
}
.jt-mod-social-post iframe,
.jt-mod-social-post .instagram-media,
.jt-mod-social-post .tiktok-embed,
.jt-mod-social-post .twitter-tweet {
	max-width: 100% !important;
}
/* Quando o título existe, separa do embed. */
.jt-mod-social-post .jt-section-title {
	align-self: stretch;
}

/* ==========================================================================
   Módulo: Evento (consome dados do plugin Event Countdown)
   Visual inspirado no countdown legado mas reconstruído com CSS variables
   do tema. Mobile-first, totalmente responsivo, white-label completo.
   ========================================================================== */
.jt-mod-evento {
	background: linear-gradient(135deg,
		rgba(var(--jt-color-accent-rgb),  0.08),
		rgba(var(--jt-color-primary-rgb), 0.08));
	border: 1px solid rgba(var(--jt-color-accent-rgb), 0.25);
	border-radius: var(--jt-radius-lg);
	padding: var(--jt-space-5);
	backdrop-filter: blur(var(--jt-glass-blur));
	-webkit-backdrop-filter: blur(var(--jt-glass-blur));
	position: relative;
	overflow: hidden;
	transition: transform var(--jt-trans), border-color var(--jt-trans), box-shadow var(--jt-trans);
}
@media (min-width: 768px) {
	.jt-mod-evento {
		padding: var(--jt-space-6);
	}
}
/* Microinteração: leve elevação no hover (não conflita com glow do period_active). */
.jt-mod-evento:hover {
	transform: translateY(-2px);
}

/* ----- Info (local + tema + status) — sem box, integrado ao card -------- */
.jt-mod-evento__info {
	display: flex;
	flex-direction: column;
	gap: var(--jt-space-2);
	margin-bottom: var(--jt-space-4);
}
.jt-mod-evento__info-row {
	display: flex;
	align-items: flex-start;
	gap: var(--jt-space-3);
	font-size: var(--jt-fs-sm);
	color: var(--jt-color-text);
	line-height: 1.5;
}
.jt-mod-evento__info-row i {
	color: var(--jt-color-accent);
	width: 16px;
	text-align: center;
	flex-shrink: 0;
	margin-top: 3px;
}
/* "Local:" / "Tema:" como eyebrow inline — pequeno, uppercase, muted. */
.jt-mod-evento__info-row strong {
	display: inline-block;
	color: var(--jt-color-text-muted);
	font-weight: 700;
	font-size: var(--jt-fs-xs);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-right: 6px;
	transform: translateY(-1px);
}

/* Linha do topo da info: data/local + status pill.
   Mobile: __info-top vira `display: contents` — ou seja, os filhos dele
   (date row + pill) saem do wrapper e viram filhos diretos do __info. Isso
   permite que o pill (com order: 999) vá pro fim da lista, depois de
   Local/Tema. Mobile fica:
       Quando → Local → Tema → [PILL]
   Desktop ≥640px: pill vira absolute (top:50%, right:0) dentro do __info-top,
   que volta a ser um wrapper relative. A row reserva padding-right pro pill
   via :has(). */
.jt-mod-evento__info-top {
	display: contents;
}
.jt-mod-evento__info-top .jt-mod-evento__status {
	order: 999;
	align-self: flex-start;
	margin-top: var(--jt-space-1);
}
@media (min-width: 640px) {
	/* Só aplica o "pill absoluto" quando o __info-top realmente contém uma
	   row de info (data ou local). Caso edge: só pill sem row → fallback
	   normal sem absolute. Requer suporte a :has() (Chrome 105+, Safari 15.4+, FF 121+). */
	.jt-mod-evento__info-top:has(.jt-mod-evento__info-row) {
		position: relative;
		display: block;
	}
	.jt-mod-evento__info-top:has(.jt-mod-evento__info-row) .jt-mod-evento__info-row {
		padding-right: 12rem;
		min-width: 0;
	}
	.jt-mod-evento__info-top:has(.jt-mod-evento__info-row) .jt-mod-evento__status {
		position: absolute;
		top: 50%;
		right: 0;
		transform: translateY(-50%);
		order: 0;
		align-self: auto;
		margin: 0;
	}
}
.jt-mod-evento__status {
	display: inline-flex;
	align-items: center;
	gap: var(--jt-space-2);
	padding: 5px 12px;
	border-radius: var(--jt-radius-full);
	border: 1px solid currentColor;
	background: rgba(0, 0, 0, 0.2);
	font-size: var(--jt-fs-xs);
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	white-space: nowrap;
}
.jt-mod-evento__status-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
	box-shadow: 0 0 8px currentColor;
}
/* Cores semânticas por status — usam CSS vars do tema. */
.jt-mod-evento--status-coming-soon .jt-mod-evento__status { color: var(--jt-color-info); }
.jt-mod-evento--status-pre-sale    .jt-mod-evento__status { color: var(--jt-color-primary); }
.jt-mod-evento--status-available   .jt-mod-evento__status { color: var(--jt-color-success); }
.jt-mod-evento--status-partial     .jt-mod-evento__status { color: var(--jt-color-warning); }
.jt-mod-evento--status-sold-out    .jt-mod-evento__status { color: var(--jt-color-danger); }

/* ----- Countdown (timer) ------------------------------------------------- */
.jt-mod-evento__countdown {
	margin-top: var(--jt-space-3);
}
.jt-mod-evento__transition-text {
	text-align: center;
	color: var(--jt-color-accent);
	font-size: var(--jt-fs-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: var(--jt-space-3);
}
.jt-mod-evento__timer {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--jt-space-2);
}
@media (min-width: 480px) {
	.jt-mod-evento__timer {
		gap: var(--jt-space-3);
	}
}
.jt-mod-evento__timer-cell {
	background: rgba(0, 0, 0, 0.35);
	border: 1px solid var(--jt-color-border);
	border-radius: var(--jt-radius);
	padding: var(--jt-space-3) var(--jt-space-2);
	text-align: center;
	transition: transform var(--jt-trans), border-color var(--jt-trans);
}
.jt-mod-evento__timer-cell .value {
	display: block;
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem);
	font-weight: 800;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	/* Gradiente accent → primary nos números, com fallback. */
	color: var(--jt-color-accent);
	background: linear-gradient(135deg, var(--jt-color-accent), var(--jt-color-primary));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.jt-mod-evento__timer-cell .label {
	display: block;
	margin-top: var(--jt-space-1);
	font-size: var(--jt-fs-xs);
	font-weight: 600;
	color: var(--jt-color-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

/* Estado: período ativo (rolando agora) */
.jt-mod-evento--state-period-active {
	border-color: var(--jt-color-accent);
	box-shadow:
		0 0 40px rgba(var(--jt-color-accent-rgb), 0.25),
		inset 0 0 30px rgba(var(--jt-color-accent-rgb), 0.06);
	animation: jt-evento-glow 2.4s ease-in-out infinite;
}
@keyframes jt-evento-glow {
	0%, 100% {
		box-shadow:
			0 0 40px rgba(var(--jt-color-accent-rgb), 0.25),
			inset 0 0 30px rgba(var(--jt-color-accent-rgb), 0.06);
	}
	50% {
		box-shadow:
			0 0 64px rgba(var(--jt-color-accent-rgb), 0.5),
			inset 0 0 50px rgba(var(--jt-color-accent-rgb), 0.15);
	}
}
.jt-mod-evento__live {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--jt-space-3);
	padding: var(--jt-space-5) var(--jt-space-4);
	background: linear-gradient(135deg,
		rgba(var(--jt-color-accent-rgb),  0.18),
		rgba(var(--jt-color-primary-rgb), 0.18));
	border: 1px solid rgba(var(--jt-color-accent-rgb), 0.45);
	border-radius: var(--jt-radius);
}
.jt-mod-evento__live-dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--jt-color-accent);
	box-shadow: 0 0 16px var(--jt-color-accent);
	animation: jt-evento-blink 1.2s ease-in-out infinite;
}
@keyframes jt-evento-blink {
	0%, 100% { opacity: 1; transform: scale(1); }
	50%      { opacity: 0.4; transform: scale(0.7); }
}
.jt-mod-evento__live-text {
	color: var(--jt-color-heading);
	font-size: var(--jt-fs-base);
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-shadow: 0 0 16px rgba(var(--jt-color-accent-rgb), 0.7);
}

/* Estado: encerrado */
.jt-mod-evento--state-ended {
	border-color: var(--jt-color-border);
	background: linear-gradient(135deg, rgba(80, 60, 120, 0.12), rgba(40, 30, 70, 0.18));
	opacity: 0.92;
	box-shadow: none;
	animation: none;
}
.jt-mod-evento__ended {
	text-align: center;
	padding: var(--jt-space-5) var(--jt-space-4);
	background: rgba(120, 100, 160, 0.08);
	border: 1px solid rgba(180, 160, 220, 0.2);
	border-radius: var(--jt-radius);
}
.jt-mod-evento__ended-text {
	color: var(--jt-color-text-muted);
	font-size: var(--jt-fs-base);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

/* Estado: evento ainda não divulgado (sem períodos cadastrados) */
.jt-mod-evento__tba {
	text-align: center;
	padding: var(--jt-space-5) var(--jt-space-4);
	background: rgba(120, 100, 160, 0.08);
	border: 1px solid rgba(180, 160, 220, 0.2);
	border-radius: var(--jt-radius);
}
.jt-mod-evento__tba-text {
	color: var(--jt-color-text-muted);
	font-size: var(--jt-fs-base);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

/* Estado: contagem final (últimos 60 segundos antes do início) */
.jt-mod-evento--final-countdown .jt-mod-evento__timer-cell {
	animation: jt-evento-shake 0.6s ease-in-out infinite;
}
.jt-mod-evento--final-countdown .jt-mod-evento__timer-cell .value {
	text-shadow: 0 0 24px var(--jt-color-accent);
}
@keyframes jt-evento-shake {
	0%, 100% { transform: scale(1); }
	50%      { transform: scale(1.04); }
}

/* ----- Datas importantes -------------------------------------------------
   Lista compacta com 3 colunas: label (esquerda) · data (direita) · dot.
   Status do dot:
     - pending (cinza)  → data futura ou ainda não divulgada
     - reached (verde)  → data já chegou (data <= agora)
     - ended   (vermelho) → admin marcou "Encerrada" no plugin
   Precedência: ended > reached > pending. */
.jt-mod-evento__dates {
	margin-top: var(--jt-space-4);
	padding-top: var(--jt-space-3);
	border-top: 1px solid var(--jt-color-border);
	display: flex;
	flex-direction: column;
}
.jt-mod-evento__date-row {
	display: flex;
	align-items: center;
	gap: var(--jt-space-3);
	padding: 5px 0;
	font-size: var(--jt-fs-sm);
	border-bottom: 1px dashed rgba(255, 255, 255, 0.06);
}
.jt-mod-evento__date-row:last-child {
	border-bottom: 0;
}
.jt-mod-evento__date-label {
	color: var(--jt-color-text);
	font-weight: 400;
	flex: 1 1 auto;
	min-width: 0;
}
.jt-mod-evento__date-value {
	color: var(--jt-color-heading);
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.jt-mod-evento__date-value--tba {
	color: var(--jt-color-text-muted);
	font-weight: 400;
}

/* Status dot — 3 estados (glows usam variante RGB pra acompanhar o tema). */
.jt-mod-evento__date-dot {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	flex-shrink: 0;
	background: var(--jt-color-text-muted);
	opacity: 0.5;
}
.jt-mod-evento__date-dot--reached {
	background: var(--jt-color-success);
	opacity: 1;
	box-shadow: 0 0 8px rgba(var(--jt-color-success-rgb), 0.5);
}
.jt-mod-evento__date-dot--ended {
	background: var(--jt-color-danger);
	opacity: 1;
	box-shadow: 0 0 8px rgba(var(--jt-color-danger-rgb), 0.5);
}

/* Aviso de timezone abaixo das datas — pílula sutil alinhada à direita. */
.jt-mod-evento__tz-note {
	align-self: flex-end;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: var(--jt-space-3);
	padding: 4px 12px;
	border-radius: var(--jt-radius-full);
	background: rgba(var(--jt-color-accent-rgb), 0.06);
	border: 1px solid rgba(var(--jt-color-accent-rgb), 0.18);
	font-size: var(--jt-fs-xs);
	color: var(--jt-color-text-muted);
	letter-spacing: 0.03em;
}
.jt-mod-evento__tz-note i {
	color: var(--jt-color-accent);
	opacity: 0.7;
}

/* ==========================================================================
   Comentários (.jt-comments)
   ========================================================================== */

.jt-comments {
	margin-top: var(--jt-space-7);
	padding-top: var(--jt-space-5);
	border-top: 1px solid var(--jt-color-border);
}

/* Mensagem "zero comentários" */
.jt-comments__empty {
	text-align: center;
	color: var(--jt-color-text-muted);
	font-size: var(--jt-fs-base);
	padding: var(--jt-space-5) 0;
}

/* ----- Thread de comentários --------------------------------------------- */

.jt-comments__list {
	list-style: none;
	margin: var(--jt-space-5) 0;
	padding: 0;
}

.jt-comments__item {
	margin-bottom: var(--jt-space-3);
}

/* Cada comentário como mini-card glass */
.jt-comments__card {
	display: flex;
	gap: var(--jt-space-3);
	align-items: flex-start;
	background: var(--jt-glass-bg);
	border: 1px solid var(--jt-glass-border);
	border-radius: var(--jt-radius);
	padding: var(--jt-space-4);
	transition: border-color var(--jt-trans);
}
.jt-comments__card:hover {
	border-color: rgba(var(--jt-color-accent-rgb), 0.3);
}
.jt-comments__list--no-avatar .jt-comments__card {
	gap: 0;
}

.jt-comments__avatar img {
	border-radius: 50%;
	border: 2px solid var(--jt-glass-border);
	display: block;
	flex-shrink: 0;
}

.jt-comments__content {
	flex: 1 1 auto;
	min-width: 0;
}

.jt-comments__header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--jt-space-2);
	margin-bottom: var(--jt-space-2);
}
.jt-comments__author {
	font-weight: 600;
	color: var(--jt-color-heading);
	font-size: var(--jt-fs-sm);
}
.jt-comments__date {
	font-size: var(--jt-fs-xs);
	color: var(--jt-color-text-muted);
}

.jt-comments__text {
	font-size: var(--jt-fs-sm);
	line-height: 1.7;
	color: var(--jt-color-text);
}
.jt-comments__text p { margin: 0 0 var(--jt-space-2); }
.jt-comments__text p:last-child { margin-bottom: 0; }

.jt-comments__moderation {
	font-size: var(--jt-fs-xs);
	color: var(--jt-color-warning);
	background: rgba(var(--jt-color-warning-rgb), 0.08);
	border: 1px solid rgba(var(--jt-color-warning-rgb), 0.25);
	border-radius: var(--jt-radius-sm);
	padding: var(--jt-space-2) var(--jt-space-3);
	margin-bottom: var(--jt-space-2);
}
.jt-comments__moderation i { margin-right: 4px; }

.jt-comments__actions { margin-top: var(--jt-space-2); }
.jt-comments__actions a {
	font-size: var(--jt-fs-xs);
	color: var(--jt-color-text-muted);
	text-decoration: none;
	transition: color var(--jt-trans);
}
.jt-comments__actions a:hover { color: var(--jt-color-accent); }
.jt-comments__actions a i { margin-right: 4px; }

/* Replies — indent com borda accent */
.jt-comments__list .children {
	list-style: none;
	margin: var(--jt-space-3) 0 0;
	padding-left: var(--jt-space-4);
	border-left: 2px solid rgba(var(--jt-color-accent-rgb), 0.25);
}

/* Fechado */
.jt-comments__closed {
	text-align: center;
	padding: var(--jt-space-4) 0;
}

/* ----- CTA "Deixe seu comentário" (botão que revela o form) ------------- */

.jt-comments__cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--jt-space-2);
	width: 100%;
	margin-top: var(--jt-space-5);
	padding: var(--jt-space-4) var(--jt-space-5);
	background: var(--jt-glass-bg);
	border: 1px solid var(--jt-glass-border);
	border-radius: var(--jt-radius);
	color: var(--jt-color-text);
	font-family: var(--jt-font-sans);
	font-size: var(--jt-fs-sm);
	font-weight: 600;
	cursor: pointer;
	transition: background var(--jt-trans), border-color var(--jt-trans), transform var(--jt-trans-fast);
}
.jt-comments__cta:hover {
	background: rgba(var(--jt-color-accent-rgb), 0.08);
	border-color: rgba(var(--jt-color-accent-rgb), 0.35);
	transform: translateY(-1px);
}
.jt-comments__cta i {
	color: var(--jt-color-accent);
}
/* Esconde CTA quando form está aberto */
.jt-comments__cta[aria-expanded="true"] {
	display: none;
}

/* ----- Form colapsável --------------------------------------------------- */

.jt-comments__form-wrap {
	margin-top: var(--jt-space-5);
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	transition: max-height 0.4s ease, opacity 0.3s ease, margin-top 0.3s ease;
}
.jt-comments__form-wrap[aria-hidden="false"] {
	max-height: 2000px; /* valor grande o suficiente */
	opacity: 1;
}

.jt-comments__form .comment-reply-title {
	font-size: var(--jt-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--jt-color-text-muted);
	margin: 0 0 var(--jt-space-4);
}
.jt-comments__form .comment-reply-title small {
	font-size: var(--jt-fs-xs);
	margin-left: var(--jt-space-2);
}
.jt-comments__form .comment-reply-title small a {
	color: var(--jt-color-accent);
}

.jt-comments__field { margin-bottom: var(--jt-space-3); }
.jt-comments__field label {
	display: block;
	font-size: var(--jt-fs-xs);
	font-weight: 600;
	color: var(--jt-color-text-muted);
	margin-bottom: var(--jt-space-1);
}
.jt-req { color: var(--jt-color-danger); }

.jt-comments__field input[type="text"],
.jt-comments__field input[type="email"],
.jt-comments__field textarea {
	width: 100%;
	padding: 10px 14px;
	background: var(--jt-glass-bg);
	border: 1px solid var(--jt-glass-border);
	border-radius: var(--jt-radius-sm);
	color: var(--jt-color-text);
	font-family: var(--jt-font-sans);
	font-size: var(--jt-fs-sm);
	transition: border-color var(--jt-trans), box-shadow var(--jt-trans);
	resize: vertical;
}
.jt-comments__field textarea {
	padding-bottom: 28px;
}
.jt-comments__field input:focus,
.jt-comments__field textarea:focus {
	outline: none;
	border-color: var(--jt-color-accent);
	box-shadow: 0 0 0 3px rgba(var(--jt-color-accent-rgb), 0.15);
}

/* Nome + Email lado a lado no desktop */
@media (min-width: 640px) {
	.jt-comments__form {
		display: flex;
		flex-wrap: wrap;
		gap: 0 var(--jt-space-3);
	}
	.jt-comments__form > * { width: 100%; }
	.jt-comments__field--half {
		width: calc(50% - var(--jt-space-3) / 2);
	}
}

/* Cookies */
.jt-comments__field--cookies {
	font-size: var(--jt-fs-xs);
	color: var(--jt-color-text-muted);
}
.jt-comments__field--cookies label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 400;
	cursor: pointer;
}
.jt-comments__field--cookies input[type="checkbox"] {
	accent-color: var(--jt-color-accent);
}

/* Logado como */
.jt-comments__logged-in {
	font-size: var(--jt-fs-sm);
	color: var(--jt-color-text-muted);
	margin-bottom: var(--jt-space-3);
}
.jt-comments__logged-in a { color: var(--jt-color-accent); }

/* Submit */
.jt-comments__form .form-submit { margin-top: var(--jt-space-3); }

/* ----- Emoji bar (logo abaixo do textarea, dentro do comment_field) ------ */

.jt-comments__emoji-bar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px;
	margin-top: var(--jt-space-2);
}

/* ----- Textarea wrap + contador (dentro do textarea, canto inferior dir) - */

.jt-comments__textarea-wrap {
	position: relative;
}
.jt-comments__counter {
	position: absolute;
	bottom: 10px;
	right: 12px;
	font-size: 11px;
	color: var(--jt-color-text-muted);
	font-variant-numeric: tabular-nums;
	opacity: 0.5;
	pointer-events: none;
	transition: color var(--jt-trans), opacity var(--jt-trans);
	z-index: 1;
}
.jt-comments__counter.is-near {
	color: var(--jt-color-warning);
	opacity: 0.9;
}
.jt-comments__counter.is-max {
	color: var(--jt-color-danger);
	opacity: 1;
}
.jt-comments__emoji-label {
	font-size: 1rem;
	margin-right: 4px;
	line-height: 1;
}
.jt-comments__emoji-btn {
	background: transparent;
	border: 0;
	padding: 4px;
	font-size: 1.1rem;
	cursor: pointer;
	border-radius: var(--jt-radius-sm);
	transition: transform var(--jt-trans-fast), background var(--jt-trans-fast);
	line-height: 1;
}
.jt-comments__emoji-btn:hover {
	transform: scale(1.25);
	background: rgba(255, 255, 255, 0.06);
}

/* ----- Guidelines -------------------------------------------------------- */

.jt-comments__guidelines {
	margin-top: var(--jt-space-3);
	margin-bottom: var(--jt-space-2);
	padding: var(--jt-space-3) var(--jt-space-4);
	background: rgba(var(--jt-color-info-rgb), 0.06);
	border: 1px solid rgba(var(--jt-color-info-rgb), 0.2);
	border-radius: var(--jt-radius-sm);
	font-size: var(--jt-fs-xs);
	color: var(--jt-color-text-muted);
	line-height: 1.6;
}
.jt-comments__guidelines i {
	color: var(--jt-color-info);
	margin-right: 6px;
}

/* ----- Social Post — TikTok (single) -------------------------------------
   Iframe-direct do TikTok player. Aspect-ratio 9:16 fixo (vertical natural
   do TikTok); a largura define a altura. Centralizado no container, com
   max-width compacto pra não ficar enorme em desktop. */
.jt-mod-social-post--tt .jt-mod-social-post__inner {
	width: 100%;
	max-width: 340px;
	height: auto;
	aspect-ratio: 9 / 16;
	margin-inline: auto;
}
.jt-mod-social-post--tt iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ----- Social Carrossel — TikTok -----------------------------------------
   Mesma lógica: cada slide é um iframe 9:16. Mobile mostra 1 slide cheio
   com peek do próximo; desktop mostra ~2 slides visíveis no container 896px. */
.jt-mod-social-carrossel--tt .jt-carousel__slide--social {
	flex: 0 0 280px;
	height: auto;
	aspect-ratio: 9 / 16;
	overflow: hidden;
	border-radius: var(--jt-radius-lg);
	background: #000;
}
@media (min-width: 768px) {
	.jt-mod-social-carrossel--tt .jt-carousel__slide--social {
		flex: 0 0 320px;
	}
}
.jt-mod-social-carrossel--tt .jt-carousel__slide--social iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ==========================================================================
   Templates: single, archive, 404
   ========================================================================== */

/* ----- Single ------------------------------------------------------------- */

.jt-single {
	display: block;
}

/* Categorias acima da foto (pode ter múltiplas) */
.jt-single__category {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jt-space-2);
	margin-bottom: var(--jt-space-3);
}
.jt-single__category .jt-badge {
	text-decoration: none;
}

/* Imagem destacada */
.jt-single__thumb {
	margin-bottom: var(--jt-space-4);
	border-radius: var(--jt-radius-lg);
	overflow: hidden;
}

/* Meta bar: meta (esquerda) + share (direita). Mobile: empilha. */
.jt-single__meta-bar {
	display: flex;
	flex-direction: column;
	gap: var(--jt-space-2);
	margin-bottom: var(--jt-space-4);
}
@media (min-width: 640px) {
	.jt-single__meta-bar {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}

/* Meta (data + tempo + autor) */
.jt-single__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--jt-space-2);
	color: var(--jt-color-text-muted);
	font-size: var(--jt-fs-xs);
}
.jt-single__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.jt-single__meta-item i {
	color: var(--jt-color-accent);
	font-size: 0.8em;
}

/* Share buttons */
.jt-single__share {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}
.jt-single__share-label {
	font-size: var(--jt-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--jt-color-text-muted);
	margin-right: 2px;
}
.jt-single__share-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--jt-glass-bg);
	border: 1px solid var(--jt-glass-border);
	color: var(--jt-color-text);
	font-size: 0.8rem;
	cursor: pointer;
	transition: background var(--jt-trans), color var(--jt-trans), transform var(--jt-trans-fast);
	text-decoration: none;
}
.jt-single__share-btn:hover {
	transform: translateY(-2px);
	color: var(--jt-color-heading);
}
.jt-single__share-btn--whatsapp:hover { background: rgba(37, 211, 102, 0.2); color: #25d366; }
.jt-single__share-btn--x:hover       { background: rgba(255, 255, 255, 0.1); }
.jt-single__share-btn--facebook:hover { background: rgba(24, 119, 242, 0.2); color: #1877f2; }
.jt-single__share-btn--telegram:hover { background: rgba(38, 165, 224, 0.2); color: #26a5e0; }
.jt-single__share-btn--copy:hover    { background: rgba(var(--jt-color-accent-rgb), 0.2); color: var(--jt-color-accent); }
/* Feedback "copiado" via JS */
.jt-single__share-btn--copy.is-copied {
	background: rgba(var(--jt-color-success-rgb), 0.2);
	color: var(--jt-color-success);
}

/* Título */
.jt-single__header {
	margin-bottom: var(--jt-space-5);
}
.jt-single__title {
	margin: 0;
}

/* Conteúdo */
.jt-single__content {
	font-size: var(--jt-fs-base);
	line-height: 1.8;
}
.jt-single__content img {
	border-radius: var(--jt-radius);
	margin: var(--jt-space-5) 0;
}
.jt-single__content blockquote {
	border-left: 3px solid var(--jt-color-primary);
	padding: var(--jt-space-3) var(--jt-space-5);
	margin: var(--jt-space-5) 0;
	background: var(--jt-glass-bg);
	border-radius: var(--jt-radius-sm);
	font-style: italic;
}

/* Tags */
.jt-single__tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--jt-space-2);
	margin-top: var(--jt-space-6);
	padding-top: var(--jt-space-4);
	border-top: 1px solid var(--jt-color-border);
}
.jt-single__tags > i {
	color: var(--jt-color-text-muted);
	font-size: 0.9rem;
	margin-right: var(--jt-space-1);
}
.jt-single__tags .jt-badge {
	text-decoration: none;
	transition: background var(--jt-trans), border-color var(--jt-trans);
}
.jt-single__tags .jt-badge:hover {
	background: rgba(var(--jt-color-accent-rgb), 0.15);
	border-color: rgba(var(--jt-color-accent-rgb), 0.4);
}

/* Posts relacionados */
.jt-single__related {
	margin-top: var(--jt-space-7);
	padding-top: var(--jt-space-5);
	border-top: 1px solid var(--jt-color-border);
}
.jt-single__related .jt-section-title {
	margin-bottom: var(--jt-space-4);
}
.jt-single__related-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--jt-space-4);
}
@media (min-width: 768px) {
	.jt-single__related-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
.jt-single__related-more {
	margin-top: var(--jt-space-5);
	text-align: center;
}

/* ----- Archive ------------------------------------------------------------ */

.jt-archive__header {
	margin-bottom: var(--jt-space-5);
}
.jt-archive__badge-header {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: var(--jt-space-3);
	flex-wrap: wrap;
}
.jt-archive__badge-label {
	font-size: var(--jt-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--jt-color-text-muted);
}

.jt-archive__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--jt-space-4);
}
@media (min-width: 768px) {
	.jt-archive__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Seção "Outras categorias/tags" — badges clicáveis no final do archive. */
.jt-archive__explore {
	margin-top: var(--jt-space-7);
	padding-top: var(--jt-space-5);
	border-top: 1px solid var(--jt-color-border);
}
.jt-archive__explore-label {
	display: block;
	font-size: var(--jt-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--jt-color-text-muted);
	margin-bottom: var(--jt-space-3);
}
.jt-archive__explore-badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jt-space-2);
}
.jt-archive__explore-badges .jt-badge {
	text-decoration: none;
	transition: background var(--jt-trans), border-color var(--jt-trans), color var(--jt-trans);
}
.jt-archive__explore-badges .jt-badge:hover {
	background: rgba(var(--jt-color-accent-rgb), 0.15);
	border-color: rgba(var(--jt-color-accent-rgb), 0.4);
	color: var(--jt-color-heading);
}

.jt-pagination {
	margin-top: var(--jt-space-7);
	text-align: center;
}
.jt-pagination .page-numbers {
	display: inline-block;
	min-width: 38px;
	padding: 8px 12px;
	margin: 0 2px;
	border: 1px solid var(--jt-glass-border);
	border-radius: var(--jt-radius-sm);
	color: var(--jt-color-text);
	background: var(--jt-glass-bg);
	transition: background var(--jt-trans), color var(--jt-trans);
}
.jt-pagination .page-numbers.current,
.jt-pagination .page-numbers:hover {
	background: var(--jt-color-primary);
	color: var(--jt-color-heading);
	border-color: var(--jt-color-primary);
}

/* ----- 404 ---------------------------------------------------------------- */

.jt-404 {
	padding-block: var(--jt-space-7);
}
.jt-404__emoji {
	font-size: 4rem;
	margin-bottom: var(--jt-space-4);
}

/* ----- Page (fallback sem módulos) ---------------------------------------- */

.jt-page__content {
	font-size: var(--jt-fs-base);
	line-height: 1.8;
}
.jt-page__content img {
	border-radius: var(--jt-radius);
}
