:root {
	--purple: #411787;
	--purple-gradient: linear-gradient(90deg,rgba(89, 38, 183, 1) 0%, rgba(50, 16, 107, 1) 100%);
	--newsletter-gradient: linear-gradient(135deg, #5926b7 0%, #320e68 100%);
	--gold-gradient: linear-gradient(90deg, #f8c94c 0%, #f0973c 100%);
}

body {
	font-family: "Figtree", sans-serif;
}

/* Sobrescreve o padrão do Bootstrap (cor + sublinhado em todo link). */
a {
	color: inherit;
	text-decoration: none;
}

.weex-blog-header {
	.frase {
		color: var(--purple);
		text-align: center;
		background: #fff;
		padding: 20px 0px;
		font-size: 1.1em;
		background: #fff;
	}

	img {
		display: block;
		width: 25px;
		height: auto;
	}

	background: var(--purple-gradient);
	padding-bottom: 20px;
	border-radius: 0px 0px 40px 40px;
	position: relative;
	z-index: 1000;
}


.weex-blog-categories {
	background: #ededed;
	padding-top: 30px;
	margin-top: -30px;

	ul {
		list-style: none;
		margin: 0;
		padding: 25px 0px;
		gap: 60px;
	}

	li {
		position: relative;
	}

	li:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 50%;
		right: -30px;
		transform: translateY(-50%);
		width: 1px;
		height: 18px;
		background: var(--purple);
		opacity: 0.3;
	}

	a {
		color: var(--purple);
		font-weight: 700;
		text-decoration: none;
		font-size: 1.2em;
	}
}

.header {
	padding:60px 0px;

	.logotipo {
		display: block;
		width: 250px;

		img {
			display: block;
			width: 100%;
		}
	}

	.weex {
		display: block;
		width: 200px;
		border-left: 2px solid #fff;
		padding-left: 60px;
		padding-top: 60px;
		padding-bottom: 60px;

		img {
			display: block;
			width: 100%;
		}
	}

	.search {
		display: flex;
		align-items: center;

		.input {
			display: block;
			width: calc(100% - 50px);
			border-radius: 25px 0px 0px 25px;
			border: none;
			background: #e0e0e0;
			height: 50px;
			outline: none !important;
			padding-left: 20px;
			padding-right: 20px;
			box-sizing: border-box;
			font-size: 18px;
		}

		.input::placeholder {
			color: #b2b1b1;
		}

		.submit {
			display: block;
			background: #e0e0e0;
			border-radius: 0px 25px 25px 0px;
			border:none;
			height: 50px;
			width: 50px;
		}
	}
}

.home-hero-section {
	padding: 80px 0px;

	.hero-row {
		margin-bottom: 100px;
	}

	.hero-image {
		img {
			display: block;
			width: 100%;
			height: auto;
			border-radius: 30px;
		}
	}

	.hero-content {
		padding-left: 40px;

		.hero-label {
			display: block;
			color: var(--purple);
			font-weight: 700;
			font-size: 1.1em;
			margin-bottom: 20px;
		}

		h1 {
			color: var(--purple);
			font-weight: 800;
			font-size: 3.5em;
			line-height: 1;
			margin-bottom: 25px;
			letter-spacing: -1px;
		}

		p {
			font-weight: 700;
			font-size: 1.6em;
			color: #1a1a1a;
			line-height: 1.2;
			margin: 0;
		}
	}

}

/* Hero da página de autor (author.php): foto à esquerda, nome/bio à direita. */
.author-hero-section {
	padding: 80px 0px 40px;

	.author-hero-photo {
		display: flex;
		justify-content: center;
	}

	.author-hero-avatar {
		display: block;
		width: 100%;
		max-width: 220px;
		height: auto;
		aspect-ratio: 1 / 1;
		border-radius: 50%;
		object-fit: cover;
	}

	.author-hero-content {
		padding-left: 40px;

		.author-hero-label {
			display: block;
			color: var(--purple);
			font-weight: 700;
			font-size: 1.1em;
			margin-bottom: 20px;
		}

		h1 {
			color: var(--purple);
			font-weight: 800;
			font-size: 3em;
			line-height: 1.1;
			margin-bottom: 20px;
			letter-spacing: -1px;
		}

		p {
			font-size: 1.2em;
			color: #1a1a1a;
			line-height: 1.6;
			margin: 0;
		}
	}
}

/* Lista de autores (autores.php, template "Blog | Autores"): grade de cards
   que se ajusta sozinha à largura da tela (sem media queries). */
.authors-listing {
	padding: 80px 0px;

	h1 {
		color: var(--purple);
		font-weight: 800;
		font-size: 3em;
		line-height: 1.1;
		letter-spacing: -1px;
		margin-bottom: 40px;
	}

	.authors-grid {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
		gap: 20px;
	}

	.author-card {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
		background: #ededed;
		border-radius: 30px;
		padding: 40px 30px;
		transition: background-color 0.2s;
	}

	.author-card:hover,
	.author-card:focus-visible {
		background: #e2e2e2;
	}

	.author-card-avatar {
		display: block;
		width: 96px;
		height: 96px;
		border-radius: 50%;
		object-fit: cover;
		margin-bottom: 20px;
	}

	.author-card-name {
		color: var(--purple);
		font-weight: 800;
		font-size: 1.3em;
		line-height: 1.2;
		margin-bottom: 6px;
	}

	.author-card-count {
		color: #6d6d6d;
		font-size: 0.9em;
	}

	.author-card-bio {
		color: #4C4C4C;
		font-size: 0.95em;
		line-height: 1.6;
		margin: 15px 0px 0px;
	}

	.authors-listing-empty {
		color: #4C4C4C;
		font-size: 1.1em;
	}
}

.hero-lasts-posts {
	padding: 0px 0px 80px;

	h2 {
		color: var(--purple);
		font-weight: 800;
		font-size: 4em;
		letter-spacing: -1px;
		margin-bottom: 30px;

		span {
			font-weight: 500;
		}
	}

	.lasts-posts-box {
		background: #ededed;
		border-radius: 40px;
		padding: 50px;
	}

}

/* Card de post pequeno — usado no grid da home, "mais lidos da semana" e
   reaproveitado na listagem geral de episódios da página do Podcast. */
.post-card {
	display: flex;
	flex-direction: column;
	height: 100%;

	.post-tag {
		display: inline-block;
		width: fit-content;
		min-height: 31.19px;
		background: var(--purple);
		color: #fff;
		font-weight: 700;
		font-size: 0.8em;
		text-transform: uppercase;
		padding: 6px 18px;
		border-radius: 20px;
		margin-bottom: 20px;
	}

	.post-tag--empty {
		visibility: hidden;
	}

	h3 {
		font-weight: normal;
		font-size: 1.4em;
		color: #3d3d3d;
		margin-bottom: 15px;
	}

	p {
		font-weight: 700;
		font-size: 0.85em;
		color: #3d3d3d;
		margin-bottom: 20px;
	}

	.post-image {
		position: relative;
		overflow: hidden;
		border-radius: 20px;
		margin-top: auto;
		margin-bottom: 15px;

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

		.play-icon {
			position: absolute;
			top: 50%;
			left: 50%;
			width: 55px !important;
			height: 55px !important;
			transform: translate(-50%, -50%);
			filter: brightness(0) invert(1);
			pointer-events: none;
		}
	}

	.episode-platforms {
		margin-bottom: 5px;
	}

	.post-author {
		font-size: 0.85em;
		color: #555;
		font-weight: normal;

		strong {
			font-weight: 700;
		}
	}
}

.newsletter-section {
	padding: 40px 0px 80px;

	.newsletter-card {
		background: var(--purple) url(../img/bg-weex-newsletter.jpg) center / cover no-repeat;
		border-radius: 40px;
		padding: 0px 0px 0px 100px;
		display: flex;
		align-items: center;
		justify-content: space-between;
		flex-wrap: wrap;
		gap: 40px;
	}

	.newsletter-content {
		svg {
			display: block;
			height: 50px;
			width: auto;
			margin-bottom: 20px;
			fill: #ffffff;
		}

		h2 {
			color: #ffffff;
			font-weight: 800;
			font-size: 4em;
			line-height: 1.15;
			margin: 0;

			span {
				font-weight: 300;
			}
		}
	}

	.newsletter-form {
		width: 100%;
		max-width: 460px;
		padding: 30px 60px;
		background: #fff;
		box-shadow: 5px 5px 10px 0px #ebebeb;
		border-radius: 0px 30px 30px 0px;

		form {
			display: flex;
			flex-direction: column;
			gap: 18px;
		}

		.newsletter-input {
			background: transparent;
			border: 2px solid #fff;
			border-radius: 30px;
			padding: 16px 25px;
			color: #fff;
			font-weight: 700;
			font-size: 1em;
			outline: none !important;
		}

		.newsletter-input::placeholder {
			color: #fff;
			opacity: 0.9;
		}

		.newsletter-check {
			display: flex;
			align-items: center;
			gap: 10px;
			color: #fff;
			font-weight: 700;
			font-size: 0.85em;
			cursor: pointer;

			input[type="checkbox"] {
				width: 16px;
				height: 16px;
				accent-color: #fff;
			}
		}

		.newsletter-submit {
			align-self: flex-start;
			background: var(--gold-gradient);
			color: var(--purple);
			font-weight: 800;
			font-size: 1em;
			text-transform: uppercase;
			letter-spacing: 0.5px;
			border: none;
			border-radius: 30px;
			padding: 18px 35px;
			cursor: pointer;
		}
	}
}

.hero-carrossel-post-listing {
	h2 {
		text-align: center;
		color: var(--purple);
		font-weight: 400;
		font-size: 4em;
		line-height: 1.1;
		max-width: 1200px;
		margin: auto;
		margin-bottom: 60px;
		letter-spacing: -1px;

		strong {
			font-weight: 800;
		}
	}

	.carousel-block {
		display: flex;
		align-items: center;
		gap: 80px;
		margin-bottom: 80px;
	}

	.carousel-sidebar {
		flex: 0 0 280px;

		.carousel-icon {
			width: 110px;
			height: 110px;
			border-radius: 28px;
			overflow: hidden;
			margin-bottom: 20px;
			background: #ededed;
			padding: 20px;
			transform: rotate(-15deg);

			img {
				display: block;
				width: 100%;
				height: 100%;
				transform: rotate(15deg);
			}
		}

		h3 {
			color: var(--purple);
			font-weight: 800;
			font-size: 2.5em;
			margin-bottom: 20px;
			letter-spacing: -1px;
			line-height: 1;
		}

		.carousel-btn {
			display: flex;
			width: fit-content;
			background: var(--purple);
			color: #fff;
			font-weight: 700;
			font-size: 1.2em;
			text-decoration: none;
			padding: 14px 26px;
			border-radius: 30px;
			align-items: center;
			gap: 10px;
			white-space: nowrap;
			transition: background 0.5s;

			&:hover {
				background: #540ccd;
			}

			svg {
				width: 25px;
				height: 25px;
				fill: #fff;
				vertical-align: middle;
			}
		}
	}

	.carousel-wrapper {
		position: relative;
		flex: 1;
		min-width: 0;
	}

	.posts-carousel {
		margin: 0px -10px;
	}

	.slide-item {
		display: flex;
		flex-direction: column;
		height: 100%;
		padding: 0px 10px;

		h4 {
			color: #3d3d3d;
			font-weight: 500;
			font-size: 1.2em;
			line-height: 1.3;
			min-height: 70px;
			margin-bottom: 15px;
		}

		.post-image {
			height: 200px;
			overflow: hidden;
			border-radius: 20px;
			margin-top: auto;

			img {
				display: block;
				width: 100%;
				height: 100%;
				object-fit: cover;
				object-position: center;
				background: #f8f8f8;
			}
		}
	}

}

.carousel-next,
.carousel-prev {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 48px;
	height: 48px;
	border: none;
	border-radius: 14px;
	background: #ececec;
	color: #6d6d6d;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.carousel-next:disabled,
.carousel-prev:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.carousel-next {
	right: -65px;
}

.carousel-prev {
	left: -65px;

	svg {
		transform: scaleX(-1);
	}
}

.slick-dots {
	position: static;
	display: flex !important;
	justify-content: center;
	list-style: none;
	gap: 8px;
	margin: 0;
	padding-left: 10px;

	li {
		width: 10px;
		height: 10px;
		margin: 0;
	}

	li button {
		width: 10px;
		height: 10px;
		padding: 0;
		border: none;
		border-radius: 50%;
		background: #d9d9d9;
		font-size: 0;
		line-height: 0;
		text-indent: -9999px;
		overflow: hidden;
		cursor: pointer;
	}

	li button:before {
		display: none;
	}

	li.slick-active button {
		background: var(--purple);
	}
}

.hero-category-list {
	padding: 40px 0px 80px;

	.category-grid {
		display: grid;
		grid-template-columns: repeat(5, 1fr);
		gap: 15px;
	}

	.category-pill {
		display: flex;
		align-items: center;
		gap: 12px;
		background: #ececec;
		border-radius: 24px;
		padding: 15px 20px;
		text-decoration: none;

		.category-pill-image {
			display: flex;
			align-items: center;
			justify-content: center;
			width: 36px;
			height: 36px;
			flex-shrink: 0;
			border-radius: 8px;
			overflow: hidden;

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

		span {
			color: var(--purple);
			font-weight: 800;
			font-size: 0.95em;
			line-height: 1.2;
		}

		.arrow {
			color: var(--purple);
			margin-left: auto;
			flex-shrink: 0;
		}
	}
}

.site-footer {
	background: #ececec;
	padding: 60px 0px 40px;

	.footer-top {
		display: flex;
		align-items: center;
		gap: 20px;
		margin-bottom: 60px;
	}

	.footer-follow-label {
		color: var(--purple);
		font-weight: 700;
	}

	.social-icons {
		display: flex;
		gap: 15px;

		img {
			display: block;
			width: 40px;
			height: 40px;
			filter: brightness(0) saturate(100%) invert(11%) sepia(41%) saturate(6419%) hue-rotate(259deg) brightness(94%) contrast(102%);
		}
	}

	.footer-bottom {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 30px;
	}

	.footer-logo {
		display: block;

		img {
			display: block;
			width: 150px;
			height: auto;
			filter: brightness(0) saturate(100%) invert(11%) sepia(41%) saturate(6419%) hue-rotate(259deg) brightness(94%) contrast(102%);
		}
	}

	.footer-links {
		list-style: none;
		display: flex;
		flex-wrap: wrap;
		margin: 0;
		padding: 0;

		li {
			position: relative;
			padding: 0px 15px;
		}

		li:not(:last-child)::after {
			content: "";
			position: absolute;
			top: 50%;
			right: 0px;
			transform: translateY(-50%);
			width: 1px;
			height: 14px;
			background: var(--purple);
			opacity: 0.4;
		}

		a {
			color: var(--purple);
			text-decoration: none;
			font-weight: 600;
			font-size: 0.9em;
		}
	}

	.footer-copy {
		margin-left: auto;
		color: var(--purple);
		font-size: 0.85em;
	}
}

.hero-podcast {
	padding: 80px 0px;

	.podcast-logo {
		display: block;
		width: 380px;
		max-width: 100%;
		height: auto;
		margin-bottom: 30px;
	}

	.podcast-info {
		h1 {
			color: var(--purple);
			font-weight: 800;
			font-size: 4em;
			margin-bottom: 30px;
		}

		p {
			font-size: 1.4em;
			color: #1a1a1a;
			line-height: 1.3;
			max-width: 480px;
			margin-bottom: 30px;
		}
	}

	.podcast-video {
		position: relative;
		width: 100%;
		height: 420px;
		border-radius: 30px;
		overflow: hidden;
		background: #000;

		iframe {
			display: block;
			width: 100%;
			height: 100%;
			border: none;
		}
	}
}

/* Botões de plataforma (grandes) — usados no hero-podcast e reaproveitados
   em qualquer outro card grande que precise deles. */
.podcast-platforms {
	display: flex;
	gap: 15px;

	.platform-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		width: auto;
		height: 56px;
		padding: 0px 24px;
		border-radius: 30px;
		background: var(--purple);
		color: #fff;
		font-weight: 700;
	}

	.platform-icon {
		display: block;
		width: 22px;
		height: 22px;
		background-color: currentColor;
		mask-size: contain;
		mask-repeat: no-repeat;
		mask-position: center;
		-webkit-mask-size: contain;
		-webkit-mask-repeat: no-repeat;
		-webkit-mask-position: center;
		flex-shrink: 0;
	}

	.platform-icon-youtube {
		mask-image: url(../img/youtube-icon.svg);
		-webkit-mask-image: url(../img/youtube-icon.svg);
	}

	.platform-icon-spotify {
		mask-image: url(../img/spotify.svg);
		-webkit-mask-image: url(../img/spotify.svg);
	}
}

.carrossel-list {
	padding: 40px 0px 80px;

	h2 {
		color: var(--purple);
		font-weight: 800;
		font-size: 2.4em;
		margin-bottom: 30px;
	}

	.carousel-wrapper {
		position: relative;
	}

	.posts-carousel {
		margin: 0px -12px;
	}

	.episode-slide {
		padding: 0px 12px;
	}
}

.episode-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #ececec;
	border-radius: 30px;
	padding: 20px;
	max-width: 400px;

	.episode-thumb {
		position: relative;
		height: 200px;
		overflow: hidden;
		border-radius: 20px;
		margin-bottom: 20px;

		img {
			display: block;
			width: 100%;
			height: 100%;
			object-fit: cover;
			object-position: center;
		}

		.play-icon {
			position: absolute;
			top: 50%;
			left: 50%;
			width: 55px;
			height: 55px;
			transform: translate(-50%, -50%);
			filter: brightness(0) invert(1);
			pointer-events: none;
		}
	}

	/* Tag + título: ficam agrupados no topo do card. */
	.episode-top {
		.episode-tag {
			display: block;
			color: var(--purple);
			font-weight: 800;
			text-transform: uppercase;
			font-size: 0.85em;
			margin-bottom: 10px;
		}

		h3 {
			color: var(--purple);
			font-weight: 800;
			font-size: 1.2em;
			line-height: 1.3;
			margin: 0;
		}
	}

	/* Autor + plataformas: ficam agrupados e empurrados pro final do card,
	   independente de quantas linhas o título ocupar. */
	.episode-bottom {
		margin-top: auto;
		padding-top: 15px;

		.episode-author {
			display: block;
			color: #555;
			font-size: 0.9em;
			margin-bottom: 20px;

			strong {
				font-weight: 800;
				color: #555;
			}
		}
	}
}

/* Slides do carrossel (Slick) com a mesma altura entre si, pra .episode-card
   conseguir esticar 100% e alinhar tag/título/autor/plataformas igual em
   todos os cards visíveis. */
.posts-carousel {
	.slick-track {
		display: flex !important;
	}

	.slick-slide {
		height: inherit !important;

		> div {
			height: 100%;
		}
	}
}

.episode-slide {
	height: 100%;
}

/* Botões de plataforma (pequenos) — usados no episode-card e reaproveitados
   em qualquer outro card pequeno que precise deles. */
.episode-platforms {
	display: flex;
	gap: 10px;

	.platform-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		background: var(--purple);
		color: #fff;
	}

	.platform-icon {
		filter: brightness(0) invert(1);
	}

	.platform-youtube {
		border-radius: 11px;

		.platform-icon {
			width: 22px;
			height: 22px;
		}
	}

	.platform-spotify {
		border-radius: 11px;
	}
}

