/* ── marina-text-link — Light DOM styles ───────────────────────
   Spec: .claude/marina-design/actions-and-inputs/text-link.md
   DS v2.0.1. Three link colors: standard, black, white.
   Two text sizes: body-regular (16px), body-sm (13px).
   Emphasized variant shows underline in default state.
   ─────────────────────────────────────────────────────────────── */

.marina-text-link {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-sm1);
  font-family: var(--cds-typography-font-family-body-regular-base);
  font-size: var(--cds-typography-font-size-body-regular-base);
  font-weight: var(--cds-typography-font-weight-body-regular-base);
  line-height: var(--cds-typography-line-height-body-regular-base);
  text-decoration: none;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}

/* ── Body-sm text size ─────────────────────────────────────── */
.marina-text-link--body-sm {
  font-family: var(--cds-typography-font-family-body-sm-regular-base);
  font-size: var(--cds-typography-font-size-body-sm-regular-base);
  font-weight: var(--cds-typography-font-weight-body-sm-regular-base);
  line-height: var(--cds-typography-line-height-body-sm-regular-base);
}

/* ── Icon ────────────────────────────────────────────────────── */
.marina-text-link__icon {
  display: inline-flex;
  width: var(--spacing-md1);
  height: var(--spacing-md1);
  flex-shrink: 0;
  fill: currentColor;
}

/* ── Focus ring (shared) ─────────────────────────────────────── */
.marina-text-link:focus-visible {
  outline: var(--cds-border-sm) solid var(--cds-color-utility-wcag-focus-state);
  outline-offset: var(--cds-border-sm);
  border-radius: var(--cds-radius-none);
}

/* ══════════════════════════════════════════════════════════════
   STANDARD link color — uses utility inline-link tokens
   ══════════════════════════════════════════════════════════════ */

.marina-text-link--standard {
  color: var(--cds-color-utility-wcag-inline-link);
}

.marina-text-link--standard:hover:not(.marina-text-link--disabled) {
  color: var(--cds-color-utility-wcag-inline-link-hover);
  text-decoration: underline;
}

.marina-text-link--standard:active:not(.marina-text-link--disabled) {
  color: var(--cds-color-neutral-black);
  text-decoration: underline;
}

.marina-text-link--standard:visited:not(.marina-text-link--disabled) {
  color: var(--cds-color-utility-wcag-inline-link-visited);
}

/* Emphasized — underline in default state, remove on hover */
.marina-text-link--standard.marina-text-link--emphasized {
  text-decoration: underline;
}

.marina-text-link--standard.marina-text-link--emphasized:hover:not(.marina-text-link--disabled) {
  text-decoration: none;
}

.marina-text-link--standard.marina-text-link--emphasized:active:not(.marina-text-link--disabled) {
  text-decoration: none;
}

.marina-text-link--standard.marina-text-link--emphasized:visited:not(.marina-text-link--disabled) {
  text-decoration: underline;
}

/* ══════════════════════════════════════════════════════════════
   BLACK link color — always neutral-black except disabled
   ══════════════════════════════════════════════════════════════ */

.marina-text-link--black {
  color: var(--cds-color-neutral-black);
}

.marina-text-link--black:hover:not(.marina-text-link--disabled) {
  color: var(--cds-color-neutral-black);
  text-decoration: underline;
}

.marina-text-link--black:active:not(.marina-text-link--disabled) {
  color: var(--cds-color-neutral-black);
  text-decoration: underline;
}

.marina-text-link--black:visited:not(.marina-text-link--disabled) {
  color: var(--cds-color-neutral-black);
}

/* Emphasized — black */
.marina-text-link--black.marina-text-link--emphasized {
  text-decoration: underline;
}

.marina-text-link--black.marina-text-link--emphasized:hover:not(.marina-text-link--disabled) {
  text-decoration: none;
}

/* ══════════════════════════════════════════════════════════════
   WHITE link color — always neutral-white except disabled
   ══════════════════════════════════════════════════════════════ */

.marina-text-link--white {
  color: var(--cds-color-neutral-white);
}

.marina-text-link--white:hover:not(.marina-text-link--disabled) {
  color: var(--cds-color-neutral-white);
  text-decoration: underline;
}

.marina-text-link--white:active:not(.marina-text-link--disabled) {
  color: var(--cds-color-neutral-white);
  text-decoration: underline;
}

.marina-text-link--white:visited:not(.marina-text-link--disabled) {
  color: var(--cds-color-neutral-white);
}

/* Emphasized — white */
.marina-text-link--white.marina-text-link--emphasized {
  text-decoration: underline;
}

.marina-text-link--white.marina-text-link--emphasized:hover:not(.marina-text-link--disabled) {
  text-decoration: none;
}

/* ── Disabled (all color variants) ──────────────────────────── */
.marina-text-link--disabled,
.marina-text-link[aria-disabled='true'] {
  color: var(--cds-color-neutral-300);
  text-decoration: none;
  cursor: not-allowed;
  pointer-events: none;
}
