/**
 * NexSas Content Flow Fix v2
 *
 * Intentionally strong selectors and !important are used because NexSas loads
 * a global Tailwind reset and Elementor can add page-level typography rules.
 */

body.nextsaas-content-fix-active {
  --nscff-body-size: clamp(17px, 1.25vw, 20px);
  --nscff-body-leading: 1.62;
  --nscff-paragraph-gap: 1.05em;
  --nscff-heading-color: inherit;
  --nscff-heading-family: "Inter Tight", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Rich-text roots used by Elementor, Gutenberg, and the theme page template. */
body.nextsaas-content-fix-active .elementor-widget-text-editor .elementor-widget-container,
body.nextsaas-content-fix-active .elementor-widget-html .elementor-widget-container,
body.nextsaas-content-fix-active .elementor-widget-theme-post-content .elementor-widget-container,
body.nextsaas-content-fix-active .entry-content,
body.nextsaas-content-fix-active .wp-block-post-content,
body.nextsaas-content-fix-active .site-main > .main-container {
  font-size: var(--nscff-body-size) !important;
  line-height: var(--nscff-body-leading) !important;
}

/* Paragraph rhythm. */
body.nextsaas-content-fix-active .elementor-widget-text-editor p,
body.nextsaas-content-fix-active .elementor-widget-html p,
body.nextsaas-content-fix-active .elementor-widget-theme-post-content p,
body.nextsaas-content-fix-active .entry-content p,
body.nextsaas-content-fix-active .wp-block-post-content p,
body.nextsaas-content-fix-active .site-main > .main-container > p {
  margin: 0 0 var(--nscff-paragraph-gap) !important;
  padding: 0 !important;
  font-family: inherit !important;
  font-size: 1em !important;
  font-weight: 400 !important;
  line-height: var(--nscff-body-leading) !important;
  letter-spacing: normal !important;
}

/* Strong heading reset. This also overrides accidental monospace/code styling. */
body.nextsaas-content-fix-active .elementor-widget-text-editor :is(h1,h2,h3,h4,h5,h6),
body.nextsaas-content-fix-active .elementor-widget-html :is(h1,h2,h3,h4,h5,h6),
body.nextsaas-content-fix-active .elementor-widget-theme-post-content :is(h1,h2,h3,h4,h5,h6),
body.nextsaas-content-fix-active .entry-content :is(h1,h2,h3,h4,h5,h6),
body.nextsaas-content-fix-active .wp-block-post-content :is(h1,h2,h3,h4,h5,h6),
body.nextsaas-content-fix-active .site-main > .main-container > :is(h1,h2,h3,h4,h5,h6) {
  margin: 1.35em 0 0.48em !important;
  padding: 0 !important;
  color: var(--nscff-heading-color) !important;
  font-family: var(--nscff-heading-family) !important;
  font-style: normal !important;
  font-weight: 500 !important;
  font-variant: normal !important;
  letter-spacing: -0.025em !important;
  text-transform: none !important;
  overflow-wrap: anywhere;
}

body.nextsaas-content-fix-active .elementor-widget-text-editor h1,
body.nextsaas-content-fix-active .elementor-widget-html h1,
body.nextsaas-content-fix-active .elementor-widget-theme-post-content h1,
body.nextsaas-content-fix-active .entry-content h1,
body.nextsaas-content-fix-active .wp-block-post-content h1,
body.nextsaas-content-fix-active .site-main > .main-container > h1 {
  font-size: clamp(42px, 5vw, 72px) !important;
  line-height: 1.04 !important;
  margin-top: 0 !important;
  margin-bottom: 0.55em !important;
}

body.nextsaas-content-fix-active .elementor-widget-text-editor h2,
body.nextsaas-content-fix-active .elementor-widget-html h2,
body.nextsaas-content-fix-active .elementor-widget-theme-post-content h2,
body.nextsaas-content-fix-active .entry-content h2,
body.nextsaas-content-fix-active .wp-block-post-content h2,
body.nextsaas-content-fix-active .site-main > .main-container > h2 {
  font-size: clamp(34px, 3.6vw, 52px) !important;
  line-height: 1.08 !important;
}

body.nextsaas-content-fix-active .elementor-widget-text-editor h3,
body.nextsaas-content-fix-active .elementor-widget-html h3,
body.nextsaas-content-fix-active .elementor-widget-theme-post-content h3,
body.nextsaas-content-fix-active .entry-content h3,
body.nextsaas-content-fix-active .wp-block-post-content h3,
body.nextsaas-content-fix-active .site-main > .main-container > h3 {
  font-size: clamp(28px, 2.8vw, 40px) !important;
  line-height: 1.12 !important;
}

body.nextsaas-content-fix-active .elementor-widget-text-editor h4,
body.nextsaas-content-fix-active .elementor-widget-html h4,
body.nextsaas-content-fix-active .elementor-widget-theme-post-content h4,
body.nextsaas-content-fix-active .entry-content h4,
body.nextsaas-content-fix-active .wp-block-post-content h4,
body.nextsaas-content-fix-active .site-main > .main-container > h4 {
  font-size: clamp(23px, 2.1vw, 31px) !important;
  line-height: 1.18 !important;
}

body.nextsaas-content-fix-active .elementor-widget-text-editor :is(h5,h6),
body.nextsaas-content-fix-active .elementor-widget-html :is(h5,h6),
body.nextsaas-content-fix-active .elementor-widget-theme-post-content :is(h5,h6),
body.nextsaas-content-fix-active .entry-content :is(h5,h6),
body.nextsaas-content-fix-active .wp-block-post-content :is(h5,h6),
body.nextsaas-content-fix-active .site-main > .main-container > :is(h5,h6) {
  font-size: clamp(19px, 1.6vw, 24px) !important;
  line-height: 1.25 !important;
}

/* Elementor sometimes stores heading text inside code tags after Markdown paste. */
body.nextsaas-content-fix-active :is(
  .elementor-widget-text-editor,
  .elementor-widget-html,
  .elementor-widget-theme-post-content,
  .entry-content,
  .wp-block-post-content,
  .site-main > .main-container
) :is(h1,h2,h3,h4,h5,h6) :is(code,kbd,samp,pre) {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  white-space: normal !important;
}

/* Lists. NexSas/Tailwind removes markers and indentation. */
body.nextsaas-content-fix-active .elementor-widget-text-editor :is(ul,ol),
body.nextsaas-content-fix-active .elementor-widget-html :is(ul,ol),
body.nextsaas-content-fix-active .elementor-widget-theme-post-content :is(ul,ol),
body.nextsaas-content-fix-active .entry-content :is(ul,ol),
body.nextsaas-content-fix-active .wp-block-post-content :is(ul,ol),
body.nextsaas-content-fix-active .site-main > .main-container > :is(ul,ol) {
  margin: 0 0 1.15em !important;
  padding-inline-start: 1.45em !important;
  list-style-position: outside !important;
  line-height: var(--nscff-body-leading) !important;
}

body.nextsaas-content-fix-active .elementor-widget-text-editor ul,
body.nextsaas-content-fix-active .elementor-widget-html ul,
body.nextsaas-content-fix-active .elementor-widget-theme-post-content ul,
body.nextsaas-content-fix-active .entry-content ul,
body.nextsaas-content-fix-active .wp-block-post-content ul,
body.nextsaas-content-fix-active .site-main > .main-container > ul {
  list-style-type: disc !important;
}

body.nextsaas-content-fix-active .elementor-widget-text-editor ol,
body.nextsaas-content-fix-active .elementor-widget-html ol,
body.nextsaas-content-fix-active .elementor-widget-theme-post-content ol,
body.nextsaas-content-fix-active .entry-content ol,
body.nextsaas-content-fix-active .wp-block-post-content ol,
body.nextsaas-content-fix-active .site-main > .main-container > ol {
  list-style-type: decimal !important;
}

body.nextsaas-content-fix-active :is(
  .elementor-widget-text-editor,
  .elementor-widget-html,
  .elementor-widget-theme-post-content,
  .entry-content,
  .wp-block-post-content,
  .site-main > .main-container
) li + li {
  margin-top: 0.42em !important;
}

/* Links and common document elements. */
body.nextsaas-content-fix-active :is(
  .elementor-widget-text-editor,
  .elementor-widget-html,
  .elementor-widget-theme-post-content,
  .entry-content,
  .wp-block-post-content,
  .site-main > .main-container
) p a {
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 0.16em !important;
}

body.nextsaas-content-fix-active :is(
  .elementor-widget-text-editor,
  .elementor-widget-html,
  .elementor-widget-theme-post-content,
  .entry-content,
  .wp-block-post-content,
  .site-main > .main-container
) hr {
  margin: 2.2em 0 !important;
  border: 0 !important;
  border-top: 1px solid currentColor !important;
  opacity: 0.35;
}

body.nextsaas-content-fix-active :is(
  .elementor-widget-text-editor,
  .elementor-widget-html,
  .elementor-widget-theme-post-content,
  .entry-content,
  .wp-block-post-content,
  .site-main > .main-container
) blockquote {
  margin: 1.45em 0 !important;
  padding: 0.15em 0 0.15em 1em !important;
  border-inline-start: 3px solid currentColor !important;
}

body.nextsaas-content-fix-active :is(
  .elementor-widget-text-editor,
  .elementor-widget-html,
  .elementor-widget-theme-post-content,
  .entry-content,
  .wp-block-post-content,
  .site-main > .main-container
) :is(pre,table,figure) {
  margin: 1.45em 0 !important;
}

/* Do not add unwanted empty space at the outer edges of a rich-text widget. */
body.nextsaas-content-fix-active :is(
  .elementor-widget-text-editor .elementor-widget-container,
  .elementor-widget-html .elementor-widget-container,
  .elementor-widget-theme-post-content .elementor-widget-container,
  .entry-content,
  .wp-block-post-content
) > :first-child {
  margin-top: 0 !important;
}

body.nextsaas-content-fix-active :is(
  .elementor-widget-text-editor .elementor-widget-container,
  .elementor-widget-html .elementor-widget-container,
  .elementor-widget-theme-post-content .elementor-widget-container,
  .entry-content,
  .wp-block-post-content
) > :last-child {
  margin-bottom: 0 !important;
}

/* Separate Elementor widgets also need vertical rhythm when a page was built as
   one widget per heading/paragraph instead of one rich-text widget. */
body.nextsaas-content-fix-active .site-main .elementor-widget-heading + .elementor-widget-text-editor,
body.nextsaas-content-fix-active .site-main .elementor-widget-heading + .elementor-widget-html {
  margin-top: 0.75rem !important;
}

body.nextsaas-content-fix-active .site-main .elementor-widget-text-editor + .elementor-widget-heading,
body.nextsaas-content-fix-active .site-main .elementor-widget-html + .elementor-widget-heading {
  margin-top: clamp(2rem, 4vw, 3.75rem) !important;
}

@media (max-width: 767px) {
  body.nextsaas-content-fix-active {
    --nscff-body-size: 17px;
    --nscff-body-leading: 1.58;
  }
}