.season-tile {
	padding: 40px 0px 0px;

	.season-card {
		position: relative;
		background: var(--newsletter-gradient);
		border-radius: 40px;
		padding: 60px 60px 50px;
		overflow: hidden;

		h2 {
			position: relative;
			color: #fff;
			font-weight: 800;
			font-size: 2.6em;
			margin-bottom: 40px;
		}

		.row {
			position: relative;
		}
	}
}

.podcast-full-listing {
	padding: 40px 0px 80px;

	h2 {
		color: var(--purple);
		font-weight: 800;
		font-size: 2.4em;
		margin-bottom: 30px;
	}

	.post-card {
		h3 {
			height: 100px;
			overflow: hidden;
			color: #411887;
		}

		.post-image-frame {
			height: 200px;
			overflow: hidden;

			img {
				height: 100%;
				object-fit: cover;
				object-position: center;
			}
		}
	}
}

#category-full-list {
	gap: 80px 0px;
}

#podcast-full-list {
	--bs-gutter-x: 2rem;
	--bs-gutter-y: 4rem;
}

#video-full-list {
	--bs-gutter-x: 2rem;
	--bs-gutter-y: 4rem;
}

.podcast-full-listing-sentinel {
	height: 1px;
}

.podcast-full-listing-loading {
	text-align: center;
	color: var(--purple);
	font-weight: 700;
	padding: 30px 0px 0px;
}

