/* Meridian · Accordion
   Container: surface card on rounded-lg with an outline-variant border; items are
   separated by 1px dividers. Panels animate height via the grid-template-rows
   0fr → 1fr trick (the sanctioned exception) while the content fades; the chevron
   rotates 180° on open. State class .dm-accordion__item--open is toggled by JS. */

.dm-accordion {
  background: var(--dm-color-surface);
  border: 1px solid var(--dm-color-outline-variant);
  border-radius: var(--dm-rounded-lg);
  overflow: hidden; /* clips item hover washes to the rounded corners */
}

.dm-accordion__item + .dm-accordion__item {
  border-top: 1px solid var(--dm-color-outline-variant);
}

/* Heading wrapper keeps the document outline; the button does the styling */
.dm-accordion__heading {
  font: inherit;
  letter-spacing: normal;
}

.dm-accordion__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--dm-space-md);
  width: 100%;
  padding: var(--dm-space-md) var(--dm-space-lg);
  font: var(--dm-type-h4);
  text-align: left;
  color: var(--dm-color-on-surface);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: background-color var(--dm-duration-fast) var(--dm-ease-standard);
}

.dm-accordion__trigger:hover {
  background: var(--dm-color-surface-variant);
}

/* Keep the focus ring inside the clipped container */
.dm-accordion__trigger:focus-visible {
  outline-offset: -2px;
  border-radius: var(--dm-rounded-sm);
}

.dm-accordion__chevron {
  flex: none;
  width: 18px;
  height: 18px;
  color: var(--dm-color-on-surface-variant);
  transition: transform var(--dm-duration-slow) var(--dm-ease-emphasized);
}

.dm-accordion__trigger[aria-expanded="true"] .dm-accordion__chevron {
  transform: rotate(180deg);
}

/* ---- Panel: height via grid rows, content via opacity ---------------------- */

.dm-accordion__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--dm-duration-slow) var(--dm-ease-emphasized);
}

.dm-accordion__panel-inner {
  min-height: 0;
  overflow: hidden;
}

.dm-accordion__content {
  padding: 0 var(--dm-space-lg) var(--dm-space-lg);
  font: var(--dm-type-body-md);
  color: var(--dm-color-on-surface-variant);
  opacity: 0;
  transition: opacity var(--dm-duration-base) var(--dm-ease-standard);
}

.dm-accordion__item--open .dm-accordion__panel {
  grid-template-rows: 1fr;
}

.dm-accordion__item--open .dm-accordion__content {
  opacity: 1;
}
