/**
 * Custom Typography Styles - Real Brand Type Scale
 *
 * >>> See hshelix-child/AI-STYLE-GUIDE.md for the full design-token
 * reference and example prompts before making styling changes. <<<
 *
 * Supplemental typography classes not covered by theme.json's h1-h6
 * element styles (Subtitle1/2, body1/2, inline-text-link, caption1,
 * button text, OVERLINE).
 *
 * @package HS_Helix_Child
 */

/* ==========================================================================
   PORTED BLOCK FONT TOKENS - Kolmac-ported block typography
   ========================================================================== */

/**
 * --font-heading / --font-body
 *
 * The blocks ported from kolmac-theme (hero, cta-button, cta-banner,
 * cta-block, our-programs-block, services-list, testimonials, etc.) use
 * these two custom properties for their font-family declarations, defined
 * generically (system font stack) in hshelix/src/styles/settings/_variables.css.
 * Point them at the real brand fonts here:
 */
:root {
  --font-heading: var(--wp--preset--font-family--crimson-pro);
  --font-body: var(--wp--preset--font-family--instrument-sans);

  /* Desktop type scale (theme.json + Figma). Mobile overrides below. */
  --helix-h1-size: 3.73333rem;
  --helix-h1-weight: 300;
  --helix-h1-leading: 120%;
  --helix-h1-tracking: -0.056rem;

  --helix-h2-size: 3.2rem;
  --helix-h2-weight: 300;
  --helix-h2-leading: 120%;
  --helix-h2-tracking: -0.048rem;

  --helix-h3-size: 2.66667rem;
  --helix-h3-weight: 300;
  --helix-h3-leading: 120%;
  --helix-h3-tracking: -0.04rem;

  --helix-h4-size: 2.13333rem;
  --helix-h4-weight: 300;
  --helix-h4-leading: 120%;
  --helix-h4-tracking: -0.032rem;

  --helix-h5-size: 1.6rem;
  --helix-h5-weight: 400;
  --helix-h5-leading: 120%;
  --helix-h5-tracking: -0.024rem;

  --helix-h6-size: 1.33333rem;
  --helix-h6-weight: 500;
  --helix-h6-leading: 130%;
  --helix-h6-tracking: 0.00667rem;

  --helix-subtitle-1-size: 1.2rem;
  --helix-subtitle-1-weight: 500;
  --helix-subtitle-1-leading: 140%;
  --helix-subtitle-1-tracking: 0.012rem;

  --helix-subtitle-2-size: 1.06667rem;
  --helix-subtitle-2-weight: 500;
  --helix-subtitle-2-leading: 150%;
  --helix-subtitle-2-tracking: 0.016rem;
}

/* ==========================================================================
   Subtitle Styles
   ========================================================================== */

/**
 * Subtitle 1 (19.2px / 500 / 140%)
 */
.has-subtitle-1-font-size,
.subtitle-1 {
  font-family: var(--wp--preset--font-family--instrument-sans);
  font-size: var(--helix-subtitle-1-size);
  font-weight: var(--helix-subtitle-1-weight);
  line-height: var(--helix-subtitle-1-leading);
  letter-spacing: var(--helix-subtitle-1-tracking);
}