.video-full-listing {
	padding: 40px 0px 80px;

	h2 {
		color: var(--purple);
		font-weight: 800;
		font-size: 2.4em;
		margin-bottom: 30px;
	}

	.post-card {
		h3 {
			height: 100px;
			overflow: hidden;
		}

		.post-image-frame {
			height: 200px;
			overflow: hidden;

			img {
				height: 100%;
				object-fit: cover;
				object-position: center;
			}
		}
	}
}

.video-full-listing-sentinel {
	height: 1px;
}

.video-full-listing-loading {
	text-align: center;
	color: var(--purple);
	font-weight: 700;
	padding: 30px 0px 0px;
}

.newsletter-section-2 {
	padding: 80px 0px;

	.newsletter2-content {
		h1 {
			color: var(--purple);
			font-weight: 800;
			font-size: 4em;
			margin-bottom: 20px;
		}

		p {
			color: #1a1a1a;
			font-size: 1.5em;
			line-height: 1.4;
			max-width: 480px;
			margin: 0;
		}
	}

	.newsletter2-card {
		background: var(--newsletter-gradient);
		border-radius: 30px;
		padding: 40px;
		margin-left: auto;

		h3 {
			color: #fff;
			font-weight: 400;
			font-size: 3em;
			line-height: 1;
			margin-bottom: 25px;

			strong {
				font-weight: 800;
			}
		}

		input {
			display: block;
			width: 100%;
			background: transparent;
			border: 2px solid #fff;
			border-radius: 30px;
			padding: 16px 24px;
			color: #fff;
			font-size: 1em;
			margin-bottom: 20px;
			outline: none !important;
			box-sizing: border-box;
		}

		input::placeholder {
			color: rgba(255, 255, 255, 0.75);
		}

		button {
			display: block;
			width: 100%;
			background: #fff;
			color: var(--purple);
			font-weight: 800;
			font-size: 0.95em;
			text-transform: uppercase;
			letter-spacing: 0.5px;
			border: none;
			border-radius: 30px;
			padding: 18px;
			cursor: pointer;
		}
	}
}

