/*
Theme Name: Ninho
Theme URI: https://lawngreen-squirrel-698978.hostingersite.com
Author: gustavoo.me
Author URI: https://gustavoo.me/
Description: Revista digital da maternidade — tema editorial sereno com tipografia serifada, integração com Post Views Counter e FluentCRM.
Version: 1.0.1
Requires at least: 6.0
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: ninho
Tags: blog, news, custom-menu, featured-images, translation-ready
*/

/* ==========================================================================
   Tokens
   ========================================================================== */
:root {
	--c-accent: #C88A88;
	--c-accent-dark: #b57876;
	--c-ink: #222;
	--c-body: #444;
	--c-text: #555;
	--c-text-2: #666;
	--c-muted: #888;
	--c-faint: #aaa;
	--c-ghost: #ccc;
	--c-line: #ECECEC;
	--c-cream: #FAF8F6;
	--c-beige: #F4EFEA;
	--c-sand: #E4D8CF;
	--c-partner: #c9c1b8;
	--font-display: 'Playfair Display', Georgia, serif;
	--font-serif: 'Cormorant Garamond', Georgia, serif;
	--font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	--wrap: 90rem;
	--header-h: 112px;
}

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

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.6;
	color: var(--c-ink);
	background: #fff;
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; transition: color .2s; }

h1, h2, h3, h4, h5 { margin: 0; font-weight: 500; }

p { margin: 0; }

ul, ol { margin: 0; padding: 0; list-style: none; }

button {
	font-family: inherit;
	cursor: pointer;
	border: 0;
	background: none;
	padding: 0;
	color: inherit;
}

input, textarea, select { font-family: inherit; font-size: inherit; color: inherit; }

svg { display: block; flex-shrink: 0; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	border: 0;
}

.font-display { font-family: var(--font-display); }
.font-serif-alt { font-family: var(--font-serif); }

.wrap {
	max-width: var(--wrap);
	margin-inline: auto;
	padding-inline: 1.25rem;
}
.wrap--narrow { max-width: 80rem; }
.wrap--tight { max-width: 72rem; }

@media (min-width: 1024px) {
	.wrap { padding-inline: 2.5rem; }
}

.kicker {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .22em;
	color: var(--c-accent);
	display: flex;
	align-items: center;
	gap: .5rem;
}

.btn-dark {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	border-radius: 9999px;
	background: var(--c-ink);
	color: #fff;
	padding: .75rem 1.75rem;
	font-size: 14px;
	transition: background .2s;
}
.btn-dark:hover { background: var(--c-accent); color: #fff; }

/* Reveal on scroll */
.reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity .6s ease, transform .6s ease;
}
.reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.reveal { opacity: 1; transform: none; transition: none; }
}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: #fff;
	border-bottom: 1px solid transparent;
	transition: all .3s;
}
/* Fica abaixo da barra de admin do WordPress (#wpadminbar) em vez de por trás dela. */
body.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
	body.admin-bar .site-header { top: 46px; }
}
.site-header.is-scrolled {
	background: rgba(255, 255, 255, .95);
	backdrop-filter: blur(8px);
	border-bottom-color: var(--c-line);
	box-shadow: 0 2px 20px rgba(0, 0, 0, .03);
}

.header-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-block: 1rem;
}

.menu-toggle { color: var(--c-ink); }
@media (min-width: 1024px) {
	.menu-toggle { display: none; }
}

.brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	line-height: 1;
	margin-inline: auto;
}
@media (min-width: 1024px) {
	.brand { margin-inline: 0; }
}
.brand-name {
	font-family: var(--font-display);
	font-size: 1.5rem;
	letter-spacing: -.01em;
	color: var(--c-ink);
	font-weight: 500;
}
.brand-tag {
	font-size: 9px;
	text-transform: uppercase;
	letter-spacing: .35em;
	color: var(--c-accent);
	margin-top: .35rem;
}
@media (min-width: 1024px) {
	.brand-name { font-size: 1.875rem; }
	.brand-tag { font-size: 10px; }
}

.brand-mark { display: inline-flex; }
.brand-logo-img { height: var(--logo-h, 40px); width: auto; }
.drawer-head .brand-logo-img { height: calc(var(--logo-h, 40px) * 0.7); }

.header-actions {
	display: flex;
	align-items: center;
	gap: 1rem;
	color: var(--c-text);
}
.header-actions a, .header-actions button { transition: color .2s; }
.header-actions a:hover, .header-actions button:hover { color: var(--c-accent); }
.header-actions .action-mail { display: none; }
@media (min-width: 640px) {
	.header-actions .action-mail { display: block; }
}

.header-search { padding-bottom: 1rem; }
.header-search--mobile { display: none; }
.header-search--mobile.is-open { display: block; }
.header-search--desktop { display: none; }

