/**
	Generates 3 types of placeholders, e.g:
	- %db-component-variables-md
	- %db-font-size-md
	- %db-overwrite-font-size-md
 */
.db-link {
  /* Those variables are only for components to calculate heights and change icons */
  --db-icon-font-weight: var(--db-base-body-icon-weight-md);
  --db-icon-font-size: var(--db-base-body-icon-font-size-md);
  --db-base-line-height: var(--db-type-body-line-height-md);
  --db-base-font-size: var(--db-type-body-font-size-md);
  line-height: var(--db-type-body-line-height-md);
  font-size: var(--db-type-body-font-size-md);
}

.db-link[data-size=small] {
  /* Those variables are only for components to calculate heights and change icons */
  --db-icon-font-weight: var(--db-base-body-icon-weight-sm);
  --db-icon-font-size: var(--db-base-body-icon-font-size-sm);
  --db-base-line-height: var(--db-type-body-line-height-sm);
  --db-base-font-size: var(--db-type-body-font-size-sm);
  line-height: var(--db-type-body-line-height-sm);
  font-size: var(--db-type-body-font-size-sm);
}

/* Use sizing's for fixed heights/widths e.g. the db-button has always a fixed height */
/* Use fixed spacings for all kind of distances (margin, padding, ...) */
/* The primary use-case for responsive spacings are
paddings/gaps in an application e.g. the <main> should have a responsive padding. */
/* Elevation */
/* Border */
/* Transitions */
.db-link {
  transition: outline var(--db-transition-duration-extra-fast), color var(--db-transition-straight-emotional);
}

@keyframes show-right-to-left {
  from {
    transform: translateX(110%);
  }
  to {
    transform: translateX(0%);
  }
}
@keyframes hide-right-to-left {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(110%);
  }
}
@keyframes show-left-to-right {
  from {
    transform: translateX(-110%);
  }
  to {
    transform: translateX(0%);
  }
}
@keyframes hide-left-to-right {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(-110%);
  }
}
@keyframes show-bottom-to-top {
  from {
    transform: translateY(110%);
  }
  to {
    transform: translateY(0%);
  }
}
@keyframes hide-bottom-to-top {
  from {
    transform: translateY(0%);
  }
  to {
    transform: translateY(110%);
  }
}
@keyframes show-top-to-bottom {
  from {
    transform: translateY(-110%);
  }
  to {
    transform: translateY(0%);
  }
}
@keyframes hide-top-to-bottom {
  from {
    transform: translateY(0%);
  }
  to {
    transform: translateY(-110%);
  }
}
@keyframes accordion-open {
  0% {
    opacity: 0;
    transform: translateY(-10%);
  }
  100% {
    opacity: 1;
    transform: translateY(0%);
  }
}
@keyframes popover-animation {
  0% {
    opacity: 0;
    transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
  }
  100% {
    opacity: 1;
    transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
  }
}
/* Variants for adaptive components like input, select, notification, ... */
.db-link[data-content=internal]:not([data-hide-icon-after=true])::after, .db-link[data-content=external]:not([data-hide-icon-after=true])::after {
  content: var(--db-icon, attr(data-icon));
  content: var(--db-icon, attr(data-icon))/"";
  -webkit-alt: "";
  alt: "";
  color: var(--db-icon-color, inherit);
  display: inline-block;
  /*** icon - placeholder ***/
  font-family: var(--db-icon-font-family, var(--db-icon-default-font-family, "db-ux-default")) !important;
  font-size: var(--db-icon-font-size, 1.5rem);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-variant: normal;
  font-weight: var(--db-icon-font-weight, normal);
  line-height: 1;
  /* stylelint-disable-next-line declaration-property-value-no-unknown */
  speak: none;
  /* stylelint-disable-next-line declaration-property-value-no-unknown */
  speak: never;
  text-transform: none;
  vertical-align: middle;
  block-size: var(--db-icon-font-size, 1.5rem);
  inline-size: var(--db-icon-font-size, 1.5rem);
}
@media aural {
  .db-link[data-content=internal]:not([data-hide-icon-after=true])::after, .db-link[data-content=external]:not([data-hide-icon-after=true])::after {
    content: none;
  }
}
@media speech {
  .db-link[data-content=internal]:not([data-hide-icon-after=true])::after, .db-link[data-content=external]:not([data-hide-icon-after=true])::after {
    content: none;
  }
}

.db-link a, .db-link {
  display: inline-block;
  block-size: var(--db-sizing-sm);
}

.db-link {
  color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
}
.db-link:hover:not(:disabled, [aria-disabled=true]) {
  cursor: pointer;
  color: color-mix(in srgb, transparent 25%, var(--db-adaptive-on-bg-basic-emphasis-100-default));
}
.db-link:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-link:hover:not(:disabled, [aria-disabled=true]):is(input) {
  cursor: initial;
}
.db-link:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-link:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
  cursor: pointer;
}
.db-link:active:not(:disabled, [aria-disabled=true]) {
  cursor: pointer;
  color: color-mix(in srgb, transparent 50%, var(--db-adaptive-on-bg-basic-emphasis-100-default));
}
.db-link:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-link:active:not(:disabled, [aria-disabled=true]):is(input) {
  cursor: initial;
}
.db-link:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-link:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
  cursor: pointer;
}

.db-link {
  inline-size: fit-content;
  text-underline-position: from-font;
  text-decoration-thickness: 0.0625rem;
  text-decoration-line: underline;
}
.db-link:not([data-variant=inline]) {
  white-space: nowrap;
}
[data-variant=inline].db-link {
  display: inline;
}
.db-link:focus-visible {
  border-radius: var(--db-border-radius-xs);
}
[aria-disabled=true].db-link {
  opacity: 0.4;
  pointer-events: none;
}

.db-link[data-content=internal]:not([data-hide-icon-after=true])::after {
  --db-icon-after: "arrow_right";
  content: var(--db-icon-after, attr(data-icon-after));
  content: var(--db-icon-after, attr(data-icon-after))/"";
  margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
}
.db-link[data-content=internal]:not([data-hide-icon-after=true])::after {
  vertical-align: top;
}
.db-link[data-content=external]:not([data-hide-icon-after=true])::after {
  --db-icon-after: "arrow_up_right";
  content: var(--db-icon-after, attr(data-icon-after));
  content: var(--db-icon-after, attr(data-icon-after))/"";
  margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
}
.db-link[data-content=internal], .db-link[data-content=external] {
  --db-icon-margin-start: var(--db-spacing-fixed-2xs);
}
.db-link[data-content=internal]::after, .db-link[data-content=external]::after {
  /* stylelint-disable-next-line db-ui/use-spacings */
  margin-inline-start: var(--db-icon-margin-start);
}
.db-link[data-variant=brand] {
  color: var(--db-brand-bg-inverted-contrast-high-default);
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
}
.db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]) {
  cursor: pointer;
  color: var(--db-brand-bg-inverted-contrast-high-hovered);
}
.db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(input) {
  cursor: initial;
}
.db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
  cursor: pointer;
}
.db-link[data-variant=brand]:active:not(:disabled, [aria-disabled=true]) {
  cursor: pointer;
  color: var(--db-brand-bg-inverted-contrast-high-pressed);
}
.db-link[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-link[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(input) {
  cursor: initial;
}
.db-link[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-link[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
  cursor: pointer;
}
.db-link[data-size=small] {
  --db-icon-margin-start: var(--db-spacing-fixed-3xs);
}
