:root {

  /* ── Fluid type scale (375px → 1728px) ───────────────────── */
  --text-xl      : clamp(1.5rem, 0.807rem + 2.956vw, 4rem);      /* 24px → 64px */
  --text-lg      : clamp(1.5rem, 1.015rem + 2.069vw, 3.25rem);   /* 24px → 52px */
  --text-md      : clamp(1.5rem, 1.084rem + 1.774vw, 3rem);      /* 24px → 48px */
  --text-sm      : clamp(1.5rem, 1.154rem + 1.478vw, 2.75rem);   /* 24px → 44px */
  --text-xs      : clamp(1.5rem, 1.292rem + 0.887vw, 2.25rem);   /* 24px → 36px */
  --text-xxs     : clamp(1.25rem, 1.042rem + 0.887vw, 2rem);     /* 20px → 32px */
  --text-hero-sub: clamp(1.25rem, 0.904rem + 1.478vw, 2.5rem);   /* 20px → 40px */
  --text-carousel: clamp(1.25rem, 0.973rem + 1.183vw, 2.25rem);  /* 20px → 36px */
  --text-card    : clamp(1.5rem, 1.361rem + 0.591vw, 2rem);      /* 24px → 32px */
  --text-sub-lg  : clamp(1rem, 0.723rem + 1.183vw, 2rem);        /* 16px → 32px */
  --text-sub-md  : clamp(1rem, 0.861rem + 0.591vw, 1.5rem);      /* 16px → 24px */
  --text-sub-sm  : clamp(1rem, 0.931rem + 0.296vw, 1.25rem);     /* 16px → 20px */
  --text-body-xxl: clamp(1rem, 0.792rem + 0.887vw, 1.75rem);     /* 16px → 28px */
  --text-body-xl : clamp(1rem, 0.861rem + 0.591vw, 1.5rem);      /* 16px → 24px */
  --text-body-lg : clamp(1rem, 0.931rem + 0.296vw, 1.25rem);     /* 16px → 20px */
  --text-body-md : clamp(1rem, 0.931rem + 0.296vw, 1.25rem);     /* 16px → 20px */
  --text-body-sm : 1rem;                                         /* 16px fixed */
  --text-marquee : clamp(0.75rem, 0.542rem + 0.887vw, 1.5rem);   /* 12px → 24px */

}


h1, h2, h3, h4, h5, h6 { padding-bottom: 0; color: inherit; }


/* ── Font weight ──────────────────────────────────────────── */
/* Loaded weights: 400, 500, 700 */
.font-thin       { font-weight: 100 !important; }
.font-extralight { font-weight: 200 !important; }
.font-light      { font-weight: 300 !important; }
.font-normal     { font-weight: 400 !important; }
.font-medium     { font-weight: 500 !important; }
.font-semibold   { font-weight: 600 !important; }
.font-bold       { font-weight: 700 !important; }
.font-extrabold  { font-weight: 800 !important; }
.font-black      { font-weight: 900 !important; }

/* ── Line height ──────────────────────────────────────────── */
.leading-none    { line-height: 1; }
.leading-tight   { line-height: 1.1; }
.leading-snug    { line-height: 1.25; }
.leading-normal  { line-height: normal; }
.leading-relaxed { line-height: 1.5; }
.leading-loose   { line-height: 1.75; }

/* ── Type scale ───────────────────────────────────────────── */
/* One utility class per Figma token; weight variants share their
   size token. Override line-height per instance with .leading-*. */

.heading-xl { font-size: var(--text-xl); font-family: var(--font-p22-mackinac-pro); font-weight: 500; line-height: 1.188; text-transform: uppercase; }
.heading-xl h1, .heading-xl h2, .heading-xl h3,
.heading-xl h4, .heading-xl h5, .heading-xl h6,
.heading-xl p  { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; text-transform: inherit; }

