/* ==========================================================================
   Traveler — estilos do tema
   As cores vêm das Cores globais do Elementor (Configurações do site) e caem
   para a paleta padrão quando o Elementor não está ativo.
   ========================================================================== */

body {
	--tv-olive: var(--e-global-color-primary, #6b705c);
	--tv-terracotta: var(--e-global-color-secondary, #cb997e);
	--tv-ink: var(--e-global-color-text, #33362c);
	--tv-sage: var(--e-global-color-accent, #a5a58d);
	--tv-rose: var(--e-global-color-tvrose, #ddbea9);
	--tv-peach: var(--e-global-color-tvpeach, #ffe8d6);
	--tv-apricot: var(--e-global-color-tvapricot, #b7b7a4);
	--tv-paper: var(--e-global-color-tvpaper, #fffbf7);
	--tv-muted: color-mix(in srgb, var(--tv-ink) 68%, var(--tv-paper));
	--tv-line: color-mix(in srgb, var(--tv-ink) 12%, transparent);
	--tv-mark-bg: color-mix(in srgb, var(--tv-apricot) 32%, var(--tv-paper));
	--tv-tag-bg: color-mix(in srgb, var(--tv-apricot) 20%, var(--tv-paper));
	--tv-icon-color: color-mix(in srgb, var(--tv-apricot) 70%, var(--tv-paper));
	--tv-icon-hover: var(--tv-olive);
	/* Pontas de "fita rasgada" usadas nos destaques (arte própria, gerada por dev/make-art.js). */
	--tv-tape-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 28' preserveAspectRatio='none'%3E%3Cpolygon points='14,0 0.5,0 4.4,1.8 6.8,3.5 1.7,5.3 2.5,7 5.1,8.8 4.3,10.5 1.8,12.3 5.3,14 5.1,15.8 0.9,17.5 5.2,19.3 1.7,21 2.8,22.8 0.9,24.5 3.3,26.3 2.1,28 14,28'/%3E%3C/svg%3E");
	--tv-tape-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 28' preserveAspectRatio='none'%3E%3Cpolygon points='0,0 10.5,0 6.5,1.8 9.5,3.5 8.4,5.3 12.9,7 11.2,8.8 11.1,10.5 11.1,12.3 10.3,14 11.2,15.8 6.7,17.5 12,19.3 10.4,21 9.4,22.8 9.8,24.5 12.5,26.3 11.7,28 0,28'/%3E%3C/svg%3E");
	--tv-pinterest: #e60023;

	--tv-font-body: "Mulish", system-ui, -apple-system, "Segoe UI", sans-serif;
	--tv-font-heading: "Oswald", "Arial Narrow", sans-serif;
	--tv-font-accent: "Crimson Text", Georgia, serif;
	--tv-font-display: "Archivo Black", "Arial Black", sans-serif;

	--tv-container: 1300px;
	--tv-radius-sm: 6px;
	--tv-header-h: 84px;

	margin: 0;
	background: var(--tv-paper);
	color: var(--tv-ink);
	font-family: var(--tv-font-body);
	font-size: 16px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

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

img,
svg,
video {
	max-width: 100%;
	height: auto;
}

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

a:hover {
	color: var(--tv-olive);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 0.5em;
	font-family: var(--tv-font-heading);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: var(--tv-ink);
}

p {
	margin: 0 0 1.2em;
}

/* Fita rasgada: faixa com as pontas irregulares atrás de um texto ou ícone. */
.tv-menu > li > a::before,
mark::before,
.tv-tag::before,
.tv-style__icon::before,
.tv-tape {
	content: "";
	position: absolute;
	z-index: -1;
	background: var(--tv-mark-bg);
	-webkit-mask: var(--tv-tape-left) left / 14px 100% no-repeat, linear-gradient(#000 0 0) center / calc(100% - 26px) 100% no-repeat, var(--tv-tape-right) right / 14px 100% no-repeat;
	mask: var(--tv-tape-left) left / 14px 100% no-repeat, linear-gradient(#000 0 0) center / calc(100% - 26px) 100% no-repeat, var(--tv-tape-right) right / 14px 100% no-repeat;
}

mark {
	position: relative;
	z-index: 0;
	display: inline-block;
	padding: 0 0.2em;
	background: none;
	color: var(--tv-olive);
}

mark::before {
	inset: 0.04em -0.06em 0.02em;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.tv-skip:focus {
	z-index: 1000;
	top: 8px;
	left: 8px;
	width: auto;
	height: auto;
	padding: 10px 16px;
	clip: auto;
	background: var(--tv-paper);
}

.tv-icon {
	width: 1.1em;
	height: 1.1em;
	flex-shrink: 0;
	vertical-align: -0.18em;
}

.tv-container {
	width: 100%;
	max-width: calc(var(--tv-container) + 40px);
	margin-inline: auto;
	padding-inline: 20px;
}

.tv-container--narrow {
	max-width: 800px;
}

.tv-section {
	padding: 40px 0 90px;
}

.tv-section--tight {
	padding: 10px 0 30px;
}

.tv-empty {
	padding: 30px;
	text-align: center;
	color: var(--tv-muted);
}

/* Botões --------------------------------------------------------------- */

.tv-btn,
.elementor-widget-button .elementor-button,
.wp-block-button__link,
.tv-content input[type="submit"] {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 15px 28px;
	border: 0;
	border-radius: 0;
	background: var(--tv-olive);
	color: #fff;
	font-family: var(--tv-font-heading);
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.25s, color 0.25s;
}

.tv-btn:hover,
.elementor-widget-button .elementor-button:hover,
.wp-block-button__link:hover {
	background: var(--tv-terracotta);
	color: #fff;
}

.tv-btn .tv-icon {
	width: 14px;
	height: 14px;
}

.tv-btn--pinterest {
	background: var(--tv-pinterest);
}

.tv-btn--pinterest .tv-icon {
	width: 18px;
	height: 18px;
}

/* Títulos de seção ------------------------------------------------------ */

.tv-tagline {
	margin: 0 0 4px;
	font-family: var(--tv-font-accent);
	font-size: 20px;
	font-style: italic;
	line-height: 1.3;
	color: var(--tv-muted);
}

.tv-section-title {
	margin-bottom: 44px;
}

.tv-section-title.tv-align-center {
	text-align: center;
}

.tv-section-title.tv-align-left {
	margin-bottom: 22px;
	text-align: left;
}

.tv-section-title__text {
	margin: 0;
	font-size: clamp(30px, 3.6vw, 46px);
	line-height: 1.1;
}

.tv-tag {
	position: relative;
	z-index: 0;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 15px 4px;
	color: var(--tv-olive);
	font-family: var(--tv-font-accent);
	font-size: 15px;
	font-style: italic;
	line-height: 1.4;
}

.tv-tag::before {
	inset: 0;
	background: var(--tv-tag-bg);
}

.tv-tag .tv-icon {
	width: 12px;
	height: 12px;
	color: var(--tv-terracotta);
}

.tv-byline {
	font-family: var(--tv-font-accent);
	font-style: italic;
}

/* Barra superior + cabeçalho ------------------------------------------- */

.tv-topbar {
	background: var(--tv-peach);
	color: var(--tv-ink);
	font-family: var(--tv-font-accent);
	font-size: 16px;
	font-style: italic;
}

.tv-topbar__info,
.tv-topbar__social {
	display: flex;
	align-items: center;
	gap: 28px;
	min-width: 0;
}

.tv-topbar__social {
	gap: 14px;
}

.tv-topbar__item {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	white-space: nowrap;
}

.tv-topbar__item .tv-icon {
	width: 14px;
	height: 14px;
	color: var(--tv-olive);
}

.tv-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 40px;
}

.tv-social {
	display: flex;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tv-social a {
	display: inline-flex;
}

.tv-social .tv-icon {
	width: 18px;
	height: 18px;
}

.tv-social--small .tv-icon {
	width: 15px;
	height: 15px;
}

.tv-header {
	position: relative;
	z-index: 50;
	background: var(--tv-paper);
	transition: box-shadow 0.3s;
}

.tv-header--sticky {
	position: sticky;
	top: 0;
}

.admin-bar .tv-header--sticky {
	top: 32px;
}

.tv-header.is-scrolled {
	box-shadow: 0 6px 30px rgb(0 0 0 / 6%);
}

.tv-header__inner {
	display: flex;
	align-items: center;
	gap: 30px;
	min-height: var(--tv-header-h);
}

.tv-logo {
	margin-right: auto;
}

.tv-logo img,
.tv-footer__logo img {
	display: block;
	width: auto;
	max-height: 60px;
}

.tv-logo__text {
	white-space: nowrap;
	font-family: var(--tv-font-heading);
	font-size: 26px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.tv-menu,
.tv-menu ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tv-menu {
	display: flex;
	gap: 4px;
}

.tv-menu li {
	position: relative;
}

.tv-menu a {
	position: relative;
	z-index: 0;
	display: block;
	padding: 7px 16px;
	font-family: var(--tv-font-heading);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Hover do menu: a fita "pinta" da esquerda para a direita. */
.tv-menu > li > a::before {
	inset: 3px -2px;
	clip-path: inset(0 100% 0 0);
	transition: clip-path 0.2s ease;
}

.tv-menu > li > a:hover::before,
.tv-menu > li > a:focus-visible::before,
.tv-menu > .current-menu-item > a::before,
.tv-menu > .current_page_item > a::before,
.tv-menu > .current-menu-ancestor > a::before {
	clip-path: inset(0);
	transition: clip-path 0.9s cubic-bezier(0.23, 0.35, 0, 1.09);
}

.tv-menu > li > a:hover,
.tv-menu .current-menu-item > a,
.tv-menu .current_page_item > a,
.tv-menu .current-menu-ancestor > a {
	color: var(--tv-olive);
}

.tv-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	padding: 12px 0;
	background: var(--tv-paper);
	box-shadow: 0 10px 40px rgb(0 0 0 / 8%);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: 0.2s;
}

.tv-menu li:hover > .sub-menu,
.tv-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.tv-menu .sub-menu a {
	padding: 7px 22px;
	font-size: 13px;
}

.tv-nav__social {
	display: none;
}

.tv-header__actions {
	display: flex;
	gap: 4px;
}

.tv-lang {
	display: flex;
	align-items: center;
	margin: 0 6px 0 0;
	padding: 0;
	list-style: none;
	font-family: var(--tv-font-heading);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.12em;
}

.tv-lang li {
	display: flex;
	align-items: center;
	white-space: nowrap;
}

.tv-lang li + li::before {
	content: "|";
	margin: 0 2px;
	color: var(--tv-line);
}

.tv-lang a {
	position: relative;
	z-index: 0;
	display: inline-block;
	padding: 6px 8px;
	color: var(--tv-muted);
}

.tv-lang a:hover,
.tv-lang .is-current {
	color: var(--tv-olive);
}

.tv-lang .is-current::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 4px 0;
	background: var(--tv-mark-bg);
	-webkit-mask: var(--tv-tape-left) left / 10px 100% no-repeat, linear-gradient(#000 0 0) center / calc(100% - 18px) 100% no-repeat, var(--tv-tape-right) right / 10px 100% no-repeat;
	mask: var(--tv-tape-left) left / 10px 100% no-repeat, linear-gradient(#000 0 0) center / calc(100% - 18px) 100% no-repeat, var(--tv-tape-right) right / 10px 100% no-repeat;
}

.tv-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--tv-ink);
	cursor: pointer;
}

.tv-icon-btn .tv-icon {
	width: 22px;
	height: 22px;
}

.tv-menu-toggle {
	display: none;
}

.tv-menu-toggle .tv-when-open,
.tv-nav-open .tv-menu-toggle .tv-when-closed {
	display: none;
}

.tv-nav-open .tv-menu-toggle .tv-when-open {
	display: block;
}

.tv-search {
	padding: 20px 0 30px;
	border-top: 1px solid var(--tv-line);
}

.tv-searchform {
	display: flex;
	align-items: center;
	border-bottom: 2px solid var(--tv-ink);
}

.tv-searchform input {
	flex: 1;
	min-width: 0;
	padding: 12px 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 18px;
	outline: 0;
}

.tv-searchform button {
	padding: 8px;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
}

@media (max-width: 1024px) {
	.tv-menu-toggle {
		display: inline-flex;
	}

	.tv-nav {
		position: fixed;
		z-index: 60;
		inset: 0 0 0 auto;
		display: flex;
		flex-direction: column;
		justify-content: center;
		width: min(380px, 88vw);
		padding: 90px 36px 40px;
		background: var(--tv-paper);
		box-shadow: -20px 0 60px rgb(0 0 0 / 12%);
		transform: translateX(100%);
		transition: transform 0.35s ease;
		visibility: hidden;
	}

	.tv-nav-open .tv-nav {
		transform: none;
		visibility: visible;
	}

	.tv-nav-open .tv-header__actions {
		position: relative;
		z-index: 61;
	}

	.tv-menu {
		flex-direction: column;
		gap: 6px;
	}

	.tv-menu a {
		padding: 6px 0;
		font-size: 22px;
	}

	.tv-menu > li > a {
		display: inline-block;
	}

	.tv-menu .sub-menu {
		position: static;
		padding: 0 0 6px 16px;
		box-shadow: none;
		background: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.tv-menu .sub-menu a {
		padding: 4px 0;
		font-size: 16px;
	}

	.tv-nav__social {
		display: flex;
		margin-top: 36px;
	}

	.tv-topbar__item:not(:first-child),
	.tv-topbar__label {
		display: none;
	}
}

@media (max-width: 782px) {
	.admin-bar .tv-header--sticky {
		top: 0;
	}
}

@media (max-width: 600px) {
	.tv-header__inner {
		gap: 10px;
		min-height: 70px;
	}

	.tv-logo__text {
		font-size: 20px;
		letter-spacing: 0.05em;
	}

	.tv-logo img {
		max-height: 40px;
	}

	.tv-header__actions {
		align-items: center;
		gap: 0;
	}

	.tv-lang {
		margin-right: 0;
		font-size: 12px;
	}

	.tv-lang a {
		padding: 5px 6px;
	}

	.tv-icon-btn {
		width: 38px;
	}
}

/* Carrossel de posts ---------------------------------------------------- */

.tv-slider {
	--tv-slide-w: 21vw;
	--tv-slide-gap: 6px;
	--tv-ratio: 2 / 3;
	position: relative;
}

.tv-slider__track {
	display: flex;
	gap: var(--tv-slide-gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	overscroll-behavior-x: contain;
	scrollbar-width: none;
}

.tv-slider__track::-webkit-scrollbar {
	display: none;
}

.tv-slide {
	position: relative;
	flex: 0 0 var(--tv-slide-w);
	max-height: 82vh;
	overflow: hidden;
	aspect-ratio: var(--tv-ratio);
	background: var(--tv-sage);
	scroll-snap-align: start;
}

.tv-slide__link,
.tv-slide__link:hover {
	display: block;
	height: 100%;
	color: #fff;
}

.tv-slide__img,
.tv-card__img,
.tv-dest-card__img,
.tv-pin-gallery img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.tv-slide__link::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgb(20 22 16 / 70%), rgb(20 22 16 / 0%) 55%);
}

.tv-slide .tv-slide__img {
	transform: scale(1.08) translate(calc(var(--tv-mx, 0) * -14px), calc(var(--tv-my, 0) * -14px));
	transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.tv-card__media:hover .tv-card__img,
.tv-dest-card:hover .tv-dest-card__img,
.tv-pin-gallery__item:hover img {
	transform: scale(1.05);
}

.tv-slide__body {
	position: absolute;
	z-index: 1;
	inset: auto 0 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 28px 26px;
}

.tv-slide__body .tv-byline {
	font-size: 16px;
	opacity: 0.9;
}

.tv-slide__title {
	font-family: var(--tv-font-heading);
	font-size: clamp(20px, 1.75vw, 30px);
	font-weight: 600;
	line-height: 1.12;
	text-transform: uppercase;
}

.tv-slider__nav {
	position: absolute;
	z-index: 2;
	top: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--tv-paper);
	color: var(--tv-ink);
	box-shadow: 0 6px 24px rgb(0 0 0 / 15%);
	cursor: pointer;
	transform: translateY(-50%);
	transition: background 0.2s, color 0.2s, opacity 0.2s;
}

.tv-slider__nav:hover {
	background: var(--tv-olive);
	color: #fff;
}

.tv-slider__nav[disabled] {
	opacity: 0;
	pointer-events: none;
}

.tv-slider__nav--prev {
	left: 18px;
}

.tv-slider__nav--next {
	right: 18px;
}

@media (max-width: 767px) {
	.tv-slider {
		--tv-slide-w: 78vw;
	}

	.tv-slider__nav {
		display: none;
	}
}

/* Destinos (grade estilo cartões verticais com o nome do país) ---------- */

.tv-destinations {
	--tv-cols: 6;
	--tv-ratio: 2 / 3;
	--tv-radius: 18px;
	--tv-overlay: 0.15;
	--tv-dest-gap: 16px;
}

.tv-destinations__intro {
	max-width: 760px;
	margin: 0 auto 26px;
	font-size: 17px;
	text-align: center;
}

.tv-destinations__group + .tv-destinations__group {
	margin-top: 64px;
}

.tv-destinations__group-title {
	margin: 0 0 26px;
	font-family: var(--tv-font-heading);
	font-size: clamp(44px, 6vw, 84px);
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.02em;
	text-align: center;
	color: var(--tv-ink);
}

.tv-destinations__group-title a:hover {
	color: var(--tv-olive);
}

.tv-dest-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--tv-dest-gap);
}

.tv-dest-card,
.tv-dest-card:hover {
	position: relative;
	display: block;
	flex: 0 0 calc((100% - (var(--tv-cols) - 1) * var(--tv-dest-gap)) / var(--tv-cols));
	overflow: hidden;
	aspect-ratio: var(--tv-ratio);
	border-radius: var(--tv-radius);
	background: var(--tv-apricot);
	color: #fff;
	isolation: isolate;
}

.tv-dest-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgb(0 0 0 / var(--tv-overlay));
	transition: background 0.3s;
}

.tv-dest-card:hover::after {
	background: rgb(0 0 0 / calc(var(--tv-overlay) + 0.1));
}

.tv-dest-card__img {
	position: absolute;
	inset: 0;
}

.tv-dest-card__label {
	position: absolute;
	z-index: 1;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 12px;
	text-align: center;
}

.tv-dest-card__title {
	margin: 0;
	font-family: var(--tv-font-display);
	font-size: clamp(16px, 1.75vw, 28px);
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: 0.01em;
	color: #fff;
	text-shadow: 0 2px 14px rgb(0 0 0 / 35%);
	overflow-wrap: anywhere;
}

.tv-dest-card__count {
	font-size: 13px;
	font-weight: 600;
	text-shadow: 0 1px 8px rgb(0 0 0 / 40%);
}

@media (max-width: 1024px) {
	.tv-destinations {
		--tv-cols: 3;
	}

	.tv-dest-card__title {
		font-size: clamp(18px, 3.4vw, 28px);
	}
}

@media (max-width: 767px) {
	.tv-destinations {
		--tv-cols: 2;
		--tv-dest-gap: 10px;
		--tv-radius: 14px;
	}

	.tv-dest-card__title {
		font-size: clamp(15px, 5vw, 22px);
	}
}

/* Cards de posts -------------------------------------------------------- */

.tv-posts {
	--tv-cols: 3;
	--tv-gap: 48px;
	--tv-ratio: 4 / 5;
	display: grid;
	grid-template-columns: repeat(var(--tv-cols), minmax(0, 1fr));
	gap: var(--tv-gap) 30px;
}

/* Colunas por tamanho de tela (mesmos pontos do Elementor). O que for escolhido
   no Elementor tem prioridade sobre estes padrões. */
@media (max-width: 1024px) {
	.tv-posts {
		--tv-cols: 2;
	}

	.tv-pin-gallery {
		--tv-cols: 3;
	}

	/* Posts em destaque: 3 lado a lado no tablet (definido no bloco do Elementor). */
	.tv-posts--staggered .tv-card__title {
		font-size: 18px;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.tv-slider {
		--tv-slide-w: 40vw;
	}
}

@media (max-width: 767px) {
	.tv-posts {
		--tv-cols: 1;
	}

	.tv-brush-photo .tv-polaroid {
		width: 55%;
	}
}

.tv-card {
	position: relative;
}

.tv-card__media {
	display: block;
	overflow: hidden;
	aspect-ratio: var(--tv-ratio);
	background: var(--tv-peach);
}

.tv-card__img--empty {
	display: block;
	width: 100%;
	height: 100%;
}

.tv-card > .tv-tag {
	position: absolute;
	z-index: 1;
	top: 16px;
	left: 16px;
}

.tv-card > .tv-tag::before,
.tv-single__hero .tv-tag::before {
	background: var(--tv-paper);
}

.tv-card__body {
	padding-top: 18px;
}

.tv-card__meta {
	display: flex;
	gap: 14px;
	font-size: 13px;
	color: var(--tv-muted);
}

.tv-card__meta .tv-icon {
	margin-right: 6px;
	color: var(--tv-terracotta);
}

.tv-card__title {
	margin: 6px 0 0;
	font-size: 22px;
	line-height: 1.2;
}

.tv-card__excerpt {
	margin: 10px 0 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--tv-muted);
}

@media (min-width: 1025px) {
	.tv-posts--staggered {
		align-items: end;
	}

	.tv-posts--staggered .tv-card:nth-child(3n + 2) .tv-card__media {
		aspect-ratio: 2 / 3;
	}
}

/* Título sobre a foto */
.tv-card--overlay .tv-card__media {
	aspect-ratio: var(--tv-ratio);
}

.tv-card--overlay .tv-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgb(20 22 16 / 70%), transparent 55%);
	pointer-events: none;
}

.tv-card--overlay .tv-card__body {
	position: absolute;
	z-index: 1;
	inset: auto 0 0;
	padding: 24px;
	color: #fff;
	pointer-events: none;
}

.tv-card--overlay .tv-card__body a {
	pointer-events: auto;
}

.tv-card--overlay .tv-card__title,
.tv-card--overlay .tv-card__title a,
.tv-card--overlay .tv-card__meta {
	color: #fff;
}

/* Lista compacta */
.tv-posts--list {
	gap: 40px 50px;
}

.tv-card--list {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr);
	gap: 22px;
	align-items: center;
}

.tv-card--list .tv-card__media {
	aspect-ratio: 1;
	border-radius: var(--tv-radius-sm);
}

.tv-card--list .tv-card__body {
	padding: 0;
}

.tv-card--list .tv-card__meta {
	font-size: 15px;
}

.tv-card--list .tv-card__title {
	margin-top: 2px;
	font-size: 18px;
}

.tv-card--list .tv-card__excerpt {
	display: -webkit-box;
	margin-top: 6px;
	overflow: hidden;
	font-size: 14px;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.tv-posts__more {
	margin-top: 56px;
	text-align: center;
}

/* Galeria Pinterest ----------------------------------------------------- */

.tv-pin-gallery {
	--tv-cols: 6;
	display: grid;
	grid-template-columns: repeat(var(--tv-cols), minmax(0, 1fr));
	gap: 10px;
}

.tv-pin-gallery__item {
	position: relative;
	margin: 0;
	overflow: hidden;
	aspect-ratio: 2 / 3;
	border-radius: var(--tv-radius-sm);
	background: var(--tv-peach);
}

.tv-pin-gallery__item > a:first-child {
	display: block;
	height: 100%;
}

/* Botão "Salvar" do Pinterest */
.tv-pin-btn {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 7px 13px 7px 9px;
	border: 0;
	border-radius: 24px;
	background: var(--tv-pinterest);
	color: #fff;
	font-family: var(--tv-font-body);
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	box-shadow: 0 2px 10px rgb(0 0 0 / 18%);
	cursor: pointer;
}

.tv-pin-btn:hover {
	background: #ad081b;
	color: #fff;
}

.tv-pin-btn .tv-icon {
	width: 16px;
	height: 16px;
}

.tv-pin-btn--static {
	position: absolute;
	top: 10px;
	right: 10px;
	opacity: 0;
	transition: opacity 0.2s;
}

.tv-pin-gallery__item:hover .tv-pin-btn--static,
.tv-pin-btn--static:focus-visible {
	opacity: 1;
}

@media (hover: none) {
	.tv-pin-btn--static {
		opacity: 1;
		padding: 7px;
	}

	.tv-pin-btn--static span {
		display: none;
	}
}

.tv-pin-btn--float {
	position: absolute;
	z-index: 40;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s;
}

.tv-pin-btn--float.is-visible {
	opacity: 1;
	pointer-events: auto;
}

@media (max-width: 767px) {
	.tv-pin-gallery {
		--tv-cols: 2;
	}
}

/* Newsletter ------------------------------------------------------------ */

.tv-newsletter {
	--tv-newsletter-bg: var(--tv-peach);
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr);
	gap: 60px;
	align-items: center;
	padding: 70px 80px;
	isolation: isolate;
}

.tv-newsletter::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: var(--tv-newsletter-bg);
	-webkit-mask: url("../img/brush.svg") center / 100% 100% no-repeat;
	mask: url("../img/brush.svg") center / 100% 100% no-repeat;
}

.tv-newsletter--no-image {
	grid-template-columns: 1fr;
	max-width: 900px;
	margin-inline: auto;
	text-align: center;
}

.tv-newsletter .tv-newsletter__media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 220px 220px var(--tv-radius-sm) var(--tv-radius-sm);
}

.tv-newsletter .tv-section-title {
	margin-bottom: 18px;
}

.tv-newsletter__text {
	color: var(--tv-muted);
}

.tv-newsletter__form {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 26px;
}

.tv-newsletter__form input {
	flex: 1 1 170px;
	min-width: 0;
	padding: 14px 16px;
	border: 1px solid var(--tv-line);
	border-radius: 0;
	background: #fff;
	color: var(--tv-ink);
	font: inherit;
	font-size: 14px;
}

.tv-newsletter__form input:focus {
	border-color: var(--tv-olive);
	outline: 0;
}

@media (max-width: 900px) {
	.tv-newsletter {
		grid-template-columns: 1fr;
		gap: 36px;
		padding: 50px 28px;
	}

	.tv-newsletter__media {
		max-width: 320px;
	}
}

/* Estilos de viagem (ícones) ------------------------------------------- */

.tv-styles {
	--tv-cols: 6;
	--tv-icon-size: 96px;
	display: grid;
	grid-template-columns: repeat(var(--tv-cols), minmax(0, 1fr));
	gap: 40px 20px;
}

.tv-style,
.tv-style:hover {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	color: var(--tv-ink);
}

.tv-style__icon {
	position: relative;
	z-index: 0;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	width: var(--tv-icon-size);
	height: var(--tv-icon-size);
	margin-bottom: 12px;
	color: var(--tv-icon-color);
	transition: color 0.35s;
}

.tv-style__icon::before {
	inset: 40% -24% 20%;
	transform: rotate(-6deg);
	clip-path: inset(0 100% 0 0);
	transition: clip-path 0.2s ease;
}

.tv-style-icon {
	width: 100%;
	height: 100%;
}

.tv-style-icon .f {
	fill: var(--tv-paper);
}

.tv-style:hover .tv-style__icon,
.tv-style.is-current .tv-style__icon {
	color: var(--tv-icon-hover);
}

.tv-style:hover .tv-style__icon::before,
.tv-style.is-current .tv-style__icon::before {
	clip-path: inset(0);
	transition: clip-path 0.9s cubic-bezier(0.23, 0.35, 0, 1.09);
}

.tv-style:hover .tv-style-icon .f {
	fill: transparent;
}

.tv-style__count {
	font-size: 15px;
	color: var(--tv-muted);
}

.tv-style__name {
	margin: 2px 0 0;
	font-size: 22px;
	font-weight: 500;
}

@media (max-width: 1024px) {
	.tv-styles {
		--tv-cols: 3;
	}
}

@media (max-width: 767px) {
	.tv-styles {
		--tv-cols: 2;
		--tv-icon-size: 72px;
	}

	.tv-style__name {
		font-size: 18px;
	}
}

/* Em telas de toque não há hover: ícones já aparecem com cor. */
@media (hover: none) {
	.tv-styles {
		--tv-icon-color: var(--tv-sage);
	}
}

.tv-page-header__icon {
	display: block;
	width: 84px;
	height: 84px;
	margin: 0 auto 10px;
	color: var(--tv-olive);
}

/* Foto com pincel + polaroid ------------------------------------------- */

.tv-brush-photo {
	--tv-ratio: 3 / 2;
	position: relative;
	margin: 0;
}

.tv-brush-photo > a {
	display: block;
}

.tv-brush-photo__bg {
	display: block;
	aspect-ratio: var(--tv-ratio);
	overflow: hidden;
	background: var(--tv-apricot);
}

.tv-brush-photo--brush .tv-brush-photo__bg {
	background: none;
	-webkit-mask: url("../img/brush-photo.svg") center / 100% 100% no-repeat;
	mask: url("../img/brush-photo.svg") center / 100% 100% no-repeat;
}

.elementor-widget .tv-brush-photo__img,
.tv-brush-photo__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tv-polaroid {
	--tv-rot: -5deg;
	position: absolute;
	z-index: 1;
	top: 50%;
	left: 50%;
	display: block;
	width: 40%;
	padding: 4% 4% 0;
	background: #fff;
	box-shadow: 0 14px 40px rgb(30 30 20 / 22%), 0 2px 6px rgb(30 30 20 / 12%);
	transform: translate(-50%, -50%) rotate(var(--tv-rot));
	transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.tv-polaroid--left {
	left: 30%;
}

.tv-polaroid--right {
	left: 70%;
}

.tv-brush-photo:hover .tv-polaroid {
	transform: translate(-50%, -52%) rotate(calc(var(--tv-rot) * 0.4));
}

.elementor-widget .tv-polaroid__img,
.tv-polaroid__img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 0;
}

.tv-polaroid__caption {
	display: block;
	padding: 0.35em 0 0.55em;
	font-family: "Caveat", "Segoe Print", cursive;
	font-size: clamp(17px, 1.9vw, 28px);
	font-weight: 500;
	line-height: 1.2;
	text-align: center;
	color: var(--tv-ink);
	transform: rotate(-3deg);
}

.tv-polaroid .tv-tape {
	z-index: 2;
	top: -6%;
	left: 50%;
	width: 42%;
	height: 13%;
	background: rgb(238 226 196 / 82%);
	transform: translateX(-50%) rotate(-4deg);
}

/* Afiliados: aviso e cards de reserva ---------------------------------- */

.tv-disclosure {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 0 0 2.2em;
	padding: 14px 18px;
	border-left: 3px solid var(--tv-terracotta);
	background: var(--tv-tag-bg);
	font-size: 14px;
	line-height: 1.6;
	color: var(--tv-muted);
}

.tv-disclosure p {
	margin: 0;
}

.tv-disclosure .tv-icon {
	margin-top: 3px;
	color: var(--tv-terracotta);
}

.tv-booking-grid {
	--tv-cols: 3;
	display: grid;
	grid-template-columns: repeat(var(--tv-cols), minmax(0, 1fr));
	gap: 22px;
	margin: 2.2em 0;
}

.tv-content .tv-booking-grid {
	width: min(1100px, 100vw - 40px);
	max-width: none;
	margin-left: 50%;
	transform: translateX(-50%);
}

/* Em temas clássicos o WordPress envolve o conteúdo de cada grupo de blocos num div extra. */
.tv-booking-grid > .wp-block-group__inner-container,
.tv-booking > .wp-block-group__inner-container {
	display: contents;
}

.tv-booking-grid--widget {
	--tv-cols: 1;
	margin: 0;
}

.tv-booking {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr);
	gap: 26px;
	align-items: center;
	margin: 2.2em 0;
	padding: 20px;
	border-radius: 10px;
	background: var(--tv-tag-bg);
	font-size: 16px;
	line-height: 1.6;
}

.tv-booking-grid .tv-booking {
	grid-template-columns: 1fr;
	gap: 16px;
	align-items: start;
	margin: 0;
	padding: 14px 14px 20px;
}

.tv-content .tv-booking figure,
.tv-booking__media {
	margin: 0;
}

.tv-booking__media img,
.tv-content .tv-booking__media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 6px;
}

.tv-booking__body > * {
	margin: 0;
}

.tv-booking__body p {
	margin: 0 0 8px;
}

.tv-booking__tagline,
.tv-content .tv-booking__tagline {
	margin: 0;
	font-family: var(--tv-font-accent);
	font-size: 18px;
	font-style: italic;
	color: var(--tv-muted);
}

.tv-booking__title,
.tv-content .tv-booking__title {
	margin: 2px 0 8px;
	font-size: 24px;
}

.tv-booking__price,
.tv-content .tv-booking__price {
	font-weight: 800;
	color: var(--tv-olive);
}

.tv-booking .wp-block-buttons {
	margin-top: 14px;
}

.tv-content .tv-booking a.wp-block-button__link,
.tv-content .tv-booking a.tv-btn {
	text-decoration: none;
}

.tv-booking__badge {
	position: absolute;
	z-index: 1;
	top: -12px;
	left: 18px;
	padding: 4px 14px;
	font-family: var(--tv-font-heading);
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #fff;
	isolation: isolate;
}

.tv-booking__badge::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: var(--tv-terracotta);
	-webkit-mask: var(--tv-tape-left) left / 10px 100% no-repeat, linear-gradient(#000 0 0) center / calc(100% - 18px) 100% no-repeat, var(--tv-tape-right) right / 10px 100% no-repeat;
	mask: var(--tv-tape-left) left / 10px 100% no-repeat, linear-gradient(#000 0 0) center / calc(100% - 18px) 100% no-repeat, var(--tv-tape-right) right / 10px 100% no-repeat;
}

@media (max-width: 767px) {
	.tv-booking-grid {
		--tv-cols: 1;
	}

	.tv-booking {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

/* Página do país (guia) -------------------------------------------------- */

.tv-hub-intro--split {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	gap: 30px;
	align-items: stretch;
}

.tv-hub-intro:not(.tv-hub-intro--split) > * {
	max-width: 900px;
	margin-inline: auto;
}

.tv-hub-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	justify-content: center;
	padding-top: 24px;
	padding-bottom: 8px;
}

.tv-hub-nav .tv-tagline {
	margin: 0 6px 0 0;
}

.tv-hub-group {
	padding: 26px 0 10px;
	scroll-margin-top: 100px;
}

.tv-hub-group .tv-section-title {
	margin-bottom: 22px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--tv-line);
}

.tv-hub-group .tv-section-title__text {
	font-size: clamp(24px, 2.6vw, 32px);
}

.tv-hub-group .tv-tagline {
	font-size: 17px;
}

.tv-hub-list {
	gap: 28px 40px;
}

/* Vídeo leve do YouTube */
.tv-video {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border-radius: 10px;
	background: #1b1c17;
}

.tv-video__button {
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.tv-video img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease, opacity 0.3s;
}

.tv-video__play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.tv-video__play svg {
	transition: transform 0.25s;
}

.tv-video__button:hover img {
	transform: scale(1.03);
	opacity: 0.9;
}

.tv-video__button:hover .tv-video__play svg {
	transform: scale(1.1);
}

.tv-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Convite (consultoria) */
.tv-cta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: 36px;
	border-radius: 10px;
	background: var(--tv-peach);
}

.tv-cta .tv-tagline {
	margin: 0;
}

.tv-cta__title {
	margin: 4px 0 12px;
	font-size: clamp(24px, 2.4vw, 32px);
}

.tv-cta p:not(.tv-tagline) {
	color: var(--tv-muted);
}

@media (max-width: 900px) {
	.tv-hub-intro--split {
		grid-template-columns: 1fr;
	}

	.tv-cta {
		padding: 28px 24px;
	}
}

/* Índice automático dos posts ------------------------------------------- */

html {
	scroll-behavior: smooth;
}

.tv-content h2[id],
.tv-content h3[id] {
	scroll-margin-top: 110px;
}

.tv-toc {
	margin: 0 0 2.4em;
	padding: 20px 26px;
	border-radius: 10px;
	background: var(--tv-tag-bg);
	font-size: 16px;
	line-height: 1.6;
}

.tv-toc summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	list-style: none;
}

.tv-toc summary::-webkit-details-marker {
	display: none;
}

.tv-toc summary::after {
	content: "+";
	font-family: var(--tv-font-heading);
	font-size: 22px;
	line-height: 1;
	color: var(--tv-olive);
}

.tv-toc details[open] summary::after {
	content: "\2212";
}

.tv-toc__title {
	font-family: var(--tv-font-heading);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.tv-toc ol {
	margin: 12px 0 0;
	padding-left: 1.4em;
}

.tv-toc ol ol {
	margin-top: 4px;
	list-style: lower-alpha;
	font-size: 15px;
}

.tv-toc li {
	margin: 4px 0;
}

.tv-content .tv-toc a:not(.tv-btn) {
	text-decoration: none;
	color: var(--tv-ink);
}

.tv-content .tv-toc a:not(.tv-btn):hover {
	color: var(--tv-olive);
	text-decoration: underline;
}

/* Números ----------------------------------------------------------------- */

.tv-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 18px 0;
	margin: 4px 0 22px;
}

.tv-stats--center {
	justify-content: center;
}

.tv-stat {
	padding: 0 30px;
}

.tv-stats--left .tv-stat:first-child {
	padding-left: 0;
}

.tv-stat + .tv-stat {
	border-left: 1px solid var(--tv-line);
}

.tv-stat__number {
	font-family: var(--tv-font-heading);
	font-size: clamp(34px, 3.4vw, 46px);
	font-weight: 600;
	line-height: 1;
	color: var(--tv-olive);
}

.tv-stat__label {
	margin: 6px 0 0;
	font-family: var(--tv-font-accent);
	font-size: 17px;
	font-style: italic;
	color: var(--tv-muted);
}

@media (max-width: 767px) {
	.tv-stat {
		padding: 0 18px;
	}

	.tv-stat__label {
		font-size: 15px;
	}
}

/* Onde estou agora ------------------------------------------------------- */

.tv-now {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr);
	gap: 60px;
	align-items: center;
}

