/* 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-visually-hidden,
[data-visually-hidden=true] {
  clip: rect(0, 0, 0, 0) !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  font-size: 0 !important;
  all: initial;
  inset-block-start: 0 !important;
  block-size: 1px !important;
  position: absolute !important;
  inline-size: 1px !important;
  border-width: 0 !important;
  border-style: initial !important;
  border-color: initial !important;
  border-image: initial !important;
  padding: 0 !important;
  pointer-events: none !important;
}

/* Variants for adaptive components like input, select, notification, ... */
@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%));
  }
}
.db-accordion-item summary: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-accordion-item summary:not([data-hide-icon-after=true])::after {
    content: none;
  }
}
@media speech {
  .db-accordion-item summary:not([data-hide-icon-after=true])::after {
    content: none;
  }
}

/**
	Generates 3 types of placeholders, e.g:
	- %db-component-variables-md
	- %db-font-size-md
	- %db-overwrite-font-size-md
 */
.db-accordion-item summary {
  /* 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-accordion-item summary:not([data-hide-icon-after=true])::after {
  --db-icon-after: "chevron_down";
  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-accordion-item summary::after {
  pointer-events: none;
}
@media screen and (prefers-reduced-motion: no-preference) {
  .db-accordion-item summary::after {
    transition: transform var(--db-transition-straight-emotional);
  }
}

.db-accordion-item {
  position: relative;
  inline-size: 100%;
  border-radius: var(--db-border-radius-sm);
  list-style-type: "";
}
@media screen and (prefers-reduced-motion: no-preference) {
  .db-accordion-item > details[open] summary + div {
    animation: accordion-open var(--db-transition-straight-emotional) normal both;
  }
}
.db-accordion-item > details[open] summary::after {
  transform: rotate(-180deg);
}
.db-accordion-item > details[aria-disabled=true] {
  pointer-events: none;
  opacity: 0.4;
}
.db-accordion-item summary + div {
  padding: var(--db-spacing-fixed-md);
  padding-block-end: var(--db-spacing-fixed-lg);
}
.db-accordion-item summary {
  background-color: var(--db-adaptive-bg-basic-level-1-default);
  list-style: none;
  display: flex;
  justify-content: space-between;
  padding: var(--db-spacing-fixed-md);
  gap: var(--db-spacing-fixed-md);
  border-radius: var(--db-border-radius-sm);
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
}
.db-accordion-item summary:hover:not(:disabled, [aria-disabled=true]) {
  cursor: pointer;
  background-color: var(--db-adaptive-bg-basic-level-1-hovered);
}
.db-accordion-item summary:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-accordion-item summary:hover:not(:disabled, [aria-disabled=true]):is(input) {
  cursor: initial;
}
.db-accordion-item summary:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-accordion-item summary:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
  cursor: pointer;
}
.db-accordion-item summary:active:not(:disabled, [aria-disabled=true]) {
  cursor: pointer;
  background-color: var(--db-adaptive-bg-basic-level-1-pressed);
}
.db-accordion-item summary:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-accordion-item summary:active:not(:disabled, [aria-disabled=true]):is(input) {
  cursor: initial;
}
.db-accordion-item summary:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-accordion-item summary:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
  cursor: pointer;
}
.db-accordion-item summary::-webkit-details-marker {
  display: none;
}
.db-accordion-item summary::after {
  inset-inline-end: var(--db-spacing-fixed-sm);
}
.db-accordion-item summary:focus-visible {
  border-radius: var(--db-border-radius-xs);
}
