@mixin margin($block-start, $inline-end, $block-end, $inline-start) {
  @include margin-left($inline-start);
  @include margin-right($inline-end);

  margin-top: $block-start;
  margin-bottom: $block-end;
}

@mixin padding($block-start, $inline-end, $block-end, $inline-start) {
  @include padding-left($inline-start);
  @include padding-right($inline-end);

  padding-top: $block-start;
  padding-bottom: $block-end;
}

@mixin margin-left($value) {
  @supports (margin-inline-start: $value) {
    margin-inline-start: $value;
  }

  @supports not (margin-inline-start: $value) {
    margin-left: $value;
  }
}

@mixin margin-right($value) {
  @supports (margin-inline-end: $value) {
    margin-inline-end: $value;
  }

  @supports not (margin-inline-end: $value) {
    margin-right: $value;
  }
}

@mixin padding-left($value) {
  @supports (padding-inline-start: $value) {
    padding-inline-start: $value;
  }

  @supports not (padding-inline-start: $value) {
    padding-left: $value;
  }
}

@mixin padding-right($value) {
  @supports (padding-inline-end: $value) {
    padding-inline-end: $value;
  }

  @supports not (padding-inline-end: $value) {
    padding-right: $value;
  }
}
