@mixin hu-parent-responsive($class-name, $parents, $modules, $mq-scale, $child-string-to-strip: null) {
  @if index($modules, responsive) {
    @each $parent in $parents {
      $escaped-parent: hu-escape-class-name($parent);
      $escaped-child: if($child-string-to-strip, hu-escape-class-name(hu-string-replace($parent, $child-string-to-strip, "")), $escaped-parent);

      @if (index($modules, base)) {
        .#{$escaped-parent} .#{$escaped-child}__#{hu-escape-class-name("@mq-#{$mq-scale}")}--#{$class-name} {
          @content;
        }
      }

      @if (index($modules, visited)) {
        .#{$escaped-parent} .#{$escaped-child}__#{hu-escape-class-name("@mq-#{$mq-scale}:visited")}--#{$class-name}:visited {
          @content;
        }
      }

      @if (index($modules, focus)) {
        #{$hu-focus-parent} .#{$escaped-parent} .#{$escaped-child}__#{hu-escape-class-name("@mq-#{$mq-scale}:focus")}--#{$class-name}#{$hu-focus-pseudo} {
          @content;
        }
      }

      @if (index($modules, hover)) {
        .#{$escaped-parent} .#{$escaped-child}__#{hu-escape-class-name("@mq-#{$mq-scale}:hover")}--#{$class-name}:hover {
          @content;
        }
      }

      @if (index($modules, hocus)) {
        #{$hu-focus-parent} .#{$escaped-parent} .#{$escaped-child}__#{hu-escape-class-name("@mq-#{$mq-scale}:hocus")}--#{$class-name}#{$hu-focus-pseudo},
        .#{$escaped-parent} .#{$escaped-child}__#{hu-escape-class-name("@mq-#{$mq-scale}:hocus")}--#{$class-name}:hover {
          @content;
        }
      }

      @if (index($modules, active)) {
        .#{$escaped-parent} .#{$escaped-child}__#{hu-escape-class-name("@mq-#{$mq-scale}:active")}--#{$class-name}:active {
          @content;
        }
      }

      @if (index($modules, state)) {
        @each $state in $hu-states {
          .#{$escaped-parent} .#{$state}.#{$escaped-child}__#{hu-escape-class-name("@mq-#{$mq-scale}")}-#{$state}--#{$class-name} {
            @content;
          }
        }
      }
    }
  }
}