.has-subtitle-1-font-size:not(.has-text-color),
.subtitle-1:not(.has-text-color) {
  color: var(--Primary, #142D52);
}

/**
 * Subtitle 2 (17.07px / 500 / 150%)
 */
.has-subtitle-2-font-size,
.subtitle-2 {
  font-family: var(--wp--preset--font-family--instrument-sans);
  font-size: var(--helix-subtitle-2-size);
  font-weight: var(--helix-subtitle-2-weight);
  line-height: var(--helix-subtitle-2-leading);
  letter-spacing: var(--helix-subtitle-2-tracking);
}

.has-subtitle-2-font-size:not(.has-text-color),
.subtitle-2:not(.has-text-color) {
  color: var(--Primary, #142D52);
}

/* ==========================================================================
   Body Text Variants
   ========================================================================== */

/**
 * body1 - Primary body copy (17.07px / 400 / 150%)
 */
.has-body-1-font-size,
body,
p {
  font-family: var(--wp--preset--font-family--instrument-sans);
  font-size: 1.06667rem;
  font-weight: 400;
  line-height: 150%;
  letter-spacing: 0.016rem;
}

/* Default body text color — skip when editor assigns .has-text-color */
body:not(.has-text-color),
p:not(.has-text-color),
.has-body-1-font-size:not(.has-text-color) {
  color: var(--Text, #2F3337);
}

/**
 * body2 - Secondary body copy (14.93px / 400 / 150%)
 */
.has-body-2-font-size {
  font-family: var(--wp--preset--font-family--instrument-sans);
  font-size: 0.93333rem;
  font-weight: 400;
  line-height: 150%;
  letter-spacing: 0.014rem;
}

.has-body-2-font-size:not(.has-text-color) {
  color: var(--Text, #2F3337);
}

/* ==========================================================================
   Caption Styles
   ========================================================================== */

/**
 * caption1 - Small caption text (12.8px / 400 / 150%)
 */
.has-caption-1-font-size,
figcaption,
.wp-element-caption,
.wp-block-image figcaption {
  font-family: var(--wp--preset--font-family--instrument-sans);
  font-size: 0.8rem;
  font-weight: 400;
  line-height: 150%;
  letter-spacing: 0.012rem;
}

/* ==========================================================================
   Overline Styles
   ========================================================================== */

/**
 * OVERLINE - Section labels (12.8px / 500 / 150%, uppercase)
 */
.overline,
.overline-medium,
.overline-small {
  font-family: var(--wp--preset--font-family--instrument-sans);
  font-size: 0.8rem;
  font-weight: 500;
  font-style: normal;
  line-height: 150%;
  letter-spacing: 0.072rem;
  text-transform: uppercase;
  color: var(--Primary, #142D52);
}

/* ==========================================================================
   Link Styles (inline text links in body copy)
   ========================================================================== */

/**
 * inline-text-link (Instrument Sans 1.06667rem / 500)
 * Body-copy links only — excludes buttons (.wp-block-button__link, .hs-btn*).
 * Underlines via text-decoration (not border-bottom). Parent bare `a` is a
 * reset only — no border/underline there. See AI-STYLE-GUIDE.md → Inline text links.
 */
.wp-block-post-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link),
.entry-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link) {
  font-family: var(--wp--preset--font-family--instrument-sans);
  font-weight: 500;
  font-size: 1.06667rem;
  line-height: 150%;
  letter-spacing: 0.016rem;
  color: var(--Text, #2F3337);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  text-decoration-color: currentColor;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

/* Visited — Accent-700 text + matching underline (currentColor).
 * Browsers block removing text-decoration on :visited; keep the line in sync. */
.wp-block-post-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):visited,
.entry-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):visited {
  color: var(--Accent-700, #B6401F);
  text-decoration-color: currentColor;
}

/* Hover — Accent-500, no underline */
.wp-block-post-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):hover,
.entry-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):hover {
  color: var(--Accent-500, #EB6C48);
  text-decoration: none;
}

/* Focus — Text color, Secondary underline */
.wp-block-post-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):focus-visible,
.entry-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):focus-visible {
  color: var(--Text, #2F3337);
  text-decoration: underline;
  text-decoration-color: var(--Secondary, #91BFEA);
  outline: none;
}

/* Pressed — same as default */
.wp-block-post-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):active,
.entry-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):active {
  color: var(--Text, #2F3337);
  text-decoration: underline;
  text-decoration-color: currentColor;
}

/* Disabled */
.wp-block-post-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):disabled,
.wp-block-post-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link)[aria-disabled="true"],
.entry-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):disabled,
.entry-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link)[aria-disabled="true"] {
  color: var(--Gray-Medium, #767676);
  text-decoration: none;
  cursor: not-allowed;
  pointer-events: none;
}

/**
 * Inline links inside headings / block titles — keep the parent heading type
 * (do not force body-link 1.06667rem / Instrument Sans / weight 500).
 * Must repeat the full :not() chain so specificity beats the body-link rule (0,9,1).
 */
.wp-block-post-content :is(h1, h2, h3, h4, h5, h6) a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link),
.entry-content :is(h1, h2, h3, h4, h5, h6) a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link),
.wp-block-post-content .hsb-faq-question__text a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link),
.entry-content .hsb-faq-question__text a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link),
.wp-block-post-content .hsb-icon-link-grid__menu-title a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link),
.entry-content .hsb-icon-link-grid__menu-title a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link) {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
}

