/* ================================================================== *\

   Name: Cardinal
   Info: a small, “mobile first” CSS framework by Chris Bracco
   Link: http://cardinalcss.com

   TABLE OF CONTENTS
   ---------------------------
   (Ctrl/Cmd + F, and search for `$section` to jump to a section)
   01. Base................Lay the foundation
   02. Links...............Default styles for anchor links
   03. Typography..........Basic typography elements
   04. Code................Pre-formatted text and other code styles
   05. Embedded content....Markup elements that use external content
   06. Forms...............Styling for elements that make up a form
   07. Tables..............Styles for tabular data
   08. Layout..............Common layout items (wrappers, islands, etc)
   09. Grids...............A simple grid system & handy width classes
   10. Buttons.............Basic styles, sizes, and shapes
   11. Main................Your styles go here!
       a. Toolbar
       b. Intro
       c. Content
       d. Libraries
       e. Actions
       f. Footer
   12. Helpers.............Some useful, global classes
   13. Print...............Inlined, barebones print styles

   COLORS
   ---------------------------
   Primary:   #3498db (blue)
   Secondary: #e74c3c (red)
   CSS:       #9b59b6 (purple)
   HTML:      #e67e22 (orange)
   iOS:       #3498db (blue)
   JS:        #16a085 (green)
   PHP:       #34495e (dark green)

   GRAYSCALE
   ---------------------------
   Black:         #222
   Darkest gray:  #444
   Darker gray:   #777
   Dark gray:     #aaa
   Gray:          #ccc
   Light gray:    #dedede
   Lighter gray:  #efefef
   Lightest gray: #ecf0f1
   White:         #fff

\* ================================================================== */

/* ================================================================== *\
   Base ($base)
\* ================================================================== */

/* Viewport resizing */
@-webkit-viewport { width: device-width; zoom: 1.0; }
@-moz-viewport    { width: device-width; zoom: 1.0; }
@-ms-viewport     { width: device-width; zoom: 1.0; }
@-o-viewport      { width: device-width; zoom: 1.0; }
@viewport         { width: device-width; zoom: 1.0; }

/**
 * Box model adjustments
 * `border-box`... ALL THE THINGS - http://cbrac.co/RQrDL5
 */

*,
*:before,
*:after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing:    border-box;
	box-sizing:         border-box;
}

/* Correct `block` display not defined in IE 8/9 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
	display: block;
}

/**
 * Address [hidden] styling not present in IE 8/9
 * Hide the <template> element in IE, Safari, and Firefox < 22
 */

[hidden],
template {
	display: none;
}

/* Set <html> and <body> to inherit the height of the viewport */
html,
body {
	min-height: 100%;
}

/**
 * 1. Force a vertical scrollbar - http://cbrac.co/163MspB
 * 2. Remove text size adjustments without disabling user zoom
 * NOTE: Use `text-rendering` with caution - http://cbrac.co/SJt8p1
 * NOTE: Avoid the webkit anti-aliasing trap - http://cbrac.co/TAdhbH
 * NOTE: IE for Windows Phone 8 ignores `-ms-text-size-adjust` if the
 *       viewport <meta> tag is used - http://cbrac.co/1cFrAvl
 */

html {
	overflow-y: scroll;             /* 1 */
	-webkit-text-size-adjust: 100%; /* 2 */
	-ms-text-size-adjust:     100%; /* 2 */
	text-size-adjust:         100%; /* 2 */
}

/**
 * 1. Customize `background` for text selections
 * 2. Remove `text-shadow` selection highlight - http://cbrac.co/Q6swON
 */

::-moz-selection {
	background: #b3d4fc; /* 1 */
	text-shadow: none;   /* 2 */
}

::selection {
	background: #b3d4fc; /* 1 */
	text-shadow: none;   /* 2 */
}

/* Change `background` for text selections when browser is unfocused */
::selection:window-inactive {
	background: #dedede;
}

/* Remove `background` on images when selected */
img::selection {
	background: transparent;
}

img::-moz-selection {
	background: transparent;
}

/* ================================================================== *\
   Links ($links)
\* ================================================================== */

/* 1. Remove the gray background color from active links in IE 10 */
a {
	background: transparent; /* 1 */
	color: #3498db;
}

a:hover {
	color: #51a7e0;
	text-decoration: none;
}

/* Improve readability when focused or hovered in all browsers */
a:active,
a:hover {
	outline: 0;
}

/* Address `outline` inconsistency between Chrome and other browsers */
a:focus {
	outline: thin dotted;
}

/* ================================================================== *\
   Typography ($typography)

   Modular scale:    12px @ 1:1.333 (perfect fourth)
   Important number: 16px (maximum <html> `font-size`)
   http://modularscale.com/scale/?px1=12&px2=16&ra1=1.333&ra2=0
\* ================================================================== */

html { font-size: 75%; } /* 12px */
@media only screen and (min-width: 320px)  { html { font-size: 81.25%; } } /* 13px */
@media only screen and (min-width: 480px)  { html { font-size: 87.5%;  } } /* 14px */
@media only screen and (min-width: 640px)  { html { font-size: 100%;   } } /* 16px */

/**
 * 1. Remove default `margin`
 * 2. Inherits percentage declared on above <html> as root `font-size`
 * 3. Unitless `line-height`, which acts as multiple of root `font-size`
 */

body {
	margin: 0;        /* 1 */
	background-color: #ecf0f1;
	color: #444;
	font-size: 1rem;  /* 2 */
	font-family: "Open Sans", "Helvetica Neue", Arial, sans-serif;
	line-height: 1.5; /* 3 */
}

abbr,
acronym,
dfn[title] {
	cursor: help;
}

/* Address styling not present in IE 8/9, Safari 5, and Chrome */
abbr[title] {
	border-bottom: 1px dotted;
}

abbr a {
	text-decoration: none;
}

acronym {
	text-transform: uppercase;
}

/* Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome */
b,
strong {
	font-weight: bold;
}

blockquote {
	padding-left: 1rem;
	border-left: 5px solid #e5e5e5;
	font-style: italic;
	font-family: Baskerville, "Baskerville Old Face", "Hoefler Text",
		Garamond, "Times New Roman", serif;
}