.search-field {
	display: flex;
	align-items: center;
	gap: .5rem;
	border: 1px solid var(--c-line);
	border-radius: 9999px;
	padding: .625rem 1.25rem;
	background: var(--c-cream);
}
.search-field svg { color: #999; flex-shrink: 0; }
.search-field input {
	width: 100%;
	background: transparent;
	border: 0;
	outline: none;
	font-size: 14px;
	color: #333;
}
.search-field input::placeholder { color: var(--c-faint); }
.search-submit {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	color: var(--c-text);
	transition: color .2s;
}
.search-submit:hover { color: var(--c-accent); }

/* Desktop: campo de busca inline, expandindo à esquerda do ícone (sem barra embaixo). */
@media (min-width: 1024px) {
	.header-search--mobile { display: none !important; }
	.header-search--desktop {
		display: flex;
		align-items: center;
		flex-shrink: 0;
		max-width: 0;
		padding-bottom: 0;
		overflow: hidden;
		transition: max-width .3s ease;
	}
	.header-search--desktop.is-open { max-width: 260px; }
	.header-search--desktop form,
	.header-search--desktop .search-field { width: 260px; white-space: nowrap; }
	.header-search--desktop .search-field { padding: .5rem .875rem; }
}

.header-nav {
	display: none;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 1.5rem;
	padding-bottom: .75rem;
}
@media (min-width: 1024px) {
	.header-nav { display: flex; }
}
.header-nav a {
	color: var(--c-text);
	text-transform: uppercase;
	font-size: 11px;
	letter-spacing: .12em;
}
.header-nav a:hover,
.header-nav .current-menu-item > a,
.header-nav .current-cat > a { color: var(--c-accent); }
.header-nav ul { display: contents; }
.header-nav li { display: inline-flex; }

/* Mobile drawer */
.drawer { position: fixed; inset: 0; z-index: 60; display: none; }
.drawer.is-open { display: block; }
.drawer-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, .3); }
.drawer-panel {
	position: absolute;
	left: 0; top: 0;
	height: 100%;
	width: 82%;
	max-width: 24rem;
	background: #fff;
	padding: 1.5rem;
	overflow-y: auto;
	transform: translateX(-100%);
	animation: drawer-in .3s forwards;
}
@keyframes drawer-in { to { transform: none; } }
.drawer-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 2rem;
}
.drawer-head .brand-name { font-size: 1.5rem; }
.drawer .search-field { margin-bottom: 1.5rem; padding: .625rem 1rem; }
.drawer-nav { display: flex; flex-direction: column; }
.drawer-nav ul { display: contents; }
.drawer-nav a {
	display: block;
	padding: .75rem 0;
	border-bottom: 1px solid var(--c-beige);
	color: #333;
	font-size: 15px;
}

@media (min-width: 1024px) {
	.drawer { display: none !important; }
}

/* ==========================================================================
   Home — hero (header + hero = 100vh)
   ========================================================================== */
.home-hero { padding-top: 2rem; }

.home-hero .hero-grid {
	display: grid;
	gap: 2.5rem;
}

.hero-main { display: flex; flex-direction: column; }
.hero-media {
	display: block;
	overflow: hidden;
	border-radius: 1rem;
	background: var(--c-beige);
}
.hero-media img {
	width: 100%;
	height: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform .7s;
}
.hero-main:hover .hero-media img { transform: scale(1.03); }

.hero-body { margin-top: 1.5rem; max-width: 42rem; }
.hero-body .kicker { margin-bottom: .75rem; }
.hero-title {
	font-family: var(--font-display);
	font-size: clamp(2rem, 4.5vw, 3.4rem);
	line-height: 1.05;
	color: var(--c-ink);
}
.hero-title a:hover { color: var(--c-accent); }
.hero-excerpt {
	margin-top: 1.1rem;
	color: var(--c-text);
	font-size: 1.125rem;
	line-height: 1.6;
}
.hero-body .btn-dark { margin-top: 1.35rem; }

.hero-side { display: flex; flex-direction: column; gap: 1.5rem; }
.hero-side-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .22em;
	color: var(--c-muted);
	border-bottom: 1px solid var(--c-line);
	padding-bottom: .75rem;
}

.mini-card { display: flex; gap: 1rem; align-items: flex-start; }
.mini-card-thumb {
	flex-shrink: 0;
	overflow: hidden;
	border-radius: .5rem;
	background: var(--c-beige);
}
.mini-card-thumb img {
	height: 6rem;
	width: 6rem;
	object-fit: cover;
	transition: transform .5s;
}
.mini-card:hover .mini-card-thumb img { transform: scale(1.05); }
.mini-card .cat {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: var(--c-accent);
	margin-bottom: .25rem;
	display: block;
}
.mini-card h3 {
	font-family: var(--font-display);
	font-size: 1.125rem;
	line-height: 1.375;
	color: var(--c-ink);
}
.mini-card:hover h3 { color: var(--c-accent); }
.mini-card .meta {
	margin-top: .375rem;
	font-size: 12px;
	color: var(--c-muted);
	display: flex;
	align-items: center;
	gap: .5rem;
}

/* Desktop: header + hero fill the viewport exactly */
@media (min-width: 1024px) {
	.home-hero {
		height: calc(100svh - var(--header-h));
		padding-block: 2rem 2.5rem;
	}
	.home-hero .wrap, .home-hero .hero-grid { height: 100%; }
	.home-hero .hero-grid { grid-template-columns: 2fr 1fr; min-height: 0; }
	.hero-main { min-height: 0; }
	.hero-media { flex: 1; min-height: 0; }
	.hero-media img { aspect-ratio: auto; }
	.hero-body { margin-top: 1.25rem; }
	.hero-side { min-height: 0; overflow: hidden; }
}

/* ==========================================================================
   Sections
   ========================================================================== */
.section { margin-top: 6rem; }

