/* Box Sizing Reset  */
* {
	box-sizing: border-box;
}
*:before,
*:after {
	box-sizing: border-box;
}

/* Body Reset */
html {
	font-family: $font-family-base;
	line-height: $line-height-base;
	-webkit-tap-highlight-color: rgba(0,0,0,0);
	font-size: 87.5%;
}
body {
	margin: 0;
	color: $text-color;
	background-color: #fff;
}
html,
body {
	overflow-x: hidden;
}
@media (min-width: $screen-sm-min) {
	html {
		font-size: 100%;
	}
}

/* iOS "clickable elements" fix for role="button" */
[role="button"] {
	cursor: pointer;
}

/* Reset fonts for relevant elements */
input,
button,
select,
textarea {
	max-width: 100%;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

/* Typography */

/* Headings */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
	font-family: $font-family-base;
	font-weight: bold;
	line-height: $line-height-heading;
}
h1, .h1,
h2, .h2,
h3, .h3 {
	margin-top: $line-height-computed;
	margin-bottom: ($line-height-computed / 2);
}
h4, .h4,
h5, .h5,
h6, .h6 {
	margin-top: (2 * $line-height-computed / 3);
	margin-bottom: ($line-height-computed / 2);
}
h1, .h1 {
	font-size: $font-size-h1;
}
h2, .h2 {
	font-size: $font-size-h2;
}
h3, .h3 {
	font-size: $font-size-h3;
}
h4, .h4 {
	font-size: $font-size-h4;
}
h5, .h5 {
	font-size: $font-size-h5;
}
h6, .h6 {
	font-size: $font-size-h6;
}
.lead {
	margin-top: 1.75rem;
	margin-bottom: 1.75rem;
	font-size: 1.125rem;
	font-style: italic;
	line-height: 1.5;
}
.headline {
	margin-top: 2.5rem !important;
	margin-bottom: 2.5rem !important;
	font-size: 2.25rem;
	line-height: 1.13889;
}
/* Body text */
p {
	margin: 0 0 ($line-height-computed / 2);
}
b, strong {
	font-weight: 700;
}
/* Lists */
ul,
ol {
	padding: 0 0 0 1.5rem;
	margin-top: 0;
	margin-bottom: ($line-height-computed / 2);
}
ul ul,
ol ul,
ul ol,
ol ol {
	margin-bottom: 0;
}
/* Links */
a {
	color: $color-1;
	text-decoration: none;
	transition: color 0.1s;
}
a:hover,
a:focus {
	color: lighten($color-1, 10%);
	text-decoration: none;
}
a:focus {
	outline: thin dotted;
	outline: 5px auto -webkit-focus-ring-color;
	outline-offset: -2px;
}
/* Figure */
figure {
	margin: 1rem 0;
}
/* Images */
img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}
/* Horizontal rules */
hr {
	margin-top: $line-height-computed;
	margin-bottom: $line-height-computed;
	border: 0;
	border-top: 1px solid $border-color;
}
/* Abbreviation */
abbr[title],
abbr[data-original-title] {
	cursor: help;
	border-bottom: 1px dotted #777;
}
/* Blockquote */
blockquote {
	@include font-smoothing;
	position: relative;
	padding: 0 0 0 4rem;
	margin: 1.875rem 0 2.5rem;
	border-left: 0;
	font-size: 1.125rem;
}
blockquote::before {
	position: absolute;
	left: -0.3125rem;
	top: -0.4375rem;
	display: block;
	width: 3.5rem;
	height: 3.5rem;
	font-family: $font-family-display;
	font-size: 6.5rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.25rem;
	text-align: center;
	color: $color-1;
	content: '’’';
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
	margin-bottom: 0;
}
blockquote footer {
	display: block;
	color: #666;
}
blockquote footer::before {
	content: '\2014 \00A0'; // em dash, nbsp
}
blockquote footer cite {
	font-style: normal;
}
/* Address */
address {
	margin-bottom: $line-height-computed;
	font-style: normal;
	line-height: $line-height-base;
}
/* Tables */
table, th, td {
	border: 1px solid #ddd;
}
table {
	table-layout: fixed;
	border-width: 1px 0 0 1px;
	border-collapse: separate;
	border-spacing: 0;
	width: 100%;
}
th, td {
	border-width: 0 1px 1px 0;
	vertical-align: baseline;
	text-align: left;
	padding: 0.4em;
}
th {
	font-weight: 700;
}
/* Definition Lists */
dt {
	font-weight: 400;
	color: #444;
}
dd {
	margin: 0 0 1rem;
}
/* Code blocks & Preformatted text */
code,
kbd,
pre,
samp,
tt,
var {
	font-family: $font-family-monospace;
	font-size: 90%;
}
/* Inline code */
code {
	padding: .2rem .4rem;
	border-radius: .25rem;
	font-size: 90%;
	color: #bd4147;
	background-color: #f7f7f9;
}
a > code {
	padding: 0;
	color: inherit;
	background-color: inherit;
}
/* User input typically entered via keyboard */
kbd {
	padding: .2rem .4rem;
	border-radius: .25rem;
	font-size: 90%;
	color: #fff;
	background-color: #333;
}
kbd kbd {
	padding: 0;
	font-size: 100%;
	font-weight: bold;
}
/* Blocks of code */
pre {
	display: block;
	padding: 1rem;
	margin-top: 0;
	margin-bottom: 1.5rem;
	max-width: 100%;
	overflow: auto;
	font-size: 90%;
	line-height: 1.6;
	color: #292b2c;
	background-color: #eee;
}
/* Account for some code outputs that place code tags in pre tags */
pre code {
	padding: 0;
	font-size: inherit;
	color: inherit;
	background-color: transparent;
	border-radius: 0;
}
/* Inline variables */
var {
	font-style: italic;
}

/* Accessibility */
.screen-reader-text {
	@include screen-reader-text;
}
.screen-reader-text:active,
.screen-reader-text:focus {
	position: static;
	width: auto;
	height: auto;
	overflow: visible;
	clip: auto;
	white-space: normal;
}