.hero-post-highlight {
	padding: 40px 0px 80px;

	h2 {
		color: var(--purple);
		font-weight: 800;
		font-size: 2.4em;
		margin-bottom: 30px;
	}

	.highlight-card {
		background: #ececec;
		border-radius: 40px;
		padding: 20px;
	}

	.highlight-thumb {
		img {
			display: block;
			width: 100%;
			aspect-ratio: 900 / 360;
			object-fit: cover;
			border-radius: 24px;
		}
	}

	.highlight-footer {
		display: flex;
		align-items: flex-end;
		justify-content: space-between;
		flex-wrap: wrap;
		gap: 30px;
		padding: 30px 20px 10px;
	}

	.highlight-text {
		h3 {
			color: #1a1a1a;
			font-weight: 400;
			font-size: 1.4em;
			margin-bottom: 15px;

			strong {
				font-weight: 800;
			}
		}

		p {
			color: #3d3d3d;
			font-size: 0.95em;
			line-height: 1.4;
			max-width: 480px;
			margin: 0;
		}
	}

	.highlight-btn {
		flex-shrink: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		background: var(--purple-gradient);
		color: #fff;
		font-weight: 800;
		font-size: 0.9em;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		text-decoration: none;
		padding: 16px 34px;
		border-radius: 30px;
	}
}

