:root {
	--ve-font-primary: "Poppins", sans-serif;

	/* Display scale */
	--ve-display-1: clamp(2.5rem, 2.05rem + 1.4vw, 4rem);
	--ve-display-2: clamp(2.25rem, 1.95rem + 0.95vw, 3.25rem);

	/* Semantic heading scale */
	--ve-h1: clamp(2.125rem, 1.9rem + 0.75vw, 3rem);
	--ve-h2: clamp(1.75rem, 1.6rem + 0.5vw, 2.25rem);
	--ve-h3: clamp(1.375rem, 1.27rem + 0.35vw, 1.75rem);
	--ve-h4: clamp(1.1875rem, 1.13rem + 0.18vw, 1.375rem);
	--ve-h5: clamp(1.0625rem, 1.02rem + 0.12vw, 1.1875rem);
	--ve-h6: clamp(1rem, 0.98rem + 0.06vw, 1.0625rem);

	/* Body and interface scale */
	--ve-body-lg: clamp(1rem, 0.97rem + 0.1vw, 1.125rem);
	--ve-body: 1rem;
	--ve-body-sm: 0.875rem;
	--ve-eyebrow: clamp(0.8125rem, 0.79rem + 0.06vw, 0.875rem);
	--ve-button: clamp(0.9375rem, 0.92rem + 0.06vw, 1rem);
}

/* =========================================================
   BASE TYPOGRAPHY
   ========================================================= */

html {
	font-size: 100%;
	-webkit-text-size-adjust: 100%;
}

body {
	font-family: var(--ve-font-primary);
	font-size: var(--ve-body);
	font-weight: 400;
	line-height: 1.65;
}

body p {
	font-family: var(--ve-font-primary);
	font-size: var(--ve-body);
	font-weight: 400;
	line-height: 1.65;
}

/*
 * Actual long-form copy.
 * Navigation, menus and interface lists are intentionally excluded.
 */
body .elementor-widget-text-editor :is(p, li),
body .elementor-widget-theme-post-content :is(p, li),
body .entry-content :is(p, li),
body .elementor-icon-box-description,
body .elementor-image-box-description {
	font-family: var(--ve-font-primary) !important;
	font-size: var(--ve-body) !important;
	font-weight: 400 !important;
	line-height: 1.65 !important;
}

/* =========================================================
   SEMANTIC HEADING ENFORCEMENT

   Targeted !important is intentional.
   When H1-H6 is selected in Elementor, the central Vantage
   scale must override Elementor's widget-generated typography.
   ========================================================= */

body h1 {
	font-family: var(--ve-font-primary) !important;
	font-size: var(--ve-h1) !important;
	font-weight: 500 !important;
	line-height: 1.12 !important;
	letter-spacing: -0.03em !important;
}

body h2 {
	font-family: var(--ve-font-primary) !important;
	font-size: var(--ve-h2) !important;
	font-weight: 500 !important;
	line-height: 1.18 !important;
	letter-spacing: -0.025em !important;
}

body h3 {
	font-family: var(--ve-font-primary) !important;
	font-size: var(--ve-h3) !important;
	font-weight: 500 !important;
	line-height: 1.25 !important;
	letter-spacing: -0.015em !important;
}

body h4 {
	font-family: var(--ve-font-primary) !important;
	font-size: var(--ve-h4) !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	letter-spacing: 0 !important;
}

body h5 {
	font-family: var(--ve-font-primary) !important;
	font-size: var(--ve-h5) !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	letter-spacing: 0 !important;
}

body h6 {
	font-family: var(--ve-font-primary) !important;
	font-size: var(--ve-h6) !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	letter-spacing: 0 !important;
}

/*
 * Elementor often places a span or link inside the selected
 * heading tag. These elements must inherit the heading style.
 */
body :is(h1, h2, h3, h4, h5, h6) :is(span, a) {
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
}

/* =========================================================
   INTERFACE TYPOGRAPHY
   ========================================================= */

/* Elementor buttons */
body .elementor-button {
	font-family: var(--ve-font-primary) !important;
	font-size: var(--ve-button) !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
}

/* Footer copy remains intentionally compact */
body .elementor-location-footer :is(p, li),
body .site-footer :is(p, li) {
	font-size: var(--ve-body-sm) !important;
	line-height: 1.6 !important;
}

/* =========================================================
   VISUAL TYPOGRAPHY UTILITIES

   Add one class to the Elementor widget:
   Advanced → CSS Classes

   HTML tag controls semantics.
   Utility class controls visual appearance.
   ========================================================= */

.ve-display-1 {
	--ve-visual-size: var(--ve-display-1);
	--ve-visual-weight: 500;
	--ve-visual-line-height: 1.08;
	--ve-visual-letter-spacing: -0.035em;
}

.ve-display-2 {
	--ve-visual-size: var(--ve-display-2);
	--ve-visual-weight: 500;
	--ve-visual-line-height: 1.1;
	--ve-visual-letter-spacing: -0.03em;
}

