/* -------------------------------------------------------------------------
   1. LOCAL FONT FACES
   ------------------------------------------------------------------------- */
@font-face {
    font-family: 'PT Serif';
    src: url('../fonts/pt-serif-v19-latin_latin-ext-regular.woff2') format('woff2');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'PT Serif';
    src: url('../fonts/pt-serif-v19-latin_latin-ext-700.woff2') format('woff2');
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: 'PT Serif';
    src: url('../fonts/pt-serif-v19-latin_latin-ext-italic.woff2') format('woff2');
    font-style: italic;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'PT Serif';
    src: url('../fonts/pt-serif-v19-latin_latin-ext-700italic.woff2') format('woff2');
    font-style: italic;
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-regular.woff2') format('woff2');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-100.woff2') format('woff2');
    font-style: normal;
    font-weight: 100;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-200.woff2') format('woff2');
    font-style: normal;
    font-weight: 200;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-300.woff2') format('woff2');
    font-style: normal;
    font-weight: 300;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-500.woff2') format('woff2');
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-600.woff2') format('woff2');
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-700.woff2') format('woff2');
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-800.woff2') format('woff2');
    font-style: normal;
    font-weight: 800;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-900.woff2') format('woff2');
    font-style: normal;
    font-weight: 900;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-italic.woff2') format('woff2');
    font-style: italic;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-100italic.woff2') format('woff2');
    font-style: italic;
    font-weight: 100;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-200italic.woff2') format('woff2');
    font-style: italic;
    font-weight: 200;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-300italic.woff2') format('woff2');
    font-style: italic;
    font-weight: 300;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-500italic.woff2') format('woff2');
    font-style: italic;
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-600italic.woff2') format('woff2');
    font-style: italic;
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-700italic.woff2') format('woff2');
    font-style: italic;
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-800italic.woff2') format('woff2');
    font-style: italic;
    font-weight: 800;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-v20-latin_latin-ext-900italic.woff2') format('woff2');
    font-style: italic;
    font-weight: 900;
    font-display: swap;
}

/* -------------------------------------------------------------------------
   2. REFINED FLUID TYPE SCALE
   ------------------------------------------------------------------------- */
:root {
    --font-heading: 'PT Serif', Georgia, serif;
    --font-body: 'Inter', Arial, sans-serif;

    --step--1: clamp(0.80rem, 0.78rem + 0.10vw, 0.89rem); /* ~13px - 14px */
    --step-0:  1rem; /* body standard */
    --step-1:  clamp(1.04rem, 0.97rem + 0.18vw, 1.22rem); /* ~17px - 19px */
    --step-2:  clamp(1.22rem, 1.13rem + 0.28vw, 1.49rem); /* ~19px - 24px */
    --step-3:  clamp(1.31rem, 1.17rem + 0.42vw, 1.70rem); /* ~21px - 27px */
    --step-4:  clamp(1.58rem, 1.39rem + 0.60vw, 2.18rem); /* ~25px - 35px */
    --step-5:  clamp(2.16rem, 1.80rem + 1.20vw, 3.15rem); /* ~35px - 50px */
    --step-6:  clamp(2.52rem, 1.98rem + 1.80vw, 3.83rem); /* ~40px - 61px */
}

/* -------------------------------------------------------------------------
   3. ELEMENTOR GLOBAL TYPOGRAPHY TOKENS
   ------------------------------------------------------------------------- */
body[class*='elementor-kit-'],
.elementor[class*='elementor-kit-'] {
    --e-global-typography-primary-font-family: 'PT Serif';
    --e-global-typography-primary-font-weight: 700;
    --e-global-typography-secondary-font-family: 'PT Serif';
    --e-global-typography-secondary-font-weight: 400;
    --e-global-typography-text-font-family: 'Inter';
    --e-global-typography-text-font-weight: 400;
    --e-global-typography-accent-font-family: 'Inter';
    --e-global-typography-accent-font-weight: 600;

    --e-global-typography-primary-font-size: var(--step-5);
    --e-global-typography-secondary-font-size: var(--step-3);
    --e-global-typography-text-font-size: var(--step-0);
    --e-global-typography-accent-font-size: var(--step-1);

    --Padding-section-y-elementor: clamp(3rem, 7vw, 6rem);
}

/* -------------------------------------------------------------------------
   4. BASE TEXT + HEADING STYLES (SCOPED)
   ------------------------------------------------------------------------- */
body,
button,
input,
textarea,
select,
.elementor-widget-text-editor,
.elementor-widget-text-editor p {
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.6 !important;
}

:not(#elementor-panel) h1,
:not(#elementor-panel) h2,
:not(#elementor-panel) h3,
:not(#elementor-panel) h4,
:not(#elementor-panel) h5,
:not(#elementor-panel) h6,
.elementor-widget-heading .elementor-heading-title {
    font-family: var(--font-heading) !important;
    line-height: 1.15;
    letter-spacing: -0.02em;
}

:not(#elementor-panel) h1,
.elementor-widget-heading .elementor-heading-title.elementor-size-default,
.elementor-widget-heading h1.elementor-heading-title {
    font-size: var(--step-5);
    line-height: 1.1 !important;
}

:not(#elementor-panel) h2,
.elementor-widget-heading h2.elementor-heading-title {
    font-size: var(--step-4);
    line-height: 1.15 !important;
}

:not(#elementor-panel) h3,
.elementor-widget-heading h3.elementor-heading-title {
    font-size: var(--step-3);
    line-height: 1.25 !important;
}

:not(#elementor-panel) h4,
.elementor-widget-heading h4.elementor-heading-title {
    font-size: var(--step-2);
    line-height: 1.3 !important;
}

:not(#elementor-panel) h5,
.elementor-widget-heading h5.elementor-heading-title {
    font-size: var(--step-1);
    line-height: 1.35 !important;
}

:not(#elementor-panel) h6,
.elementor-widget-heading h6.elementor-heading-title {
    font-size: var(--step-0);
    line-height: 1.4 !important;
}

p.small,
.elementor-widget-text-editor .small {
    font-size: var(--step--1) !important;
    line-height: 1.5 !important;
}

/* Alignment & Balance Titles */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  text-wrap: balance;
}

/*Remove isolated words from the end of paragraphs*/
p, .elementor-text-editor {
  text-wrap: pretty;
}

/* -------------------------------------------------------------------------
   5. UTILITY CLASSES (Deep & Direct Targeting pe v3, v4 Atomic and HTML Native)
   ------------------------------------------------------------------------- */
.fs-hero, .fs-hero * { font-size: var(--step-6) !important; }
.fs-1,    .fs-1 *    { font-size: var(--step-5) !important; }
.fs-2,    .fs-2 *    { font-size: var(--step-4) !important; }
.fs-3,    .fs-3 *    { font-size: var(--step-3) !important; }
.fs-4,    .fs-4 *    { font-size: var(--step-2) !important; }
.fs-5,    .fs-5 *    { font-size: var(--step-1) !important; }
.fs-6,    .fs-6 *    { font-size: var(--step-0) !important; }

.fs-body, .fs-body * { font-size: var(--step-0) !important; }
.fs-sm,   .fs-sm *   { font-size: var(--step--1) !important; }