/*******************************
 * 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
 ******************************/
.row {
  display: flex;
  margin-block: /* grow(32, 64) */ clamp(2rem, 1.2868217054rem + 3.1007751938vw, 4rem);
}
.row:is(.section-item-row > *) {
  --margin: calc(/* grow(32, 64) */ clamp(2rem, 1.2868217054rem + 3.1007751938vw, 4rem) - var(--layout-gap));
}
.row:is(.section-item-row > *):not(:first-child > *) {
  margin-top: var(--margin) !important;
}
.row:is(.section-item-row > *):not(:last-child > *) {
  margin-bottom: var(--margin) !important;
}
.row > div > :first-child, .row > div > link:first-child + * {
  margin-top: 0;
}
.row > div > :last-child {
  margin-bottom: 0;
}
.row > div > :is(.lead-text, .lead-text-small):first-child > :first-child {
  margin-top: 0;
}
.row > div > :is(.lead-text, .lead-text-small):last-child > :last-child {
  margin-bottom: 0;
}
.row.row-align-start {
  align-items: flex-start;
}
.row.row-align-center {
  align-items: center;
}
.row.row-align-end {
  align-items: flex-end;
}
.row.row-justify-start {
  justify-content: flex-start;
}
.row.row-justify-center {
  justify-content: center;
}
.row.row-justify-end {
  justify-content: flex-end;
}
.row.row-justify-spread {
  justify-content: space-between;
}
.row.row-wrap {
  flex-wrap: wrap;
}
.row.row-gap-default {
  gap: var(--layout-gap);
}
.row.row-gap-large {
  gap: calc(2 * var(--layout-gap));
}
