/* 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 */
/* Opacity */
/* Transitions */
/* Screen sizes */
/* Container sizes */
/* Variants for adaptive components like input, select, notification, ... */
@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

/**
	Generates 3 types of placeholders, e.g:
	- %db-component-variables-md
	- %db-font-size-md
	- %db-overwrite-font-size-md
 */
@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

.db-link {
  font: var(--db-type-body-md);
  /* stylelint-disable-next-line at-rule-prelude-no-invalid,layer-name-pattern */
}
@layer variables {
  .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);
  }
}

@layer variables {}

@layer variables {}

.db-link[data-size=small] {
  font: var(--db-type-body-sm);
  /* stylelint-disable-next-line at-rule-prelude-no-invalid,layer-name-pattern */
}
@layer variables {
  .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);
  }
}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

@layer variables {}

/* Use for body tags like <p> */
/* Use for headline tags like <h1> */
.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 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%));
  }
}
@keyframes rotate {
  100% {
    transform: rotate(1turn);
  }
}
.db-link[data-content=internal]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after, .db-link[data-content=external]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after {
  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", "icon-font-fallback")) !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;
  overflow: clip;
  vertical-align: var(--db-icon-vertical-align, middle);
  block-size: var(--db-icon-font-size, 1.5rem);
  aspect-ratio: 1;
  flex-shrink: 0;
  content: var(--db-icon, attr(data-icon));
}
@supports (content: ""/"") {
  .db-link[data-content=internal]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after, .db-link[data-content=external]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after {
    content: var(--db-icon, attr(data-icon))/"";
  }
}
@media aural {
  .db-link[data-content=internal]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after, .db-link[data-content=external]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after {
    content: none;
  }
}
@media speech {
  .db-link[data-content=internal]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after, .db-link[data-content=external]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after {
    content: none;
  }
}

/**
 * @mixin screen-min-max
 * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
 */
.db-link a:not([hidden]), .db-link:not([hidden]) {
  display: inline-block;
}
.db-link a:not([data-wrap=true]), .db-link:not([data-wrap=true]) {
  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: var(--db-overwrite-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: var(--db-overwrite-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-wrap=true], [data-variant=inline]) {
  white-space: nowrap;
}
[data-variant=inline].db-link:not([hidden]) {
  display: inline;
}
.db-link:focus-visible {
  border-radius: var(--db-border-radius-xs);
}
[aria-disabled=true].db-link {
  opacity: var(--db-opacity-md);
  pointer-events: none;
}

.db-link {
  --db-icon-margin-start: var(--db-spacing-fixed-2xs);
  --db-icon-vertical-align: top;
}
.db-link[data-content=internal]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after {
  --db-icon-trailing: "arrow_right";
  margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
  content: var(--db-icon-trailing, attr(data-icon-trailing));
}
@supports (content: ""/"") {
  .db-link[data-content=internal]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after {
    content: var(--db-icon-trailing, attr(data-icon-trailing))/"";
  }
}
.db-link[data-content=external]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after {
  --db-icon-trailing: "arrow_up_right";
  margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
  content: var(--db-icon-trailing, attr(data-icon-trailing));
}
@supports (content: ""/"") {
  .db-link[data-content=external]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after {
    content: var(--db-icon-trailing, attr(data-icon-trailing))/"";
  }
}
.db-link[data-variant=brand] {
  color: var(--db-brand-on-bg-basic-emphasis-80-default);
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
}
.db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]) {
  cursor: var(--db-overwrite-cursor, pointer);
  color: var(--db-brand-on-bg-basic-emphasis-80-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: var(--db-overwrite-cursor, pointer);
  color: var(--db-brand-on-bg-basic-emphasis-80-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);
}