.main-text {
	p,
	.description {
		color: #4C4C4C;
		font-size: 20px;
		margin-bottom: 30px;
		line-height: 1.6;
	}

	.date {
		color: #4C4C4C;
		font-size: 16px;
		margin-bottom: 30px;
		line-height: 1.6;
	}

	.content {
		img {
			display: block;
			max-width: calc(100% + 60px);
			height: auto;
			margin-bottom: 30px;
			margin-left: -30px;
			border-radius: 25px;
		}

		iframe,
		video {
			display: block;
			width: calc(100% + 60px);
			border-radius: 30px;
			height: 391px;
			margin-bottom: 30px;
			margin-left: -30px;
		}
	}
}

.title-h1 {
	font-weight: bold;
	line-height: 1.1;
	letter-spacing: -0.5px;
	margin-bottom: 30px;
}

.single-text {
	.row {
		justify-content: space-between;
	}

	aside {
		display: flex;
		flex-direction: column;
		height: 100%;
	}
}

/* Cresce até onde o .aside-bottom começa — é esse limite que o sticky do
   .single-toc respeita (senão ele usaria o <aside> inteiro, sobrepondo o
   .aside-bottom no caminho). */
.aside-top {
	flex: 1 1 auto;
}

.aside-bottom {
	flex: 0 0 auto;
	margin-top: 30px;
}

