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

  @return $number;
}

@function em($pxval, $base: $base-font-size) {
  @if not unitless($pxval) {
    $pxval: strip-unit($pxval);
  }
  @if not unitless($base) {
    $base: strip-unit($base);
  }
  @return ($pxval / $base) * 1em;
}

@function rem($pxval, $base: $base-font-size) {
  @if not unitless($pxval) {
    $pxval: strip-unit($pxval);
  }
  @if not unitless($base) {
    $base: strip-unit($base);
  }
  @return ($pxval / $base) * 1rem;
}

@function lh($pxval) {
  @return strip-unit(em($pxval));
}

// Mixins
@mixin respond-to($breakpoint) {
  $raw-query: map-get($breakpoints, $breakpoint);

  @if $raw-query {
    $query: if(type-of($raw-query) == 'string', unquote($raw-query), inspect($raw-query));

    @media #{$query} {
      @content;
    }
  } @else {
    @error 'No value found for `#{$breakpoint}`. ' + 'Please make sure it is defined in `$breakpoints` map.';
  }
}

// Variables
$base-font-size: 16;
$base-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu,
  Cantarell, 'Helvetica Neue', sans-serif;

$base-bg-color: #fff;

$breakpoints: (
  tiny: (
    min-width: em(320),
  ),
  small: (
    min-width: em(450),
  ),
);
