/*
 * PCHUB Global Typography System v1.8.2
 * Purpose: standardise type scale across legacy, local and v1.2 service layouts
 * without changing page content, SEO metadata or markup.
 */

:root {
  --pchub-font-sans: "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif;
  --pchub-type-body: 1rem;
  --pchub-type-lead: 1.08rem;
  --pchub-type-small: .875rem;
  --pchub-type-eyebrow: .78rem;
  --pchub-type-h1: clamp(2.2rem, 4.2vw, 3.65rem);
  --pchub-type-h1-home: clamp(2.45rem, 4.8vw, 4.15rem);
  --pchub-type-h2: clamp(1.65rem, 3vw, 2.4rem);
  --pchub-type-h3: clamp(1.15rem, 1.8vw, 1.4rem);
  --pchub-line-body: 1.68;
  --pchub-line-heading: 1.16;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body,
button,
input,
select,
textarea,
.pchub-nav-list > li > a,
.pchub-nav .sub-menu a,
.pchub-mobile-nav .pchub-nav-list > li > a,
.pchub-mobile-nav .sub-menu a {
  font-family: var(--pchub-font-sans);
}

body {
  font-size: 16px;
  line-height: var(--pchub-line-body);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--pchub-font-sans);
  line-height: var(--pchub-line-heading);
  text-wrap: balance;
}

h1 { font-size: var(--pchub-type-h1); }
h2 { font-size: var(--pchub-type-h2); }
h3 { font-size: var(--pchub-type-h3); }

/* Keep every service/local/legal hero on one consistent H1 scale. */
.pchub-service-hero h1,
.pchub-service-hero-v12 h1,
.pchub-page-hero h1,
.pchub-page-hero-simple h1 {
  font-size: var(--pchub-type-h1);
  line-height: 1.12;
  font-weight: 750;
  letter-spacing: -.025em;
}

/* Homepage may remain slightly larger while using the same type system. */
.pchub-hero h1 {
  font-size: var(--pchub-type-h1-home);
  line-height: 1.08;
  font-weight: 750;
}

.pchub-service-hero p,
.pchub-service-hero-v12 p,
.pchub-page-hero .pchub-kicker,
.pchub-hero-copy > p {
  font-size: var(--pchub-type-lead);
  line-height: 1.65;
}

/* Standard section hierarchy across local pages and modern service pages. */
.pchub-content-section h2,
.pchub-section h2,
.pchub-section-head h2,
.pchub-faq-layout h2,
.pchub-cta-band h2,
.pchub-selector-heading h2 {
  font-size: var(--pchub-type-h2);
  line-height: 1.18;
  font-weight: 750;
}

.pchub-content-section h3,
.pchub-section h3,
.pchub-feature-card h3,
.pchub-service-card h3 {
  font-size: var(--pchub-type-h3);
  line-height: 1.3;
  font-weight: 700;
}

.pchub-content-section p,
.pchub-section p,
.pchub-faq-panel p,
.pchub-info-box,
.pchub-problem,
.pchub-cta-band p {
  font-size: var(--pchub-type-body);
  line-height: var(--pchub-line-body);
}

.pchub-eyebrow {
  font-size: var(--pchub-type-eyebrow);
  line-height: 1.35;
  font-weight: 800;
}

.pchub-button,
.wp-block-button__link {
  font-size: .95rem;
  line-height: 1.15;
  font-weight: 750;
}

.pchub-button-small { font-size: .875rem; }

.pchub-problem {
  font-weight: 500;
}

.pchub-faq-item button {
  font-size: 1rem;
  line-height: 1.45;
  font-weight: 750;
}

.pchub-related-grid span {
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 750;
}

.pchub-related-grid b {
  font-size: .8rem;
  line-height: 1.35;
}

.pchub-service-card p,
.pchub-feature-card p {
  font-size: .95rem;
  line-height: 1.65;
}

/* Prevent editor/block preset classes from unexpectedly enlarging custom PCHUB HTML sections. */
.pchub-page-content .pchub-service-hero,
.pchub-page-content .pchub-content-section,
.pchub-page-content .pchub-section,
.pchub-page-content .pchub-cta-band {
  font-size: 1rem;
}

@media (max-width: 680px) {
  :root {
    --pchub-type-h1: clamp(1.9rem, 8.5vw, 2.45rem);
    --pchub-type-h1-home: clamp(2.05rem, 9.5vw, 2.9rem);
    --pchub-type-h2: clamp(1.45rem, 6.2vw, 1.95rem);
    --pchub-type-h3: clamp(1.1rem, 4.8vw, 1.3rem);
    --pchub-type-lead: 1rem;
  }

  .pchub-service-hero p,
  .pchub-service-hero-v12 p,
  .pchub-page-hero .pchub-kicker,
  .pchub-hero-copy > p {
    font-size: 1rem;
  }

  .pchub-content-section p,
  .pchub-section p,
  .pchub-faq-panel p,
  .pchub-info-box,
  .pchub-problem,
  .pchub-cta-band p {
    font-size: 1rem;
  }

  .pchub-button,
  .wp-block-button__link {
    font-size: .94rem;
  }
}