.share-btn {
	display: inline-block;
	background: #DDDDDD;
	color: var(--purple);
	font-weight: 700;
	font-size: 0.9em;
	border: none;
	border-radius: 30px;
	padding: 12px 26px;
	margin-bottom: 20px;
	cursor: pointer;
}

.single-toc {
	background: #EDEDED;
	border: 1px solid #4B4A4A;
	border-radius: 25px;
	padding: 45px;
	position: sticky;
	top: 30px;
	/* Solta 30px antes de encostar no .aside-bottom. */
	margin-bottom: 30px;

	.single-toc-title {
		font-weight: 500;
		font-size: 1.6em;
		margin-bottom: 20px;
		color: #4C4C4C;
	}

	.single-toc-list {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.single-toc-item {
		position: relative;
		padding-left: 18px;
		margin-bottom: 14px;
	}

	.single-toc-item:last-child {
		margin-bottom: 0;
	}

	.single-toc-item::before {
		content: "";
		position: absolute;
		left: 0;
		top: 0.6em;
		width: 5px;
		height: 5px;
		border-radius: 50%;
		background: var(--purple);
	}

	.single-toc-item a {
		color: var(--purple);
		font-weight: 600;
		font-size: 1em;
		text-decoration: underline;
	}
}

.author-widget {
	background: #fff;
	border: 1px solid #e5e5e5;
	border-radius: 20px;
	padding: 30px;
	margin-top: 30px;

	.author-widget-header {
		display: flex;
		align-items: center;
		gap: 20px;
		margin-bottom: 20px;
	}

	.author-widget-avatar {
		display: block;
		width: 64px;
		height: 64px;
		border-radius: 50%;
		object-fit: cover;
	}

	.author-widget-info {
		display: flex;
		flex-direction: column;
	}

	.author-widget-label {
		color: #6d6d6d;
		font-size: 0.9em;
	}

	.author-widget-name {
		display: block;
		color: var(--purple);
		font-weight: 800;
		font-size: 1.3em;
	}

	.author-widget-bio {
		color: #4C4C4C;
		font-size: 1em;
		line-height: 1.6;
		margin: 0;
	}
}

/* Widget "CTA com formulário" (blog/parts/widgets/cta-formulario.php). */
.widget-cta-formulario {
	background-color: var(--purple);
	background-size: cover;
	background-position: center;
	border-radius: 40px;
	padding: 60px 50px;
	margin-top: 30px;
	color: #fff;

	.widget-cta-title {
		font-weight: 800;
		font-size: 2.2em;
		line-height: 1.2;
		margin-bottom: 20px;

		.accent {
			color: #f8c94c;
		}
	}

	.widget-cta-description {
		color: #e4dbf5;
		font-size: 1.1em;
		line-height: 1.5;
		margin-bottom: 30px;
	}

	.widget-cta-form {
		.wpcf7-form p {
			display: flex;
			flex-wrap: wrap;
			gap: 15px;
			margin-bottom: 15px;
		}

		.wpcf7-form-control-wrap {
			position: relative;
			display: block;
			flex: 1 1 200px;
		}

		input.wpcf7-form-control {
			display: block;
			width: 100%;
			background: rgba(255, 255, 255, 0.9);
			border: none;
			border-radius: 16px;
			padding: 16px 45px 16px 20px;
			color: #3d3d3d;
			font-size: 1em;
			outline: none !important;
			box-sizing: border-box;
		}

		input.wpcf7-form-control::placeholder {
			color: #6d6d6d;
		}

		.wpcf7-form-control-wrap::after {
			content: "";
			position: absolute;
			top: 50%;
			right: 16px;
			transform: translateY(-50%);
			width: 20px;
			height: 20px;
			border-radius: 50%;
			background-color: #d8d8d8;
			background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
			background-repeat: no-repeat;
			background-position: center;
			background-size: 10px 10px;
			pointer-events: none;
		}

		input[type="submit"].wpcf7-submit {
			flex: 0 0 auto;
			background: var(--gold-gradient);
			color: var(--purple);
			font-weight: 800;
			font-size: 0.95em;
			border: none;
			border-radius: 30px;
			padding: 18px 40px;
			cursor: pointer;
		}

		.wpcf7-response-output {
			color: #fff;
			border-color: rgba(255, 255, 255, 0.5) !important;
			border-radius: 16px;
			margin-top: 15px;
		}
	}
}

/* Seção "Perguntas frequentes" do post (single.php), campo ACF "Perguntas". */
.faq-section {
	background: #D9D9D9;
	border-radius: 0 20px 20px 0px;
	padding: 35px;
	margin-top: 30px;
	position: relative;

	.faq-title-row {
		display: flex;
		align-items: center;
		gap: 20px;
		margin-bottom: 25px;
	}

	.faq-title-icon {
		display: block;
		height: 100px;
		width: auto;
	}

	.faq-title {
		color: var(--purple);
		font-weight: 700;
		font-size: 2.5em;
		margin: 0;
	}

	.faq-item {
		margin-bottom: 30px;
		border-bottom: 1px solid #4C4C4C;
	}

	.faq-item:last-child {
		margin-bottom: 0;
		border-bottom: none;
	}

	.faq-question {
		color: #1a1a1a;
		font-weight: 700;
		font-size: 1.8em;
		margin-bottom: 10px;
	}

	.faq-answer {
		color: #4C4C4C;
		font-size: 20px;
		line-height: 1.6;
		margin-bottom: 30px;
	}

	.faq-cta-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		background: var(--purple-gradient);
		color: #fff;
		font-weight: 800;
		font-size: 0.9em;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		text-decoration: none;
		padding: 16px 34px;
		border-radius: 30px;

		b {
			display: block;
		}
	}
}

