/* Article: "An AI visibility score is a sample" (resources/trust-an-ai-visibility-score/)
   Only what the shared article styles don't cover: numbered framework lists whose items
   hold more than one paragraph (the four layers, the seven checks). */

.prose > .article-trust-list { margin-top: 1.5em; counter-reset: trust-step; }
.prose > .article-trust-list + * { margin-top: 1.6em; }

.article-trust-list > li {
  --dot: 28px;
  position: relative;
  padding-left: calc(var(--dot) + 16px);
  counter-increment: trust-step;
}
.article-trust-list > li + li { margin-top: 1.35em; }
.article-trust-list > li > p + p { margin-top: .85em; }
.article-trust-list strong { color: var(--ink); font-weight: 600; }

/* Numbered marker, centred on the first line of text */
.article-trust-list > li::before {
  content: counter(trust-step);
  position: absolute; left: 0; top: calc(.86em - var(--dot) / 2);
  width: var(--dot); height: var(--dot);
  display: grid; place-items: center;
  border-radius: 50%;
  border: 1px solid var(--accent-line);
  background: var(--accent-soft);
  color: var(--accent-text);
  font-size: 13.5px; font-weight: 600; line-height: 1; letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}

/* Hairline that joins one marker to the next */
.article-trust-list > li:not(:last-child)::after {
  content: "";
  position: absolute; left: calc(var(--dot) / 2 - .5px);
  top: calc(.86em + var(--dot) / 2 + 6px);
  bottom: calc(var(--dot) / 2 + 6px - 1.35em - .86em);
  width: 1px;
  background: var(--line);
}

@media (min-width: 480px) {
  .article-trust-list > li { --dot: 32px; padding-left: calc(var(--dot) + 20px); }
  .article-trust-list > li::before { font-size: 14px; }
}

/* Pull quote: a short line, so give it display weight between hairlines.
   It repeats a line from the body, so it is aria-hidden in the markup. */
.prose > .pull-quote.article-trust-pull {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: start;
  margin-block: clamp(36px, 5vw, 48px) 0; padding: 28px 0; border-left: 0; border-block: 1px solid var(--line);
  font-size: clamp(25px, 4.4vw, 40px); line-height: 1.16; font-weight: 600; letter-spacing: -.03em;
}
.prose > .article-trust-pull + * { margin-top: clamp(36px, 5vw, 48px); }
.article-trust-pull p { text-wrap: balance; }
.article-trust-pull .icon { width: 26px; height: 26px; margin-top: .06em; color: var(--accent); }
@media (min-width: 768px) {
  .prose > .pull-quote.article-trust-pull { gap: 20px; padding-block: 40px; }
  .article-trust-pull .icon { width: 36px; height: 36px; margin-top: .02em; }
}

/* Sources: publisher, linked title, then date and domain, numbered in a quiet column */
.ats-sources .ats-src-list {
  counter-reset: ats-src; display: block; margin: 16px 0 0; padding: 0; list-style: none;
  font-size: 14px; line-height: 1.5; color: var(--muted);
}
.ats-src-list > li {
  position: relative; counter-increment: ats-src;
  padding: 16px 0 16px 36px; border-top: 1px solid var(--line-soft);
}
.ats-src-list > li:first-child { border-top: 0; padding-top: 6px; }
.ats-src-list > li:last-child { padding-bottom: 0; }
.ats-src-list > li::before {
  content: counter(ats-src, decimal-leading-zero);
  position: absolute; left: 0; top: 16px;
  font-size: 13px; line-height: 1.5; font-weight: 500; color: var(--muted);
  font-variant-numeric: tabular-nums; letter-spacing: .02em;
}
.ats-src-list > li:first-child::before { top: 6px; }
.ats-src-pub { margin: 0; font-size: 13px; font-weight: 500; color: var(--ink-2); text-wrap: pretty; }
.ats-src-by { font-weight: 400; color: var(--muted); }
.sources a.ats-src-title {
  display: inline-block; margin-top: 4px;
  padding-block: 9px; margin-block: -5px -9px; /* 40px tap target, same layout (was 22px) */
  color: var(--ink); font-size: 15.5px; font-weight: 500; line-height: 1.45; letter-spacing: -.005em;
  text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--line-strong); text-underline-offset: .22em;
  text-wrap: balance;
  transition: color var(--t-fast), text-decoration-color var(--t-fast);
}
.ats-src-title .icon { margin-left: 5px; vertical-align: -1px; color: var(--muted); transition: color var(--t-fast), transform var(--t-fast) var(--ease); }
@media (hover: hover) {
  .sources a.ats-src-title:hover { color: var(--accent-text); text-decoration-color: currentColor; }
  .sources a.ats-src-title:hover .icon { color: currentColor; transform: translate(1px, -1px); }
}
.ats-src-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; margin: 4px 0 0; font-size: 13px; }
.ats-src-meta .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--faint); }
@media (min-width: 768px) {
  .ats-src-list > li { padding-left: 48px; }
  .sources a.ats-src-title { font-size: 16px; }
}
