/*
 * Global Typography System
 * ---------------------------------------------------------
 * These are DEFAULTS. Elementor inline / per-widget styles
 * (and Global Fonts) override font-family, font-size,
 * line-height and font-weight automatically because they
 * have higher specificity. No !important is used so the
 * editor stays in full control of every text element.
 * ---------------------------------------------------------
 */
:root {
	--font-heading: "Playfair Display", serif;
	--font-body: "Inter", sans-serif;
	--font-ui: "Manrope", sans-serif;
}

/* ── Hero Headings ── */
.elementor-widget-theme-post-title h1,
h1.elementor-heading-title,
.elementor-widget-heading h1.elementor-heading-title,
.elementor-element .hero-heading {
	font-family: var(--font-heading);
	line-height: 1.05;
	font-weight: 600;
}

/* ── Section Headings (h2) ── */
h2,
h2.elementor-heading-title,
.elementor-widget-heading h2.elementor-heading-title,
.elementor-element .section-heading {
	font-family: var(--font-heading);
	line-height: 1.15;
	font-weight: 600;
}

/* ── Sub-Section Headings (h3) ── */
h3,
h3.elementor-heading-title,
.elementor-widget-heading h3.elementor-heading-title,
.elementor-element .subheading {
	font-family: var(--font-body);
	line-height: 1.5;
	font-weight: 400;
}

/* ── Body Text ── */
body,
p,
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-element .body-text {
	font-family: var(--font-body);
	line-height: 1.7;
	font-weight: 400;
}

/* ── Navigation & Buttons ── */
.elementor-nav-menu a,
.elementor-widget-nav-menu a,
.elementor-button,
.elementor-button span,
a.elementor-button,
.elementor-widget-button a,
.elementor-element .nav-link,
.elementor-element .button {
	font-family: var(--font-ui);
	line-height: 1.2;
	font-weight: 600;
}

/* ── Tablet (≤991px) ── */
@media (max-width: 991px) {
	.elementor-widget-theme-post-title h1,
	h1.elementor-heading-title,
	.elementor-widget-heading h1.elementor-heading-title,
	.elementor-element .hero-heading {
		font-size: 56px;
		line-height: 1.08;
	}

	h2,
	h2.elementor-heading-title,
	.elementor-widget-heading h2.elementor-heading-title,
	.elementor-element .section-heading {
		font-size: 36px;
	}

	h3,
	h3.elementor-heading-title,
	.elementor-widget-heading h3.elementor-heading-title,
	.elementor-element .subheading {
		font-size: 20px;
	}

	body,
	p,
	.elementor-widget-text-editor,
	.elementor-widget-text-editor p,
	.elementor-element .body-text {
		font-size: 16px;
	}

	.elementor-nav-menu a,
	.elementor-widget-nav-menu a,
	.elementor-button,
	.elementor-button span,
	a.elementor-button,
	.elementor-widget-button a,
	.elementor-element .nav-link,
	.elementor-element .button {
		font-size: 14px;
	}
}

/* ── Mobile (≤767px) ── */
@media (max-width: 767px) {
	.elementor-widget-theme-post-title h1,
	h1.elementor-heading-title,
	.elementor-widget-heading h1.elementor-heading-title,
	.elementor-element .hero-heading {
		font-size: 42px;
		line-height: 1.1;
	}

	h2,
	h2.elementor-heading-title,
	.elementor-widget-heading h2.elementor-heading-title,
	.elementor-element .section-heading {
		font-size: 30px;
	}

	h3,
	h3.elementor-heading-title,
	.elementor-widget-heading h3.elementor-heading-title,
	.elementor-element .subheading {
		font-size: 18px;
	}

	body,
	p,
	.elementor-widget-text-editor,
	.elementor-widget-text-editor p,
	.elementor-element .body-text {
		font-size: 15px;
		line-height: 1.6;
	}

	.elementor-nav-menu a,
	.elementor-widget-nav-menu a,
	.elementor-button,
	.elementor-button span,
	a.elementor-button,
	.elementor-widget-button a,
	.elementor-element .nav-link,
	.elementor-element .button {
		font-size: 14px;
	}
}