.wp-block-post-content :is(h1, h2, h3, h4, h5, h6) a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):hover,
.entry-content :is(h1, h2, h3, h4, h5, h6) a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):hover,
.wp-block-post-content .hsb-faq-question__text a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):hover,
.entry-content .hsb-faq-question__text a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):hover,
.wp-block-post-content .hsb-icon-link-grid__menu-title a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):hover,
.entry-content .hsb-icon-link-grid__menu-title a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):hover {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: var(--Accent-500, #EB6C48);
  text-decoration: underline;
}

.wp-block-post-content :is(h1, h2, h3, h4, h5, h6) a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):visited,
.entry-content :is(h1, h2, h3, h4, h5, h6) a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):visited,
.wp-block-post-content .hsb-faq-question__text a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):visited,
.entry-content .hsb-faq-question__text a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):visited,
.wp-block-post-content .hsb-icon-link-grid__menu-title a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):visited,
.entry-content .hsb-icon-link-grid__menu-title a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):visited {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  text-decoration-color: currentColor;
}

.wp-block-post-content :is(h1, h2, h3, h4, h5, h6) a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):focus-visible,
.entry-content :is(h1, h2, h3, h4, h5, h6) a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):focus-visible,
.wp-block-post-content .hsb-faq-question__text a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):focus-visible,
.entry-content .hsb-faq-question__text a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):focus-visible,
.wp-block-post-content .hsb-icon-link-grid__menu-title a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):focus-visible,
.entry-content .hsb-icon-link-grid__menu-title a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):focus-visible {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--Secondary, #91BFEA);
  outline: none;
}

.wp-block-post-content :is(h1, h2, h3, h4, h5, h6) a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):active,
.entry-content :is(h1, h2, h3, h4, h5, h6) a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):active,
.wp-block-post-content .hsb-faq-question__text a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):active,
.entry-content .hsb-faq-question__text a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):active,
.wp-block-post-content .hsb-icon-link-grid__menu-title a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):active,
.entry-content .hsb-icon-link-grid__menu-title a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]):not(.hsb-physician-card):not(.hsb-icon-link-grid__card-hit):not(.hsb-icon-link-grid__menu-hit):not(.physician-list-item-image):not(.physician-list-item-button):not(.physician-list-item-name__link):active {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  text-decoration: underline;
  text-decoration-color: currentColor;
}

/**
 * Larger inline links (18px variant)
 */
.has-large-font-size a:not(.wp-block-button__link):not(.wp-element-button):not([class*="hs-btn"]) {
  font-size: 1.125rem;
  line-height: 1.6875rem;
}

/* ==========================================================================
   Button Text
   ========================================================================== */

/**
 * button text (17.07px / 500 / 150%)
 * Colors/background TBD - see "Buttons, icons and Toggle defaults" follow-up.
 */