.tv-now__tagline {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-family: var(--tv-font-accent);
	font-size: 21px;
	font-style: italic;
	color: var(--tv-muted);
}

.tv-now__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--tv-terracotta);
	animation: tv-pulse 2s infinite;
}

@keyframes tv-pulse {
	0% {
		box-shadow: 0 0 0 0 rgb(203 153 126 / 60%);
	}

	70% {
		box-shadow: 0 0 0 12px rgb(203 153 126 / 0%);
	}

	100% {
		box-shadow: 0 0 0 0 rgb(203 153 126 / 0%);
	}
}

.tv-now__place {
	margin: 2px 0 18px;
	font-size: clamp(48px, 6.5vw, 92px);
	line-height: 1;
}

.tv-now__text {
	max-width: 520px;
	margin-bottom: 28px;
	color: var(--tv-muted);
}

.tv-now .tv-btn .tv-icon {
	width: 16px;
	height: 16px;
}

.tv-now__media {
	margin: 0;
}

.elementor-widget .tv-now__media img,
.tv-now__media img {
	display: block;
	width: 100%;
	max-width: 460px;
	margin-left: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 300px 300px 10px 10px;
}

@media (max-width: 767px) {
	.tv-now {
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.elementor-widget .tv-now__media img,
	.tv-now__media img {
		max-width: 340px;
		margin: 0 auto;
	}
}

/* Busca em destaque ------------------------------------------------------- */

.tv-search-block {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}

.tv-search-block .tv-section-title {
	margin-bottom: 26px;
}

.tv-search-block .tv-searchform {
	padding: 6px 6px 6px 26px;
	border: 1px solid var(--tv-line);
	border-radius: 60px;
	background: #fff;
	box-shadow: 0 10px 30px rgb(0 0 0 / 6%);
}

.tv-search-block .tv-searchform input {
	padding: 12px 0;
	font-size: 18px;
}

.tv-search-block .tv-searchform button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--tv-olive);
	color: #fff;
	transition: background 0.2s;
}

