// Breakpoints.
$breakpoints: (
	xxs: 384px,
	xs: 512px,
	sm: 768px,
	md: 896px,
	lg: 1152px,
	xl: 1280px
);

// Colors.
$black: #013;
$dark: #2a3139;
$darker: #3f454c;
$body: #4d5968;
$medium: #90959f;
$gray: #c6cace;
$border: #eceef1;
$light: #f6f8fa;
$lighter: #fbfcfd;
$white: #fff;
$green: #54d169;
$one: #00c6ff;
$two: #0072ff;
$blue: #1e90ff;
$red: #ff6347;
$accent: mix($one, $two);
$overlay: rgba($dark, 0.5);

// Typography.
$font-family: "Nunito Sans", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, helvetica, arial, sans-serif;
$font-serif: "Georgia", "Apple Garamond", "Baskerville", "Times New Roman", "Droid Serif", "Times", "Source Serif Pro", serif;
$font-mono: "SF Mono", "Monaco", "Inconsolata", "Fira Mono", "Droid Sans Mono", "Source Code Pro", monospace;
$normal: 400;
$bolder: 600;
$bold: 700;

// Misc.
$site-radius: 3px;
$site-border: 1px solid $border;
$site-outline: 2px solid $border;
$site-shadow: 0 2rem 5rem -0.618rem rgba($dark, 0.0618);

// Columns
$margin: 2.564102564102564%;
$one-half: 48.71794871794871%;
$one-third: 31.62393162393162%;
$one-fifth: 17.94871794871794%;
$one-fourth: 23.07692307692307%;
$one-sixth: 14.52991452991453%;
$one-seventh: 12.08791208791208%;
$one-eighth: 10.25641025641025%;
$one-ninth: 8.831908831908832%;
$two-thirds: 65.81196581196582%;
$two-fourths: 48.71794871794871%;
$two-fifths: 38.46153846153846%;
$two-sixths: 31.62393162393162%;
$three-fourths: 74.35897435897436%;
$three-fifths: 58.97435897435897%;
$three-sixths: 48.71794871794871%;
$four-fifths: 79.48717948717948%;
$four-sixths: 65.81196581196582%;
$five-sixths: 82.90598290598291%;

// Media queries.
@mixin breakpoint( $breakpoint ) {

	@if map-has-key($breakpoints, $breakpoint) {

		@media (min-width: #{ map-get($breakpoints, $breakpoint) }) {

			@content;
		}

	} @else if type_of( $breakpoint ) == number and unit( $breakpoint ) == px or unit( $breakpoint ) == em or unit( $breakpoint ) == rem {

		@media (min-width: $breakpoint) {

			@content;
		}

	} @else {

		@warn "No value could be retrieved from `#{$breakpoint}`. "
			+ "Please make sure it is defined in `$breakpoints` map, or it is a valid number with supported unit of px, em or rem.";
	}
}

// Clearfix.
@mixin clearfix {
	clear: both;

	&:before,
	&:after {
		display: block;
		clear: both;
		content: "";
	}
}

// Flexfix.
@mixin flexfix {

	&:before,
	&:after {
		display: none;
	}
}

// Screen reader text.
@mixin screen-reader-text {
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	position: absolute !important;
	width: 0.1rem;
	height: 0.1rem;
	border: 0;
	background-color: $white;
}

// Transitions.
@mixin transition {
	-webkit-transition: all 0.3s ease;
	-moz-transition: all 0.3s ease;
	-o-transition: all 0.3s ease;
	transition: all 0.3s ease;
}

// Gradients.
@mixin gradient {
	background: $two;
	background: -moz-linear-gradient(-45deg, $one 0%, $two 100%);
	background: -webkit-linear-gradient(-45deg, $one 0%, $two 100%);
	background: linear-gradient(135deg, $one 0%, $two 100%);
	filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr="$one", endcolorstr="$two", gradienttype=1);
}

// Overlays.
@mixin overlay {

	&:before {
		display: block !important;
		position: absolute;
		z-index: 1;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: $overlay;
		content: "";
		pointer-events: none;

		@include transition;
	}
}

// Box Shadow.
$box-shadow-blur-radius: 20px;
$box-shadow-opacity: 0.075;
$box-shadow: 0 16px 65px rgba(0,0,0,.18);