blockquote p {
	margin: 0;
}

blockquote p + p {
	margin-top: 1rem;
}

/**
 * 1. Add an m-dash character before the <footer> tag
 * TIP: Use <footer> tag instead of <cite> inside blockquotes -
 *      http://cbrac.co/TCVK4P
 */

blockquote footer:before {
	content: "\2014 \2009"; /* 1 */
}

blockquote footer {
	color: #777;
	font-style: italic;
	font-size: 0.8125rem;
}

blockquote,
dl,
figure,
hr,
menu,
ol,
p,
pre,
summary,
table,
ul {
	margin: 0 0 1rem;
}

dl dt {
	color: #222;
	font-weight: 700;
}

dl dd {
	margin: 0;
}

del {
	color: #777;
	text-decoration: line-through;
}

details {
	cursor: pointer;
}

/* Address styling not present in Safari 5 and Chrome */
dfn {
	font-style: italic;
}

em,
figcaption,
i,
cite {
	font-style: italic;
}

figcaption {
	margin: 0.75rem 0 0;
	font-size: 75%;
}

/* NOTE: Use `text-rendering` with caution - http://cbrac.co/SJt8p1 */
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
	margin: 0 0 0.75rem;
	color: #222;
	font-weight: 700;
	font-family: "Open Sans", "Helvetica Neue", sans-serif;
	line-height: 1.333;
	text-rendering: optimizeLegibility;
}

h1, .h1 { font-size: 3.157rem; }
h2, .h2 { font-size: 2.369rem; }
h3, .h3 { font-size: 1.777rem; }
h4, .h4 { font-size: 1.333rem; }
h5, .h5 { font-size: 1rem;     }
h6, .h6 { font-size: 0.75rem;  }

/* Give subheadings a lighter `font-weight` */
h1.subheading, .h1.subheading,
h2.subheading, .h2.subheading,
h3.subheading, .h3.subheading,
h4.subheading, .h4.subheading,
h5.subheading, .h5.subheading,
h6.subheading .h6.subheading {
	font-weight: 300;
}

/* Use `.muted` with `.subheading` to give them a lighter color */
h1.subheading.muted, .h1.subheading.muted,
h2.subheading.muted, .h2.subheading.muted,
h3.subheading.muted, .h3.subheading.muted,
h4.subheading.muted, .h4.subheading.muted,
h5.subheading.muted, .h5.subheading.muted,
h6.subheading.muted .h6.subheading.muted {
	color: #777;
}

/* Address differences between Firefox and other browsers */
hr {
	-webkit-box-sizing: content-box;
	-moz-box-sizing:    content-box;
	box-sizing:         content-box;
	height: 0;
	border: 0;
	border-bottom: 1px solid #dedede;
}

/* Address styling not present in IE 8/9 */
ins,
mark {
	background: #ff9;
	color: #222;
	text-decoration: none;
}

nav ul,
nav ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Nested `list-style` types for ordered lists */
ol          { list-style: decimal; }
ol ol       { list-style: upper-alpha; }
ol ol ol    { list-style: lower-roman; }
ol ol ol ol { list-style: lower-alpha; }

ol ol,
ol ul,
ul ul,
ul ol {
	margin-bottom: 0;
}

p,
table,
textarea,
td,
th {
	word-wrap: break-word;
	-webkit-hyphens: auto;
	-moz-hyphens:    auto;
	-ms-hyphens:     auto;
	hyphens:         auto;
}

/* Set consistent <q> types */
q {
	quotes: "\201C" "\201D" "\2018" "\2019";
}

/* 1. Address inconsistent and variable `font-size` in all browsers */
small {
	display: inline-block;
	font-size: 87.5%; /* 1 */
	line-height: 1.333;
}

/* Prevent <sub> and <sup> affecting `line-height` in all browsers */
sub,
sup {
	position: relative;
	vertical-align: baseline;
	font-size: 75%;
	line-height: 0;
}

sup {
	top: -0.5em;
}

sub {
	bottom: -0.25em;
}

/* ================================================================== *\
   Code ($code)
\* ================================================================== */

/* Correct `font-family` set oddly in Safari 5 and Chrome */
code,
kbd,
pre,
samp {
	color: #444;
	font-family: Monaco, "Lucida Sans Typewriter", Consolas,
		"Courier New", monospace;
}

code,
kbd {
	font-size: 75%;
}

code {
	padding: 0 0.3rem;
	border: 1px solid #dedede;
	-webkit-border-radius: 3px;
	-moz-border-radius:    3px;
	border-radius:         3px;
	background: #f8f8f8;
	white-space: nowrap;
}

/* Increase `padding` at larger viewport widths */
@media only screen and (min-width: 480px) {
	code {
		padding: 0.1rem 0.3rem;
	}
}

kbd {
	position: relative;
	top: -1px;
	margin-bottom: 1px;
	padding: 0 0.3rem;
	border: 1px solid #dedede;
	-webkit-border-radius: 4px;
	-moz-border-radius:    4px;
	border-radius:         4px;
	background: #f8f8f8;
	-webkit-box-shadow:
		0 1px 0px #dedede,
		inset 0 0 0 1px #fff;
	-moz-box-shadow:
		0 1px 0px #dedede,
		inset 0 0 0 1px #fff;
	box-shadow:
		0 1px 0px #dedede,
		inset 0 0 0 1px #fff;
	white-space: nowrap;
}

/* Increase `padding` at larger viewport widths */
@media only screen and (min-width: 480px) {
	kbd {
		padding: 0.1rem 0.3rem;
	}
}

pre {
	position: relative;
	overflow: auto;
	padding: 1rem;
	background: #fff;
	color: #444;
	border: 1px solid #dedede;
	-webkit-border-radius: 5px;
	-moz-border-radius:    5px;
	border-radius:         5px;
	white-space: pre;
	word-wrap: normal;
	word-break: normal;
	-moz-tab-size: 4;
	-o-tab-size:   4;
	tab-size:      4;
	-webkit-hyphens: none;
	-moz-hyphens:    none;
	hyphens:         none;
	-ms-hyphens:     none;
}

