/*
Theme Name: Fiscal.io Blog
Theme URI: https://fiscal.io
Author: Fiscal.io
Author URI: https://fiscal.io
Description: Tema clássico para o blog da Fiscal.io
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fiscal-io-blog
*/

/* ── Tokens ── */
:root {
	--primary: #2639ED;
	--primary-dark: #1e2fb8;
	--surface: #ffffff;
	--bg: #F3F4F6;
	--border: #e5e7eb;
	--heading: #111827;
	--text: #374151;
	--muted: #6b7280;
	--muted-light: #9ca3af;
	--gray-100: #f3f4f6;
	--gray-800: #1f2937;
	--gray-900: #111827;
	--blue-50: #eff6ff;
	--container: 1280px;
}

/* ── Reset ── */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

body {
	font-family: Inter, system-ui, -apple-system, sans-serif;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--text);
	background: var(--bg);
}

a {
	color: var(--primary);
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

h1,
h2,
h3,
h4 {
	color: var(--heading);
	line-height: 1.3;
}

/* ── Layout ── */
.container {
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: 1rem;
}

/* ── Top Bar ── */
.top-bar {
	background: var(--primary);
	color: #fff;
	padding: 8px 0;
	font-size: 0.875rem;
}

.top-bar .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.top-bar__left {
	display: flex;
	align-items: center;
	gap: 24px;
}

.top-bar__loc {
	display: none;
}

@media (min-width: 768px) {
	.top-bar__loc {
		display: inline;
	}
}

.top-bar__social {
	display: flex;
	align-items: center;
	gap: 16px;
	list-style: none;
}

.top-bar__social a {
	color: #fff;
	display: flex;
	align-items: center;
	opacity: .85;
	transition: opacity .15s;
}

.top-bar__social a:hover {
	opacity: 1;
	text-decoration: none;
}

.top-bar__social svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}

/* ── Site Header ── */
.site-header {
	background: var(--surface);
	border-bottom: 1px solid var(--border);
	padding: 0;
	position: sticky;
	top: 0;
	z-index: 100;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .08);
}

.site-header .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-block: 16px;
}

.header-left {
	display: flex;
	align-items: center;
	gap: 16px;
}

/* hamburger mobile */
.hamburger {
	display: flex;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
}

.hamburger svg {
	width: 24px;
	height: 24px;
	color: var(--text);
}

@media (min-width: 1024px) {
	.hamburger {
		display: none;
	}
}

.header-brand {
	display: flex;
	align-items: center;
	gap: 8px;
	text-decoration: none !important;
}

.header-brand .custom-logo {
	height: 48px;
	width: auto;
	display: block;
}

.header-brand .custom-logo-link {
	display: flex;
	align-items: center;
}

.header-brand .site-logo {
	height: 48px;
	width: auto;
	display: block;
}

.brand-icon {
	width: 40px;
	height: 40px;
	background: var(--primary);
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 1.25rem;
	font-weight: 700;
	flex-shrink: 0;
}

.brand-icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 8px;
}

.brand-name {
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--primary);
	line-height: 1.2;
}

.brand-tagline {
	font-size: 0.75rem;
	color: var(--muted);
}

/* primary nav */
.header-nav {
	display: none;
	align-items: center;
	gap: 24px;
	font-size: 0.875rem;
}

@media (min-width: 768px) {
	.header-nav {
		display: flex;
	}
}

.header-nav a {
	color: var(--text);
	font-weight: 500;
	transition: color .15s;
}

.header-nav a:hover,
.header-nav .current-menu-item>a {
	color: var(--primary);
	text-decoration: none;
}

/* right actions */
.header-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.search-wrap {
	position: relative;
	display: none;
}

@media (min-width: 1024px) {
	.search-wrap {
		display: block;
	}
}

.search-wrap input[type="search"],
.search-wrap input[type="text"] {
	width: 256px;
	padding: 8px 40px 8px 16px;
	border: 1px solid var(--border);
	border-radius: 9999px;
	font-size: 0.875rem;
	background: var(--surface);
	color: var(--text);
	outline: none;
	transition: border-color .15s;
}

.search-wrap input:focus {
	border-color: var(--primary);
}