.section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 2rem;
}
.section-head .kicker { margin-bottom: .5rem; }
.section-title {
	font-family: var(--font-display);
	font-size: 1.875rem;
	color: var(--c-ink);
}
@media (min-width: 1024px) {
	.section-title { font-size: 2.25rem; }
}
.section-action {
	display: none;
	align-items: center;
	gap: .375rem;
	font-size: 14px;
	color: var(--c-text);
}
.section-action:hover { color: var(--c-accent); }
@media (min-width: 640px) {
	.section-action { display: inline-flex; }
}

/* Card grids */
.grid-cards {
	display: grid;
	gap: 2rem 2rem;
}
@media (min-width: 640px) {
	.grid-cards { grid-template-columns: repeat(2, 1fr); gap: 3rem 2rem; }
}
@media (min-width: 1024px) {
	.grid-cards { grid-template-columns: repeat(3, 1fr); }
}

/* Article card */
.card { position: relative; }
.card-media {
	display: block;
	overflow: hidden;
	border-radius: .75rem;
	background: var(--c-beige);
}
.card-media img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform .7s;
}
.card:hover .card-media img { transform: scale(1.04); }
.card-body { padding-top: 1rem; }
.card-meta-top {
	display: flex;
	align-items: center;
	gap: .75rem;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--c-accent);
	margin-bottom: .5rem;
}
.card-meta-top .read {
	display: flex;
	align-items: center;
	gap: .25rem;
	color: var(--c-faint);
	letter-spacing: normal;
	text-transform: none;
}
.card h3 {
	font-family: var(--font-display);
	font-size: 1.25rem;
	line-height: 1.375;
	color: var(--c-ink);
	transition: color .2s;
}
.card:hover h3 { color: var(--c-accent); }
.card-excerpt {
	margin-top: .5rem;
	font-size: 14px;
	line-height: 1.6;
	color: var(--c-text);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.card-meta-bottom {
	margin-top: .75rem;
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: 12px;
	color: var(--c-muted);
}
.card-meta-bottom img { height: 1.5rem; width: 1.5rem; border-radius: 9999px; object-fit: cover; }
.card-meta-bottom .dot { color: var(--c-ghost); }

/* Placeholder for posts without image */
.thumb-placeholder {
	width: 100%;
	height: 100%;
	background: var(--c-beige);
	display: grid;
	place-items: center;
	color: var(--c-sand);
	font-family: var(--font-display);
	font-size: 2rem;
}
.card-media .thumb-placeholder { aspect-ratio: 3 / 2; }

/* Ad slot */
.ad-slot { margin-top: 4rem; }
.ad-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border-radius: .75rem;
	border: 1px dashed var(--c-sand);
	background: var(--c-cream);
	text-align: center;
	padding: 2.5rem 1rem;
}
.ad-placeholder .ad-label {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .2em;
	color: #bbb;
}
.ad-placeholder .ad-note { font-size: 12px; color: var(--c-ghost); margin-top: .25rem; }

/* Category highlight sections */
.cat-sections { display: flex; flex-direction: column; gap: 4rem; }
.cat-section-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid var(--c-line);
	padding-bottom: .75rem;
	margin-bottom: 1.5rem;
}
.cat-section-head h2 {
	font-family: var(--font-display);
	font-size: 1.5rem;
	color: var(--c-ink);
}
@media (min-width: 1024px) {
	.cat-section-head h2 { font-size: 1.875rem; }
}
.cat-section-head .more {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--c-accent);
}
.cat-section-head .more:hover { text-decoration: underline; }
.grid-4 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2rem 1.5rem;
}
@media (min-width: 1024px) {
	.grid-4 { grid-template-columns: repeat(4, 1fr); }
}
.grid-4 .card h3 { font-size: 1.05rem; }
.grid-4 .card-excerpt { display: none; }

/* Most read */
.popular-section {
	background: var(--c-cream);
	margin-top: 6rem;
	padding-block: 5rem;
}
.popular-grid { display: grid; gap: 2rem; }
@media (min-width: 768px) {
	/* numbered top-to-bottom on the left column, then the right column */
	.popular-grid {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: repeat(var(--rows, 3), auto);
		grid-auto-flow: column;
		gap: 2rem 3rem;
	}
}
.popular-item { display: flex; align-items: center; gap: 1.25rem; }
.popular-item .num {
	font-family: var(--font-display);
	font-size: 2.25rem;
	color: var(--c-sand);
	width: 2.5rem;
	flex-shrink: 0;
}
.popular-item .thumb {
	flex-shrink: 0;
	overflow: hidden;
	border-radius: .5rem;
	background: var(--c-beige);
}
.popular-item .thumb img {
	height: 5rem;
	width: 5rem;
	object-fit: cover;
	transition: transform .5s;
}
.popular-item:hover .thumb img { transform: scale(1.05); }
.popular-item .cat {
	display: block;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: var(--c-accent);
	margin-bottom: .25rem;
}
.popular-item h3 {
	font-family: var(--font-display);
	font-size: 1rem;
	line-height: 1.375;
	color: var(--c-ink);
}
.popular-item:hover h3 { color: var(--c-accent); }