.faq-section:after {
	position: absolute;
	content: '';
	background: #d9d9d9;
	width: 100%;
	right: 100%;
	top: 0px;
	height: 100%;
}

/* Bloco "Leia mais" (2 posts), single.php. */
.leia-mais-section {
	margin-top: 30px;

	.leia-mais-title {
		color: #1a1a1a;
		font-weight: 800;
		font-size: 3em;
		line-height: 1.2;
		margin-bottom: 25px;
	}

	.leia-mais-grid {
		display: flex;
		gap: 25px;
	}

	.leia-mais-item {
		display: block;
		max-width: 50%;
	}

	.leia-mais-item-title {
		color: #1a1a1a;
		font-weight: normal;
		font-size: 1.4em;
		line-height: 1.4;
		margin-bottom: 15px;
	}

	.leia-mais-image {
		position: relative;
		border-radius: 20px;
		overflow: hidden;

		img {
			display: block;
			width: 100%;
			aspect-ratio: 4 / 3;
			object-fit: cover;
			border-radius: 0;
		}
	}

	.leia-mais-arrow {
		position: absolute;
		right: 0;
		bottom: 0;
		width: 44px;
		height: 44px;
		display: flex;
		align-items: center;
		justify-content: center;
		background: var(--purple);
		color: #fff;
		border-radius: 18px 0px 18px 0px;
		z-index: 1;
	}
}

