/*******************************
 * Buttons
 ******************************/
/*
 * Applies the complete set of button styles with all desired style variations.
 * This mixin is normally applied to form buttons or links with
 * the desired button classes eg. .button.style-xxx.
 */
/*
 * Contains styles that all of the buttons have in common.
 * Some button styles might opt out or override some of these styles.
 * One benefit of this approach is that all of the buttons will be consistently
 * configurable with the CSS variables defined below.
 */
/*******************************
 * Button Styles
 *
 * Styles should define the way the buttons look. Depending on the project,
 * you may need to optimize each style based on the section / element that
 * a button is used in. For that purpose you can use the predefined CSS
 * variables to easily overwrite the desired colors based on your need.
 ******************************/
/*******************************
 * Inputs
 ******************************/
.accordion-wrapper {
  container: accordion/inline-size;
}

.accordion-group {
  margin-block: var(--element-spacing);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.accordion {
  --accordion-horizontal-padding: /* grow(20, 24) */ clamp(1.25rem, 1.1608527132rem + 0.3875968992vw, 1.5rem);
  --accordion-heading-size: /* grow(18, 20) */ clamp(1.125rem, 1.0804263566rem + 0.1937984496vw, 1.25rem);
  --accordion-content-size: var(--base-font-size);
  border: 1px solid var(--border-color);
  border-radius: var(--rounded);
  color: var(--accordion-foreground);
}
.accordion:has(.accordion-heading:focus-visible) {
  outline: 2px solid var(--focus-color, var(--primary-color));
  outline-offset: var(--focus-offset, 3px);
}
.accordion .accordion-heading {
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  display: inline-flex;
  align-items: center;
  font: inherit;
  line-height: 1;
  letter-spacing: inherit;
  word-spacing: inherit;
  white-space: nowrap;
  background: none;
  color: inherit;
  text-align: left;
  font-weight: bold;
  padding: var(--accordion-horizontal-padding);
  display: flex;
  align-items: center;
  cursor: pointer;
  justify-content: space-between;
  font-size: var(--accordion-heading-size);
  width: 100%;
  white-space: normal;
  line-height: inherit;
  gap: 1rem;
  outline: none;
}
.accordion .accordion-inner {
  padding: 0 var(--accordion-horizontal-padding) var(--accordion-horizontal-padding);
  display: none;
  font-size: var(--accordion-content-size);
  line-height: var(--base-line-height);
}
.accordion .accordion-inner > :first-child {
  margin-top: 0;
}
.accordion .accordion-inner > :last-child {
  margin-bottom: 0;
}
.accordion .accordion-icon-wrapper {
  width: 1.5rem;
  height: 1.5rem;
  flex: 0 0 1.5rem;
  mask-image: url(/wp-content/themes/rattin.ch/dist/15ea68f796ad5bd3.svg);
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: 0.875rem auto;
  background-color: var(--primary-color);
  transition: transform 300ms;
}
@media (prefers-reduced-motion: reduce) {
  .accordion .accordion-icon-wrapper {
    transition: none;
  }
}
.accordion.accordion-open .accordion-icon-wrapper {
  transform: rotate(180deg);
}