/* Editor's pick */
.editor-pick { margin-top: 6rem; }
.editor-pick .pick-grid {
	display: grid;
	gap: 2.5rem;
	align-items: center;
}
@media (min-width: 1024px) {
	.editor-pick .pick-grid { grid-template-columns: 1fr 1fr; }
}
.pick-media {
	overflow: hidden;
	border-radius: 1rem;
	background: var(--c-beige);
}
.pick-media img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}
.pick-body .kicker { margin-bottom: 1rem; }
.pick-title {
	font-family: var(--font-display);
	font-size: 1.875rem;
	line-height: 1.1;
	color: var(--c-ink);
}
@media (min-width: 1024px) {
	.pick-title { font-size: 3rem; }
}
.pick-title a:hover { color: var(--c-accent); }
.pick-excerpt {
	margin-top: 1.5rem;
	color: var(--c-text);
	font-size: 1.125rem;
	line-height: 1.6;
}
.pick-author {
	margin-top: 1.5rem;
	display: flex;
	align-items: center;
	gap: .75rem;
}
.pick-author img { height: 2.75rem; width: 2.75rem; border-radius: 9999px; object-fit: cover; }
.pick-author .name { color: var(--c-ink); font-weight: 500; font-size: 14px; }
.pick-author .sub { color: var(--c-muted); font-size: 12px; }
.pick-link {
	margin-top: 1.75rem;
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font-size: 14px;
	color: var(--c-ink);
	border-bottom: 1px solid var(--c-accent);
	padding-bottom: .25rem;
}
.pick-link:hover { color: var(--c-accent); }

/* ==========================================================================
   Newsletter
   ========================================================================== */
.newsletter-section { margin-block: 6rem; }
/* Compensa o header fixo ao pular para #newsletter (link do envelope no header). */
#newsletter { scroll-margin-top: calc(var(--header-h, 112px) + 1.5rem); }
body.admin-bar #newsletter { scroll-margin-top: calc(var(--header-h, 112px) + 1.5rem + 32px); }
@media screen and (max-width: 782px) {
	body.admin-bar #newsletter { scroll-margin-top: calc(var(--header-h, 112px) + 1.5rem + 46px); }
}
.newsletter-box {
	position: relative;
	overflow: hidden;
	border-radius: 1.5rem;
	background: var(--c-ink);
	padding: 4rem 1.5rem;
	text-align: center;
}
@media (min-width: 1024px) {
	.newsletter-box { padding-block: 6rem; }
}
.newsletter-box::before {
	content: "";
	position: absolute;
	top: -6rem; right: -6rem;
	height: 16rem; width: 16rem;
	border-radius: 9999px;
	background: rgba(200, 138, 136, .2);
	filter: blur(48px);
}
.newsletter-inner { position: relative; margin-inline: auto; max-width: 36rem; }
.newsletter-inner .kicker { justify-content: center; letter-spacing: .24em; margin-bottom: 1rem; }
.newsletter-title {
	font-family: var(--font-display);
	font-size: 1.875rem;
	color: #fff;
	line-height: 1.25;
}
@media (min-width: 1024px) {
	.newsletter-title { font-size: 3rem; }
}
.newsletter-desc {
	margin-top: 1.25rem;
	color: #bdb8b2;
	line-height: 1.6;
}
.newsletter-form {
	margin-top: 2rem;
	display: flex;
	flex-direction: column;
	gap: .75rem;
	max-width: 28rem;
	margin-inline: auto;
}
@media (min-width: 640px) {
	.newsletter-form { flex-direction: row; }
}
.newsletter-form input[type="email"] {
	flex: 1;
	border-radius: 9999px;
	background: rgba(255, 255, 255, .95);
	padding: .875rem 1.25rem;
	font-size: 14px;
	color: var(--c-ink);
	border: 0;
	outline: none;
}
.newsletter-form button {
	border-radius: 9999px;
	background: var(--c-accent);
	padding: .875rem 1.75rem;
	font-size: 14px;
	font-weight: 500;
	color: #fff;
	transition: background .2s;
}
.newsletter-form button:hover { background: var(--c-accent-dark); }
.newsletter-privacy { margin-top: 1rem; font-size: 12px; color: #8a857f; }
.newsletter-success {
	margin-top: 2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	color: var(--c-accent);
}

/* Compact newsletter (sidebar) */
.newsletter-compact {
	border-radius: .75rem;
	background: var(--c-beige);
	padding: 1.5rem;
}
.newsletter-compact h4 {
	font-family: var(--font-display);
	font-size: 1.25rem;
	color: var(--c-ink);
	margin-bottom: .25rem;
}
.newsletter-compact .desc { font-size: 12px; color: var(--c-text-2); margin-bottom: 1rem; }
.newsletter-compact form { display: flex; flex-direction: column; gap: .5rem; }
.newsletter-compact input[type="email"] {
	width: 100%;
	border-radius: 9999px;
	border: 1px solid var(--c-sand);
	background: #fff;
	padding: .625rem 1rem;
	font-size: 14px;
	outline: none;
}
.newsletter-compact input[type="email"]:focus { border-color: var(--c-accent); }
.newsletter-compact button {
	width: 100%;
	border-radius: 9999px;
	background: var(--c-ink);
	color: #fff;
	font-size: 14px;
	padding: .625rem;
	transition: background .2s;
}
.newsletter-compact button:hover { background: var(--c-accent); }
.newsletter-compact .newsletter-success {
	margin-top: 0;
	justify-content: flex-start;
	font-size: 14px;
}

/* ==========================================================================
   Testimonials
   ========================================================================== */
.testimonials-grid { display: grid; gap: 1.5rem; }
@media (min-width: 768px) {
	.testimonials-grid { grid-template-columns: repeat(3, 1fr); }
}
.testimonial {
	border-radius: 1rem;
	border: 1px solid var(--c-line);
	padding: 1.75rem;
}
.testimonial blockquote {
	margin: 0;
	font-family: var(--font-serif);
	font-size: 1.25rem;
	line-height: 1.6;
	color: #333;
	font-style: italic;
}
.testimonial-author {
	margin-top: 1.25rem;
	display: flex;
	align-items: center;
	gap: .75rem;
}
.testimonial-author img,
.testimonial-author .avatar-fallback {
	height: 2.25rem;
	width: 2.25rem;
	border-radius: 9999px;
	object-fit: cover;
}
.testimonial-author .avatar-fallback {
	background: var(--c-beige);
	color: var(--c-accent);
	display: grid;
	place-items: center;
	font-family: var(--font-display);
	font-size: .9rem;
}
.testimonial-author span { font-size: 14px; color: var(--c-text); }

/* ==========================================================================
   Partners
   ========================================================================== */
.partners-section { margin-top: 6rem; }
.partners-label {
	text-align: center;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .22em;
	color: var(--c-muted);
	margin-bottom: 2rem;
}
.partners-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1.5rem 3rem;
}
.partners-row .partner-name {
	font-family: var(--font-serif);
	font-size: 1.5rem;
	color: var(--c-partner);
	transition: color .2s;
	cursor: default;
}
.partners-row .partner-name:hover { color: var(--c-accent); }
.partners-row img {
	max-height: 6rem;
	width: auto;
	opacity: .7;
	filter: grayscale(1);
	transition: opacity .2s, filter .2s;
}
.partners-row a:hover img, .partners-row img:hover { opacity: 1; filter: none; }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer {
	background: var(--c-cream);
	border-top: 1px solid var(--c-line);
	margin-top: 6rem;
}
.footer-inner { padding-block: 4rem; }
.footer-grid { display: grid; gap: 3rem; }
@media (min-width: 768px) {
	.footer-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.footer-grid { grid-template-columns: repeat(4, 1fr); }
}
.footer-brand .brand-name { font-size: 1.875rem; }
.footer-brand p {
	margin-top: 1rem;
	font-size: 14px;
	line-height: 1.6;
	color: var(--c-text);
	max-width: 20rem;
}
.footer-social {
	display: flex;
	gap: 1rem;
	margin-top: 1.5rem;
	color: var(--c-text);
}
.footer-social a:hover { color: var(--c-accent); }
.footer-col h4 {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .18em;
	color: var(--c-ink);
	margin-bottom: 1rem;
	font-weight: 400;
}
.footer-col ul, .footer-col ul li { display: block; }
.footer-col li + li { margin-top: .625rem; }
.footer-col a { font-size: 14px; color: var(--c-text); }
.footer-col a:hover { color: var(--c-accent); }
.footer-bottom {
	margin-top: 3.5rem;
	padding-top: 2rem;
	border-top: 1px solid var(--c-line);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	font-size: 12px;
	color: var(--c-muted);
	text-align: center;
}
@media (min-width: 640px) {
	.footer-bottom { flex-direction: row; text-align: left; }
}