/* Reset above <code> styles when nested inside <pre> tags */
pre code {
	display: block;
	overflow: auto;
	margin: 0;
	padding: 0;
	height: 100%;
	border: none;
	-webkit-border-radius: 0;
	-moz-border-radius:    0;
	border-radius:         0;
	background: transparent;
	color: inherit;
	white-space: pre;
}

/**
 * Prism.js default theme for JavaScript, CSS and HTML
 * Based on dabblet (http://dabblet.com)
 * @author Lea Verou
 */

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: slategray;
}

.token.punctuation {
	color: #999;
}

.namespace {
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
	filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
	opacity: 0.7;
}

.token.property,
.token.tag,
.token.boolean,
.token.number {
	color: #905;
}

.token.selector,
.token.attr-name,
.token.string {
	color: #690;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
	color: #a67f59;
	background: hsla(0, 0%, 100%, 0.5);
}

.token.atrule,
.token.attr-value,
.token.keyword {
	color: #07a;
}


.token.regex,
.token.important {
	color: #e90;
}

.token.important {
	font-weight: bold;
}

.token.entity {
	cursor: help;
}

/* ================================================================== *\
   Embedded content ($embedded-content)
\* ================================================================== */

/**
 * Correct `inline-block` display not defined in IE 8/9
 */

audio,
canvas,
video {
	display: inline-block;
}

/* Fluid-width <audio> & <video> elements */
audio,
video {
	width: 100%;
}

/**
 * 1. Prevent modern browsers from displaying <audio> without controls
 * 2. Remove excess `height` in iOS 5 devices
 */

audio:not([controls]) {
	display: none; /* 1 */
	height: 0;     /* 2 */
}

/**
 * 1. Remove the `border` when inside an <a> element in IE 8/9
 * 2. Remove the gap between <img> elements and the bottom of their
 *    containers - http://cbrac.co/Q6smqV
 */

img {
	border: 0;              /* 1 */
	vertical-align: middle; /* 2 */
}

/* Fluid-width media that maintain their aspect ratios */
img,
video {
	max-width: 100%;
	width: auto\9;
	height: auto !important;
}

/* Correct `overflow` displayed oddly in IE 9 */
svg:not(:root) {
	overflow: hidden;
}

/* ================================================================== *\
   Forms ($forms)
\* ================================================================== */

/**
 * 1. Address `margin` set differently in Firefox 4+, Safari 5, & Chrome
 * 2. Correct `font-size` not being inherited in all browsers
 * 3. Correct `font-family` not being inherited in all browsers
 */

button,
input,
select,
textarea {
	margin: 0;            /* 1 */
	font-size: 1rem;      /* 2 */
	font-family: inherit; /* 3 */
}

/**
 * Address Firefox 4+ setting `line-height` on <input> using
 * `!important` in the UA stylesheet
 */

button,
input {
	line-height: normal;
}

/**
 * Fix inconsistent `text-transform` for <button> and <select>
 * All other form control elements do not inherit `text-transform`
 */

button,
select {
	text-transform: none;
}

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native
 *    <audio> and <video> controls
 * 2. Improve usability and consistency of cursor style between
 *    image-type <input> and others
 * 3. Correct inability to style clickable <input> types in iOS
 */

button,
html input[type="button"],      /* 1 */
input[type="reset"],
input[type="submit"] {
	cursor: pointer;            /* 2 */
	-webkit-appearance: button; /* 3 */
}

/* Reset default `cursor` for disabled elements */
button[disabled],
html input[disabled] {
	cursor: default;
}

/* Remove default <fieldset> styles for all browsers */
fieldset {
	margin: 0;
	padding: 0;
	border: 0;
}

/* Make most inputs, select boxes, and textareas as `block` elements */
input,
select,
textarea {
	display: block;
	width: 100%;
	vertical-align: middle;
}

/* Make checkbox, image, and radio inputs `inline-block` by default */
input[type="checkbox"],
input[type="image"],
input[type="radio"] {
	display: inline-block;
	width: auto;
	cursor: pointer;
}

/**
 * 1. Address `box-sizing` set to `content-box` in IE 8/9
 * 2. Remove excess padding in IE 8/9
 */

input[type="checkbox"],
input[type="radio"] {
	box-sizing: border-box; /* 1 */
	margin: 0 0.422rem 0.238rem 0;
	padding: 0;             /* 2 */
}

/**
 * 1. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof)
 * 2. Address `appearance` set to `searchfield` in Safari 5 and Chrome
 */

input[type="search"] {
	-webkit-box-sizing: content-box; /* 1 */
	-moz-box-sizing:    content-box;
	box-sizing:         content-box;
	-webkit-appearance: textfield;   /* 2 */
}

/* Remove decoration & cancel button in Safari 5 and Chrome on OS X */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * Make button, reset, and submit inputs to be `inline-block`, unless
 * otherwise specified by `.button` classes
 */

input[type="button"],
input[type="reset"],
input[type="submit"] {
	display: inline-block;
	width: auto;
}

/* Remove inner padding and border in Firefox 4+ */
button::-moz-focus-inner,
input::-moz-focus-inner {
	padding: 0;
	border: 0;
}

/* Give labels a pointer cursor by default */
label {
	cursor: pointer;
}

/* Give <legend> some basic styles for all browsers */
legend {
	margin: 0 0 1rem;
	padding: 0;
	border: 0;
	color: #222;
	font-weight: bold;
}

/**
 * 1. Remove default vertical scrollbar in IE 8/9
 * 2. Improve readability and alignment in all browsers
 * 3. Restrict <textarea> elements to vertical resizing only
 */

textarea {
	overflow: auto;      /* 1 */
	vertical-align: top; /* 2 */
	resize: vertical;    /* 3 */
}

.form-input {
	padding: 0.563rem 0.844rem;
	border: 1px solid #ccc;
	-webkit-border-radius: 9999rem;
	-moz-border-radius:    9999rem;
	border-radius:         9999rem;
	outline: none;
}

.form-input:focus {
	border-color: #51a7e0;
	-webkit-box-shadow: 0 0 5px hsla(0, 0%, 0%, 0.12);
	-moz-box-shadow:    0 0 5px hsla(0, 0%, 0%, 0.12);
	box-shadow:         0 0 5px hsla(0, 0%, 0%, 0.12);
}

