.elementor-kit-8{--e-global-color-primary:#306096;--e-global-color-secondary:#C8C1BC;--e-global-color-text:#21262C;--e-global-color-accent:#E5F1FF;--e-global-color-4d1c7f8:#F9F6F2;--e-global-color-d558511:#FCFBFA;--e-global-color-081b5c4:#1E3C5C;--e-global-color-a991f5e:#1C3147;--e-global-color-c9882eb:#7A4E33;--e-global-color-b994576:#6B432B;--e-global-color-a39636b:#BEA496;--e-global-color-1a4dae4:#D2CAC4;--e-global-color-3eddad3:#5C6166;--e-global-typography-primary-font-family:"Dosis";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Dosis";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Source Sans 3";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Source Sans 3";--e-global-typography-accent-font-weight:500;color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-kit-8 e-page-transition{background-color:#FFBC7D;}.elementor-kit-8 a{color:var( --e-global-color-primary );}.elementor-kit-8 h1{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-kit-8 h2{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-kit-8 h3{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-kit-8 h4{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-kit-8 h5{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-kit-8 h6{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* =========================================
   TYPOGRAPHY SYSTEM
   ========================================= */

/* -----------------------------------------
   GLOBAL TYPE SCALE (VARIABLES)
   - Centralized sizing system using clamp()
   - Allows fluid scaling across screen sizes
----------------------------------------- */
:root {

  /* Base body text size (slight fluid scaling) */
  --text-base: clamp(1.125rem, 1.05rem + 0.4vw, 1.25rem);

  /* Hero typography (more aggressive scaling for impact) */
  --hero: clamp(2.3rem, 4.1vw, 5.3125rem);
  --hero-body: clamp(1.125rem, 1.4vw, 1.75rem);

  /* Standard heading scale */
  --h1: clamp(2.25rem, 1.8rem + 2.5vw, 3.25rem);
  --h2: clamp(1.75rem, 1.4rem + 1.8vw, 2.5rem);
  --h3: clamp(1.475rem, 1.2rem + 1.2vw, 1.925rem);
  --h4: clamp(1.125rem, 1.05rem + 0.6vw, 1.25rem);
  --h5: clamp(1rem, 0.95rem + 0.4vw, 1.125rem);
  --h6: 1rem;

  /* Utility text sizes (for small labels, large emphasis text, etc.) */
  --text-small: clamp(0.875rem, 0.85rem + 0.2vw, 0.95rem);
  --text-large: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);

  /* Button text (minimal scaling to maintain consistency) */
  --button-text: clamp(1.125rem, 1vw, 1.4rem);
}


/* -----------------------------------------
   BASE TEXT ELEMENTS
   - Establishes default readability
----------------------------------------- */
body {
  font-size: var(--text-base);
  line-height: 1.5;
}

p {
  margin-bottom: 1.1em; /* Consistent vertical rhythm */
}


/* -----------------------------------------
   DEFAULT HEADING SCALE
   - Applies global heading sizes using variables
----------------------------------------- */
h1 { font-size: var(--h1); line-height: 1.2; }
h2 { font-size: var(--h2); line-height: 1.25; }
h3 { font-size: var(--h3); line-height: 1.3; }
h4 { font-size: var(--h4); line-height: 1.3; }
h5 { font-size: var(--h5); line-height: 1.4; }
h6 { font-size: var(--h6); line-height: 1.4; }


/* -----------------------------------------
   HERO TYPOGRAPHY
   - Overrides default heading behavior for hero sections
----------------------------------------- */

/* Wrapper controls overall hero text styling */
.hero-heading {
  text-transform: uppercase;
  letter-spacing: clamp(0.5px, 0.1vw, 1.2px); /* Slight tracking increase for large text */
  font-weight: 700;
}

/* Hero title (applies to both native h1 and Elementor heading widget) */
.hero-heading h1,
.hero-heading .elementor-heading-title {
  font-size: var(--hero) !important; /* Overrides default heading scale */
  line-height: 1.05; /* Tight for visual impact */
}

/* Supporting hero body text */
.hero-body {
  font-size: var(--hero-body);
  line-height: 1.35; /* Slightly tighter than body for grouping */
}


/* -----------------------------------------
   TEXT UTILITIES
   - Quick size modifiers for flexible use
----------------------------------------- */
.text-small { font-size: var(--text-small); }
.text-large { font-size: var(--text-large); }


/* -----------------------------------------
   BUTTON TYPOGRAPHY
   - Consistent button styling across site
----------------------------------------- */
.button-text .elementor-button {
  font-size: var(--button-text);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
  line-height: 1.07;
}


/* =========================================
   PAGE-SPECIFIC STYLES
   ========================================= */

/* Center alignment for homepage stats/counters */
.home-counter {
  text-align: center;
}

/* Center testimonial footer content (names, roles, etc.) */
.elementor-testimonial__footer {
  text-align: center;
}


/* -----------------------------------------
   IMAGE WRAPPER SYSTEM
   - Allows image widgets to behave like background images
   - Ensures full container coverage with proper cropping
----------------------------------------- */

.image-wrapper {
  height: 100%;
  min-height: 350px; /* Establishes a "frame" for desktop layouts */
  display: flex;
  overflow: hidden; /* Prevents image overflow when cropping */
}

/* Force Elementor's internal wrappers to stretch */
.image-wrapper .elementor-widget-image,
.image-wrapper .elementor-widget-image > div {
  height: 100%;
}

/* Make image fill container and crop like background-size: cover */
.image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; /* Removes inline spacing issues */
}


/* -----------------------------------------
   MOBILE IMAGE BEHAVIOR
   - Removes forced height to avoid awkward cropping
   - Allows image to display naturally
----------------------------------------- */
@media (max-width: 1024px) {
  .image-wrapper {
    min-height: unset;
    height: auto; /* Let image define height */
  }

  .image-wrapper img {
    height: auto;
    object-fit: contain; /* Prevents important content from being cropped */
  }
}/* End custom CSS */