/*=====================
  Blog Article Content
  Scope: single blog posts only (Post » Single Blog template).
  Loaded from functions.php on is_singular('post').
  Everything here targets the rendered post copy, not the page chrome.
=====================*/
.single-post .elementor-widget-theme-post-content {
  /* Root-relative so the cap is identical for body copy and headings.
     47rem is roughly 70 characters at the 18px body size. */
  --ix-prose: 47rem;
  --ix-surface: var(--e-global-color-40c312a);
  color: var(--e-global-color-text);
  font-size: 18px;
  line-height: 1.7;
}

/* Measure: cap running text for readability, let tables and media use the full column */
.single-post .elementor-widget-theme-post-content :is(p, ul, ol, blockquote, h2, h3, h4, h5, h6, hr) {
  max-width: var(--ix-prose);
}

/* Long URLs and unbroken strings must never widen the column */
.single-post .elementor-widget-theme-post-content :is(p, li, blockquote, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}

/*-- Paragraphs --*/
.single-post .elementor-widget-theme-post-content p {
  margin: 0 0 1.25em;
  color: var(--e-global-color-text);
  line-height: 1.7;
  text-wrap: pretty;
}

.single-post .elementor-widget-theme-post-content p:last-child {
  margin-bottom: 0;
}

.single-post .elementor-widget-theme-post-content strong,
.single-post .elementor-widget-theme-post-content b {
  color: var(--e-global-color-secondary);
  font-weight: 700;
}

/*-- Headings: a step below the page headings, with air above rather than below --*/
.single-post .elementor-widget-theme-post-content :is(h2, h3, h4, h5, h6) {
  color: var(--e-global-color-secondary);
  font-family: var(--e-global-typography-secondary-font-family), Sans-serif;
  text-wrap: balance;
  scroll-margin-top: 32px;
}

.single-post .elementor-widget-theme-post-content h2 {
  font-size: clamp(1.5rem, 1.32rem + 0.75vw, 1.75rem);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.01em;
  margin: 3.5rem 0 0.75rem;
}

.single-post .elementor-widget-theme-post-content h3 {
  font-size: clamp(1.25rem, 1.16rem + 0.38vw, 1.375rem);
  font-weight: 700;
  line-height: 1.3;
  margin: 2.5rem 0 0.625rem;
}

.single-post .elementor-widget-theme-post-content h4 {
  font-size: 1.1875rem;
  font-weight: 700;
  line-height: 1.4;
  margin: 2rem 0 0.5rem;
}

.single-post .elementor-widget-theme-post-content h5 {
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.45;
  margin: 2rem 0 0.5rem;
}

.single-post .elementor-widget-theme-post-content h6 {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.01em;
  color: var(--e-global-color-e3ece7b);
  margin: 2rem 0 0.5rem;
}

.single-post .elementor-widget-theme-post-content > .elementor-widget-container > :first-child {
  margin-top: 0;
}

/*-- Lists --*/
.single-post .elementor-widget-theme-post-content :is(ul, ol) {
  margin: 0 0 1.5em;
  padding-inline-start: 1.4em;
}

.single-post .elementor-widget-theme-post-content li {
  margin-bottom: 0.5em;
  line-height: 1.7;
  color: var(--e-global-color-text);
}

.single-post .elementor-widget-theme-post-content li:last-child {
  margin-bottom: 0;
}

.single-post .elementor-widget-theme-post-content li::marker {
  color: var(--e-global-color-primary);
}

.single-post .elementor-widget-theme-post-content li > :is(ul, ol) {
  margin: 0.5em 0 0;
}

/*-- Links in copy: dark text carries the contrast, the brand rule carries the affordance --*/
.single-post .elementor-widget-theme-post-content :is(p, li, td, th, blockquote, figcaption) a {
  color: var(--e-global-color-secondary);
  text-decoration: underline;
  text-decoration-color: var(--e-global-color-primary);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  transition: text-decoration-color 0.15s ease, text-decoration-thickness 0.15s ease;
}

.single-post .elementor-widget-theme-post-content :is(p, li, td, th, blockquote, figcaption) a:hover {
  text-decoration-color: var(--e-global-color-accent);
  text-decoration-thickness: 3px;
}

.single-post .elementor-widget-theme-post-content a:focus-visible {
  outline: 2px solid var(--e-global-color-primary);
  outline-offset: 3px;
  border-radius: 2px;
}

/*-- Pull quotes --*/
.single-post .elementor-widget-theme-post-content blockquote {
  margin: 2rem 0;
  padding: 0;
  border: 0;
  max-width: 40rem;
  font-size: 1.125em;
  font-weight: 600;
  line-height: 1.5;
  color: var(--e-global-color-secondary);
}

.single-post .elementor-widget-theme-post-content blockquote p {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
  margin-bottom: 0.5em;
}