.tv-search-block .tv-searchform button:hover {
	background: var(--tv-terracotta);
}

.tv-search-block__shortcuts {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	justify-content: center;
	margin: 22px 0 0;
}

.tv-search-block__shortcuts .tv-tagline {
	margin: 0 4px 0 0;
}

/* Voltar ao topo ------------------------------------------------------- */

.tv-top {
	position: fixed;
	z-index: 45;
	right: 22px;
	bottom: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	background: var(--tv-olive);
	color: #fff;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: 0.3s;
}

.tv-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.tv-top:hover {
	background: var(--tv-terracotta);
	color: #fff;
}

/* Elementos decorativos ------------------------------------------------- */

.tv-bg-topo {
	background-image: url("../img/topo.svg");
	background-repeat: no-repeat;
	background-position: right -180px top 20px;
	background-size: 820px auto;
}

.elementor-widget.tv-about-image img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 260px 260px var(--tv-radius-sm) var(--tv-radius-sm);
}

.elementor-widget-tv-destinations + .elementor-widget-button {
	margin-top: 36px;
}

/* Cabeçalho de páginas e arquivos -------------------------------------- */

.tv-page-header {
	padding: 70px 0 10px;
	text-align: center;
}

.tv-page-header--flush {
	padding-top: 30px;
}