.wp-block-button__link,
.wp-element-button {
  font-family: var(--wp--preset--font-family--instrument-sans);
  font-size: 1.06667rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.02133rem;
  color: var(--Primary, #142D52);
}

/* ==========================================================================
   Utility Classes
   ========================================================================== */

/**
 * Font family utilities
 * For quick font family switching without custom CSS
 */
.font-barlow {
  font-family: var(--wp--preset--font-family--instrument-sans);
}

.font-outfit {
  font-family: var(--wp--preset--font-family--instrument-sans);
}

.font-rem {
  font-family: var(--wp--preset--font-family--crimson-pro);
}

/**
 * Text transform utilities
 */
.text-uppercase {
  text-transform: uppercase;
}

.text-lowercase {
  text-transform: lowercase;
}

.text-capitalize {
  text-transform: capitalize;
}

/**
 * Font style utilities
 */
.text-italic {
  font-style: italic;
}

.text-normal {
  font-style: normal;
}

/* Physician single: name is the page h1 but keeps the h3 type scale */
.physician-meta-container h1.physician-name {
  font-size: 2.66667rem;
  font-style: normal;
  font-weight: 300;
  line-height: 120%;
  letter-spacing: -0.04rem;
}

/* ==========================================================================
   Mobile type scale — Figma (max-width: 768px)
   Colors unchanged. Brand fonts stay Crimson Pro / Instrument Sans.
   ========================================================================== */

@media (max-width: 768px) {
  :root {
    --helix-h1-size: 2.66667rem;
    --helix-h1-weight: 300;
    --helix-h1-leading: 110%;
    --helix-h1-tracking: -0.04rem;

    --helix-h2-size: 2.13333rem;
    --helix-h2-weight: 300;
    --helix-h2-leading: 110%;
    --helix-h2-tracking: -0.032rem;

    --helix-h3-size: 1.6rem;
    --helix-h3-weight: 400;
    --helix-h3-leading: 110%;
    --helix-h3-tracking: -0.024rem;

    --helix-h4-size: 1.33333rem;
    --helix-h4-weight: 300;
    --helix-h4-leading: 110%;
    --helix-h4-tracking: -0.02rem;

    --helix-h5-size: 1.2rem;
    --helix-h5-weight: 400;
    --helix-h5-leading: 110%;
    --helix-h5-tracking: -0.018rem;

    --helix-h6-size: 1.2rem;
    --helix-h6-weight: 500;
    --helix-h6-leading: 120%;
    --helix-h6-tracking: 0.006rem;

    --helix-subtitle-1-size: 1.06667rem;
    --helix-subtitle-1-leading: 140%;
    --helix-subtitle-1-tracking: 0.01067rem;

    --helix-subtitle-2-size: 0.93333rem;
    --helix-subtitle-2-leading: 150%;
    --helix-subtitle-2-tracking: 0.014rem;
  }

  /* Mobile type scale only — do not apply these on desktop. */
  body h1,
  body h1.wp-block-heading,
  .editor-post-title__input,
  .wp-block-post-title,
  .entry-title,
  .home-hero-block .home-hero-content .home-hero-heading,
  .hero-split-content h1,
  .hero-headline-block h1 {
    font-size: var(--helix-h1-size);
    font-style: normal;
    font-weight: var(--helix-h1-weight);
    line-height: var(--helix-h1-leading);
    letter-spacing: var(--helix-h1-tracking);
  }

  body h2,
  body h2.wp-block-heading {
    font-size: var(--helix-h2-size);
    font-style: normal;
    font-weight: var(--helix-h2-weight);
    line-height: var(--helix-h2-leading);
    letter-spacing: var(--helix-h2-tracking);
  }

  body h3,
  body h3.wp-block-heading,
  .physician-meta-container h1.physician-name {
    font-size: var(--helix-h3-size);
    font-style: normal;
    font-weight: var(--helix-h3-weight);
    line-height: var(--helix-h3-leading);
    letter-spacing: var(--helix-h3-tracking);
  }

  body h4,
  body h4.wp-block-heading {
    font-size: var(--helix-h4-size);
    font-style: normal;
    font-weight: var(--helix-h4-weight);
    line-height: var(--helix-h4-leading);
    letter-spacing: var(--helix-h4-tracking);
  }

  body h5,
  body h5.wp-block-heading {
    font-size: var(--helix-h5-size);
    font-style: normal;
    font-weight: var(--helix-h5-weight);
    line-height: var(--helix-h5-leading);
    letter-spacing: var(--helix-h5-tracking);
  }

  body h6,
  body h6.wp-block-heading {
    font-size: var(--helix-h6-size);
    font-style: normal;
    font-weight: var(--helix-h6-weight);
    line-height: var(--helix-h6-leading);
    letter-spacing: var(--helix-h6-tracking);
  }

  body h1,
  body h2,
  body h3,
  body h4,
  body h5,
  body h6,
  .hsb-content-image__heading,
  .hsb-cvimc__heading,
  .hsb-cvimc__media-heading,
  .hsb-3col-cards__intro-title,
  .hsb-pill-tabs__heading,
  .hsb-pill-tabs__panel-title,
  .hsb-faq-block__heading,
  .hsb-faq-single__heading,
  .hsb-text-callout__heading,
  .hsb-testimonials-block__heading,
  .hsb-card-grid__heading,
  .hsb-table-highlight__heading,
  .hsb-blog-posts__heading,
  .hsb-blog-archive__featured-heading,
  .location-finder-heading,
  .hsb-services-list__heading,
  .hsb-physicians-carousel__heading,
  .hsb-stats-bar__title,
  .hsb-stats-callout__title {
    white-space: normal;
    overflow-wrap: break-word;
    word-wrap: break-word;
    max-width: 100%;
  }
}