/* ================================================================== *\
   Tables ($tables)
\* ================================================================== */

/**
 * Default (borderless)
 * 1. Remove most spacing between <table> cells
 */

table {
	max-width: 100%;
	width: 100%;
	border-spacing: 0;         /* 1 */
	border-collapse: collapse; /* 1 */
	empty-cells: show;
}

table th,
table tfoot td {
	color: #222;
	text-align: left;
	font-weight: bold;
}

table thead th,
table tfoot td  {
	background-color: #efefef;
}

table th,
table td {
	overflow: visible;
	padding: 0.633rem;
	vertical-align: top;
}

/* Outer border only */
table.border {
	border: 1px solid #dedede;
}

/* Borders for rows & columns */
table.border_all th,
table.border_all td {
	border-top: 1px solid #dedede;
	border-left: 1px solid #dedede;
}

/* Border for rows only */
table.border_rows th,
table.border_rows td {
	border-top: 1px solid #dedede;
}

/* Remove top border to avoid double border on .border tables */
table.border.border_all thead:first-child tr:first-child th,
table.border.border_all thead:first-child tr:first-child td,
table.border.border_rows thead:first-child tr:first-child th,
table.border.border_rows thead:first-child tr:first-child td {
	border-top: 0;
}

table.border_all tr th:first-child,
table.border_all tr td:first-child {
	border-left: 0;
}

table.border_all tr:first-child th,
table.border_all thead:first-child tr:first-child th {
	border-top: 0;
}

/* Add bottom border to last row in the table */
table.border_rows tr:last-child td {
	border-bottom: 1px solid #dedede;
}

/* Stripes */
table.stripes tbody > tr:nth-child(odd) > td {
	background-color: #f8f8f8;
}

/* ================================================================== *\
   Layout ($layout)
\* ================================================================== */

/* 100% width container */
.strip {
	margin: 0;
	padding: 0;
	width: 100%;
	background-color: #fff;
	list-style: none;
}

.strip .wrapper {
	padding: 2rem 0;
}

/* Page wrapper */
.wrapper {
	margin: 0 auto;
	max-width: 1140px;
	width: 90%;
}

.island,
.well {
	margin: 0 0 1rem;
	padding: 1rem;
	background: #dedede;
}

.well {
	-webkit-box-shadow: inset 0 0 8px hsla(0, 0%, 0%, 0.15);
	-moz-box-shadow:    inset 0 0 8px hsla(0, 0%, 0%, 0.15);
	box-shadow:         inset 0 0 8px hsla(0, 0%, 0%, 0.15);
}

.island .island,
.well .well {
	background: #ccc;
}

.island.hollow,
.well.hollow {
	background: transparent;
	-webkit-box-shadow: inset 0 0 0 3px hsla(0, 0%, 94%, 1.0);
	-moz-box-shadow:    inset 0 0 0 3px hsla(0, 0%, 94%, 1.0);
	box-shadow:         inset 0 0 0 3px hsla(0, 0%, 94%, 1.0);
}

.island.rounded,
.well.rounded {
	-webkit-border-radius: 0.356rem;
	-moz-border-radius:    0.356rem;
	border-radius:         0.356rem;
}

/* ================================================================== *\
   Grids ($grids)
\* ================================================================== */

/**
 * Grid container
 * 1. Default gutter width, change if desired
 * 2. Remove `list-style` in case `.grid` is on a <ul> element
 * 3. Hack to remove `inline-block` whitespace - http://cbrac.co/16xcjcl
 */

.grid {
	margin: 0;
	margin-left: -2rem; /* 1 */
	padding: 0;
	list-style: none;   /* 2 */
	font-size: 0;       /* 3 */
}

/* Gutters */
.grid_gutter_none              { margin-left: 0;     }
.grid_gutter_none .grid-item   { padding-left: 0;    }
.grid_gutter_half              { margin-left: -1rem; }
.grid_gutter_half .grid-item   { padding-left: 1rem; }
.grid_gutter_double            { margin-left: -4rem; }
.grid_gutter_double .grid-item { padding-left: 4rem; }

/**
 * Grid item
 * 1. Default gutter width, change if desired
 * 2. Ensures elements within `.grid-item` start at the top
 * 3. Reset `font-size` back to normal
 */

.grid-item {
	display: inline-block;
	padding-left: 2rem;  /* 1 */
	vertical-align: top; /* 2 */
	font-size: 1rem;     /* 3 */
}

/* Widths */
.grid-item,
.one_whole     { width: 100%;    }
.one_half      { width: 50%;     }
.one_third     { width: 33.333%; }
.two_thirds    { width: 66.666%; }
.one_fourth    { width: 25%;     }
.two_fourths   { width: 50%;     }
.three_fourths { width: 75%;     }
.one_fifth     { width: 20%;     }
.two_fifths    { width: 40%;     }
.three_fifths  { width: 60%;     }
.four_fifths   { width: 80%;     }
.one_sixth     { width: 16.666%; }
.two_sixths    { width: 33.333%; }
.three_sixths  { width: 50%;     }
.four_sixths   { width: 66.666%; }
.five_sixths   { width: 83.333%; }

/* Grid breakpoint for devices that sit in your lap (eg. tablets) */
@media only screen and (min-width: 640px) {
	/* Gutter options */
	.lap-grid_gutter_none              { margin-left: 0;     }
	.lap-grid_gutter_none .grid-item   { padding-left: 0;    }
	.lap-grid_gutter_half              { margin-left: -1rem; }
	.lap-grid_gutter_half .grid-item   { padding-left: 1rem; }
	.lap-grid_gutter_whole             { margin-left: -2rem; }
	.lap-grid_gutter_whole .grid-item  { padding-left: 2rem; }
	.lap-grid_gutter_double            { margin-left: -4rem; }
	.lap-grid_gutter_double .grid-item { padding-left: 4rem; }

	/* Widths */
	.lap-one_whole      { width: 100%;    }
	.lap-one_half       { width: 50%;     }
	.lap-one_third      { width: 33.333%; }
	.lap-two_thirds     { width: 66.666%; }
	.lap-one_fourth     { width: 25%;     }
	.lap-three_fourths  { width: 75%;     }
	.lap-one_fifth      { width: 20%;     }
	.lap-two_fifths     { width: 40%;     }
	.lap-three_fifths   { width: 60%;     }
	.lap-four_fifths    { width: 80%;     }
	.lap-one_sixth      { width: 16.666%; }
	.lap-two_sixths     { width: 33.333%; }
	.lap-three_sixths   { width: 50%;     }
	.lap-four_sixths    { width: 66.666%; }
	.lap-five_sixths    { width: 83.333%; }
}