/* Bloco de merchan (aside do single.php, acima do "Nesse artigo"). */
.merchan-block {
	background: #ececec;
	border-radius: 30px;
	padding: 35px;
	margin-bottom: 30px;

	.merchan-badge {
		display: inline-block;
		background: #dcdcdc;
		border-radius: 30px;
		padding: 8px 18px;
		font-weight: 600;
		font-size: 0.85em;
		text-transform: uppercase;
		color: #6d6d6d;
		margin-bottom: 20px;

		strong {
			color: var(--purple);
			font-weight: 800;
		}
	}

	.merchan-title {
		color: #1a1a1a;
		font-weight: 800;
		font-size: 1.5em;
		line-height: 1.3;
		margin-bottom: 20px;
	}

	.merchan-text {
		color: #6d6d6d;
		font-size: 1em;
		line-height: 1.5;
		margin-bottom: 25px;

		strong {
			color: #3d3d3d;
			font-weight: 700;
		}
	}

	.merchan-logos {
		img {
			display: block;
			width: 100%;
			margin-bottom: 30px;
			filter: grayscale(100%);
		}
	}

	.merchan-btn {
		display: block;
		text-align: center;
		background: var(--purple);
		color: #fff;
		font-weight: 700;
		font-size: 1.1em;
		text-decoration: none;
		border-radius: 30px;
		padding: 18px;
	}
}

/* Widget "Últimos Posts" (aside-bottom do single.php). */
.latest-posts-widget {
	background: #fff;
	border: 1px solid #e5e5e5;
	border-radius: 30px;
	padding: 30px;

	.latest-posts-badge {
		display: inline-block;
		background: #ece4f7;
		color: var(--purple);
		font-weight: 800;
		font-size: 0.8em;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		border-radius: 30px;
		padding: 8px 18px;
		margin-bottom: 25px;
	}

	.latest-posts-list {
		display: flex;
		flex-direction: column;
	}

	.latest-posts-item {
		display: flex;
		align-items: flex-start;
		gap: 15px;
		padding-bottom: 20px;
		margin-bottom: 20px;
		border-bottom: 1px solid #ececec;
	}

	.latest-posts-item:last-child {
		padding-bottom: 0;
		margin-bottom: 0;
		border-bottom: none;
	}

	.latest-posts-icon {
		flex-shrink: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 32px;
		height: 32px;
		background: #ece4f7;
		color: var(--purple);
		border-radius: 50%;
	}

	.latest-posts-post-title {
		display: block;
		color: #1a1a1a;
		font-weight: 700;
		font-size: 0.95em;
		line-height: 1.4;
		margin-bottom: 8px;
	}

	.latest-posts-meta {
		display: block;
		color: #6d6d6d;
		font-size: 0.8em;
	}
}

/* Botão "Ouvir no Spotify" abaixo do vídeo (single-episodio.php). */
.episodio-spotify-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--purple-gradient);
	color: #fff;
	font-weight: 700;
	font-size: 0.95em;
	text-decoration: none;
	border-radius: 30px;
	padding: 14px 28px;
	margin-bottom: 30px;
}









