/* ─── LinkText ────────────────────────────────────────────────────────────────
   Values: site/tokens.css
   Consumers: site/preview/link-text.html + src/components/LinkText/LinkText.tsx
   States: data-attributes only
   ─────────────────────────────────────────────────────────────────────────── */

/* ── Root ───────────────────────────────────────────────────────────────────── */

.ds-link-text {
  display:                   inline-flex;
  align-items:               center;
  cursor:                    pointer;
  text-decoration:           underline;
  text-decoration-thickness: 1px;
  text-underline-offset:     2px;
  font-family:               inherit;
  font-weight:               500;
  border:                    none;
  background:                none;
  padding:                   0;
  border-radius:             2px;
  transition:                color var(--ds-dur-1) var(--ds-ease);
  outline:                   none;
}

.ds-link-text:focus-visible {
  box-shadow: var(--ds-focus-ring);
}

/* ── Sizes ──────────────────────────────────────────────────────────────────── */

.ds-link-text[data-size='sm'] { font-size: var(--ds-lnk-sm-fs); line-height: var(--ds-lnk-sm-lh); gap: var(--ds-lnk-sm-gap); }
.ds-link-text[data-size='md'] { font-size: var(--ds-lnk-md-fs); line-height: var(--ds-lnk-md-lh); gap: var(--ds-lnk-md-gap); }
.ds-link-text[data-size='lg'] { font-size: var(--ds-lnk-lg-fs); line-height: var(--ds-lnk-lg-lh); gap: var(--ds-lnk-lg-gap); }

/* ── Icon slot ──────────────────────────────────────────────────────────────── */

.ds-link-text-icon {
  display:     inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.ds-link-text[data-size='sm'] .ds-link-text-icon { width: var(--ds-lnk-sm-icon); height: var(--ds-lnk-sm-icon); }
.ds-link-text[data-size='md'] .ds-link-text-icon { width: var(--ds-lnk-md-icon); height: var(--ds-lnk-md-icon); }
.ds-link-text[data-size='lg'] .ds-link-text-icon { width: var(--ds-lnk-lg-icon); height: var(--ds-lnk-lg-icon); }

.ds-link-text[data-size='sm'] .ds-link-text-icon svg { stroke-width: var(--ds-lnk-sm-stroke); }
.ds-link-text[data-size='md'] .ds-link-text-icon svg { stroke-width: var(--ds-lnk-md-stroke); }
.ds-link-text[data-size='lg'] .ds-link-text-icon svg { stroke-width: var(--ds-lnk-lg-stroke); }

/* ── Intents ────────────────────────────────────────────────────────────────── */

.ds-link-text[data-intent='info']     { color: var(--ds-info-500); }
.ds-link-text[data-intent='info']:hover,
.ds-link-text[data-intent='info'][data-hovered]     { color: var(--ds-info-700); }
.ds-link-text[data-intent='info'][data-pressed]     { color: var(--ds-info-900); }
.ds-link-text[data-intent='info'][data-visited]     { color: var(--ds-info-900); }

.ds-link-text[data-intent='brand']    { color: var(--ds-brand-500); }
.ds-link-text[data-intent='brand']:hover,
.ds-link-text[data-intent='brand'][data-hovered]    { color: var(--ds-brand-700); }
.ds-link-text[data-intent='brand'][data-pressed]    { color: var(--ds-brand-900); }
.ds-link-text[data-intent='brand'][data-visited]    { color: var(--ds-brand-900); }

.ds-link-text[data-intent='neutral']  { color: var(--ds-neutral-fill); }
.ds-link-text[data-intent='neutral']:hover,
.ds-link-text[data-intent='neutral'][data-hovered]  { color: var(--ds-neutral-fill-hover); }
.ds-link-text[data-intent='neutral'][data-pressed]  { color: var(--ds-neutral-fill-pressed); }
.ds-link-text[data-intent='neutral'][data-visited]  { color: var(--ds-neutral-fill-pressed); }

.ds-link-text[data-intent='positive'] { color: var(--ds-pos-default); }
.ds-link-text[data-intent='positive']:hover,
.ds-link-text[data-intent='positive'][data-hovered] { color: var(--ds-pos-hover); }
.ds-link-text[data-intent='positive'][data-pressed] { color: var(--ds-pos-pressed); }
.ds-link-text[data-intent='positive'][data-visited] { color: var(--ds-pos-pressed); }

.ds-link-text[data-intent='negative'] { color: var(--ds-neg-default); }
.ds-link-text[data-intent='negative']:hover,
.ds-link-text[data-intent='negative'][data-hovered] { color: var(--ds-neg-hover); }
.ds-link-text[data-intent='negative'][data-pressed] { color: var(--ds-neg-pressed); }
.ds-link-text[data-intent='negative'][data-visited] { color: var(--ds-neg-pressed); }

.ds-link-text[data-intent='warning']  { color: var(--ds-warn-500); }
.ds-link-text[data-intent='warning']:hover,
.ds-link-text[data-intent='warning'][data-hovered]  { color: var(--ds-warn-700); }
.ds-link-text[data-intent='warning'][data-pressed]  { color: var(--ds-warn-pressed); }
.ds-link-text[data-intent='warning'][data-visited]  { color: var(--ds-warn-pressed); }

/* ── Focus (explicit state for demos) ──────────────────────────────────────── */

.ds-link-text[data-focus-visible] {
  outline: none;
  box-shadow: var(--ds-focus-ring);
}

/* ── Underline variants ─────────────────────────────────────────────────────── */

.ds-link-text[data-underline='hover'] { text-decoration: none; }
.ds-link-text[data-underline='hover']:hover {
  text-decoration:           underline;
  text-decoration-thickness: 1px;
  text-underline-offset:     2px;
}

.ds-link-text[data-underline='none'] { text-decoration: none; }

/* ── Disabled ───────────────────────────────────────────────────────────────── */

.ds-link-text[data-disabled] {
  color:           var(--ds-disabled-text);
  cursor:          not-allowed;
  pointer-events:  none;
  text-decoration: none;
}

/* ── Reduced motion ─────────────────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  .ds-link-text {
    transition-duration: 0.01ms !important;
    animation-duration:  0.01ms !important;
  }
}