/* Grid breakpoint for devices that remain on your desk (eg. iMac) */
@media only screen and (min-width: 960px) {
	/* Gutter options */
	.desk-grid_gutter_none              { margin-left: 0;     }
	.desk-grid_gutter_none .grid-item   { padding-left: 0;    }
	.desk-grid_gutter_half              { margin-left: -1rem; }
	.desk-grid_gutter_half .grid-item   { padding-left: 1rem; }
	.desk-grid_gutter_whole             { margin-left: -2rem; }
	.desk-grid_gutter_whole .grid-item  { padding-left: 2rem; }
	.desk-grid_gutter_double            { margin-left: -4rem; }
	.desk-grid_gutter_double .grid-item { padding-left: 4rem; }

	/* Widths */
	.desk-one_whole     { width: 100%;    }
	.desk-one_half      { width: 50%;     }
	.desk-one_third     { width: 33.333%; }
	.desk-two_thirds    { width: 66.666%; }
	.desk-one_fourth    { width: 25%;     }
	.desk-three_fourths { width: 75%;     }
	.desk-one_fifth     { width: 20%;     }
	.desk-two_fifths    { width: 40%;     }
	.desk-three_fifths  { width: 60%;     }
	.desk-four_fifths   { width: 80%;     }
	.desk-one_sixth     { width: 16.666%; }
	.desk-two_sixths    { width: 33.333%; }
	.desk-three_sixths  { width: 50%;     }
	.desk-four_sixths   { width: 66.666%; }
	.desk-five_sixths   { width: 83.333%; }
}

/* ================================================================== *\
   Buttons ($buttons)
\* ================================================================== */

/* Default (flat) */
.button {
	display: inline-block;
	margin: 0;
	padding: 0.563rem 0.844rem;
	border: 0 none;
	background: #dedede;
	color: #444;
	text-align: center;
	text-decoration: none;
	font-size: 1rem;
	line-height: 1.5;
	cursor: pointer;
}

.button:active {
	-webkit-box-shadow: inset 0 3px 6px hsla(0, 0%, 0%, 0.20);
	-moz-box-shadow:    inset 0 3px 6px hsla(0, 0%, 0%, 0.20);
	box-shadow:         inset 0 3px 6px hsla(0, 0%, 0%, 0.20);
}

.button:focus {
	outline: thin dotted #444;
	outline: 5px auto -webkit-focus-ring-color;
	outline-offset: -2px;
}

/* Styles */
.button.hollow {
	background: transparent;
	-webkit-box-shadow: inset 0 0 0 3px hsla(0, 0%, 92%, 1.0);
	-moz-box-shadow:    inset 0 0 0 3px hsla(0, 0%, 92%, 1.0);
	box-shadow:         inset 0 0 0 3px hsla(0, 0%, 92%, 1.0);
}

.button.hollow:active {
	background: #efefef;
	-webkit-box-shadow: inset 0 0 6px hsla(0, 0%, 0%, 0.20);
	-moz-box-shadow:    inset 0 0 6px hsla(0, 0%, 0%, 0.20);
	box-shadow:         inset 0 0 6px hsla(0, 0%, 0%, 0.20);
}

.button.chunky {
	position: relative;
	border: 1px solid #ccc;
	border-radius: 3px;
	background: #eee;
	-webkit-box-shadow: 0px 2px hsla(0, 0%, 0%, 0.2);
	-moz-box-shadow:    0px 2px hsla(0, 0%, 0%, 0.2);
	box-shadow:         0px 2px hsla(0, 0%, 0%, 0.2);
	text-shadow: 0px 1px 0px #fff;
	font-weight: 700;
	font-size: 0.875rem;
}

.button.chunky:hover {
	background: #f8f8f8;
}

.button.chunky:active {
	box-shadow: none;
	top: 2px;
}

/* Sizes */
.button.mini {
	padding: 0.238rem 0.563rem;
	font-size: 0.8125rem;
}

@media only screen and (min-width: 640px) {
	.button.mini {
		font-size: 0.75rem;
	}
}

.button.small {
	padding: 0.317rem 0.75rem;
	font-size: 0.875rem;
}

.button.large,
.button.block {
	padding: 1rem 1.333rem;
	font-size: 1.125rem;
	line-height: 1.333;
}

.button.block {
	display: block;
}

/* Shapes */
.button.rounded {
	-webkit-border-radius: 0.356rem;
	-moz-border-radius:    0.356rem;
	border-radius:         0.356rem;
}

.button.pill {
	-webkit-border-radius: 9999rem;
	-moz-border-radius:    9999rem;
	border-radius:         9999rem;
}

/* States */
.button.disabled,
.button.disabled:active,
.button[disabled] {
	background: #ddd !important;
	-webkit-box-shadow: none !important;
	-moz-box-shadow:    none !important;
	box-shadow:         none !important;
	color: #777 !important;
	text-shadow: none !important;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=65)";
	opacity: 0.65;
	cursor: not-allowed !important;
}

.button.hollow.disabled,
.button.hollow.disabled:active,
.button.hollow[disabled] {
	background: transparent !important;
	-webkit-box-shadow: inset 0 0 0 3px #ddd !important;
	-moz-box-shadow:    inset 0 0 0 3px #ddd !important;
	box-shadow:         inset 0 0 0 3px #ddd !important;
}

/* Colors */
.button.primary,
.button.secondary,
.button.emerald {
	color: #fff;
}

.button.primary {
	background-color: #3498db;
}

.button.primary:hover,
.button.primary:active {
	background-color: #51a7e0;
}

.button.secondary {
	background-color: #e74c3c;
}

.button.secondary:hover,
.button.secondary:active {
	background-color: #eb685a;
}

