/**
 * Vens ou Ficas? editorial article design system.
 *
 * This final cascade layer owns the visual contract shared by every post that
 * uses templates/single-editorial.php.  It intentionally outranks Astra and
 * Elementor Kit typography without relying on post IDs or URLs.
 */
.vof-has-editorial-template .vof-editorial {
	--vof-type-display: var(--vof-serif);
	--vof-type-body: var(--vof-sans);
	--vof-type-h1-size: clamp(3rem, 4.7vw, 4.0625rem);
	--vof-type-h2-size: clamp(2.2rem, 3.25vw, 3.3rem);
	--vof-type-h3-size: 1.7rem;
	--vof-type-h4-size: 1.35rem;
	--vof-type-body-size: 1rem;
	--vof-type-small-size: .72rem;
	--vof-type-button-size: .76rem;
	--vof-type-heading-weight: 500;
	--vof-type-heading-line: 1.08;
	--vof-type-heading-tracking: -.025em;
	--vof-type-body-line: 1.72;
	--vof-section-space: clamp(5.5rem, 8vw, 6.875rem);
	font-family: var(--vof-type-body);
	font-size: 18px;
	font-weight: 400;
	line-height: var(--vof-type-body-line);
	color: var(--vof-ink);
}

.vof-has-editorial-template .vof-editorial .vof-hero__title {
	max-width: 11ch;
	margin: 14px 0 28px;
	color: var(--vof-ink);
	font-family: var(--vof-type-display);
	font-size: var(--vof-type-h1-size);
	font-weight: var(--vof-type-heading-weight);
	letter-spacing: var(--vof-type-heading-tracking);
	line-height: var(--vof-type-heading-line);
	text-transform: none;
}

.vof-has-editorial-template .vof-editorial .vof-hero__excerpt {
	max-width: 620px;
	color: #465451;
	font-family: var(--vof-type-body);
	font-size: 1.15rem;
	font-weight: 400;
	letter-spacing: normal;
	line-height: 1.65;
	text-transform: none;
}