.heading-lg { font-size: var(--text-lg); font-family: var(--font-p22-mackinac-pro); font-weight: 500; line-height: 1.192; }
.heading-lg h1, .heading-lg h2, .heading-lg h3,
.heading-lg h4, .heading-lg h5, .heading-lg h6,
.heading-lg p  { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.heading-md { font-size: var(--text-md); font-family: var(--font-p22-mackinac-pro); font-weight: 500; line-height: 1.208; text-transform: uppercase; }
.heading-md h1, .heading-md h2, .heading-md h3,
.heading-md h4, .heading-md h5, .heading-md h6,
.heading-md p  { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; text-transform: inherit; }

.heading-md-book { font-size: var(--text-md); font-family: var(--font-p22-mackinac-pro); font-weight: 400; line-height: normal; }
.heading-md-book h1, .heading-md-book h2, .heading-md-book h3,
.heading-md-book h4, .heading-md-book h5, .heading-md-book h6,
.heading-md-book p  { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.heading-sm { font-size: var(--text-sm); font-family: var(--font-p22-mackinac-pro); font-weight: 500; line-height: 1.182; text-transform: uppercase; }
.heading-sm h1, .heading-sm h2, .heading-sm h3,
.heading-sm h4, .heading-sm h5, .heading-sm h6,
.heading-sm p  { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; text-transform: inherit; }

.heading-xs { font-size: var(--text-xs); font-family: var(--font-parabolica); font-weight: 400; line-height: 1.222; }
.heading-xs h1, .heading-xs h2, .heading-xs h3,
.heading-xs h4, .heading-xs h5, .heading-xs h6,
.heading-xs p  { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.heading-xs-bold { font-size: var(--text-xs); font-family: var(--font-parabolica); font-weight: 700; line-height: 1.222; }
.heading-xs-bold h1, .heading-xs-bold h2, .heading-xs-bold h3,
.heading-xs-bold h4, .heading-xs-bold h5, .heading-xs-bold h6,
.heading-xs-bold p  { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.heading-xxs { font-size: var(--text-xxs); font-family: var(--font-parabolica); font-weight: 700; line-height: 1.188; }
.heading-xxs h1, .heading-xxs h2, .heading-xxs h3,
.heading-xxs h4, .heading-xxs h5, .heading-xxs h6,
.heading-xxs p  { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.heading-hero-sub { font-size: var(--text-hero-sub); font-family: var(--font-p22-mackinac-pro); font-weight: 500; line-height: normal; }
.heading-hero-sub h1, .heading-hero-sub h2, .heading-hero-sub h3,
.heading-hero-sub h4, .heading-hero-sub h5, .heading-hero-sub h6,
.heading-hero-sub p  { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.heading-carousel { font-size: var(--text-carousel); font-family: var(--font-parabolica); font-weight: 400; line-height: normal; }
.heading-carousel h1, .heading-carousel h2, .heading-carousel h3,
.heading-carousel h4, .heading-carousel h5, .heading-carousel h6,
.heading-carousel p  { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.heading-card { font-size: var(--text-card); font-family: var(--font-parabolica); font-weight: 400; line-height: normal; }
.heading-card h1, .heading-card h2, .heading-card h3,
.heading-card h4, .heading-card h5, .heading-card h6,
.heading-card p  { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.subheading-lg { font-size: var(--text-sub-lg); font-family: var(--font-parabolica); font-weight: 400; line-height: 1.188; letter-spacing: 0.1em; text-transform: uppercase; }
.subheading-lg h1, .subheading-lg h2, .subheading-lg h3,
.subheading-lg h4, .subheading-lg h5, .subheading-lg h6,
.subheading-lg p, .subheading-lg li { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; }

.subheading-md { font-size: var(--text-sub-md); font-family: var(--font-parabolica); font-weight: 500; line-height: 1.25; letter-spacing: 0.15em; text-transform: uppercase; }
.subheading-md h1, .subheading-md h2, .subheading-md h3,
.subheading-md h4, .subheading-md h5, .subheading-md h6,
.subheading-md p, .subheading-md li { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; }

.subheading-sm { font-size: var(--text-sub-sm); font-family: var(--font-parabolica); font-weight: 500; line-height: 1.2; letter-spacing: 0.2em; text-transform: uppercase; }
.subheading-sm h1, .subheading-sm h2, .subheading-sm h3,
.subheading-sm h4, .subheading-sm h5, .subheading-sm h6,
.subheading-sm p, .subheading-sm li { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; }

.body-xxl { font-size: var(--text-body-xxl); font-family: var(--font-p22-mackinac-pro); font-weight: 400; line-height: normal; }
.body-xxl p, .body-xxl li { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.body-xl { font-size: var(--text-body-xl); font-family: var(--font-parabolica); font-weight: 400; line-height: 1.25; }
.body-xl p, .body-xl li { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.body-xl-bold { font-size: var(--text-body-xl); font-family: var(--font-parabolica); font-weight: 700; line-height: 1.25; }
.body-xl-bold p, .body-xl-bold li { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.body-xl-med { font-size: var(--text-body-xl); font-family: var(--font-parabolica); font-weight: 500; line-height: 1.25; }
.body-xl-med p, .body-xl-med li { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.body-lg { font-size: var(--text-body-lg); font-family: var(--font-parabolica); font-weight: 400; line-height: 1.2; }
.body-lg p, .body-lg li { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.body-md { font-size: var(--text-body-md); font-family: var(--font-p22-mackinac-pro); font-weight: 400; line-height: 1.2; }
.body-md p, .body-md li { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.body-sm { font-size: var(--text-body-sm); font-family: var(--font-parabolica); font-weight: 400; line-height: 1.25; }
.body-sm p, .body-sm li { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; }

.body-marquee { font-size: var(--text-marquee); font-family: var(--font-p22-mackinac-pro); font-weight: 400; font-style: italic; line-height: normal; }
.body-marquee p, .body-marquee li { font-size: inherit; font-family: inherit; font-weight: inherit; font-style: inherit; line-height: inherit; }


/* ── Rich text ────────────────────────────────────────────── */
/* Apply to Code modules or WP editor content outside Divi's control */

.rich-text h1 { font-size: var(--text-xl); font-family: var(--font-p22-mackinac-pro); font-weight: 500; line-height: 1.188; text-transform: uppercase; }
.rich-text h2 { font-size: var(--text-lg); font-family: var(--font-p22-mackinac-pro); font-weight: 500; line-height: 1.192; }
.rich-text h3 { font-size: var(--text-md); font-family: var(--font-p22-mackinac-pro); font-weight: 500; line-height: 1.208; text-transform: uppercase; }
.rich-text h4 { font-size: var(--text-sm); font-family: var(--font-p22-mackinac-pro); font-weight: 500; line-height: 1.182; text-transform: uppercase; }
.rich-text h5 { font-size: var(--text-xs); font-family: var(--font-parabolica); font-weight: 400; line-height: 1.222; }
.rich-text h6 { font-size: var(--text-xxs); font-family: var(--font-parabolica); font-weight: 700; line-height: 1.188; }

.rich-text p,
.rich-text li {
  font-size   : var(--text-body-xl);
  font-family : var(--font-parabolica);
  font-weight : 400;
  line-height : 1.25;
}

.rich-text ol,
.rich-text ul  { padding-left: 1.5em; }

.rich-text a   { text-decoration: underline; color: inherit; }