.button.emerald {
  background-color: #1abc9c;
}

.button.emerald:hover,
.button.emerald:active {
  background-color: #1ccba8;
}

/* ================================================================== *\
   Main ($main)
\* ================================================================== */

/**
 * Toolbar ($toolbar)
 */

.toolbar {
	padding: 20px 0;
	background-color: #fff;
}

.toolbar .wrapper {
	position: relative;
}

/* Logo */
.logo {
	display: inline-block;
	color: #777;
	font-size: 0.75rem;
	margin-bottom: 1rem;
}

.logo img {
	display: inline-block;
	margin-right: 0.5rem;
}

/* Menu */
.menu a {
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
	color: #222;
	display: inline-block;
	margin: 0 0 0 0.5rem;
}

.menu *:first-child {
	margin-left: 0;
}

.menu *:last-child {
	margin: 0;
}

.menu a:hover {
	color: #777;
}

@media only screen and (min-width: 480px) {
	.menu {
		position: absolute;
		top: 0;
		right: 0;
	}

	.menu a {
		line-height: 45px;
	}

	.logo {
		margin-bottom: 0;
	}
}

/*
 * Intro ($intro)
 */

.library .intro {
	background-color: #fff;
}

.library.css .intro h1,
.library.css .intro h2,
.library.css .intro h3,
.library.css .intro h4,
.library.css .intro h5,
.library.css .intro h6,
.library.css .intro p {
	color: #9b59b6;
}

.library.html .intro h1,
.library.html .intro h2,
.library.html .intro h3,
.library.html .intro h4,
.library.html .intro h5,
.library.html .intro h6,
.library.html .intro p {
	color: #e67e22;
}

.library.ios .intro h1,
.library.ios .intro h2,
.library.ios .intro h3,
.library.ios .intro h4,
.library.ios .intro h5,
.library.ios .intro h6,
.library.ios .intro p {
	color: #3498db;
}

.library.js .intro h1,
.library.js .intro h2,
.library.js .intro h3,
.library.js .intro h4,
.library.js .intro h5,
.library.js .intro h6,
.library.js .intro p {
	color: #16a085;
}

.library.php .intro h1,
.library.php .intro h2,
.library.php .intro h3,
.library.php .intro h4,
.library.php .intro h5,
.library.php .intro h6,
.library.php .intro p {
	color: #34495e;
}

@media only screen and (min-width: 640px) {
	.library .intro {
		text-align: right;
	}

	.library .intro .library-trailer {
		padding-left: 30%;
	}
}

/**
 * Content ($content)
 */

.content {
	margin: 40px 0;
}

@media only screen and (min-width: 640px) {
	.content.fixed {
		padding-top: 75px;
	}

  .modal-open .content.fixed {
    padding-top: 0;
  }
}

#buy_support_form,
#the_code { display: none; }

.page .content .wrapper,
.library .content .wrapper > code,
.library .content .wrapper > h1,
.library .content .wrapper > h2,
.library .content .wrapper > h3,
.library .content .wrapper > h4,
.library .content .wrapper > h5,
.library .content .wrapper > h6,
.library .content .wrapper > ol,
.library .content .wrapper > p,
.library .content .wrapper > pre,
.library .content .wrapper > ul,
.library .content .wrapper .wrap {
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
}

/**
 * Libraries ($libraries)
 */

.library-subtitle {
	font-weight: 400;
}