.tv-page-header .tv-section-title {
	margin-bottom: 20px;
}

.tv-page-header__desc {
	max-width: 680px;
	margin: 0 auto 20px;
	color: var(--tv-muted);
}

.tv-page-header .tv-section-title__text {
	font-size: clamp(36px, 5vw, 64px);
}

/* Post individual ------------------------------------------------------- */

.tv-single__hero {
	padding: 60px 0;
	background: var(--tv-peach);
}

.tv-single__hero-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.78fr);
	gap: 70px;
	align-items: center;
}

.tv-single__hero--no-image .tv-single__hero-inner {
	grid-template-columns: 1fr;
	max-width: 840px;
	text-align: center;
}

.tv-single__title {
	margin: 18px 0 16px;
	font-size: clamp(34px, 4.4vw, 60px);
	line-height: 1.05;
}

.tv-single__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	font-size: 14px;
	color: var(--tv-muted);
}

.tv-single__hero--no-image .tv-single__meta,
.tv-single__hero--no-image .tv-share {
	justify-content: center;
}

.tv-single__meta .tv-icon {
	margin-right: 6px;
	color: var(--tv-terracotta);
}

.tv-single__meta .tv-byline {
	font-size: 17px;
}

.tv-single__meta a {
	color: var(--tv-ink);
}