/* ==========================================================================
   Breadcrumb
   ========================================================================== */
.breadcrumb {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .375rem;
	font-size: 12px;
	color: var(--c-muted);
	margin-bottom: 1.5rem;
}
.breadcrumb .sep { color: var(--c-ghost); display: flex; }
.breadcrumb a:hover { color: var(--c-accent); }
.breadcrumb .current { color: var(--c-text); }

/* ==========================================================================
   Category archive
   ========================================================================== */
.cat-hero { position: relative; }
.cat-hero-media {
	height: 16rem;
	overflow: hidden;
	background: var(--c-beige);
	position: relative;
}
@media (min-width: 1024px) {
	.cat-hero-media { height: 20rem; }
}
.cat-hero-media img { height: 100%; width: 100%; object-fit: cover; }
.cat-hero-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .3);
}
.cat-hero-body {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: #fff;
	padding-inline: 1.25rem;
	z-index: 1;
}
.cat-hero-body h1 { font-family: var(--font-display); font-size: 2.25rem; }
@media (min-width: 1024px) {
	.cat-hero-body h1 { font-size: 3.75rem; }
}
.cat-hero-body p { margin-top: .75rem; max-width: 36rem; color: rgba(255, 255, 255, .9); }

.archive-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid var(--c-line);
	padding-bottom: 1rem;
	margin-bottom: 2.5rem;
	gap: 1rem;
	flex-wrap: wrap;
}
.archive-count { font-size: 14px; color: var(--c-muted); }
.archive-sort { display: flex; align-items: center; gap: .5rem; font-size: 14px; }
.archive-sort .label { color: var(--c-muted); }
.archive-sort a {
	border-radius: 9999px;
	padding: .25rem .75rem;
	color: var(--c-text);
}
.archive-sort a:hover { color: var(--c-accent); }
.archive-sort a.is-active { background: var(--c-ink); color: #fff; }

.archive-empty { padding-block: 5rem; text-align: center; color: var(--c-muted); }

.pagination-row {
	margin-top: 3.5rem;
	display: flex;
	justify-content: center;
	gap: .5rem;
	flex-wrap: wrap;
}
.pagination-row .page-numbers {
	height: 2.25rem;
	min-width: 2.25rem;
	padding-inline: .5rem;
	border-radius: 9999px;
	font-size: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--c-line);
	color: var(--c-text);
}
.pagination-row .page-numbers:hover { border-color: var(--c-accent); }
.pagination-row .page-numbers.current {
	background: var(--c-ink);
	color: #fff;
	border-color: var(--c-ink);
}