.vof-has-editorial-template .vof-editorial :is(.vof-eyebrow, .vof-section-number) {
	color: var(--vof-coral);
	font-family: var(--vof-type-body);
	font-size: var(--vof-type-small-size);
	font-weight: 700;
	letter-spacing: .16em;
	line-height: 1.2;
	text-transform: uppercase;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content h2 {
	color: var(--vof-ink);
	font-family: var(--vof-type-display);
	font-size: var(--vof-type-h2-size);
	font-weight: var(--vof-type-heading-weight);
	letter-spacing: var(--vof-type-heading-tracking);
	line-height: var(--vof-type-heading-line);
	text-transform: none;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content h3 {
	color: var(--vof-ink);
	font-family: var(--vof-type-display);
	font-size: var(--vof-type-h3-size);
	font-weight: var(--vof-type-heading-weight);
	letter-spacing: var(--vof-type-heading-tracking);
	line-height: var(--vof-type-heading-line);
	text-transform: none;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content h4 {
	color: var(--vof-ink);
	font-family: var(--vof-type-display);
	font-size: var(--vof-type-h4-size);
	font-weight: var(--vof-type-heading-weight);
	letter-spacing: -.02em;
	line-height: 1.15;
	text-transform: none;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content > h2 {
	margin-top: var(--vof-section-space);
	margin-bottom: 1.625rem;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content > h3 {
	margin-top: 2.875rem;
	margin-bottom: 1rem;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content > h4 {
	margin-top: 2.25rem;
	margin-bottom: .875rem;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content > :is(p, ul, ol):not(.vof-eyebrow, .vof-section-number, .vof-disclosure) {
	max-width: 720px;
	color: var(--vof-ink);
	font-family: var(--vof-type-body);
	font-size: var(--vof-type-body-size);
	font-weight: 400;
	letter-spacing: normal;
	line-height: var(--vof-type-body-line);
	text-transform: none;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content > :is(ul, ol) {
	margin-block: 0 1.35em;
	padding-inline-start: 1.35em;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content li + li {
	margin-top: .45em;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content :is(p, li) {
	font-family: var(--vof-type-body);
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content :is(strong, b) {
	font-weight: 700;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content :is(em, i) {
	font-style: italic;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content a {
	color: var(--vof-sea);
	font-weight: 600;
	text-decoration-thickness: .08em;
	text-underline-offset: 4px;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content figure img {
	border-radius: 28px;
}

.vof-has-editorial-template .vof-editorial .vof-editorial__content :is(figcaption, .wp-element-caption) {
	margin-top: .7rem;
	color: var(--vof-muted);
	font-family: var(--vof-type-body);
	font-size: .72rem;
	font-weight: 400;
	letter-spacing: normal;
	line-height: 1.5;
	text-align: left;
}

.vof-has-editorial-template .vof-editorial :is(.wp-block-button__link, .button, button:not(.vof-back-to-top, .vof-compact-toc__trigger)) {
	font-family: var(--vof-type-body);
	font-size: var(--vof-type-button-size);
	font-weight: 700;
	letter-spacing: normal;
	line-height: 1.2;
}

/* Component titles use the same editorial face while retaining their own scale. */
.vof-has-editorial-template .vof-editorial :is(
	.vof-quick,
	.vof-toc,
	.vof-tip,
	.vof-author,
	.vof-related,
	.vof-sidebar,
	.vof-editorial-map,
	.vof-contextual-card,
	.vof-dynamic-cta,
	.vof-plan-trip,
	.vof-accommodation-card,
	.vof-restaurant-card,
	.vof-travel-tip,
	.vof-comparison,
	.vof-faq,
	.is-style-vof-affiliate-card
) :is(h2, h3, h4) {
	font-family: var(--vof-type-display);
	font-weight: var(--vof-type-heading-weight);
	letter-spacing: var(--vof-type-heading-tracking);
	line-height: var(--vof-type-heading-line);
	text-transform: none;
}

.vof-has-editorial-template .vof-editorial :is(.vof-quick__intro, .vof-affiliate--featured, .is-style-vof-affiliate-card) :is(h2, h3, h4),
.vof-has-editorial-template .vof-editorial .vof-related__inner > h2 {
	color: #fff;
}

.vof-has-editorial-template .vof-editorial .vof-quick__intro h2 {
	font-size: 2.65rem;
}

.vof-has-editorial-template .vof-editorial .vof-toc h2 {
	font-size: 2.25rem;
}

.vof-has-editorial-template .vof-editorial .vof-sidebar__card > h2 {
	font-size: 2.15rem;
}

.vof-has-editorial-template .vof-editorial .vof-author h2 {
	font-size: 2rem;
}

.vof-has-editorial-template .vof-editorial .vof-related h2 {
	font-size: var(--vof-type-h2-size);
}

.vof-has-editorial-template .vof-editorial :is(.vof-editorial-map, .vof-contextual-card, .vof-plan-trip, .vof-comparison) h3 {
	font-size: 1.7rem;
}

.vof-has-editorial-template .vof-editorial :is(.vof-accommodation-card, .vof-restaurant-card, .vof-travel-tip) h3 {
	font-size: 1.32rem;
}

.vof-has-editorial-template .vof-editorial :is(.vof-toc, .vof-author, .vof-sidebar, .vof-editorial-map, .vof-contextual-card, .vof-plan-trip, .vof-accommodation-card, .vof-restaurant-card, .vof-travel-tip, .vof-comparison, .vof-faq) :is(h2, h3, h4) {
	color: var(--vof-ink);
}

.vof-has-editorial-template .vof-editorial :is(.vof-toc__list, .vof-quick, .vof-tip, .vof-author, .vof-sidebar, .vof-editorial-map, .vof-contextual-card, .vof-dynamic-cta, .vof-plan-trip, .vof-accommodation-card, .vof-restaurant-card, .vof-travel-tip, .vof-comparison, .vof-faq) :is(p, li, a, small, dt, dd) {
	font-family: var(--vof-type-body);
}

@media (max-width: 600px) {
	.vof-has-editorial-template .vof-editorial {
		--vof-type-h1-size: 2.42rem;
		--vof-type-h2-size: 2.2rem;
		--vof-type-h3-size: 1.55rem;
		--vof-type-body-size: 1rem;
		--vof-section-space: 4.75rem;
		font-size: 17px;
	}

	.vof-has-editorial-template .vof-editorial .vof-hero__excerpt {
		font-size: .96rem;
	}
}