.ve-h1 {
	--ve-visual-size: var(--ve-h1);
	--ve-visual-weight: 500;
	--ve-visual-line-height: 1.12;
	--ve-visual-letter-spacing: -0.03em;
}

.ve-h2 {
	--ve-visual-size: var(--ve-h2);
	--ve-visual-weight: 500;
	--ve-visual-line-height: 1.18;
	--ve-visual-letter-spacing: -0.025em;
}

.ve-h3 {
	--ve-visual-size: var(--ve-h3);
	--ve-visual-weight: 500;
	--ve-visual-line-height: 1.25;
	--ve-visual-letter-spacing: -0.015em;
}

.ve-h4 {
	--ve-visual-size: var(--ve-h4);
	--ve-visual-weight: 600;
	--ve-visual-line-height: 1.35;
	--ve-visual-letter-spacing: 0;
}

.ve-h5 {
	--ve-visual-size: var(--ve-h5);
	--ve-visual-weight: 600;
	--ve-visual-line-height: 1.4;
	--ve-visual-letter-spacing: 0;
}

.ve-h6 {
	--ve-visual-size: var(--ve-h6);
	--ve-visual-weight: 600;
	--ve-visual-line-height: 1.4;
	--ve-visual-letter-spacing: 0;
}

.ve-eyebrow {
	--ve-visual-size: var(--ve-eyebrow);
	--ve-visual-weight: 500;
	--ve-visual-line-height: 1.35;
	--ve-visual-letter-spacing: 0;
}

/*
 * Supports:
 * - Heading widgets
 * - Icon Box titles
 * - Image Box titles
 * - Elementor Nested Accordion titles
 * - A class applied directly to a heading, paragraph or span
 */
body :is(
	.ve-display-1,
	.ve-display-2,
	.ve-h1,
	.ve-h2,
	.ve-h3,
	.ve-h4,
	.ve-h5,
	.ve-h6,
	.ve-eyebrow
):is(h1, h2, h3, h4, h5, h6, p, span),
body :is(
	.ve-display-1,
	.ve-display-2,
	.ve-h1,
	.ve-h2,
	.ve-h3,
	.ve-h4,
	.ve-h5,
	.ve-h6,
	.ve-eyebrow
) :is(
	.elementor-heading-title,
	.elementor-icon-box-title,
	.elementor-image-box-title,
	.e-n-accordion-item-title-text
) {
	font-family: var(--ve-font-primary) !important;
	font-size: var(--ve-visual-size) !important;
	font-weight: var(--ve-visual-weight) !important;
	line-height: var(--ve-visual-line-height) !important;
	letter-spacing: var(--ve-visual-letter-spacing) !important;
/* 	text-wrap: balance; */
}

/* Keep nested links and spans consistent with the utility */
body :is(
	.ve-display-1,
	.ve-display-2,
	.ve-h1,
	.ve-h2,
	.ve-h3,
	.ve-h4,
	.ve-h5,
	.ve-h6,
	.ve-eyebrow
) :is(
	.elementor-heading-title,
	.elementor-icon-box-title,
	.elementor-image-box-title,
	.e-n-accordion-item-title-text
) :is(span, a) {
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
}

/* =========================================================
   BODY-SIZE UTILITIES
   ========================================================= */

.ve-body-large {
	--ve-copy-size: var(--ve-body-lg);
	--ve-copy-line-height: 1.65;
}

.ve-body-small {
	--ve-copy-size: var(--ve-body-sm);
	--ve-copy-line-height: 1.6;
}

body :is(.ve-body-large, .ve-body-small):is(p, li, span),
body :is(.ve-body-large, .ve-body-small) :is(
	p,
	li,
	.elementor-icon-box-description,
	.elementor-image-box-description
) {
	font-family: var(--ve-font-primary) !important;
	font-size: var(--ve-copy-size) !important;
	font-weight: 400 !important;
	line-height: var(--ve-copy-line-height) !important;
}

/* =========================================================
   READABLE CONTENT WIDTHS
   ========================================================= */

.ve-copy-width,
.ve-copy-width > .elementor-widget-container {
	max-width: 68ch;
}

.ve-heading-width,
.ve-heading-width > .elementor-widget-container,
.ve-heading-width .elementor-heading-title {
	max-width: 22ch;
}

/* =========================================================
   LEGAL PAGE TYPOGRAPHY

   Apply ve-legal-content only to the container holding the
   Privacy Policy or Terms body.
   ========================================================= */

body .ve-legal-content h2 {
	font-size: var(--ve-h3) !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	letter-spacing: -0.01em !important;
}
	
body .overview-details-wrap h3 {
	font-size: var(--ve-h4) !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	letter-spacing: 0 !important;
}

body .ve-legal-content :is(p, li) {
	font-size: var(--ve-body) !important;
	line-height: 1.7 !important;
}