.tv-single__lead {
	margin: 24px 0 0;
	font-family: var(--tv-font-accent);
	font-size: 22px;
	line-height: 1.45;
}

.tv-single__image {
	margin: 0;
}

.tv-single__image img {
	display: block;
	width: 100%;
	max-height: 82vh;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: var(--tv-radius-sm);
}

.tv-single .tv-share {
	margin-top: 28px;
}

@media (max-width: 900px) {
	.tv-single__hero {
		padding: 36px 0 44px;
	}

	.tv-single__hero-inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.tv-single__image {
		order: -1;
	}

	.tv-single__image img {
		max-height: 70vh;
	}
}

/* Conteúdo dos posts */
.tv-content {
	padding-top: 60px;
	font-size: 18px;
	line-height: 1.8;
}

.tv-elementor-page .tv-content {
	padding-top: 0;
}

.tv-content h2 {
	margin: 2em 0 0.6em;
	font-size: 30px;
}

.tv-content h3 {
	margin: 1.8em 0 0.5em;
	font-size: 23px;
}

.tv-content a:not(.tv-btn):not(.wp-block-button__link) {
	text-decoration: underline;
	text-decoration-color: var(--tv-terracotta);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.tv-content figure {
	margin: 2.2em 0;
}

.tv-content img {
	border-radius: var(--tv-radius-sm);
}

.tv-content figcaption,
.tv-content .wp-element-caption {
	margin-top: 10px;
	font-family: var(--tv-font-accent);
	font-size: 17px;
	font-style: italic;
	text-align: center;
	color: var(--tv-muted);
}

.tv-content blockquote {
	margin: 2em 0;
	padding: 6px 0 6px 28px;
	border-left: 3px solid var(--tv-terracotta);
	font-family: var(--tv-font-accent);
	font-size: 24px;
	line-height: 1.45;
}

.tv-content .alignwide {
	width: min(1100px, 100vw - 40px);
	max-width: none;
	margin-left: 50%;
	transform: translateX(-50%);
}

.tv-content .alignfull {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
}

.tv-content .alignfull img {
	border-radius: 0;
}

.tv-content .wp-block-gallery {
	gap: 10px;
}

.tv-content ul,
.tv-content ol {
	padding-left: 1.3em;
}

.tv-content li::marker {
	color: var(--tv-terracotta);
}

.tv-pin-cta {
	max-width: 480px;
	margin: 3.5em auto 1em !important;
	text-align: center;
}

.tv-pin-cta figcaption {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: var(--tv-font-body) !important;
	font-size: 15px !important;
	font-style: normal !important;
	color: var(--tv-ink) !important;
}

.tv-pin-cta figcaption .tv-icon {
	color: var(--tv-pinterest);
}

/* Compartilhar */
.tv-share {
	display: flex;
	align-items: center;
	gap: 14px;
}

.tv-share__label {
	font-family: var(--tv-font-heading);
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.tv-share ul {
	display: flex;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tv-share a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--tv-line);
	border-radius: 50%;
	background: var(--tv-paper);
	transition: 0.2s;
}

.tv-share a:hover {
	border-color: var(--tv-olive);
	background: var(--tv-olive);
	color: #fff;
}

.tv-share .tv-share__pinterest {
	border-color: var(--tv-pinterest);
	background: var(--tv-pinterest);
	color: #fff;
}

.tv-share .tv-icon {
	width: 17px;
	height: 17px;
}

.tv-single__footer {
	padding-top: 30px;
	padding-bottom: 70px;
}

.tv-single__footer .tv-share {
	padding: 26px 0;
	border-top: 1px solid var(--tv-line);
	border-bottom: 1px solid var(--tv-line);
}

.tv-single__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 26px;
}

