/* ============================================================================
   PECB -- site-wide typography

   Poppins is the default typeface for the whole site. This file loads on every
   front-end view, after the theme and after Elementor.

   Why !important: Elementor emits its global font settings as
   .elementor-kit-N h1 { font-family: ... }, which outranks a plain h1 selector
   no matter how late this file loads. Only font-family is forced, and only on
   elements that render words.

   Icon fonts are handled by omission, which is the safe way. Font Awesome,
   Elementor eicons and Dashicons all choose their glyph by font-family on the
   element or its ::before. None of those selectors appear below, so their own
   stylesheets keep winning and every icon renders as before. Do not add a
   blanket * rule here, and do not set font-family: inherit on icon classes --
   both replace the glyphs with blank boxes.
   ========================================================================== */

:root {
  --pecb-font: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

html body,
body h1, body h2, body h3, body h4, body h5, body h6,
body p, body li, body dt, body dd,
body blockquote, body figcaption, body caption,
body th, body td,
body label, body legend,
body button, body input, body optgroup, body select, body textarea,
body .elementor-heading-title,
body .elementor-widget-text-editor,
body .elementor-button-text,
body .elementor-nav-menu a,
body .woocommerce-Price-amount,
body .price,
body .button {
  font-family: var(--pecb-font) !important;
}

/* The five coded templates already declare Poppins; this keeps the stack
   identical so nothing shifts between them and the rest of the site. */
.pecb-conference-2026,
.pecb-about,
.pecb-speakers,
.pecb-program,
.pecb-course {
  font-family: var(--pecb-font);
}

/* ============================================================================
   Responsive type scale

   Scoped away from the five coded templates on purpose. Those pages size their
   headings through component classes (all clamp()-based now), and a forced
   element rule here would flatten them -- an h3 meant to be an 18px card title
   would jump to 27px.

   Everything else on the site -- Elementor pages, the blog, WooCommerce -- has
   no such scale, so these rules give it one. !important is needed because
   Elementor emits .elementor-kit-N h2 { ... }, which outranks a bare h2.

   Written flat rather than nested: CSS nesting is unevenly supported on older
   mobile Safari and some minifiers drop the whole block.
   ========================================================================== */


/*
:root {
  --pecb-body-size: 16px;
  --pecb-body-line: 1.65;
}

body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) h1 { font-size: clamp(30px, 6.4vw, 52px) !important; line-height: 1.1 !important; }
body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) h2 { font-size: clamp(26px, 5.4vw, 40px) !important; line-height: 1.16 !important; }
body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) h3 { font-size: clamp(21px, 4.2vw, 30px) !important; line-height: 1.24 !important; }
body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) h4 { font-size: clamp(18px, 3.2vw, 24px) !important; line-height: 1.3 !important; }
body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) h5 { font-size: clamp(16px, 2.6vw, 20px) !important; line-height: 1.35 !important; }
body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) h6 { font-size: clamp(14px, 2.2vw, 17px) !important; line-height: 1.4 !important; }

body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) p,
body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) li,
body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) dd,
body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) dt,
body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) blockquote {
  font-size: var(--pecb-body-size) !important;
  line-height: var(--pecb-body-line) !important;
}

body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) a { font-size: inherit; }
body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) ul,
body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) ol { padding-left: 22px; }
body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) li + li { margin-top: 4px; }

@media (max-width: 1024px) {
  :root { --pecb-body-size: 15.5px; --pecb-body-line: 1.6; }
}

@media (max-width: 560px) {
  :root { --pecb-body-size: 14px; --pecb-body-line: 1.45; }
  body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) h1,
  body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) h2 { letter-spacing: -0.4px !important; }
  body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) ul,
  body:not(.pecb-conference-2026):not(.pecb-about):not(.pecb-speakers):not(.pecb-program):not(.pecb-course) ol { padding-left: 18px; }
}

*/

/* ----------------------------------------------------------- coded templates
   Headings on the five coded pages are handled by their own clamp() values.
   These are the long-form paragraphs that were set at 16-18px and read too
   large on a phone. */


/*@media (max-width: 560px) {*/
/*  .pecb-home-why-body,*/
/*  .pecb-home-training-body,*/
/*  .pecb-home-offer-body,*/
/*  .pecb-about-why-body,*/
/*  .pecb-about-app-body,*/
/*  .pecb-about-story-body,*/
/*  .pecb-about-venue-desc p,*/
/*  .pecb-course-intro-p,*/
/*  .pecb-course-expect-body,*/
/*  .pecb-course-expect-text,*/
/*  .pecb-spk-alumni-body,*/
/*  .pecb-prog-subtext {*/
/*    font-size: 14.5px;*/
/*    line-height: 1.55;*/
/*  }*/

/*  .pecb-home-quote-text,*/
/*  .pecb-home-agenda-desc,*/
/*  .pecb-course-cover,*/
/*  .pecb-faq-answer {*/
/*    font-size: 13.5px;*/
/*    line-height: 1.5;*/
/*  }*/

/*  .pecb-faq-question { font-size: 14px; }*/
/*}*/
