/**
 * Base44 typography contract — keep headings/body consistent across sections.
 * Source: hungry-prime-smile-flow.base44.app computed styles.
 *
 * Weight rules (locked to Base44 Tailwind):
 * - Display / section / card titles (serif): 400 — never bold
 * - Eyebrows / CTAs (sans `font-medium`): 500
 * - Names / emphasis (sans `font-semibold`): 600 only where Base44 uses it
 */

:root {
	--ps-font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
	--ps-font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto,
		"Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji",
		sans-serif;
	--ps-text: #0a0a0a;
	--ps-heading: #0a1428;
	--ps-muted: #64748b;
	--ps-weight-regular: 400;
	--ps-weight-medium: 500;
	--ps-weight-semibold: 600;
}

/* Body + UI chrome: sans (Base44 `font-sans` / system-ui) */
html,
body,
.site-container,
.site-inner,
.elementor,
.elementor-widget-text-editor,
.elementor-widget-html,
.elementor-button,
.ps-site-header,
.ps-mobile-nav,
.ps-contact-wrap,
.ps-footer,
.ps-hero-copy__lede,
.ps-hero-copy__eyebrow,
.ps-hero-copy__ctas,
.ps-lang,
button,
input,
select,
textarea {
	font-family: var(--ps-font-sans);
}

body {
	color: var(--ps-text);
	font-size: 16px;
	font-weight: var(--ps-weight-regular);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

/* Display headings: serif + regular (beats Elementor kit Georgia/weight) */
h1,
h2,
h3,
h4,
h5,
h6,
.elementor-heading-title,
.elementor-widget-heading .elementor-heading-title,
.ps-hero-copy__title,
.ps-hero-copy__gold,
.ps-ba-card h3,
.ps-contact-head h2,
.ps-contact-info h3,
.ps-footer h4,
.ps-services__title,
.ps-services__card-title,
.ps-tech__title,
.ps-tech__card-title,
.ps-process__title,
.ps-process__step-title,
.ps-process__num,
.ps-testimonials__title,
.ps-team__title,
.ps-team__name,
.ps-blog__title,
.ps-blog__card-title {
	font-family: var(--ps-font-serif) !important;
	font-weight: var(--ps-weight-regular) !important;
	letter-spacing: normal;
}

h1,
h2,
h3,
h4,
h5,
h6,
.elementor-heading-title,
.ps-hero-copy__title,
.ps-hero-copy__gold,
.ps-ba-card h3,
.ps-contact-head h2,
.ps-contact-info h3,
.ps-footer h4,
.ps-services__title,
.ps-services__card-title,
.ps-tech__title,
.ps-process__title,
.ps-process__step-title,
.ps-testimonials__title,
.ps-team__title,
.ps-team__name,
.ps-blog__title,
.ps-blog__card-title {
	color: var(--ps-heading);
}

/* Size scale — Base44 Tailwind sizes; !important beats .elementor-kit-7 h3 */
h1,
.ps-hero-copy__title,
.elementor-kit-7 h1,
.elementor-widget-heading h1.elementor-heading-title {
	font-size: clamp(2rem, 4.5vw, 3.75rem) !important; /* lg:text-6xl = 60px */
	line-height: 1.1 !important;
}

h2,
.ps-services__title,
.ps-tech__title,
.ps-process__title,
.ps-testimonials__title,
.ps-team__title,
.ps-blog__title,
.ps-contact-head h2,
.elementor-kit-7 h2,
.elementor-widget-heading h2.elementor-heading-title {
	font-size: clamp(1.875rem, 3.5vw, 3rem) !important; /* lg:text-5xl = 48px */
	line-height: 1.15 !important;
}

/* Default card H3 = text-xl (20px): services, tech, contact */
h3,
.ps-services__card-title,
.ps-tech__card-title,
.ps-contact-info h3,
.ps-ba-card h3,
.elementor-kit-7 h3,
.elementor-widget-heading h3.elementor-heading-title {
	font-size: 1.25rem !important; /* text-xl */
	line-height: 1.35 !important;
}

/* Base44 text-lg (18px): blog cards + doctor names */
.elementor-kit-7 h3.ps-blog__card-title,
.elementor h3.ps-blog__card-title,
h3.ps-blog__card-title,
.elementor-kit-7 h3.ps-team__name,
.elementor h3.ps-team__name,
h3.ps-team__name {
	font-size: 1.125rem !important; /* text-lg */
	line-height: 1.35 !important;
}

/* Base44 text-base (16px): process step titles */
.elementor-kit-7 h3.ps-process__step-title,
.elementor h3.ps-process__step-title,
h3.ps-process__step-title {
	font-size: 1rem !important; /* text-base */
	line-height: 1.35 !important;
}

h4,
.ps-footer h4,
.elementor-kit-7 h4,
.elementor-widget-heading h4.elementor-heading-title {
	font-size: 1.125rem !important;
	line-height: 1.4 !important;
	font-weight: var(--ps-weight-regular) !important;
}

/* Section body / ledes */
.elementor-widget-text-editor p,
.ps-ba-card p,
.ps-contact-head > p,
.ps-footer-blurb,
.ps-services__lede,
.ps-tech__lede,
.ps-process__lede,
.ps-testimonials__lede,
.ps-team__lede,
.ps-blog__lede,
.ps-services__card-desc,
.ps-tech__card-desc,
.ps-process__step-desc,
.ps-blog__excerpt,
.ps-team__role {
	font-family: var(--ps-font-sans);
	font-weight: var(--ps-weight-regular);
}

/* Gold eyebrows — Base44 font-medium */
.elementor-widget-text-editor p[style*="letter-spacing"],
.ps-contact-eyebrow,
.ps-services__eyebrow,
.ps-tech__eyebrow,
.ps-process__eyebrow,
.ps-testimonials__eyebrow,
.ps-team__eyebrow,
.ps-blog__eyebrow {
	font-family: var(--ps-font-sans) !important;
	font-weight: var(--ps-weight-medium) !important;
}

/* UI labels / CTAs — medium, not semibold */
.ps-services__cta,
.ps-blog__more,
.ps-blog__cat,
.ps-contact-form label,
.ps-contact-hours-label {
	font-family: var(--ps-font-sans) !important;
	font-weight: var(--ps-weight-medium) !important;
}

/* Base44 font-semibold only where source uses it */
.ps-testimonials__name,
.ps-hero-copy__btn,
.ps-header-cta,
.ps-contact-submit,
.ps-contact-actions a {
	font-weight: var(--ps-weight-semibold);
}

/* Dark navy bands: keep heading color from section CSS */
.ps-tech__title,
.ps-tech__card-title,
.ps-testimonials__title {
	color: #fff !important;
}

.elementor-element[data-settings*="0A1428"] h2.elementor-heading-title,
.elementor-element[data-settings*="0A1428"] h3.elementor-heading-title {
	color: inherit;
}