.cat-pills {
	margin-top: 4rem;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	justify-content: center;
}
.cat-pills a {
	border-radius: 9999px;
	padding: .375rem 1rem;
	font-size: 14px;
	border: 1px solid var(--c-line);
	color: var(--c-text);
}
.cat-pills a:hover { border-color: var(--c-accent); color: var(--c-accent); }
.cat-pills a.is-active {
	background: var(--c-accent);
	color: #fff;
	border-color: var(--c-accent);
}

/* ==========================================================================
   Single article
   ========================================================================== */
.article-header {
	max-width: 48rem;
	margin-inline: auto;
	text-align: center;
}
.article-header .cat-link {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .22em;
	color: var(--c-accent);
}
.article-header h1 {
	font-family: var(--font-display);
	font-size: 2.25rem;
	line-height: 1.1;
	color: var(--c-ink);
	margin-top: 1rem;
}
@media (min-width: 1024px) {
	.article-header h1 { font-size: 3rem; }
}
.article-header .excerpt {
	margin-top: 1.25rem;
	font-size: 1.125rem;
	color: var(--c-text);
	line-height: 1.6;
}
.article-meta {
	margin-top: 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	font-size: 14px;
	color: var(--c-muted);
	flex-wrap: wrap;
}
.article-meta img { height: 2.25rem; width: 2.25rem; border-radius: 9999px; object-fit: cover; }
.article-meta .author-link { color: var(--c-ink); }
.article-meta .author-link:hover { color: var(--c-accent); }
.article-meta .dot { color: var(--c-ghost); }
.article-meta .read { display: flex; align-items: center; gap: .25rem; }

.article-hero {
	margin-top: 2.5rem;
	overflow: hidden;
	border-radius: 1rem;
	background: var(--c-beige);
}
.article-hero img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.article-layout {
	margin-top: 3.5rem;
	display: grid;
	gap: 3rem;
}
@media (min-width: 1024px) {
	.article-layout { grid-template-columns: 1fr 20rem; }
}

/* TOC mobile */
.toc-mobile {
	margin-bottom: 2rem;
	border-radius: .75rem;
	background: var(--c-cream);
	padding: 1.25rem;
}
@media (min-width: 1024px) {
	.toc-mobile { display: none; }
}
.toc-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .16em;
	color: var(--c-muted);
	margin-bottom: .75rem;
}
.toc-mobile ul li + li { margin-top: .375rem; }
.toc-mobile a { font-size: 14px; color: var(--c-accent); }

.article-body { max-width: 42rem; }
.article-body p {
	margin-bottom: 1.5rem;
	line-height: 1.9;
	color: var(--c-body);
	font-size: 1.075rem;
}
.article-body h2 {
	font-family: var(--font-display);
	font-size: 1.75rem;
	margin: 2.5rem 0 1rem;
	color: var(--c-ink);
	scroll-margin-top: 6rem;
}
.article-body h3 {
	font-family: var(--font-display);
	font-size: 1.35rem;
	margin: 2rem 0 .75rem;
	color: var(--c-ink);
	scroll-margin-top: 6rem;
}
.article-body a { color: var(--c-accent); text-decoration: underline; text-underline-offset: 3px; }
.article-body img { border-radius: .75rem; margin-block: 1.5rem; }
.article-body ul, .article-body ol {
	margin: 0 0 1.5rem 1.25rem;
	color: var(--c-body);
	line-height: 1.9;
	font-size: 1.075rem;
}
.article-body ul { list-style: disc; }
.article-body ol { list-style: decimal; }
.article-body blockquote {
	margin: 2rem 0;
	padding-left: 1.5rem;
	border-left: 2px solid var(--c-accent);
	font-family: var(--font-serif);
	font-size: 1.35rem;
	font-style: italic;
	color: #333;
}

/* Share */
.article-share {
	margin-top: 2.5rem;
	display: flex;
	align-items: center;
	gap: .75rem;
	border-block: 1px solid var(--c-line);
	padding-block: 1.25rem;
	flex-wrap: wrap;
}
.article-share .share-label {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: var(--c-muted);
	margin-right: .25rem;
}
.share-btn {
	height: 2.25rem;
	width: 2.25rem;
	border-radius: 9999px;
	border: 1px solid var(--c-line);
	display: grid;
	place-items: center;
	color: var(--c-text);
	transition: all .2s;
}
.share-btn:hover { border-color: var(--c-accent); color: var(--c-accent); }