.tv-single__tags a {
	padding: 4px 14px;
	border: 1px solid var(--tv-line);
	border-radius: 30px;
	font-size: 13px;
}

.tv-author {
	display: flex;
	gap: 26px;
	align-items: flex-start;
	margin-top: 44px;
	padding: 32px;
	border-radius: var(--tv-radius-sm);
	background: var(--tv-peach);
}

.tv-author img {
	flex-shrink: 0;
	border-radius: 50%;
}

.tv-author__name {
	margin: 0 0 8px;
	font-size: 22px;
}

.tv-author p:last-child {
	margin: 0;
	font-size: 15px;
}

.tv-related {
	border-top: 1px solid var(--tv-line);
	padding-top: 80px;
}

/* Comentários */
.tv-comments {
	padding-bottom: 80px;
}

.tv-comment-list {
	padding: 0;
	list-style: none;
}

.tv-comment-list .children {
	list-style: none;
}

.tv-comment-list .comment-body {
	padding: 22px 0;
	border-bottom: 1px solid var(--tv-line);
}

.tv-comment-list .avatar {
	float: left;
	margin-right: 14px;
	border-radius: 50%;
}

.comment-meta {
	font-size: 14px;
}

.comment-form label {
	display: block;
	margin-bottom: 4px;
	font-size: 14px;
}

