/* Presentation only: preserve every existing font size, weight and layout. */
:root,
body,
body.ff-pure-rose,
body.theme-florial,
body .elementor,
body [class*="elementor-kit-"] {
  --tff-sfpro-font: "SF Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --font: var(--tff-sfpro-font) !important;
  --ff-pure-font: var(--tff-sfpro-font) !important;
  --e-global-typography-primary-font-family: "SF Pro" !important;
  --e-global-typography-secondary-font-family: "SF Pro" !important;
  --e-global-typography-text-font-family: "SF Pro" !important;
  --e-global-typography-accent-font-family: "SF Pro" !important;
  font-family: var(--tff-sfpro-font) !important;
  font-optical-sizing: auto;
}

/* Text containers with their own Florial/Elementor typography declarations. */
body :is(
  #page, #bwp-main, #main-content, #ff-live-header, #ff-live-footer,
  #ff-live-announcement, .ff-live-content, .ff-preview-content,
  .entry-content, .entry-summary, .woocommerce, .woocommerce-page,
  .woocommerce-notices-wrapper, .woocommerce-message, .woocommerce-info,
  .woocommerce-error, .woocommerce-Tabs-panel,
  .woocommerce-product-details__short-description, .ff-full-short-description,
  .elementor-widget-text-editor, .elementor-heading-title,
  .elementor-widget-container, .elementor-button-text,
  .product-name, .product-title, .product_title, .price, .amount,
  .woocommerce-result-count, .button-filter-toggle,
  .bwp-filter-ajax, .bwp-widget-banner, .breadcrumb,
  .form-login-register, .login-form, .register-form,
  .select2-container, .select2-dropdown, .select2-results,
  .ui-datepicker, .ui-datepicker-title, .ui-timepicker-wrapper,
  #sb_instagram, .sbi_header_text, .sbi_caption, .sbi_follow_btn,
  .mc4wp-form, .mc4wp-response, .wpcf7, .wpcf7-response-output,
  .weglot-container, .wg-default, .country-selector
) {
  font-family: var(--tff-sfpro-font) !important;
  font-optical-sizing: auto;
}

/* Cover visible text and controls, including text spans with inline families.
   Icon font elements and all pseudo-element font declarations remain intact. */
body :is(
  h1, h2, h3, h4, h5, h6, p, a, span, label, legend, fieldset,
  button, input, textarea, select, option, optgroup,
  ul, ol, li, dl, dt, dd, table, caption, th, td,
  blockquote, address, summary, figcaption, small, strong, b, em,
  time, cite, q, mark, ins, del, output
):not(:is(
  .fa, .fas, .far, .fal, .fab, .fad, .fat, .fak,
  [class^="fa-"], [class*=" fa-"],
  .dashicons, [class^="dashicons-"], [class*=" dashicons-"],
  [class^="eicon-"], [class*=" eicon-"],
  [class^="icon-"], [class*=" icon-"],
  [class^="icon_"], [class*=" icon_"],
  .material-icons, .material-icons-outlined, .material-icons-round,
  .material-icons-sharp, .material-icons-two-tone,
  .material-symbols-outlined, .material-symbols-rounded, .material-symbols-sharp,
  .glyphicon, [class^="glyphicon-"], [class*=" glyphicon-"],
  .pe-7s, [class^="pe-7s-"], [class*=" pe-7s-"],
  .icomoon, .typcn, [class^="typcn-"], [class*=" typcn-"],
  [data-icon], [aria-hidden="true"]
)) {
  font-family: var(--tff-sfpro-font) !important;
  font-optical-sizing: auto;
}

body input::placeholder,
body textarea::placeholder {
  font-family: var(--tff-sfpro-font);
}

/* Wati renders its welcome text in divs with a separate widget font. */
body #whatsapp-chat-widget,
body #whatsapp-chat-widget :is(div,p,a,span,button,input,textarea) {
  font-family: var(--tff-sfpro-font) !important;
  font-optical-sizing: auto;
}
