/*!
 * GEC Typography — site-wide standardisation
 * -----------------------------------------------------------------------------
 * Makes the rest of the site (Elementor widgets + native WP content) use the
 * SAME type scale, families, weights and rhythm as the [gec_*] pages.
 *
 * DELIBERATELY DOES NOT TOUCH COLOUR. Only font-family, font-size, font-weight,
 * letter-spacing, line-height and paragraph spacing are set. Every existing
 * heading/text colour (including white-on-dark heroes) is left exactly as it is.
 *
 * SCOPE — "content only":
 *   Everything is prefixed with #content, Astra's main content wrapper. The
 *   Elementor header (.elementor-location-header) and footer
 *   (.elementor-location-footer) sit OUTSIDE #content, so they are untouched.
 *
 * THE GEC PAGES ARE NOT AFFECTED:
 *   The [gec_*] sections render as .gec markup and use their OWN classes, never
 *   Elementor's .elementor-heading-title / .elementor-widget-text-editor. The
 *   Elementor rules below therefore never match GEC output. The native-content
 *   rules are additionally guarded with :not(.gec *).
 *
 * WHY !important:
 *   Elementor prints per-widget typography at high specificity. To override it
 *   from a single stylesheet we out-rank it; colour is never in these rules so
 *   there is nothing risky to out-rank.
 *
 * TO REVERT: remove the wp_enqueue_style('gec-typography', ...) block in gec.php
 *   (register_assets) — or delete this file. Nothing else depends on it.
 *
 * TO EXEMPT ONE WIDGET: add its Elementor element/CSS class to an exclusion
 *   rule at the bottom of this file (there is a template there).
 *
 * Values mirror gec-sections.css so the two stay in step.
 */

/* ==========================================================================
   1. ELEMENTOR HEADINGS  (Heading widget + Icon-Box title)
   Family / weight / spacing — no colour.
   ========================================================================== */
#content .elementor-heading-title,
#content .elementor-icon-box-title{
  font-family:'Montserrat',sans-serif !important;
  font-weight:600 !important;
  letter-spacing:-.015em !important;
  line-height:1.15 !important;
}

/* Size per heading level, matching the GEC scale exactly. */
#content h1.elementor-heading-title{
  font-size:clamp(29px,3.3vw,44px) !important;
  letter-spacing:-.022em !important;
  line-height:1.15 !important;
}
#content h2.elementor-heading-title{
  font-size:clamp(23px,2.2vw,31px) !important;
}
#content h3.elementor-heading-title,
#content .elementor-icon-box-title{
  font-size:clamp(16.5px,1.4vw,18.5px) !important;
  line-height:1.35 !important;
}
#content h4.elementor-heading-title{
  font-size:clamp(15px,1.3vw,17px) !important;
  line-height:1.4 !important;
}
#content h5.elementor-heading-title{
  font-size:14px !important;
  line-height:1.4 !important;
}
#content h6.elementor-heading-title{
  font-size:12.5px !important;
  letter-spacing:.04em !important;
  line-height:1.4 !important;
}

/* ==========================================================================
   2. ELEMENTOR BODY TEXT  (Text-Editor, Icon-Box desc, Icon-List)
   Family / size / rhythm — no colour.
   ========================================================================== */
#content .elementor-widget-text-editor,
#content .elementor-widget-text-editor p,
#content .elementor-widget-text-editor li,
#content .elementor-icon-box-description,
#content .elementor-icon-list-text{
  font-family:'Inter',sans-serif !important;
  font-size:16px !important;
  line-height:1.75 !important;
}
/* Paragraph rhythm to match the pages (1.15em gap, none after the last). */
#content .elementor-widget-text-editor p{margin:0 0 1.15em !important;}
#content .elementor-widget-text-editor p:last-child{margin-bottom:0 !important;}

/* ==========================================================================
   3. NATIVE WP CONTENT  (classic pages / blog posts — the .entry-content body)
   Guarded so a GEC shortcode dropped into a classic page keeps its own type.
   No !important needed here (low-specificity theme defaults).
   ========================================================================== */
#content .entry-content h1:not(.gec *),
#content .entry-content h2:not(.gec *),
#content .entry-content h3:not(.gec *),
#content .entry-content h4:not(.gec *),
#content .entry-content h5:not(.gec *),
#content .entry-content h6:not(.gec *){
  font-family:'Montserrat',sans-serif;
  font-weight:600;
  letter-spacing:-.015em;
  line-height:1.15;
}
#content .entry-content h1:not(.gec *){font-size:clamp(29px,3.3vw,44px);letter-spacing:-.022em;}
#content .entry-content h2:not(.gec *){font-size:clamp(23px,2.2vw,31px);}
#content .entry-content h3:not(.gec *){font-size:clamp(16.5px,1.4vw,18.5px);line-height:1.35;}
#content .entry-content h4:not(.gec *){font-size:clamp(15px,1.3vw,17px);line-height:1.4;}
#content .entry-content h5:not(.gec *){font-size:14px;line-height:1.4;}
#content .entry-content h6:not(.gec *){font-size:12.5px;letter-spacing:.04em;line-height:1.4;}

#content .entry-content p:not(.gec *),
#content .entry-content li:not(.gec *){
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.75;
}
#content .entry-content p:not(.gec *){margin:0 0 1.15em;}

/* ==========================================================================
   4. PER-WIDGET EXEMPTIONS  (add here if one heading must keep its own size)
   Example — leave a specific hero heading alone:
   #content .elementor-element-abc123 .elementor-heading-title{
     font-size:revert !important; line-height:revert !important;
     letter-spacing:revert !important;
   }
   ========================================================================== */
