/* Self-hosted Manrope: heading-only styling. Keep existing sizes, spacing and weights.
 * Font copyright/license and acquisition hashes: ../fonts/manrope/OFL.txt and SOURCE.json.
 * Public marketing pages, chat content, navigation and form controls keep their fonts.
 */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/manrope/manrope-cyrillic-ext-v20.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/manrope/manrope-cyrillic-v20.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/manrope/manrope-greek-v20.woff2") format("woff2");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/manrope/manrope-vietnamese-v20.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/manrope/manrope-latin-ext-v20.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/manrope/manrope-latin-v20.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --la-heading-font: "Manrope", Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --la-heading-body-font: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Select actual titles, never a container that also holds descriptions or actions.
 * The exclusions protect rich-text messages and titles embedded in controls.
 */
body:not(.la-public-page) :is(h1, h2, h3, h4, h5, h6):not(:where(.la-chat-person *, .la-message *, .la-ticket-message *, .la-portal-message *, button *, [role="tab"] *, label *)),
body:not(.la-public-page) .la-mini-heading > span > b {
  font-family: var(--la-heading-font);
}

/* Long translated titles must be able to wrap beside icons/close controls.
 * "anywhere" also reduces their intrinsic flex minimum; no font-size change.
 */
body:not(.la-public-page) :is(.la-section-title, .la-dialog-head) h2 {
  overflow-wrap: anywhere;
}

/* Optional notes and interactive/status children of a title are not titles.
 * Preserve real italic glyphs for explicitly emphasized title fragments.
 */
body:not(.la-public-page) :is(h1, h2, h3, h4, h5, h6) :is(small, em, button, input, select, textarea, [role="tab"], .la-button, .la-help-trigger, .la-badge, .la-pill, .la-visitor-identity-badge, .lap-optional) {
  font-family: var(--la-heading-body-font);
}