.search-wrap .search-icon {
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	width: 40px;
	background: none;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.search-wrap .search-icon svg {
	width: 18px;
	height: 18px;
	color: var(--muted-light);
}

/* ── Thumbnail placeholder ── */
.thumb-empty {
	width: 100%;
	height: 100%;
	background: var(--gray-100);
}

.btn-cta {
	background: var(--primary);
	color: #fff !important;
	padding: 8px 24px;
	border-radius: 9999px;
	font-size: 0.875rem;
	font-weight: 500;
	white-space: nowrap;
	transition: background .15s;
	text-decoration: none !important;
	display: inline-block;
}

.btn-cta:hover {
	background: var(--primary-dark);
}

.btn-outline {
	background: transparent;
	color: var(--primary) !important;
	border: 1px solid var(--primary);
	padding: 8px 24px;
	border-radius: 9999px;
	font-size: 0.875rem;
	font-weight: 500;
	white-space: nowrap;
	transition: background .15s, color .15s;
	text-decoration: none !important;
	display: inline-block;
}

.btn-outline:hover {
	background: var(--primary);
	color: #fff !important;
}

/* ── Breadcrumb ── */
.breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.875rem;
	color: var(--muted);
	padding: 24px 0 16px;
}

.breadcrumb a {
	color: var(--primary);
}

.breadcrumb span {
	color: var(--muted);
}

/* ── Home Grid ── */
.home-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	padding-top: 32px;
	padding-bottom: 48px;
}

@media (min-width: 1024px) {
	.home-grid {
		grid-template-columns: 1fr 1fr 1fr;
	}

	.home-main {
		grid-column: span 2;
	}

	.home-aside {
		grid-column: span 1;
	}
}

/* ── Featured Article ── */
.article-featured {
	display: block;
	background: var(--surface);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
	cursor: pointer;
	transition: box-shadow .2s;
	margin-bottom: 24px;
	color: var(--text);
	text-decoration: none;
}

.article-featured:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
	text-decoration: none;
	color: var(--text);
}

.article-featured__img {
	position: relative;
	height: 384px;
	overflow: hidden;
}

.article-featured__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s;
}

.article-featured:hover .article-featured__img img {
	transform: scale(1.02);
}

.article-featured__body {
	padding: 24px;
}

.article-featured__title {
	font-size: 1.875rem;
	font-weight: 700;
	color: var(--heading);
	margin-bottom: 12px;
	line-height: 1.3;
	transition: color .15s;
}

.article-featured:hover .article-featured__title {
	color: var(--primary);
}

.article-featured__excerpt {
	font-size: 1.125rem;
	color: #4b5563;
	line-height: 1.7;
	margin-bottom: 16px;
}

.article-featured .post-meta {
	color: #6b7280;
}

/* ── Category Badge ── */
.cat-badge {
	position: absolute;
	top: 16px;
	left: 16px;
	background: var(--primary);
	color: #fff;
	padding: 4px 12px;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	border-radius: 4px;
	font-weight: 600;
}

.cat-badge--sm {
	position: absolute;
	top: 8px;
	left: 8px;
	background: var(--primary);
	color: #fff;
	padding: 3px 8px;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	border-radius: 4px;
}

/* ── Post Meta ── */
.post-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	font-size: 0.875rem;
	color: var(--muted);
}

.post-meta svg {
	width: 16px;
	height: 16px;
	vertical-align: middle;
	margin-right: 4px;
}

/* ── Secondary Grid ── */
.secondary-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin-bottom: 24px;
}

@media (min-width: 640px) {
	.secondary-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.article-card {
	background: var(--surface);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
	transition: box-shadow .2s;
	display: block;
	color: var(--text);
	text-decoration: none;
}

.article-card:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
	text-decoration: none;
	color: var(--text);
}

.article-card__img {
	position: relative;
	height: 160px;
	overflow: hidden;
}

.article-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s;
}

.article-card:hover .article-card__img img {
	transform: scale(1.04);
}

.article-card__body {
	padding: 16px;
}

.article-card__title {
	font-size: 1rem;
	font-weight: 600;
	color: var(--heading);
	margin-bottom: 8px;
	line-height: 1.4;
	transition: color .15s;
}

.article-card:hover .article-card__title {
	color: var(--primary);
}

.article-card__date {
	font-size: 0.75rem;
	color: var(--muted);
}

/* ── Mais Recentes ── */
.recent-section {
	background: var(--surface);
	border-radius: 8px;
	padding: 24px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
}

.section-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 24px;
}

.section-title {
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--heading);
}

.section-link {
	font-size: 0.875rem;
	color: var(--primary);
}

.section-link:hover {
	text-decoration: underline;
}

.recent-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
}

