/**
 * MN prose / body hyperlinks — single source of truth.
 *
 * Yellow underline + left→right yellow hover wash.
 * Loaded on the front end and in the block editor so article/page body
 * links stay consistent site-wide. Do not re-declare hover with the
 * `background` shorthand elsewhere (that snaps the fill and kills the
 * enter animation). Prefer editing this file only.
 *
 * Scope: body/content containers only — not nav, cards, footer, buttons.
 */

:is(
  .mn-prose,
  .entry-content,
  .wp-block-post-content,
  .elementor-widget-theme-post-content,
  .ldoc .doc-body
) a:not(:is(
  .wp-block-button__link,
  .wp-element-button,
  .elementor-button,
  .button,
  .mn-btn,
  .doc-cta
)) {
  color: var(--mn-ink, #231614);
  border-bottom: 2px solid var(--mn-yellow, #FFCE00);
  padding-bottom: 1px;
  text-decoration: none;
  box-shadow: none;
  background-color: transparent;
  /* Size-grow wipe. A 200%-wide gradient parked at 100% left a yellow/transparent
     hard stop exactly on the box's left edge; on fractional x positions the
     antialiased edge pixel sampled the yellow side and drew a faint vertical line. */
  background-image: linear-gradient(var(--mn-yellow, #FFCE00), var(--mn-yellow, #FFCE00));
  background-size: 0 100%;
  background-repeat: no-repeat;
  background-position: 0 0;
  transition: background-size 0.35s ease;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

:is(
  .mn-prose,
  .entry-content,
  .wp-block-post-content,
  .elementor-widget-theme-post-content,
  .ldoc .doc-body
) a:not(:is(
  .wp-block-button__link,
  .wp-element-button,
  .elementor-button,
  .button,
  .mn-btn,
  .doc-cta
)):is(:hover, :focus-visible) {
  background-color: transparent;
  background-size: 100% 100%;
}

@media (prefers-reduced-motion: reduce) {
  :is(
    .mn-prose,
    .entry-content,
    .wp-block-post-content,
    .elementor-widget-theme-post-content
  ) a {
    transition: none;
  }
}