.home .library.css  { background-color: #9b59b6; }
.home .library.html { background-color: #e67e22; }
.home .library.ios  { background-color: #3498db; }
.home .library.js   { background-color: #16a085; }
.home .library.php  { background-color: #34495e; }

.home .library,
.home .library h1,
.home .library h2,
.home .library h3,
.home .library h4,
.home .library h5,
.home .library h6 {
	color: #fff;
}

.home .library {
	position: relative;
	float: left;
	width: 100%;
	margin: 0 1% 20px;
	padding: 40px 20px 20px;
	height: 240px;
	text-decoration: none;
	text-shadow: 2px 2px 0px rgba(0,0,0, 0.3);
	text-align: right;
	-webkit-transition: -webkit-box-shadow 0.2s ease;
	-moz-transition:    -moz-box-shadow 0.2s ease;
	-o-transition:      box-shadow 0.2s ease;
	transition:         box-shadow 0.2s ease;
}

.home .library:hover {
	-webkit-box-shadow: inset 0 0 4rem hsla(0, 0%, 0%, 0.3);
	-moz-box-shadow:    inset 0 0 4rem hsla(0, 0%, 0%, 0.3);
	box-shadow:         inset 0 0 4rem hsla(0, 0%, 0%, 0.3);
}

.home .library:after {
	position: absolute;
	top: 0;
	left: 0;
	padding: 10px;
	min-width: 60px;
	background-color: #ecf0f1;
	text-align: center;
	text-shadow: none;
	font-weight: bold;
	font-weight: normal;
}

.home .library.js:after   { color: #16a085; content: "JS";   }
.home .library.css:after  { color: #9b59b6; content: "CSS";  }
.home .library.php:after  { color: #34495e; content: "PHP";  }
.home .library.ios:after  { color: #3498db; content: "iOS";  }
.home .library.html:after { color: #e67e22; content: "html"; }

.home .library-meta {
	font-size: 0.75rem;
}

.home .library-author {
	font-weight: 700;
}

.home .library.focus {
	min-height: 240px;
	height: auto;
}

@media only screen and (min-width: 860px) {
	.home .library {
		width: 31.333%;
	}

	.home .library.focus {
		min-height: none;
		height: 500px;
		width: 64.666%;
		padding-top: 60px;
	}

	.home .library.focus .library-title {
		font-size: 2.369rem;
	}

	.home .library.focus .library-trailer {
		padding-left: 20%;
	}
}

/**
 * Actions ($actions)
 */

.actions {
	position: relative;
	background-color: #fff;
}

.actions-share {
	margin-bottom: 10px;
}

.actions-facebook,
.actions-twitter {
	display: block;
	max-width: 92px;
}

.actions-purchase .button {
	margin-right: 20px;
}

.actions-purchase *:last-child {
	margin-right: 0;
}

.actions-fork {
	position: absolute;
	top: 0;
	right: 0;
}

@media screen and (min-width: 640px) {
	.actions-share {
		padding-top: 0;
		margin-bottom: 0;
	}

	.actions-share {
		float: left;
	}

	.actions-purchase {
		float: right;
	}

	.actions.fixed {
		position: fixed;
		top: 0;
		z-index: 999;
		width: 100%;
		-webkit-box-shadow: 0px 1px 5px rgba(0, 0, 0, 0.1);
		-moz-box-shadow:    0px 1px 5px rgba(0, 0, 0, 0.1);
		box-shadow:         0px 1px 5px rgba(0, 0, 0, 0.1);
	}
}

/**
 * Footer ($footer)
 */

.footer {
	margin: 0 0 3rem;
}

.footer p {
	font-size: 0.75rem;
}

.footer li {
	float: right;
	font-size: 12px;
	list-style-type: none;
	margin-left: 10px;
}

/**
 * Alerts ($alerts)
 */

.alert {
	position: relative;
	background-color: #fff;
	padding: 1rem;
	border: 1px solid #dedede;
	-webkit-border-radius: 4px;
	-moz-border-radius:    4px;
	border-radius:         4px;
	-webkit-box-shadow: 0 1px 6px hsla(0, 0%, 0%, 0.08);
	-moz-box-shadow:    0 1px 6px hsla(0, 0%, 0%, 0.08);
	box-shadow:         0 1px 6px hsla(0, 0%, 0%, 0.08);
}

.alert-heading {
	padding-right: 32px;
}

.alert-close {
	position: absolute;
	top: 0.5rem;
	right: 1rem;
	color: #aaa;
	font-weight: 700;
	font-size: 3rem;
	line-height: 3rem;
	cursor: pointer;
}

.alert-close:hover {
	color: #777;
}

.password {
	background: #e7b03c;
	color: white;
	display: inline-block;
	padding: 0 0.844rem;
}

/**
 * Modals ($modals)
 */

.mmod {
	display: none;
}

.modal,
.modal-gradient {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 9997;
	width: 100%;
	height: 100%;
	background: rgba(44, 62, 80, 0.7);
}

.modal-gradient {
	z-index: 9998;
	background: -webkit-radial-gradient(circle, #fff, #000);
	background: -moz-radial-gradient(circle, #fff, #000);
	background: -ms-radial-gradient(circle, #fff, #000);
	background-position: bottom center;
	opacity: 0.35;
}

.modal-box .wrapper {
  background: white;
  -webkit-box-shadow: 0px 2px 15px rgba(0, 0, 0, 0.5);
  -moz-box-shadow:    0px 2px 15px rgba(0, 0, 0, 0.5);
  box-shadow:         0px 2px 15px rgba(0, 0, 0, 0.5);
  display: none;
  min-height: 300px;
  padding: 40px 0;
  z-index: 9999;
}

.modal-box {
  position: fixed;
  top: 0;
	z-index: 9999;
  width: 100%;
}

.modal-box .content {
  margin: 0;
}

.modal-loading {
	display: block;
	margin: 0 auto;
	width: 32px;
	height: 32px;
	background-image: url(data:image/gif;base64,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);
	background-repeat: no-repeat;
}

.modal-close {
  border: 3px solid #aaa;
  border-radius: 50%;
  color: #aaa;
  cursor: pointer;
  font-weight: bold;
  height: 30px;
  line-height: 24px;
  position: absolute;
  right: 10px;
  text-align: center;
  top: 10px;
  width: 30px;
}

.modal-close:hover {
  border-color: rgb(231, 76, 60);
  color: rgb(231, 76, 60);
}

.ani{-webkit-animation-duration:0.5s;-moz-animation-duration:0.5s;-o-animation-duration:0.5s;animation-duration:0.5s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both;}

@-webkit-keyframes slideDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-20px);
  }

  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
  }
}

@-moz-keyframes slideDown {
  0% {
    opacity: 0;
    -moz-transform: translateY(-20px);
  }

  100% {
    opacity: 1;
    -moz-transform: translateY(0);
  }
}

@-o-keyframes slideDown {
  0% {
    opacity: 0;
    -o-transform: translateY(-20px);
  }

  100% {
    opacity: 1;
    -o-transform: translateY(0);
  }
}

@keyframes slideDown {
  0% {
    opacity: 0;
    transform: translateY(-20px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.ani.slideDown {
  -webkit-animation-name: slideDown;
  -moz-animation-name: slideDown;
  -o-animation-name: slideDown;
  animation-name: slideDown;
}

/* ================================================================== *\
   Helpers ($helpers)
\* ================================================================== */

/* Alignment */
.align_left   { float: left !important;  }
.align_center { float: none; margin-left: auto; margin-right: auto; }
.align_right  { float: right !important; }
.align_none   { float: none !important;  }

/* Margins */
.margin_top    { margin-top: 1rem !important;    }
.margin_right  { margin-right: 1rem !important;  }
.margin_bottom { margin-bottom: 1rem !important; }
.margin_left   { margin-left: 1rem !important;   }
.margin_none   { margin: 0 !important;           }

/* Paddings */
.padding_top    { padding-top: 1rem !important;    }
.padding_right  { padding-right: 1rem !important;  }
.padding_bottom { padding-bottom: 1rem !important; }
.padding_left   { padding-left: 1rem !important;   }
.padding_none   { padding: 0 !important;           }

/* Text alignment */
.text_left    { text-align: left !important;    }
.text_center  { text-align: center !important;  }
.text_right   { text-align: right !important;   }
.text_justify { text-align: justify !important; }

/* Font sizing */
.font_huge,
.font_xxl,
.font_xl,
.font_large,
.font_medium,
.font_normal,
.font_small {
	font-weight: inherit;
}

.font_huge,
.font_xxl {
	line-height: 1.333 !important;
}

.font_huge   { font-size: 4.209rem !important; }
.font_xxl    { font-size: 3.157rem !important; }
.font_xl     { font-size: 2.369rem !important; }
.font_large  { font-size: 1.777rem !important; }
.font_medium { font-size: 1.333rem !important; }
.font_normal { font-size: 1rem !important;     }
.font_small  { font-size: 0.75rem !important;  }

/* Colors */
.success {
	color: #2ecc71;
}

.error,
.warning {
	color: #e74c3c;
}

@media only screen and (min-width: 640px) {
	/* Alignment */
	.lap-align_left   { float: left !important;  }
	.lap-align_center { float: none; margin-left: auto; margin-right: auto; }
	.lap-align_right  { float: right !important; }
	.lap-align_none   { float: none !important;  }

	/* Margins */
	.lap-margin_top    { margin-top: 1rem !important;    }
	.lap-margin_right  { margin-right: 1rem !important;  }
	.lap-margin_bottom { margin-bottom: 1rem !important; }
	.lap-margin_left   { margin-left: 1rem !important;   }
	.lap-margin_none   { margin: 0 !important;           }

	/* Paddings */
	.lap-padding_top    { padding-top: 1rem !important;    }
	.lap-padding_right  { padding-right: 1rem !important;  }
	.lap-padding_bottom { padding-bottom: 1rem !important; }
	.lap-padding_left   { padding-left: 1rem !important;   }
	.lap-padding_none   { padding: 0 !important;           }

	/* Text alignment */
	.lap-text_left    { text-align: left !important;    }
	.lap-text_center  { text-align: center !important;  }
	.lap-text_right   { text-align: right !important;   }
	.lap-text_justify { text-align: justify !important; }

	/* Font sizing */
	.lap-font_huge   { font-size: 4.209rem !important; }
	.lap-font_xxl    { font-size: 3.157rem !important; }
	.lap-font_xl     { font-size: 2.369rem !important; }
	.lap-font_large  { font-size: 1.777rem !important; }
	.lap-font_medium { font-size: 1.333rem !important; }
	.lap-font_normal { font-size: 1rem !important;     }
	.lap-font_small  { font-size: 0.75rem !important;  }
}

@media only screen and (min-width: 960px) {
	/* Alignment */
	.desk-align_left   { float: left !important;  }
	.desk-align_center { float: none; margin-left: auto; margin-right: auto; }
	.desk-align_right  { float: right !important; }
	.desk-align_none   { float: none !important;  }

	/* Margins */
	.desk-margin_top    { margin-top: 1rem !important;    }
	.desk-margin_right  { margin-right: 1rem !important;  }
	.desk-margin_bottom { margin-bottom: 1rem !important; }
	.desk-margin_left   { margin-left: 1rem !important;   }
	.desk-margin_none   { margin: 0 !important;           }

	/* Paddings */
	.desk-padding_top    { padding-top: 1rem !important;    }
	.desk-padding_right  { padding-right: 1rem !important;  }
	.desk-padding_bottom { padding-bottom: 1rem !important; }
	.desk-padding_left   { padding-left: 1rem !important;   }
	.desk-padding_none   { padding: 0 !important;           }

	/* Text alignment */
	.desk-text_left    { text-align: left !important;    }
	.desk-text_center  { text-align: center !important;  }
	.desk-text_right   { text-align: right !important;   }
	.desk-text_justify { text-align: justify !important; }

	/* Font sizing */
	.desk-font_huge   { font-size: 4.209rem !important; }
	.desk-font_xxl    { font-size: 3.157rem !important; }
	.desk-font_xl     { font-size: 2.369rem !important; }
	.desk-font_large  { font-size: 1.777rem !important; }
	.desk-font_medium { font-size: 1.333rem !important; }
	.desk-font_normal { font-size: 1rem !important;     }
	.desk-font_small  { font-size: 0.75rem !important;  }
}

/* Image replacement */
.ir {
	overflow: hidden;
	border: 0;
	background-color: transparent;
}

.ir:before {
	display: block;
	width: 0;
	height: 100%;
	content: "";
}

/* Hide from both screenreaders and browsers - http://cbrac.co/ZaoIxf */
.hidden {
	display: none !important;
	visibility: hidden;
}

/**
 * Hide only visually, but have it available for screenreaders -
 * http://cbrac.co/TUcUgH
 */

.visuallyhidden {
	position: absolute;
	overflow: hidden;
	clip: rect(0 0 0 0);
	margin: -1px;
	padding: 0;
	width: 1px;
	height: 1px;
	border: 0;
}

/**
 * Extends the `.visuallyhidden` class to allow the element to be
 * focusable when navigated to via the keyboard - http://cbrac.co/RR8gO6
 */

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
	position: static;
	overflow: visible;
	clip: auto;
	margin: 0;
	width: auto;
	height: auto;
}

/* Hide visually and from screenreaders, but maintain layout */
.invisible {
	visibility: hidden;
}

/* Clear floats with an extra markup element - http://cbrac.co/SFv1Ua */
.clear {
	display: block;
	visibility: hidden;
	clear: both;
	overflow: hidden;
	width: 0;
	height: 0;
}

/* Clearfix to contain floats */
.cf:before,
.cf:after {
	display: table; /* 1 */
	content: " ";   /* 2 */
}

.cf:after {
	clear: both;
}

/* ================================================================== *\
   Print ($print)
   Inlined to avoid an extra HTTP request - http://cbrac.co/VUjfe3
\* ================================================================== */

@media print {
	/* 1. Black prints faster - http://cbrac.co/XvusCs */
	* {
		background: transparent !important;
		box-shadow: none !important;
		color: #000 !important; /* 1 */
		text-shadow: none !important;
	}

	@page {
		margin: 0.5cm;
	}

	a,
	a:visited {
		text-decoration: underline;
	}

	a[href]:after {
		content: " (" attr(href) ")";
	}

	/* Don’t show links for images, or javascript/internal links */
	a[href^="#"]:after,
	a[href^="javascript:"]:after,
	.ir a:after {
		content: "";
	}

	abbr[title]:after {
		content: " (" attr(title) ")";
	}

	blockquote,
	pre {
		border: 1px solid #777;
		page-break-inside: avoid;
	}

	h2,
	h3,
	p {
		orphans: 3;
		widows: 3;
	}

	h2,
	h3 {
		page-break-after: avoid;
	}

	img,
	tr {
		page-break-inside: avoid;
	}

	img {
		max-width: 100% !important;
	}

	thead {
		display: table-header-group; /* http://cbrac.co/Q6s1o2 */
	}
}