@media (min-width: 640px) {
	.recent-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.recent-article {
	display: flex;
	gap: 16px;
	padding: 12px 8px;
	border-bottom: 1px solid var(--gray-100);
	border-radius: 6px;
	transition: background .15s;
	cursor: pointer;
	color: var(--text);
	text-decoration: none;
}

.recent-article:last-child {
	border-bottom: none;
}

.recent-article:hover {
	background: var(--gray-100);
	text-decoration: none;
	color: var(--text);
}

.recent-article__thumb {
	width: 128px;
	height: 96px;
	flex-shrink: 0;
	border-radius: 6px;
	overflow: hidden;
}

.home-main .recent-article__thumb {
	width: 144px;
	height: 108px;
}

.recent-article__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.recent-article__body {
	flex: 1;
	min-width: 0;
}

.recent-article__cat {
	display: block;
	font-size: 0.75rem;
	color: var(--primary);
	text-transform: uppercase;
	letter-spacing: .05em;
	margin-bottom: 4px;
}

.recent-article__title {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--heading);
	line-height: 1.4;
	margin-bottom: 4px;
	transition: color .15s;
}

.recent-article:hover .recent-article__title {
	color: var(--primary);
}

.recent-article__excerpt {
	font-size: 0.75rem;
	color: var(--muted);
	margin-bottom: 4px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.recent-article__date {
	font-size: 0.75rem;
	color: var(--muted-light);
}

/* ── Sidebar ── */
.sidebar {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.sidebar-cta {
	background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
	color: #fff;
	border-radius: 8px;
	padding: 24px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
}

.sidebar-cta__title {
	font-size: 1.25rem;
	font-weight: 600;
	color: #fff;
	margin-bottom: 12px;
}

.sidebar-cta__text {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, .9);
	margin-bottom: 16px;
}

.btn-white {
	display: block;
	width: 100%;
	background: #fff;
	color: var(--primary) !important;
	text-align: center;
	padding: 12px;
	border-radius: 8px;
	font-weight: 600;
	font-size: 0.875rem;
	transition: background .15s;
	text-decoration: none !important;
}

.btn-white:hover {
	background: var(--gray-100);
}

.sidebar-box {
	background: var(--surface);
	border-radius: 8px;
	padding: 24px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
}

.sidebar-box__title {
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--heading);
	margin-bottom: 16px;
}

.sidebar-article {
	padding: 8px;
	border-bottom: 1px solid var(--gray-100);
	border-radius: 6px;
	margin-bottom: 4px;
	transition: background .15s;
	display: block;
	color: var(--text);
	text-decoration: none;
}

.sidebar-article:last-child {
	border-bottom: none;
}

.sidebar-article:hover {
	background: var(--gray-100);
	text-decoration: none;
	color: var(--text);
}

.sidebar-article__cat {
	display: block;
	font-size: 0.75rem;
	color: var(--primary);
	text-transform: uppercase;
	letter-spacing: .05em;
	margin-bottom: 6px;
}

.sidebar-article__title {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--heading);
	line-height: 1.4;
	margin-bottom: 6px;
	transition: color .15s;
}

.sidebar-article:hover .sidebar-article__title {
	color: var(--primary);
}

.sidebar-article__meta {
	display: flex;
	align-items: center;
	gap: 4px;
	font-size: 0.75rem;
	color: var(--muted);
}

.sidebar-article__meta svg {
	width: 12px;
	height: 12px;
}

/* category tags */
.cat-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.cat-tag {
	background: var(--gray-100);
	color: var(--text);
	padding: 6px 12px;
	border-radius: 9999px;
	font-size: 0.75rem;
	transition: background .15s, color .15s;
}

.cat-tag:hover {
	background: var(--primary);
	color: #fff;
	text-decoration: none;
}

/* ── Single Post ── */
.single-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	padding-bottom: 48px;
}

@media (min-width: 1024px) {
	.single-layout {
		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	}

	.single-article {
		grid-column: 1;
	}

	.single-sidebar {
		grid-column: 2;
	}
}

.article-wrap {
	background: var(--surface);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
}

.article-head {
	padding: 32px 32px 0;
}

.article-head__cat {
	display: inline-block;
	background: var(--primary);
	color: #fff;
	padding: 4px 12px;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	border-radius: 4px;
	margin-bottom: 16px;
}

.article-head__title {
	font-size: 2.25rem;
	font-weight: 700;
	margin-bottom: 16px;
}

.article-head__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 24px;
	font-size: 0.875rem;
	color: var(--muted);
	padding-bottom: 24px;
	border-bottom: 1px solid var(--border);
}

