/**
 * @license EUPL-1.2+
 * Copyright Gemeente Amsterdam
 */

@use "../../common/breakpoint" as *;
@use "../../common/hyphenation" as *;
@use "../../common/text-rendering" as *;

@mixin reset-dl {
  margin-block: 0;
}

@mixin reset-dd {
  margin-inline: 0;
}

.ams-description-list {
  box-sizing: border-box;
  color: var(--ams-description-list-color);
  column-gap: var(--ams-description-list-column-gap);
  display: grid;
  font-family: var(--ams-description-list-font-family);
  font-size: var(--ams-description-list-font-size);
  line-height: var(--ams-description-list-line-height);
  row-gap: var(--ams-description-list-row-gap);

  @include reset-dl;
  @include hyphenation;
  @include text-rendering;
}

@media screen and (min-width: $ams-breakpoint-medium) {
  .ams-description-list,
  .ams-description-list__section {
    grid-template-columns: auto 1fr;
  }

  .ams-description-list--narrow,
  .ams-description-list--narrow .ams-description-list__section {
    grid-template-columns: var(--ams-description-list-narrow-grid-template-columns);
  }

  .ams-description-list--medium,
  .ams-description-list--medium .ams-description-list__section {
    grid-template-columns: var(--ams-description-list-medium-grid-template-columns);
  }

  .ams-description-list--wide,
  .ams-description-list--wide .ams-description-list__section {
    grid-template-columns: var(--ams-description-list-wide-grid-template-columns);
  }
}

.ams-description-list--inverse {
  color: var(--ams-description-list-inverse-color);
}

.ams-description-list__term {
  font-weight: var(--ams-description-list-term-font-weight);

  @media screen and (min-width: $ams-breakpoint-medium) {
    grid-column-start: 1;
  }
}

.ams-description-list__section {
  @media screen and (min-width: $ams-breakpoint-medium) {
    column-gap: var(--ams-description-list-column-gap);
    display: grid;
    grid-column: span 2;

    > :only-of-type {
      grid-row: 1 / 9;
    }
  }
}

// Aligns terms and descriptions in a section to the grid of the list.
// The extra class selector increases specificity to match earlier declarations.
.ams-description-list .ams-description-list__section {
  grid-template-columns: subgrid;
}

.ams-description-list__description {
  font-weight: var(--ams-description-list-description-font-weight);
  padding-inline-start: var(--ams-description-list-description-padding-inline-start);

  @include reset-dd;

  @media screen and (min-width: $ams-breakpoint-medium) {
    grid-column-start: 2;
    padding-inline-start: 0;
  }
}