.single-post .elementor-widget-theme-post-content blockquote p:last-child {
  margin-bottom: 0;
}

.single-post .elementor-widget-theme-post-content blockquote cite {
  display: block;
  margin-top: 0.75em;
  font-size: 0.8125em;
  font-style: normal;
  font-weight: 500;
  color: var(--e-global-color-e3ece7b);
}

/*-- Tables: horizontal rules only, and always reachable on narrow screens --*/
.single-post .elementor-widget-theme-post-content .ix-table-scroll {
  margin: 2rem 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  /* Edge shading appears only while there is more table to scroll to */
  background:
    linear-gradient(to right, var(--ix-surface) 30%, rgba(249, 249, 249, 0)) 0 0 / 28px 100% no-repeat local,
    linear-gradient(to left, var(--ix-surface) 30%, rgba(249, 249, 249, 0)) 100% 0 / 28px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%, rgba(16, 27, 45, 0.1), rgba(16, 27, 45, 0)) 0 0 / 14px 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%, rgba(16, 27, 45, 0.1), rgba(16, 27, 45, 0)) 100% 0 / 14px 100% no-repeat scroll;
}

.single-post .elementor-widget-theme-post-content .ix-table-scroll:focus-visible {
  outline: 2px solid var(--e-global-color-primary);
  outline-offset: 2px;
}

.single-post .elementor-widget-theme-post-content table {
  width: auto;
  min-width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
  line-height: 1.5;
}

/* Gutenberg's fixed layout squeezes short cells onto two lines; size to content instead */
.single-post .elementor-widget-theme-post-content table.has-fixed-layout {
  table-layout: auto;
}

.single-post .elementor-widget-theme-post-content :is(th, td) {
  padding: 0.75rem 1rem;
  text-align: start;
  border: 0;
}

.single-post .elementor-widget-theme-post-content th {
  vertical-align: bottom;
  color: var(--e-global-color-secondary);
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
  background: none;
  border-bottom: 2px solid var(--e-global-color-dac3a62);
}

.single-post .elementor-widget-theme-post-content td {
  vertical-align: top;
  color: var(--e-global-color-text);
  border-bottom: 1px solid var(--e-global-color-dac3a62);
}

.single-post .elementor-widget-theme-post-content tbody tr:last-child td {
  border-bottom: 0;
}

/* Row banding: set both states so the inherited neutral gray cannot leak through */
.single-post .elementor-widget-theme-post-content tbody tr:nth-child(odd) :is(td, th) {
  background: none;
}

.single-post .elementor-widget-theme-post-content tbody tr:nth-child(even) :is(td, th) {
  background: var(--e-global-color-2fcf8d4);
}

.single-post .elementor-widget-theme-post-content caption {
  caption-side: bottom;
  padding-top: 0.75rem;
  text-align: start;
  font-size: 0.8125rem;
  color: var(--e-global-color-e3ece7b);
}

/*-- Media --*/
.single-post .elementor-widget-theme-post-content :is(figure, .wp-block-image) {
  margin: 2rem 0;
}

.single-post .elementor-widget-theme-post-content img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
}

.single-post .elementor-widget-theme-post-content figcaption {
  margin-top: 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--e-global-color-e3ece7b);
}

/*-- Rules --*/
.single-post .elementor-widget-theme-post-content hr {
  margin: 3rem 0;
  border: 0;
  border-top: 1px solid var(--e-global-color-dac3a62);
}

/*-- Code --*/
.single-post .elementor-widget-theme-post-content code {
  padding: 0.15em 0.4em;
  border-radius: 4px;
  background: var(--e-global-color-69a7cb7);
  color: var(--e-global-color-secondary);
  font-size: 0.875em;
}

.single-post .elementor-widget-theme-post-content pre {
  margin: 2rem 0;
  padding: 1rem 1.25rem;
  overflow-x: auto;
  border-radius: 10px;
  background: var(--e-global-color-7bdca6e);
  color: var(--e-global-color-e0a4856);
  font-size: 0.875rem;
  line-height: 1.6;
}

.single-post .elementor-widget-theme-post-content pre code {
  padding: 0;
  background: none;
  color: inherit;
}

/*-- Narrow screens --*/
@media (max-width: 767px) {
  .single-post .elementor-widget-theme-post-content {
    font-size: 17px;
  }

  .single-post .elementor-widget-theme-post-content h2 {
    margin-top: 2.75rem;
  }

  .single-post .elementor-widget-theme-post-content h3 {
    margin-top: 2.25rem;
  }

  .single-post .elementor-widget-theme-post-content :is(h4, h5, h6) {
    margin-top: 2rem;
  }

  .single-post .elementor-widget-theme-post-content :is(th, td) {
    padding: 0.625rem 0.75rem;
  }
}