.article-head__meta svg {
	width: 16px;
	height: 16px;
	vertical-align: middle;
	margin-right: 4px;
}

.article-hero {
	width: 100%;
	height: 384px;
	overflow: hidden;
}

.article-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.article-body {
	padding: 32px;
}

.article-share {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-bottom: 24px;
	margin-bottom: 32px;
	border-bottom: 1px solid var(--border);
	font-size: 0.875rem;
}

.article-share a,
.article-share span {
	color: var(--text);
	display: flex;
	align-items: center;
	gap: 6px;
	transition: color .15s;
}

.article-share a:hover {
	color: var(--primary);
	text-decoration: none;
}

.article-share svg {
	width: 20px;
	height: 20px;
}

.entry-content {
	line-height: 1.8;
}

.entry-content h2 {
	font-size: 1.5rem;
	margin: 2rem 0 1.5rem;
}

.entry-content h3 {
	font-size: 1.25rem;
	margin: 2rem 0 1rem;
}

.entry-content p {
	margin-bottom: 1rem;
	color: var(--text);
}

.entry-content ul,
.entry-content ol {
	margin: 0 0 1rem 1.5rem;
	color: var(--text);
}

.entry-content li {
	margin-bottom: .25rem;
}

.entry-content blockquote {
	border-left: 4px solid var(--primary);
	background: var(--blue-50);
	padding: 20px 24px;
	margin: 2rem 0;
	border-radius: 0 6px 6px 0;
}

.entry-content blockquote p {
	color: var(--heading);
	margin: 0;
}

.entry-content strong {
	color: var(--heading);
}

.entry-content a {
	color: var(--primary);
}

.article-tags {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid var(--border);
}

.article-tags .cat-tags {
	margin-top: 8px;
}

.author-box {
	margin-top: 32px;
	padding: 24px;
	background: var(--gray-100);
	border-radius: 8px;
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.author-avatar {
	width: 64px;
	height: 64px;
	background: var(--primary);
	border-radius: 9999px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	flex-shrink: 0;
	overflow: hidden;
}

.author-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.author-name {
	font-size: 1.125rem;
	font-weight: 600;
	margin-bottom: 2px;
}

.author-role {
	font-size: 0.875rem;
	color: var(--muted);
	margin-bottom: 6px;
}

.author-bio {
	font-size: 0.875rem;
	color: var(--text);
}

/* related articles */
.related-section {
	background: var(--surface);
	border-radius: 8px;
	padding: 24px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
	margin-top: 32px;
}

.related-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin-top: 24px;
}

@media (min-width: 640px) {
	.related-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ── Archive / Search ── */
.archive-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	padding-bottom: 48px;
}

@media (min-width: 1024px) {
	.archive-layout {
		grid-template-columns: 1fr 1fr 1fr;
	}

	.archive-main {
		grid-column: span 2;
	}
}

.archive-header {
	background: var(--surface);
	border-radius: 8px;
	padding: 24px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
	margin-bottom: 16px;
}

.archive-header h1 {
	font-size: 2rem;
	font-weight: 700;
}

.post-list-card {
	background: var(--surface);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
	margin-bottom: 16px;
	display: flex;
	transition: box-shadow .2s;
}

.post-list-card:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
	text-decoration: none;
}

.post-list-card__thumb {
	width: 200px;
	flex-shrink: 0;
	overflow: hidden;
	position: relative;
}

.post-list-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.post-list-card__body {
	padding: 20px;
	flex: 1;
}

.post-list-card__cat {
	display: inline-block;
	font-size: 0.75rem;
	color: var(--primary);
	text-transform: uppercase;
	letter-spacing: .05em;
	margin-bottom: 6px;
}

.post-list-card__title {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--heading);
	line-height: 1.4;
	margin-bottom: 8px;
	transition: color .15s;
}

.post-list-card:hover .post-list-card__title {
	color: var(--primary);
}

.post-list-card__excerpt {
	font-size: 0.875rem;
	color: var(--text);
	margin-bottom: 10px;
}

.post-list-card__meta {
	font-size: 0.75rem;
	color: var(--muted);
}

/* ── Pagination ── */
.pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	padding: 24px 0;
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 8px;
	border: 1px solid var(--border);
	border-radius: 6px;
	font-size: 0.875rem;
	color: var(--text);
	background: var(--surface);
	transition: background .15s, color .15s;
}

