@function strip-unit($value) {
  @if type-of($value) == 'number' and not unitless($value) {
    @return $value / ($value * 0 + 1);
  }
  @return $value;
}

@function fluid($min, $max, $min-vw: 390px, $max-vw: 1200px) {
  $min-px:    strip-unit($min);
  $max-px:    strip-unit($max);
  $min-vw-px: strip-unit($min-vw);
  $max-vw-px: strip-unit($max-vw);

  $slope:        ($max-px - $min-px) / ($max-vw-px - $min-vw-px);
  $slope-vw:     $slope * 100;
  $intercept-px: $min-px - $slope * $min-vw-px;

  @return clamp(
    #{rem($min-px)},
    #{rem($intercept-px)} + #{$slope-vw}vw,
    #{rem($max-px)}
  );
}
