/**
 * File Name: gco-ui-standard-link.css
 * Project: GCO UI CSS Architecture Migration
 * Pattern: gco_standard_link primitive
 *
 * KISS / R-R-R:
 * - One explicit class contract; no global anchor styling.
 * - Standard Link remains distinct from Button.
 * - Only evidenced states are implemented: base, hover, focus-visible.
 * - Shared foreground, radius, hover-state, and focus semantics are reused.
 * - Light-host variation is limited to foreground + interaction surface/ring.
 */

:root {
  /* Geometry retained from the scoped Pattern Library contract. */
  --gco-ui-standard-link-underline-offset: 0.18em;
  --gco-ui-standard-link-inline-padding-x: 0.18em;
  --gco-ui-standard-link-hover-underline-thickness: 3px;

  /* Default / dark-host presentation. */
  --gco-ui-standard-link-foreground: var(--gco-ui-text-on-dark);
  --gco-ui-standard-link-hover-background: var(--gco-ui-color-white-12);
  --gco-ui-standard-link-hover-ring: var(--gco-ui-interaction-hover-ring);

  /* Proven light-host presentation. */
  --gco-ui-standard-link-on-light-foreground: var(--gco-ui-color-brand-dark);

  /*
   * Visited foreground remains pattern-owned because no shared visited-link
   * semantic token exists yet. Conventional visited purple retains strong
   * contrast on white while remaining visually distinct from unvisited links.
   */
  --gco-ui-standard-link-visited-foreground: #d8b4fe;
  --gco-ui-standard-link-on-light-visited-foreground: #551a8b;
  --gco-ui-standard-link-current-visited-foreground:
    var(--gco-ui-standard-link-visited-foreground);

  /*
   * Light-host interaction shading mirrors the dark-host treatment:
   * dark translucent shading on light, white translucent shading on dark.
   */
  --gco-ui-standard-link-on-light-hover-background: var(--gco-ui-color-ink-12);
  --gco-ui-standard-link-on-light-hover-ring: var(--gco-ui-interaction-hover-ring);
}

.gco-ui-standard-link {
  color: var(--gco-ui-standard-link-foreground);
  text-decoration-line: underline;
  text-decoration-style: solid;
  text-decoration-color: currentColor;
  text-decoration-thickness: auto;
  text-underline-offset: var(--gco-ui-standard-link-underline-offset);
  padding-inline: var(--gco-ui-standard-link-inline-padding-x);
  border-radius: var(--gco-ui-radius-1);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.gco-ui-standard-link:hover {
  color: var(--gco-ui-standard-link-foreground);
  text-decoration-thickness: var(--gco-ui-standard-link-hover-underline-thickness);
  background: var(--gco-ui-standard-link-hover-background);
  box-shadow: var(--gco-ui-standard-link-hover-ring);
}

.gco-ui-standard-link:focus-visible {
  color: var(--gco-ui-standard-link-foreground);
  outline: var(--gco-ui-interaction-focus-ring-width) solid var(--gco-ui-interaction-focus-ring-color);
  outline-offset: var(--gco-ui-interaction-focus-ring-offset);
  background: var(--gco-ui-standard-link-hover-background);
  box-shadow: var(--gco-ui-standard-link-hover-ring);
}

.gco-ui-standard-link:visited {
  color: var(--gco-ui-standard-link-current-visited-foreground);
}

.gco-ui-standard-link:visited:hover,
.gco-ui-standard-link:visited:focus-visible {
  color: var(--gco-ui-standard-link-current-visited-foreground);
}

.gco-ui-standard-link--on-light {
  --gco-ui-standard-link-foreground: var(--gco-ui-standard-link-on-light-foreground);
  --gco-ui-standard-link-hover-background: var(--gco-ui-standard-link-on-light-hover-background);
  --gco-ui-standard-link-hover-ring: var(--gco-ui-standard-link-on-light-hover-ring);
  --gco-ui-standard-link-current-visited-foreground:
    var(--gco-ui-standard-link-on-light-visited-foreground);
}

/*
 * Explicit light-host foreground contract.
 * The full class+pseudo selectors intentionally outrank generic theme/browser
 * link rules through normal selector specificity.
 */
.gco-ui-standard-link.gco-ui-standard-link--on-light:link {
  color: var(--gco-ui-standard-link-on-light-foreground);
}

.gco-ui-standard-link.gco-ui-standard-link--on-light:hover,
.gco-ui-standard-link.gco-ui-standard-link--on-light:focus-visible {
  color: var(--gco-ui-standard-link-on-light-foreground);
  background: var(--gco-ui-standard-link-on-light-hover-background);
  box-shadow: var(--gco-ui-standard-link-on-light-hover-ring);
}

.gco-ui-standard-link.gco-ui-standard-link--on-light:visited {
  color: var(--gco-ui-standard-link-current-visited-foreground);
  background: var(--gco-ui-standard-link-on-light-hover-background);
  box-shadow: var(--gco-ui-standard-link-on-light-hover-ring);
}

.gco-ui-standard-link.gco-ui-standard-link--on-light:visited:hover,
.gco-ui-standard-link.gco-ui-standard-link--on-light:visited:focus-visible {
  color: var(--gco-ui-standard-link-current-visited-foreground);
}

@media (forced-colors: active) {
  .gco-ui-standard-link {
    forced-color-adjust: auto;
  }
}