.pagination .page-numbers:hover,
.pagination .page-numbers.current {
	background: var(--primary);
	color: #fff;
	border-color: var(--primary);
	text-decoration: none;
}

/* ── Page / 404 ── */
.page-wrap,
.not-found-wrap {
	padding: 48px 0 64px;
}

.page-inner,
.not-found-inner {
	background: var(--surface);
	border-radius: 8px;
	padding: 32px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
}

.not-found-inner {
	max-width: 480px;
	margin: 0 auto;
	text-align: center;
}

.not-found-inner h1 {
	font-size: 2rem;
	margin-bottom: 12px;
}

.not-found-inner p {
	color: var(--muted);
	margin-bottom: 24px;
}

/* ── BlogListing (home.php) ── */
.bl-header {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-bottom: 32px;
}

@media (min-width: 768px) {
	.bl-header {
		flex-direction: row;
		align-items: flex-start;
		justify-content: space-between;
	}
}

.bl-header__title {
	font-size: 2.25rem;
	font-weight: 700;
	color: var(--heading);
	margin-bottom: 8px;
}

.bl-header__count {
	font-size: 1.125rem;
	color: var(--muted);
}

.bl-filter-wrap {
	width: 100%;
}

@media (min-width: 768px) {
	.bl-filter-wrap {
		width: 320px;
		flex-shrink: 0;
	}
}

.bl-filter {
	width: 100%;
	padding: 12px 16px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 8px;
	font-size: .875rem;
	color: var(--heading);
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
	outline: none;
	transition: border-color .15s, box-shadow .15s;
	appearance: auto;
}

.bl-filter:hover,
.bl-filter:focus {
	border-color: var(--primary);
	box-shadow: 0 0 0 3px rgba(0, 102, 204, .12);
}

.bl-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin-bottom: 48px;
}

@media (min-width: 640px) {
	.bl-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.bl-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.bl-card {
	display: block;
	background: var(--surface);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
	transition: box-shadow .2s;
	color: var(--text);
	text-decoration: none;
}

.bl-card:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, .12);
	color: var(--text);
	text-decoration: none;
}

.bl-card__img {
	position: relative;
	height: 192px;
	overflow: hidden;
}

.bl-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s;
}

.bl-card:hover .bl-card__img img {
	transform: scale(1.05);
}

.bl-card__body {
	padding: 20px;
}

.bl-card__title {
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--heading);
	line-height: 1.4;
	margin-bottom: 8px;
	transition: color .15s;
}

.bl-card:hover .bl-card__title {
	color: var(--primary);
}

.bl-card__excerpt {
	font-size: .875rem;
	color: var(--muted);
	line-height: 1.5;
	margin-bottom: 16px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.bl-card__meta {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: .75rem;
	color: var(--muted-light);
}

.bl-card__meta svg {
	vertical-align: middle;
	margin-right: 3px;
}

.bl-card__date {
	margin-top: 10px;
	font-size: .75rem;
	color: var(--muted-light);
}

/* Pagination */
.bl-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.bl-page-btn--nav {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	background: var(--surface);
	border-radius: 8px;
	font-size: .875rem;
	color: var(--text);
	box-shadow: 0 1px 2px rgba(0, 0, 0, .06);
	transition: background .15s;
	text-decoration: none;
}

.bl-page-btn--nav:hover {
	background: var(--gray-100);
	text-decoration: none;
	color: var(--text);
}

.bl-page-btn--disabled {
	background: var(--gray-100);
	color: var(--muted-light);
	pointer-events: none;
}

.bl-page-numbers {
	display: flex;
	gap: 6px;
}

.bl-page-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: var(--surface);
	border-radius: 8px;
	font-size: .875rem;
	color: var(--text);
	box-shadow: 0 1px 2px rgba(0, 0, 0, .06);
	transition: background .15s, color .15s;
	text-decoration: none;
}

.bl-page-num:hover {
	background: var(--gray-100);
	text-decoration: none;
	color: var(--text);
}

.bl-page-num--active {
	background: var(--primary);
	color: #fff;
}

/* Empty state */
.bl-empty {
	background: var(--surface);
	border-radius: 8px;
	padding: 64px 24px;
	text-align: center;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
}

.bl-empty__icon {
	width: 64px;
	height: 64px;
	background: var(--gray-100);
	border-radius: 9999px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 16px;
	color: var(--muted-light);
}

.bl-empty__title {
	font-size: 1.25rem;
	font-weight: 600;
	margin-bottom: 8px;
}

