/* SEO Factory article blocks. Served at /blocks.css.
   Everything is scoped under .sf-article so the host theme is never reset.
   Each site can override the custom properties below in its own CSS. */
.sf-article {
  --_accent: var(--sf-accent, #1d4ed8); /* with --sf-on-accent #fff: 6.7:1 */
  --_radius: var(--sf-radius, 12px);
  --_surface: var(--sf-surface, color-mix(in srgb, currentColor 6%, transparent));
  --_line: var(--sf-line, color-mix(in srgb, currentColor 18%, transparent));
  --_text: var(--sf-text, inherit);
  color: var(--_text);
  font-family: var(--sf-font, inherit);
  line-height: 1.75;
  max-inline-size: var(--sf-measure, 72ch);
  margin-inline: auto;
  overflow-wrap: anywhere;
}
.sf-article header h1 { line-height: 1.25; margin-block: 0 .75em; }
.sf-article :where(h2, h3) { line-height: 1.3; margin-block: 1.6em .5em; }
.sf-article :where(p, ul, ol) { margin-block: 0 1em; }
.sf-article :where(ul, ol) { padding-inline-start: 1.4em; }
.sf-article a { color: var(--_accent); text-underline-offset: .2em; }
.sf-article :where(a, summary, button):focus-visible {
  outline: 3px solid var(--_accent);
  outline-offset: 2px;
  border-radius: 4px;
}

.sf-article figure { margin: 1.5em 0; }
.sf-article figure img { display: block; max-inline-size: 100%; block-size: auto; border-radius: var(--_radius); }
.sf-article figcaption { font-size: .875em; opacity: .8; margin-block-start: .5em; }
.sf-article figcaption .credit { display: block; font-size: .85em; }

.sf-article table {
  display: block;
  overflow-x: auto;
  inline-size: 100%;
  border-collapse: collapse;
  margin-block: 1.5em;
  font-size: .95em;
}
.sf-article :where(th, td) { border: 1px solid var(--_line); padding: .5em .75em; text-align: start; vertical-align: top; }
.sf-article thead th { background: var(--_surface); }
.sf-article caption { caption-side: top; text-align: start; font-weight: 600; padding-block-end: .5em; }

.sf-article .callout {
  margin-block: 1.5em;
  padding: 1em 1.25em;
  border-radius: var(--_radius);
  background: var(--_surface);
  border-inline-start: 4px solid var(--_accent);
}
.sf-article .callout-warning { border-inline-start-color: var(--sf-warning, #c2410c); }
.sf-article .callout p:last-child { margin-block-end: 0; }

.sf-article .faq details { border-block-end: 1px solid var(--_line); padding-block: .75em; }
.sf-article .faq summary {
  cursor: pointer;
  font-weight: 600;
  min-block-size: 44px;
  display: flex;
  align-items: center;
}

.sf-article pre {
  overflow-x: auto;
  padding: 1em;
  border-radius: var(--_radius);
  background: var(--_surface);
  direction: ltr;
  text-align: left;
}
.sf-article code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .9em; }

.sf-article sup.ref { font-size: .7em; }
.sf-article .refs { font-size: .8em; opacity: .8; }
.sf-article footer.sources { margin-block-start: 2.5em; font-size: .9em; border-block-start: 1px solid var(--_line); padding-block-start: 1em; }

/* CTA blocks */
.sf-article .cta {
  margin-block: 1.75em;
  padding: 1.25em;
  border-radius: var(--_radius);
  background: var(--_surface);
  border: 1px solid var(--_line);
}
.sf-article .cta-banner { border-inline-start: 4px solid var(--_accent); }
.sf-article .cta-inline { padding: .75em 1em; background: transparent; }
.sf-article .cta-title { font-size: 1.1em; margin-block-end: .5em; }
.sf-article .cta-disclosure { font-size: .8em; opacity: .75; margin-block-end: .5em; }
.sf-article .cta-coupon code {
  padding: .15em .5em;
  border: 1px dashed var(--_accent);
  border-radius: 6px;
  direction: ltr;
  unicode-bidi: isolate;
}
.sf-article .cta p:last-child { margin-block-end: 0; }
.sf-article a.cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: 44px;
  padding-inline: 1.25em;
  border-radius: var(--sf-button-radius, var(--_radius));
  background: var(--_accent);
  color: var(--sf-on-accent, #fff);
  font-weight: 700;
  text-decoration: none;
}
.sf-article a.cta-button:hover { filter: brightness(1.08); }
.sf-article .cta-inline a.cta-button { background: transparent; color: var(--_accent); padding-inline: 0; text-decoration: underline; }
.sf-article .sf-form { margin-block-start: .75em; }

/* Author card */
.sf-article .author-card {
  display: flex;
  gap: 1em;
  align-items: flex-start;
  margin-block: 2em;
  padding: 1em;
  border-radius: var(--_radius);
  background: var(--_surface);
}
.sf-article .author-card img { inline-size: 64px; block-size: 64px; border-radius: 50%; object-fit: cover; flex: none; }
.sf-article .author-name { margin-block-end: .25em; }
.sf-article .author-role { display: block; font-size: .85em; opacity: .8; font-weight: 400; }

@media (prefers-reduced-motion: reduce) {
  .sf-article * { scroll-behavior: auto; transition: none; }
}
