/**
 * Base (generic/_base.scss)
 */

/* ----- General ----- */
html {
	font-size: 14px;
	@include box-sizing(border-box);
	-webkit-tap-highlight-color: transparent;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;

	@media (min-width: $screen-sm-min) {
		font-size: 16px;
	}
}

body {
	color: $color-dark;
	font-family: $font-family-primary;
	font-size: $font-size-base;
	line-height: $line-height-base;
}

/* ----- Everything ----- */
* {
	&,
	&::before,
	&::after {
		@include box-sizing(inherit);
	}
}

/* ----- Headings ----- */
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
	font-family: $font-family-secondary;
	font-weight: 400;
	line-height: $line-height-headings;
	margin: 2.5rem 0 .9375rem 0;

	&[id] {
		position: relative;
	}

	& + & {
		margin-top: 0;
	}
}

h1, .h1 {
	font-size: $font-size-h1;
	font-weight: 700;
}

h2, .h2 {
	font-size: $font-size-h2;
	font-weight: 700;
	border-bottom: 1px solid $color-h2-border;
	padding-bottom: .5rem;
}

h3, .h3 {
	font-size: $font-size-h3;
	font-weight: 500;
}

h4, .h4 {
	font-size: $font-size-h4;
}

h5, .h5 {
	font-size: $font-size-h5;
}

h6, .h6 {
	font-size: $font-size-h6;
}

/* ----- Inline elements ----- */
small,
.text-small {
	font-size: $font-size-small;
}

/* ----- Paragraphs ----- */
p {
	margin: 0 0 1.25rem 0;
}

/* ----- Hyperlinks ----- */
a {
	color: inherit;
	text-decoration: none;
	border-bottom: .0625em solid;
	border-color: inherit;
	padding-bottom: .125em;
}

/* ----- Images ----- */
img {
	max-width: 100%;
	height: auto;
	vertical-align: top;
}

/* ----- Horizontal rules ----- */
hr {
	border: 0;
	border-top: 1px solid $color-horizontal-rule;
	margin: 0 0 1.25rem 0;
}

/* ----- States ----- */
::-moz-selection {
	background: rgba($color-yellow, .99);
	color: $color-dark-blue;
}

::selection {
	background: rgba($color-yellow, .99);
	color: $color-dark-blue;
}

/* ----- Quotes ----- */
blockquote {
	margin: 0 0 1.25rem 0;
}

q {
	color: $color-dark-blue;
}

/* ----- Lists ----- */
ul {
	list-style-type: none;
	padding: 0;
	margin: 0 0 1.25rem 0;

	li {
		position: relative;
		padding-left: 1.875rem;
		margin-bottom: .3125rem;

		&:before {
			content: '\2014';
			color: $color-list-prefix;
			position: absolute;
			left: 0;
		}
	}
}

/* ----- Definition lists ----- */
dl {
	margin: 0 0 1.25rem 0;

	dt {
		color: $color-definition-list;
		font-weight: 700;
	}

	dd {
		margin: 0;
	}
}

/* ----- Acronym and Emphasize tags ----- */
acronym,
em {
	font-style: italic;
}

/* ----- Tables ----- */
table {
	width: 100%;
	text-align: left;
	font-size: $font-size-base;
	border-collapse: collapse;
	margin: 0 0 1.25rem 0;

	th, td {
		border: 2px solid $color-table-border;
		vertical-align: middle;
		padding: .625rem .9375rem;

		@media (min-width: $screen-sm-min) {
			padding: .8125rem 1.25rem;
		}

		a {
			border-color: $color-dark;
		}
	}

	th {
		font-family: $font-family-secondary;
		text-transform: uppercase;
		background-color: $color-table-header-bg;
		border-color: $color-table-header-border;
	}
}

.table-responsive {
	width: 100%;
	overflow-x: scroll;
	-webkit-overflow-scrolling: touch;
	margin: 0 0 1.25rem 0;

	@media (min-width: $screen-sm-min) {
		overflow-x: visible;
	}

	table {
		min-width: 43.75rem;
		margin: 0;

		@media (min-width: $screen-sm-min) {
			min-width: 0;
			margin: 0;
		}
	}
}

/* ----- Iframe ----- */
iframe {
	display: block;
	border: 0;
	margin: 0 0 1.25rem 0;
}

/* ----- Button ----- */
button {
	border: 0;
	padding: 0;
	background-color: transparent;

	&:focus {
		outline: none;
	}
}