.bl-empty__text {
	color: var(--muted);
	margin-bottom: 24px;
}

/* ── Listing (home.php / archive.php) ── */
.listing-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	padding-bottom: 48px;
}

@media (min-width: 1024px) {
	.listing-layout {
		grid-template-columns: 1fr 1fr 1fr;
	}

	.listing-main {
		grid-column: span 2;
	}

	.listing-aside {
		grid-column: span 1;
	}
}

.listing-header {
	background: var(--surface);
	border-radius: 8px;
	padding: 20px 24px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
	margin-bottom: 20px;
}

.listing-header__title {
	font-size: 1.75rem;
	font-weight: 700;
}

.listing-header__desc {
	margin-top: 6px;
	font-size: .9rem;
	color: var(--muted);
}

.listing-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

@media (min-width: 640px) {
	.listing-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.listing-card {
	display: block;
	background: var(--surface);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
	transition: box-shadow .2s;
	color: var(--text);
	text-decoration: none;
}

.listing-card:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
	color: var(--text);
	text-decoration: none;
}

.listing-card__img {
	position: relative;
	height: 180px;
	overflow: hidden;
}

.listing-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s;
}

.listing-card:hover .listing-card__img img {
	transform: scale(1.04);
}

.listing-card__body {
	padding: 16px;
}

.listing-card__title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--heading);
	line-height: 1.4;
	margin-bottom: 6px;
	transition: color .15s;
}

.listing-card:hover .listing-card__title {
	color: var(--primary);
}

.listing-card__excerpt {
	font-size: .8125rem;
	color: var(--muted);
	line-height: 1.5;
	margin-bottom: 10px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.listing-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	font-size: .75rem;
	color: var(--muted);
}

.listing-card__meta svg {
	vertical-align: middle;
	margin-right: 3px;
}

.no-results-box {
	background: var(--surface);
	border-radius: 8px;
	padding: 48px 24px;
	text-align: center;
	color: var(--muted);
	box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
}

/* ── Banners ── */
.fio-banner {
	overflow: hidden;
	position: sticky;
	top: 96px;
	z-index: 10;
	max-width: 100%;
	box-sizing: border-box;
}

.fio-banner__img {
	width: 100%;
	max-width: 100%;
	height: auto;
	display: block;
	border-radius: 6px;
	z-index: 10;
}

.fio-banner__video-wrap {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
	border-radius: 6px;
	z-index: 10;
	max-width: 100%;
}

.fio-banner__video-wrap iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.fio-banner__video-plain {
	width: 100%;
	max-width: 100%;
	border-radius: 6px;
	display: block;
	z-index: 10;
}

/* ── Footer ── */
.site-footer {
	background: var(--gray-900);
	color: #fff;
	margin-top: 48px;
}

.footer-main {
	padding: 48px 0 32px;
}

.footer-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}

@media (min-width: 768px) {
	.footer-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.footer-logo {
	height: 40px;
	width: auto;
	display: block;
	filter: brightness(0) invert(1);
	margin-bottom: 16px;
}

.footer-brand__icon {
	width: 40px;
	height: 40px;
	background: var(--primary);
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 12px;
	overflow: hidden;
}

.footer-brand__icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 8px;
}

.footer-brand__name {
	font-size: 1.25rem;
	font-weight: 600;
	color: #fff;
}

.footer-brand__desc {
	margin-top: 8px;
	font-size: 0.875rem;
	color: var(--muted-light);
}

.footer-bottom__cnpj {
	margin-top: 4px;
	font-size: 0.875rem;
	color: var(--muted-light);
}

.footer-col__title {
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #fff;
	margin-bottom: 16px;
}

.footer-col ul {
	list-style: none;
}

.footer-col li {
	margin-bottom: 8px;
}

.footer-col a {
	font-size: 0.875rem;
	color: var(--muted-light);
	transition: color .15s;
}

.footer-col a:hover {
	color: #fff;
	text-decoration: none;
}

.footer-social {
	display: flex;
	gap: 12px;
}

.footer-social__btn {
	width: 40px;
	height: 40px;
	background: var(--gray-800);
	border-radius: 9999px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	transition: background .15s;
}

.footer-social__btn:hover {
	background: var(--primary);
	text-decoration: none;
}

.footer-social__btn svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

.footer-bottom {
	border-top: 1px solid #374151;
	padding: 24px 0;
	text-align: center;
	font-size: 0.875rem;
	color: var(--muted-light);
}

.footer-bottom p+p {
	margin-top: 4px;
}