/* Author box */
.author-box {
	margin-top: 2.5rem;
	display: flex;
	gap: 1.25rem;
	border-radius: 1rem;
	background: var(--c-cream);
	padding: 1.75rem;
}
.author-box > img {
	height: 4rem;
	width: 4rem;
	border-radius: 9999px;
	object-fit: cover;
	flex-shrink: 0;
}
.author-box .role {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .16em;
	color: var(--c-accent);
}
.author-box .name {
	font-family: var(--font-display);
	font-size: 1.25rem;
	color: var(--c-ink);
	display: inline-block;
}
.author-box .name:hover { color: var(--c-accent); }
.author-box .bio {
	margin-top: .5rem;
	font-size: 14px;
	color: var(--c-text-2);
	line-height: 1.6;
}

/* Related */
.related-articles { margin-top: 3.5rem; }
.related-articles > h2, .comments-area > h2 {
	font-family: var(--font-display);
	font-size: 1.5rem;
	color: var(--c-ink);
	margin-bottom: 1.5rem;
}
.related-grid { display: grid; gap: 2rem; }
@media (min-width: 640px) {
	.related-grid { grid-template-columns: repeat(3, 1fr); }
}
.related-grid .card h3 { font-size: 1.05rem; }
.related-grid .card-excerpt, .related-grid .card-meta-bottom { display: none; }

/* Comments */
.comments-area { margin-top: 3.5rem; }
.comment-list li { margin-bottom: 1.5rem; }
.comment-item {
	border: 1px solid var(--c-line);
	border-radius: 1rem;
	padding: 1.25rem 1.5rem;
}
.comment-item .comment-head {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-bottom: .75rem;
}
.comment-item .comment-head img { border-radius: 9999px; }
.comment-item .comment-author { font-size: 14px; font-weight: 500; color: var(--c-ink); }
.comment-item .comment-date { font-size: 12px; color: var(--c-muted); }
.comment-item .comment-text { font-size: 14px; color: var(--c-text); line-height: 1.7; }
.comment-item .comment-text p { margin-bottom: .5rem; }
.comment-list .children { margin-top: 1.5rem; margin-left: 2rem; }

.comment-form-box {
	border: 1px solid var(--c-line);
	border-radius: 1rem;
	padding: 1.5rem;
}
.comment-form-box .comment-notes, .comment-form-box .logged-in-as { font-size: 12px; color: var(--c-muted); margin-bottom: .75rem; }
.comment-form-box textarea,
.comment-form-box input[type="text"],
.comment-form-box input[type="email"],
.comment-form-box input[type="url"] {
	width: 100%;
	border-radius: .5rem;
	border: 1px solid var(--c-line);
	background: var(--c-cream);
	padding: 1rem;
	font-size: 14px;
	outline: none;
	margin-bottom: .75rem;
}
.comment-form-box textarea:focus,
.comment-form-box input:focus { border-color: var(--c-accent); }
.comment-form-box .form-submit { margin: 0; }
.comment-form-box .submit {
	border-radius: 9999px;
	background: var(--c-ink);
	color: #fff;
	font-size: 14px;
	padding: .625rem 1.5rem;
	border: 0;
	cursor: pointer;
	transition: background .2s;
}
.comment-form-box .submit:hover { background: var(--c-accent); }
.comment-reply-link { font-size: 12px; color: var(--c-accent); }

/* Título do formulário: "Deixe um comentário" ou "Respondendo a Fulana" */
.comment-form-box .comment-reply-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: .75rem;
	margin: 0 0 1rem;
	font-size: 13px;
	font-weight: 500;
	color: var(--c-text);
}

/* Botão "Comentar no post" — cancela a resposta e volta ao comentário principal */
#cancel-comment-reply-link {
	display: inline-flex;
	align-items: center;
	gap: .375rem;
	font-size: 12px;
	color: var(--c-text);
	border: 1px solid var(--c-line);
	border-radius: 9999px;
	padding: .25rem .875rem .25rem .625rem;
	transition: all .2s;
}
#cancel-comment-reply-link:hover {
	border-color: var(--c-accent);
	color: var(--c-accent);
	background: var(--c-beige);
}
#cancel-comment-reply-link .icon-flip { display: inline-flex; transform: scaleX(-1); }

/* Sidebar */
.article-sidebar .sidebar-sticky { display: flex; flex-direction: column; gap: 2rem; }
@media (min-width: 1024px) {
	.article-sidebar .sidebar-sticky { position: sticky; top: 7rem; }
}
.sidebar-box {
	border-radius: .75rem;
	border: 1px solid var(--c-line);
	padding: 1.25rem;
}
.sidebar-box.toc-desktop { display: none; }
@media (min-width: 1024px) {
	.sidebar-box.toc-desktop { display: block; }
}
.sidebar-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .16em;
	color: var(--c-muted);
	margin-bottom: 1rem;
}
.toc-desktop ul li + li { margin-top: .5rem; }
.toc-desktop a { font-size: 14px; color: var(--c-text); }
.toc-desktop a:hover { color: var(--c-accent); }
.sidebar-popular { display: flex; flex-direction: column; gap: 1.25rem; }
.sidebar-popular .popular-item .num { display: none; }
.sidebar-cats { display: flex; flex-wrap: wrap; gap: .5rem; }
.sidebar-cats a {
	border-radius: 9999px;
	border: 1px solid var(--c-line);
	padding: .25rem .75rem;
	font-size: 12px;
	color: var(--c-text);
}
.sidebar-cats a:hover { border-color: var(--c-accent); color: var(--c-accent); }
.sidebar-cats a.is-active {
	background: var(--c-accent);
	color: #fff;
	border-color: var(--c-accent);
}