.comment-form input:not([type="checkbox"]):not([type="submit"]),
.comment-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--tv-line);
	background: #fff;
	font: inherit;
}

.comment-form .comment-form-cookies-consent label {
	display: inline;
}

/* Paginação ------------------------------------------------------------- */

.nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 60px;
}

.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 8px;
	border: 1px solid var(--tv-line);
	border-radius: 50%;
	font-family: var(--tv-font-heading);
}

.page-numbers.current,
.page-numbers:hover {
	border-color: var(--tv-olive);
	background: var(--tv-olive);
	color: #fff;
}

.page-numbers.dots {
	border: 0;
	background: none;
	color: inherit;
}

/* Rodapé ---------------------------------------------------------------- */

.tv-footer {
	border-top: 1px solid var(--tv-line);
}

.tv-footer__inner {
	padding-top: 70px;
	padding-bottom: 46px;
	text-align: center;
}

.tv-footer__logo {
	display: flex;
	justify-content: center;
}

.tv-footer__about {
	max-width: 640px;
	margin: 22px auto 0;
	font-family: var(--tv-font-accent);
	font-size: 20px;
	font-style: italic;
	line-height: 1.5;
	color: var(--tv-muted);
}

.tv-footer__menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 34px;
	margin: 26px 0 0;
	padding: 0;
	list-style: none;
}

.tv-footer__menu a {
	font-family: var(--tv-font-heading);
	font-size: 13px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.tv-footer__bottom {
	background: var(--tv-olive);
	color: var(--tv-peach);
	font-size: 13px;
}

.tv-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-height: 56px;
}

.tv-footer__bottom a:hover {
	color: #fff;
}

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

.tv-404 {
	padding-top: 100px;
	text-align: center;
}

.tv-404 .tv-searchform {
	max-width: 480px;
	margin: 30px auto;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition: none !important;
	}
}