/* Widget de categorias no rodapé da página de categoria — visual do antigo .cat-pills */
.cat-pills-area { margin-top: 4rem; }
.cat-pills-area .widget-title { text-align: center; margin-bottom: 1.5rem; }
.cat-pills-area .sidebar-cats { justify-content: center; }
.cat-pills-area .sidebar-cats a { padding: .375rem 1rem; font-size: 14px; }

/* ==========================================================================
   Author page
   ========================================================================== */
.author-hero {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding-block: 2.5rem;
	border-bottom: 1px solid var(--c-line);
}
.author-hero img {
	height: 7rem;
	width: 7rem;
	border-radius: 9999px;
	object-fit: cover;
}
.author-hero .role {
	margin-top: 1.25rem;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .2em;
	color: var(--c-accent);
}
.author-hero h1 {
	font-family: var(--font-display);
	font-size: 2.25rem;
	color: var(--c-ink);
	margin-top: .5rem;
}
.author-hero .bio {
	margin-top: 1rem;
	max-width: 36rem;
	color: var(--c-text);
	line-height: 1.6;
}
.author-posts-title {
	font-family: var(--font-display);
	font-size: 1.5rem;
	color: var(--c-ink);
	margin: 3.5rem 0 2rem;
}

/* ==========================================================================
   Search / 404 / pages
   ========================================================================== */
.page-plain { padding-top: 3rem; }
.page-plain .page-title {
	font-family: var(--font-display);
	font-size: 2.25rem;
	color: var(--c-ink);
	margin-bottom: 1.5rem;
}
.search-hero-field { max-width: 36rem; }
.search-hero-field .search-field { padding: .75rem 1.25rem; }
.search-count { margin-top: 1.5rem; font-size: 14px; color: var(--c-muted); }
.search-results-grid { margin-top: 2.5rem; }

.error-404 {
	text-align: center;
	padding-block: 6rem;
}
.error-404 .code {
	font-family: var(--font-display);
	font-size: 6rem;
	color: var(--c-sand);
	line-height: 1;
}
.error-404 h1 {
	font-family: var(--font-display);
	font-size: 2rem;
	color: var(--c-ink);
	margin-top: 1rem;
}
.error-404 p { margin-top: 1rem; color: var(--c-text); }
.error-404 .btn-dark { margin-top: 2rem; }

/* ==========================================================================
   Contact
   ========================================================================== */
.contact-page {
	max-width: 42rem;
	margin-inline: auto;
	padding-top: 3rem;
	text-align: center;
}
.contact-page .kicker { justify-content: center; margin-bottom: .75rem; }
.contact-page h1 {
	font-family: var(--font-display);
	font-size: 2.25rem;
	color: var(--c-ink);
}
@media (min-width: 1024px) {
	.contact-page h1 { font-size: 3rem; }
}
.contact-page .lead { margin-top: 1rem; color: var(--c-text); line-height: 1.6; }
.contact-form { margin-top: 2.5rem; text-align: left; }

/* Formulário do Fluent Forms — estilizado para seguir o design do tema. */
.contact-form .ff-el-group { margin-bottom: 1.25rem; }
.contact-form .ff-el-input--label label {
	display: block;
	margin-bottom: .5rem;
	font-size: 13px;
	color: var(--c-text);
}
.contact-form .ff-el-form-control {
	width: 100%;
	border-radius: .5rem;
	border: 1px solid var(--c-line);
	background: var(--c-cream);
	padding: .75rem 1rem;
	font-size: 14px;
	font-family: inherit;
	color: var(--c-ink);
	outline: none;
	transition: border-color .2s;
}
.contact-form .ff-el-form-control:focus { border-color: var(--c-accent); }
.contact-form textarea.ff-el-form-control { resize: vertical; }
.contact-form .ff-el-is-error .ff-el-form-control { border-color: #dc2626; }
.contact-form .error.text-danger {
	display: block;
	margin-top: .375rem;
	font-size: 12px;
	color: #dc2626;
}
.contact-form .ff_submit_btn_wrapper { margin-bottom: 0; }
.contact-form .ff-btn-submit {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	border-radius: 9999px !important;
	background: var(--c-ink) !important;
	color: #fff !important;
	padding: .75rem 2rem !important;
	font-size: 14px;
	font-family: inherit;
	border: 0;
	cursor: pointer;
	transition: background .2s;
}
.contact-form .ff-btn-submit:hover { background: var(--c-accent) !important; }
.contact-form .ff-message-success {
	border-radius: .75rem;
	background: var(--c-beige);
	color: var(--c-ink);
	padding: 1.25rem 1.5rem;
	font-size: 14px;
}
.contact-alt { margin-top: 1.5rem; font-size: 14px; color: var(--c-muted); }
.contact-alt span { color: var(--c-accent); }
.contact-sent {
	margin-top: 2rem;
	color: var(--c-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
}

/* ==========================================================================
   Widgets (generic)
   ========================================================================== */
.widget-area .widget { margin-bottom: 1.5rem; }
.widget-area .widget:last-child { margin-bottom: 0; }
.widget-area .widget-title {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .16em;
	color: var(--c-muted);
	margin-bottom: 1rem;
	font-weight: 400;
}
